Помогите Лут при добыче

Horosho

6 Май 2020
12
0
6
26
Скину 100 рублей тому, кто поможет мне с моей проблемой, есть сервер hurtworld v2. Нужно чтобы весь добываемый лут падал только в инвентарь..
 
I asked people who know this job before.They told me it can only be done with oxide with special hooks attached it's not a guarantee either
Maybe the master kaidoz will tell another opinion about it
I know a server on which loot from animals immediately goes into inventory, so I think that if they did it, then maybe
 
bana gitmek ve görmek istediğim bir isim verebilir misin?kesinlikle özel (oksit)

killed animal in the distance, I have loot
bana gitmek ve görmek istediğim bir isim verebilir misin?kesinlikle özel (oksit)
But is it possible to give a reward for a killed animal in some way and this reward is already given to the inventory?
bana gitmek ve görmek istediğim bir isim verebilir misin?kesinlikle özel (oksit)
Так, кто сможет написать плагин, что при убийстве определенного животного давали бонус (ресурсы) в инвентарь и чтобы можно было настроить в конфиге какой именно дроп упадет, его шанс выпадения и количество.
https://umod.org/plugins/animals-loot-manager#updates плагин
 

Вложения

  • 11.png
    11.png
    1 MB · Просмотры: 17
  • 11.png
    11.png
    782.3 KB · Просмотры: 15
Последнее редактирование:
do you know the owner of that server he can give the best answer..
neye ihtiyacın var:
Bu arada, bunu bilmeye gerek yok. "
}


// Önbelleğe alınmış yöntem
özel Sözlük <PlayerSession, string> targetAnimals = new Dictionary <PlayerSession, string> ();

#endregion


#region uMod Kancaları

void OnServerInitialized ()
{
LoadItems ();
CheckInvalidItems ();
}

nesne OnEntityTakeDamage (AIEntity varlığı, EntityEffectSourceData kaynağı)
{
var sourceDesc = GameManager.Instance.GetDescriptionKey (source.EntitySource);
eğer (! sourceDesc.EndsWith ("(P)")) null döndürür;
var target = GameManager.Instance.GetDescriptionKey (entity.gameObject);
var initiator = GetPlayer (sourceDesc.Replace ("(P)", ""));
eğer (hedef! = boş && başlatıcı! = boş)
{
if (targetAnimals.ContainsKey (başlatıcı))
{
eğer (targetAnimals [başlatıcı]! = hedef)
targetAnimals [başlatıcı] = hedef;
}
Başka
{
targetAnimals.Add (başlatıcı, hedef);
}
}
same hook for give to inventory...
 
Последнее редактирование:
  • Мне нравится
Реакции: elkozavr
do you know the owner of that server he can give the best answer..
neye ihtiyacın var:
Bu arada, bunu bilmeye gerek yok. "
}


// Önbelleğe alınmış yöntem
özel Sözlük <PlayerSession, string> targetAnimals = new Dictionary <PlayerSession, string> ();

#️endregion


#️region uMod Kancaları

void OnServerInitialized ()
{
LoadItems ();
CheckInvalidItems ();
}

nesne OnEntityTakeDamage (AIEntity varlığı, EntityEffectSourceData kaynağı)
{
var sourceDesc = GameManager.Instance.GetDescriptionKey (source.EntitySource);
eğer (! sourceDesc.EndsWith ("(P)")) null döndürür;
var target = GameManager.Instance.GetDescriptionKey (entity.gameObject);
var initiator = GetPlayer (sourceDesc.Replace ("(P)", ""));
eğer (hedef! = boş && başlatıcı! = boş)
{
if (targetAnimals.ContainsKey (başlatıcı))
{
eğer (targetAnimals [başlatıcı]! = hedef)
targetAnimals [başlatıcı] = hedef;
}
Başka
{
targetAnimals.Add (başlatıcı, hedef);
}
}
same hook for give to inventory...
does not work or I do not understand how to use this code
 
Скину 100 рублей тому, кто поможет мне с моей проблемой, есть сервер hurtworld v2. Нужно чтобы весь добываемый лут падал только в инвентарь..
Serkan в принципе озвучил то, что нужны дополнительные хуки(хотя хер знает, что там по хукам). В теории можно через костыль ловить спавн предметов(удалять их и выдавать игроку), но это самый худший вариант
 
  • Мне нравится
Реакции: elkozavr и SeRKaN
Привет! Ставишь плагин LootConfigV2.cs. В созданном им LootConfigV2.json ищешь куски кода типа "Note": "ShigiKill", (ключевое: Shigi, весь список: Bor (Кабан), Tokar (Токарь), Yeti (Йети), Bandrill (Гиена), Antor (Оса), Thornling (Подземный хер), Rafaga (Птичка), Skoogler (Страус), Sabra (Лев)), меняешь в них RollAll на false и RollCount на 0. Это запретит выпадание лута на землю. Дальше геморрой на выдачу лута:

void GiveItem(PlayerSession session, string name, int count)
{
var itemmanager = Singleton<GlobalItemManager>.Instance;
itemmanager.GiveItem(session.Player, getItemFromName(name), count);
}
public ItemGeneratorAsset getItemFromName(string name)
{
foreach (var item in GlobalItemManager.Instance.GetGenerators())
{
if (item.Value.name == name || item.Value.GeneratorId.ToString() == name)
return item.Value;
}
return GlobalItemManager.Instance.GetGenerators()[2];
}
private void OnEntityDeath(object animal, EntityEffectSourceData dataSource)
{
string tmpName = GetNameOfObject(dataSource.EntitySource);
string KillerName = tmpName.Remove(tmpName.Length - 3);
var session = getSession(KillerName);
string anim = Convert.ToString(animal);
if(anim.Contains("Shigi"))
{
GiveItem(session, "Leather", 1);
GiveItem(session, "Steak (Raw)", 1);
GiveItem(session, "Animal Tendon", 1);
}
else if(anim.Contains("AIGavkuServer"))
{
GiveItem(session, "Leather", 1);
GiveItem(session, "Steak (Raw)", 1);
GiveItem(session, "Animal Tendon", 1);
}
else if(далее по списку)
{
......
......
}
}
Ну и через рандом задай шанс выпадения. Но, как выше написали, лучше найти того, кто поможет с хуком.
 
  • Мне нравится
Реакции: SeRKaN и Kaidoz
Кто может помочь с хуком?
Те кто умеют пользоваться OxidePatcher (да, хук можно и через dnSpy сделать но при обновлении [ага, обновлении HW] игры он пропадет) и знает структуру HW.
 
Активность
Пока никто не печатает сообщение