Отхил при смерти. 1.6.4

344
1
47
@ForgeSubscribe
   public void JoinGame(EntityJoinWorldEvent event)
   {
       event.entity.renderDistanceWeight = 1000D;
       if (!event.entity.worldObj.isRemote && event.entity instanceof EntityLivingBase)
       {EntityLivingBase entity = (EntityLivingBase)event.entity;
        entity.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setAttribute(2D);
       }
//Здоровье
       if (event.entity instanceof EntityPlayer)
       {
           EntityPlayer player = (EntityPlayer)event.entity;
           ExtendedPlayer props = ExtendedPlayer.get(player);
           player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(1000D);    
   }}
   
   @ForgeSubscribe    
   public void PlayerDead(LivingDeathEvent event){
       {
           event.entity.renderDistanceWeight = 1000D;
           if (!event.entity.worldObj.isRemote && event.entity instanceof EntityLivingBase)
           {
               EntityLivingBase entity = (EntityLivingBase)event.entity;
           }
          //Отхил при смерти.    
   if (event.entity instanceof EntityPlayer  && event.entity instanceof EntityLivingBase)
   {
       EntityPlayer player = (EntityPlayer)event.entity;
       player.heal(1000);
    }
       }}


Вопрос в том, что персонаж при смерти не хилится.
То-есть я умираю, а жизни не восстанавливаются на значение - player.heal(1000);
 
173
1
3
Ты хочешь чтобы персонаж отхилился и не умер? Или ты хочешь чтобы он ПОСЛЕ смерти опять имел 1000 хп?
 
344
1
47
Lobotino написал(а):
Ты хочешь чтобы персонаж отхилился и не умер? Или ты хочешь чтобы он ПОСЛЕ смерти опять имел 1000 хп?
Здоровье уже выдал, работает.
Дело в том, что по стандарту в майне 20 хп.
А для кое-чего мне надо 1000.
При смерти у игрока появляется только 20 хп.
Мне надо, что-бы после смерти у персонажа появлялось 1000 хп.
 
173
1
3
Наверное хилит он прямо во время смерти. Попробуй хилять при заходе в мир
[merge_posts_bbcode]Добавлено: 25.07.2016 21:57:42[/merge_posts_bbcode]

Или ты имеешь ввиду, что у него максимальное хп становится 20?
 
344
1
47
Lobotino написал(а):
Наверное хилит он прямо во время смерти. Попробуй хилять при заходе в мир
[merge_posts_bbcode]Добавлено: 25.07.2016 21:57:42[/merge_posts_bbcode]

Или ты имеешь ввиду, что у него максимальное хп становится 20?
Логично, игрок перезайдёт с сервера и будет здоров, шикарно.
 
6,095
226
1,174
Он, наверное, имел ввиду JoinInGame(могу ошибиться в точном названии события)
 
344
1
47
hohserg написал(а):
Он, наверное, имел ввиду JoinInGame(могу ошибиться в точном названии события)
Не видел такого метода. Есть только EntityJoinWorldEvent, и мне надо отхил после смерти, а не при входе в мир.
Он и так хилит сразу при входе. Т.К атрибут меняется на касарь.
 
173
1
3
А, ну да...
Тогда как вариант PlayerEvent.PlayerRespawnEvent
 
667
7
2
Micertes написал(а):
hohserg написал(а):
Он, наверное, имел ввиду JoinInGame(могу ошибиться в точном названии события)
Не видел такого метода. Есть только EntityJoinWorldEvent, и мне надо отхил после смерти, а не при входе в мир.
Он и так хилит сразу при входе. Т.К атрибут меняется на касарь.
А может хилить игрока когда он нажимает кнопку "Respawn"?
 
344
1
47
Lobotino написал(а):
А, ну да...
Тогда как вариант PlayerEvent.PlayerRespawnEvent
Не, нет такого, не подобного. вы про 1.6?)
[merge_posts_bbcode]Добавлено: 25.07.2016 19:04:18[/merge_posts_bbcode]

virysD написал(а):
Micertes написал(а):
hohserg написал(а):
Он, наверное, имел ввиду JoinInGame(могу ошибиться в точном названии события)
Не видел такого метода. Есть только EntityJoinWorldEvent, и мне надо отхил после смерти, а не при входе в мир.
Он и так хилит сразу при входе. Т.К атрибут меняется на касарь.
А может хилить игрока когда он нажимает кнопку "Respawn"?
Можно и так, но тогда как переловить событие нажатие кнопки респавн и отхилить игрока?
 
173
1
3
Хм, я версию не знаю... Вот тут все эвенты смотрю https://dl.dropboxusercontent.com/s/h777x7ugherqs0w/forgeevents.html
[merge_posts_bbcode]Добавлено: 25.07.2016 22:07:03[/merge_posts_bbcode]

Micertes написал(а):
Lobotino написал(а):
А, ну да...
Тогда как вариант PlayerEvent.PlayerRespawnEvent
сейчас чекну)
Ты там случайно первые три слова не скопировал? :D
Я их подредактировал, но через минуту. Это скопированный код шрифта
 
344
1
47
Lobotino написал(а):
Хм, я версию не знаю... Вот тут все эвенты смотрю https://dl.dropboxusercontent.com/s/h777x7ugherqs0w/forgeevents.html
[merge_posts_bbcode]Добавлено: 25.07.2016 22:07:03[/merge_posts_bbcode]

Micertes написал(а):
Lobotino написал(а):
А, ну да...
Тогда как вариант PlayerEvent.PlayerRespawnEvent
сейчас чекну)
Ты там случайно первые три слова не скопировал? :D
Я их подредактировал, но через минуту
Хд, найн
 
6,095
226
1,174
А вообще у игрока можно увеличить макс. кол-во хп без asm и рефлексии? Я проверить не могу: другое приложение открыто, среда с ним лагает
 
344
1
47
hohserg написал(а):
А вообще у игрока можно увеличить макс. кол-во хп без asm и рефлексии? Я проверить не могу: другое приложение открыто, среда с ним лагает
Пробовал как-то, не вышло)
 
6,095
226
1,174
Ну значит, heal(1000) нигде не сработает, и при возрождении тоже.
 
344
1
47
hohserg написал(а):
Ну значит, heal(1000) нигде не сработает, и при возрождении тоже.
При перезаходе если ставить - отхиливает
 
6,095
226
1,174
и появляется в дополнение к 20хп еще 80?
 
2,502
78
380
В 1.7.10 есть onPlayerCloned
[merge_posts_bbcode]Добавлено: 25.07.2016 20:05:56[/merge_posts_bbcode]

hohserg написал(а):
А вообще у игрока можно увеличить макс. кол-во хп без asm и рефлексии? Я проверить не могу: другое приложение открыто, среда с ним лагает
У Micertes'a итак без asm и рефлексии

[merge_posts_bbcode]Добавлено: 25.07.2016 20:10:18[/merge_posts_bbcode]

В 1.7.10 у атрибута есть модификатор. Просто добавь его туда с нужным значением.
 
344
1
47
hohserg написал(а):
и появляется в дополнение к 20хп еще 80?
Да
[merge_posts_bbcode]Добавлено: 25.07.2016 22:04:39[/merge_posts_bbcode]

Дашка, с асм кое-что есть)
 
Сверху