Совет для новичка

Хостинг игровых серверов

Nemecrolic

Новичек
28 Янв 2020
0
1
Приветствую читающих форум.
Недавно взялся за написание плагинов для rust, хочу спросить, как искать нужные функции из dll, ведь их там очень много, при этом описаний самих функций я найти так и не смог, для чего она нужна и тд.
Буду признателен за дельные советы и прошу не агриться гуд-кодеров, ведь я ещё новичок)
 
  • Like
Реакции: Басотник

proxima

Новичек
3 Окт 2019
17
0
26
Приветствую читающих форум.
Недавно взялся за написание плагинов для rust, хочу спросить, как искать нужные функции из dll, ведь их там очень много, при этом описаний самих функций я найти так и не смог, для чего она нужна и тд.
Буду признателен за дельные советы и прошу не агриться гуд-кодеров, ведь я ещё новичок)
Не советую без знаний c# лезть в плагдевелоперы
 

Басотник

Команда форума
Продавец
Меценат
Местный
Обитатель
Прохожий
21 Окт 2017
1,619
329
Открываешь плагины с похожим функционалом о чем хочешь писать и берешь от туда все хуки и референсы
 

ХУЙ228

Распиздяй
Прохожий
17 Дек 2017
707
196
Приветствую читающих форум.
Недавно взялся за написание плагинов для rust, хочу спросить, как искать нужные функции из dll, ведь их там очень много, при этом описаний самих функций я найти так и не смог, для чего она нужна и тд.
Буду признателен за дельные советы и прошу не агриться гуд-кодеров, ведь я ещё новичок)
1. Качаешь dnSpy
2. Открываешь RustDedicated_Data/Managed/Assembly-CSharp.dll
3. Далее

1580293931031.png

далее...

1580293972580.png

В итоге в ты получишь папку Assembly-CSharp.

В ней ты найдешь все классы которые используются в игре.

Увы, описаний где что то используется, в мире не существует.

Можешь использовать такой "кусок кода"

C#:
        private void OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info)
        {
            if (entity == null || info == null || info?.Initiator == null || info?.WeaponPrefab == null || info.WeaponPrefab?.ShortPrefabName == null)
                return;

            if (info.WeaponPrefab.ShortPrefabName.Equals("hammer_salvaged.entity"))
            {
                Puts(entity.ShortPrefabName);
                Puts(entity.GetType().ToString());
            }
        }

Он при ударе "Самодельным молотом" по объекту ты в консоль выведет название префаба и класс объекта.

Класс - собственно ты сможешь найти в папке Assembly-CSharp.
 
  • Like
Реакции: Басотник и 7erGO

Nemecrolic

Новичек
28 Янв 2020
0
1
1. Качаешь dnSpy
2. Открываешь RustDedicated_Data/Managed/Assembly-CSharp.dll
3. Далее

Посмотреть вложение 5023

далее...

Посмотреть вложение 5024

В итоге в ты получишь папку Assembly-CSharp.

В ней ты найдешь все классы которые используются в игре.

Увы, описаний где что то используется, в мире не существует.

Можешь использовать такой "кусок кода"

C#:
        private void OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info)
        {
            if (entity == null || info == null || info?.Initiator == null || info?.WeaponPrefab == null || info.WeaponPrefab?.ShortPrefabName == null)
                return;

            if (info.WeaponPrefab.ShortPrefabName.Equals("hammer_salvaged.entity"))
            {
                Puts(entity.ShortPrefabName);
                Puts(entity.GetType().ToString());
            }
        }

Он при ударе "Самодельным молотом" по объекту ты в консоль выведет название префаба и класс объекта.

Класс - собственно ты сможешь найти в папке Assembly-CSharp.
Спасибо, попробую)