[1.7.10] Give NoDrops (слив кода)

timaxa007

Модератор
5,831
409
672
Точно не знаю как правильно назвать и как назывался код с которого как-бы "пародировал" этот код. Два раза меня просили (два разных человека) меня перевести код какого-то автора, который был написан на 1.6.4:
  • Первый раз (давно это было) перевёл на 1.7.10, да и не запомнил что там, да и кода не осталось,
  • А на второй раз (не давно было) я отказался переделывать код и написал (уже вчера) свой вариант кода, а потом ещё один код. Может кому-то пригодиться.
Код с использованием IExtendedEntityProperties - (github.com) no_drop_2 - просто мне нравиться использовать IEEP.
Код без использования IExtendedEntityProperties - (github.com) no_drop_3 - примерно так-же работает, как с кода я "пародировал".
Ресурсных фалов не добавил, так как сами эти коды нужно будет дополнять, так как нету: локализации в ToolTip'е, так как я нормально названия не придумал, а так-же этот код просто пример, некоторые могут захотеть усложнить код (типа ограниченное количество возражение в инвентарь).
---
no_drop_2.jar
no_drop_3.jar
---
С IExtendedEntityProperties или без, по виду и действиями, работает так-же.
Спасибо, за внимание.
 
Последнее редактирование:
7,099
324
1,510

timaxa007

Модератор
5,831
409
672
@hohserg1, нет. Другой код, там именно через команду и этот мод предположительно назывался GiveNoDrop.
Предположительно S.T.A.L.K.E.R. проект для Minecraft, а код написан под 1.6.4, если я не ошибаюсь. Предположительно, есть один проект, откуда он мог быть взять. Но такой смысл сохранения предмета после смерти, не один проект, но другие проекты, моды и даже вроде есть плагин (но я точно не знаю).
 
212
8
29
Для FGM вроде, там так же недроп работает.
 

timaxa007

Модератор
5,831
409
672
@Половина бутылки of juice, вроде он.
Так-же есть подобное и под названием "SavedDrops".
Спасибо @Doc, за найденную ошибку, которая могла приводить к не полному сохранению предметов.
 

timaxa007

Модератор
5,831
409
672
@Fr0Le, если ты про эвент PlayerDropsEvent, то нет. event.drops это список дропов виде EntityItem. Тебе скорее всего нужно будет использовать эвент смерти LivingDeathEvent, проверить что entityLiving это игрок и ищешь циклом нужную ящейку с нужным предметом.
 
167
10
69
Просто использую этот код, уже частично переделал и есть проблема в том, что предметы лежат в одних ячейках, а при возрождении ложатся в другие, что есть не очень удобно. Вот хочу переделать. Интересно какой эвент будет лучше юзать.
 

timaxa007

Модератор
5,831
409
672
предметы лежат в одних ячейках, а при возрождении ложатся в другие
Ага, типа всё правильно. в list'е дропа нет информации из какого они слота дропаються и добавляются по порядку их сохранения.
Интересно какой эвент будет лучше юзать.
Точно не знаю. Но если тебе из какого слота слота, то эвент LivingDeathEvent, приоритет самый низкий, убедиться что игрок мёртв (а то LivingDeathEvent можно отменить смерть) и то что эвент не отменён, а так-же брать сохранения в NBT как у сундука (или типа того, там id слота сохраняется в NBT предмета).
 
7,099
324
1,510
Можно попробовать инвертировать список дропа перед тем как давать предметы из него. Еще надо учесть броню и баблсы - их в отдельные слоты
 

timaxa007

Модератор
5,831
409
672
@iApex, ну "так"-то можно, но я вряд-ли в ближайшее время смогу переписать.
 

timaxa007

Модератор
5,831
409
672
@Niknemm, если ты мне, то наверное не скоро. Так как я не писал ещё какой-либо код под новые версии.
 
167
10
69
Добавил виде мода
Брал твои исходники, примерно год назад, там дюпчанский был, после выдачи предметов теги не удаляются, и если умереть с пустым инвентарем, то выдаст повторно предметы (как-то так было). Не знаю исправлял ли ты это, у себя поправлял.
 

timaxa007

Модератор
5,831
409
672
после выдачи предметов теги не удаляются,
Эм... Ты имеешь виду, после смерти и возрождения? Если да, то этого у меня и не было.
и если умереть с пустым инвентарем, то выдаст повторно предметы (как-то так было).
Не замечал. Проверил сейчас. Ни чего такого нет, по-крайней мере в одиночной игре.
---
Поправочка, у версии 0.2 ни чего такого, в у 0.3 есть этот баг.
 
Последнее редактирование:
Сверху