[1.7.2] IExtendedEntityProperties и GuiScreen

183
1
4
Agravaine написал(а):
Не понял вопроса.
Плохо объяснил. Есть класс ExtendedProps, который наследует IExtendedEntityProperties. При помощи него я сохраняю в игрока определенные параметры, в данном случае это массив интегров. При попытке получить эти значения из интерфейса (код ниже) я получаю стандартные значения (т.е. ноль), хотя эти значения изменялись ранее.
Код:
//Вызов метода
Helper.getSkillLvl(guiplayer, Core.skills.get(i))
//Метод
public static int getSkillLvl(EntityPlayer p, Skill s)
{
    ExtendedProps props = ExtendedProps.convert(p);        
    int lvl = props.skillslvl[s.getSkillId()];
    return lvl;
}
Однако если аналогичную операцию произвести в другом месте, например при отправке пакета, возвращаются верные значения.
Код:
public IMessage handleServerMessage(EntityPlayer player, SkillUpMessage message, MessageContext ctx) {
            ExtendedProps props = ExtendedProps.convert(player);
            if(Core.skillids.contains(message.skillid))
            {
                
                props.skillslvl[Core.skills.indexOf(message.skillid).getSkillId()] = props.skillslvl[Core.skills.indexOf(message.skillid).getSkillId()] + 1;
                LogHelper.log("Skill's values: " + Arrays.toString(props.skillslvl));
            }
            return null;
        }
 
2,955
12
Потому что инфа на сервере, а гуи клиентский. Шли пакет клиенту.
 
183
1
4
Dragon2488 написал(а):
Потому что инфа на сервере, а гуи клиентский. Шли пакет клиенту.
т.е. клиент постоянно отсылает серверу пакет с запросом, тот читает и в ответ отсылает пакет с данными, так?
 
183
1
4
Agravaine написал(а):
Я делаю так:InMinecraftRpg.packetSender.sendTo(new PacketPlayerInfo(player), (EntityPlayerMP)player);
Я сейчас сделал два пакета, в ответ на первое сервер отсылает второй и тот сохраняет данные в клиентский массив. Однако не могу определится в какой момент отсылать первый пакет. При инитиализации гуи не подходит.
 
Сверху