Изменение характеристик игрока

Версия Minecraft
1.7.10
49
3
3
Вообщем, например я хочу сделать чтобы у игрока было не 20 хп, а 100 и так же с едой + другие характеристики игрока. Как это можно сделать?
 
Решение
Ты неправильно понял. Нужно сравнивать не текущее с максимальным, а максимальное с твоим заданным(12000 которое).

Спасибо) Я догнал) работает)

Java:
    @SubscribeEvent
    public void entityJoinWorldEvent(EntityJoinWorldEvent event) {
        if (event.entity instanceof EntityPlayer) {
            EntityPlayer player = (EntityPlayer) event.entity;
            if (player.getMaxHealth() != 200) {
                player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(200);
                if (player.shouldHeal()) {
                    player.setHealth(player.getMaxHealth());
                }
            }
        }
    }
477
7
51
чтобы у игрока было не 20 хп, а 100

Код:
   @SubscribeEvent
       public void onEntityJoinWorld(EntityJoinWorldEvent event)
       {
           if(!event.entity.worldObj.isRemote && event.entity instanceof EntityPlayer){
                EntityPlayer player = (EntityPlayer)event.entity;
            player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(12000);
       }
       }
 
77
3
8
ShooterWar нужно еще добавить проверку на кол-во текущих хп... ото на выходи получишь 20\12000 хп

Java:
   @SubscribeEvent
       public void onEntityJoinWorld(EntityJoinWorldEvent event)
       {
           if(!event.entity.worldObj.isRemote && event.entity instanceof EntityPlayer){
                EntityPlayer player = (EntityPlayer)event.entity;
            player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(12000);
                    if(player.shouldHeal()){
                            player.setHealth(player.getMaxHealth());
                        }
           }
       }
 
77
3
8
Ага, и я перезайду на сервак и отхилюсь :3

Это да, но это же дорабатывать надо, я как пример, того что нужно maxHealth восполнить при его увеличении.
) типо таймаута для этого ивента что бы был.

У тебя есть идея получше? Скинь, мне тоже эта штука пригодиться

Можно сделать что бы
Java:
 if(player.shouldHeal()){
    player.setHealth(player.getMaxHealth());
}

срабатывал только при первом входе.

Это уже на вкус и цвет)
 
Последнее редактирование:
77
3
8
Сделай проверку на максимальное хп, равно ли оно 12000. Если нет - ставь и хиль.

Эмм, щас проверю, но по мне тоже самое получается вроде, то есть если я щас шлепнусь с высоты, мне хп снимет, у меня уже будет хп< максимальных, при входе эта проверка даст true
 
77
3
8
Сделай проверку на максимальное хп, равно ли оно 12000. Если нет - ставь и хиль.

эммм, тут до меня дошло, так ведь метод player.shouldHeal() тоже самое и делает

Java:
    public boolean shouldHeal()
    {
        return this.getHealth() > 0.0F && this.getHealth() < this.getMaxHealth();
    }

говорю же, ответ это доп проверка то что игрок первый раз вошел на сервер, тогда это правильно сработает.
 
77
3
8
Ты неправильно понял. Нужно сравнивать не текущее с максимальным, а максимальное с твоим заданным(12000 которое).

Спасибо) Я догнал) работает)

Java:
    @SubscribeEvent
    public void entityJoinWorldEvent(EntityJoinWorldEvent event) {
        if (event.entity instanceof EntityPlayer) {
            EntityPlayer player = (EntityPlayer) event.entity;
            if (player.getMaxHealth() != 200) {
                player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(200);
                if (player.shouldHeal()) {
                    player.setHealth(player.getMaxHealth());
                }
            }
        }
    }
 
Сверху