Счётчик килов

Версия Minecraft
1.7.10
46
0
Ещё раз привет форумчане, сделал Счётчик килов (не свой, была тема на форуме) столкнулся с проблемой когда игрок умирает килы пропадают, что делать ?
 
46
0

timaxa007

Модератор
5,831
409
672
Есть. killer_player EventsForge.java#L35
столкнулся с проблемой когда игрок умирает килы пропадают, что делать ?
В эвент клона игрока PlayerEvent.Clone, передавать из Старого EntityPlayer в Новый EntityPlayer, если использовал IEEP, то со старого на новый передавай.
 

timaxa007

Модератор
5,831
409
672
Java:
    @SubscribeEvent
    public void cloneKillerPlayer(PlayerEvent.Clone event) {
        KillerPlayer originalKillerPlayer = KillerPlayer.get((EntityPlayer)event.original);
        if (originalKillerPlayer == null) return;
        KillerPlayer newKillerPlayer = KillerPlayer.get((EntityPlayer)event.entityPlayer);
        if (newKillerPlayer == null) return;
        NBTTagCompound nbt = new NBTTagCompound();
        newKillerPlayer.loadNBTData(nbt);
        originalKillerPlayer.saveNBTData(nbt);
}
event.original - старый игрок, который: либо умер, либо до входа в другое измеренние.
event.entityPlayer - новый игрок, который: либо воскрешоный, либо попал в другое измерение.
KillerPlayer - это класс с имлеметации от IEEP (implements IExtendedEntityProperties), если у тебя нету такого класса и возможно ты используешь NBT в игроке, то из NBT старого игрока, передаёшь в новый. А через IEEP, можно просто передать весть используемый NBT:
Java:
        NBTTagCompound nbt = new NBTTagCompound();
        newKillerPlayer.loadNBTData(nbt);
        originalKillerPlayer.saveNBTData(nbt);
Но если ты в IEEP не сохраняешь и не загружаешь значение твоих киллов, то: не передаться, и не сохранять, и не загружать - твои киллы не будут.
 
46
0
Полное цитирование предыдущего сообщения запрещено
Java:
@SubscribeEvent
public void cloneKillerPlayer(PlayerEvent.Clone event) {
KillerPlayer originalKillerPlayer = KillerPlayer.get((EntityPlayer)event.original);
if (originalKillerPlayer == null) return;
KillerPlayer newKillerPlayer = KillerPlayer.get((EntityPlayer)event.entityPlayer);
if (newKillerPlayer == null) return;
NBTTagCompound nbt = new NBTTagCompound();
newKillerPlayer.loadNBTData(nbt);
originalKillerPlayer.saveNBTData(nbt);
}

Этот евент у меня есть, но всеравно когда я умираю килы пропадают.
 
3,005
192
592
46
0

timaxa007

Модератор
5,831
409
672
Может пакет не так написан.
Точно в чём твоя пропажа - неизвестна.
Короче, у нас получается наугад у нас. Проблему письменно ты на писал, примерный(-ые) ответ(-ы) мы написали. Может где-то проблема в коде. Пробуй типа про debug'ить и проверить, может на сервере и на клиенте у тебя разные значения.
 
46
0
Короче, у нас получается наугад у нас. Проблему письменно ты на писал, примерный(-ые) ответ(-ы) мы написали. Может где-то проблема в коде. Пробуй типа про debug'ить и проверить, может на сервере и на клиенте у тебя разные значения.

Хорошо спасибо.
 
Сверху