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

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

Nemecrolic

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

proxima

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

Басотник

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

rostov114

Распиздяй
Разработчик С#
Прохожий
17 Дек 2017
553
168
Приветствую читающих форум.
Недавно взялся за написание плагинов для 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.
Спасибо, попробую)