Как уменьшить откидывание от урона ?

zelten

Каменная лига
Сообщения
3
Лучшие ответы
0
Симпатии
0
#1
Некорректные теги
Версия Minecraft
1.7.10
Подтверждение
Я максимально подробно описал проблему, включая исходный код файлов, краш лог, изображения и другую информацию, которая может помочь пользователям форума решить мой вопрос!
Выгнали с RB , сказали идти на другие форумы , надеюсь вы не такие :)

Каким образом можно уменьшить откидывание от урона ?
Узнавал , что бы это сделать с помощью самописного плагина , сказали плагин не поможет .
Где то слышал , что в самом майне это можно сделать , но где именно ?
Ядро сервера Thermos 58 , 1.7.10 .
Поясню для чего это нужно , может чем то поможет .
У нас стоит мод Flans , и мы хотим его сбалансировать , потому что откидывание
на столько сильное , что игроки улетают под Shooting Stars .
Заранее спасибо :)
 

timaxa007

Команда форума
Сообщения
4,952
Лучшие ответы
276
Симпатии
362
#2
Можно просто EntityLivingBase в которого попала пуля motionY сделать на ноль.
Сначала урон от пули, выглядит примерно так:
Java:
MovingObjectPosition#entityHit.attackEntityFrom(new EntityDamageSourceIndirect("bullet", this, getThrower()).setProjectile(), bullet.getDamage());
затем motionY на 0, выглядит примерно так:
Java:
MovingObjectPosition#entityHit.motionY = 0;
 

Rebel Penguin

Железная лига
Сообщения
727
Лучшие ответы
25
Симпатии
119
#3
Чтобы не мотало игрока от пуль, надо его старый motion(до попадания) сохранить, а после поставить. Или возможно в самой пуле отключить отбрасывание
 

BestFoxy

Каменная лига
Сообщения
593
Лучшие ответы
14
Симпатии
27
#4
Можно его вообще отключить.
 

JKLEM

Каменная лига
Сообщения
175
Лучшие ответы
5
Симпатии
15
#5
Java:
  @SubscribeEvent
       public void onEntityJoinWorld(EntityJoinWorldEvent event) {
          if(event.entity instanceof EntityLivingBase)
          {
              EntityLivingBase entity = (EntityLivingBase)event.entity;
              entity.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(2D);
          }

       }
 

BestFoxy

Каменная лига
Сообщения
593
Лучшие ответы
14
Симпатии
27
#10
Не проще ванильный knockback отключить
 

BestFoxy

Каменная лига
Сообщения
593
Лучшие ответы
14
Симпатии
27
#12
Ванильный атрибут knockbackResistance на 0 поставь,наверное это лучше делать при заходе в мир EntityJoinWorldEvent
 

BestFoxy

Каменная лига
Сообщения
593
Лучшие ответы
14
Симпатии
27
#14
Ааа , ну раз такое дело то не 0 , а 2-3
 

zelten

Каменная лига
Сообщения
3
Лучшие ответы
0
Симпатии
0
#15
hohserg1 написал(а):
Используй LivingKnockBackEvent
Не уверен, что он есть на 1.7.10, если нету - чекни код EntityLivingBase#attackEntityFrom или EntityLivingBase#knockBack

Его нету на 1.7.10 )=
 

BestFoxy

Каменная лига
Сообщения
593
Лучшие ответы
14
Симпатии
27
#16
Ванильный атрибут knockbackResistance
Java:
  @SubscribeEvent
       public void onEntityJoinWorld(EntityJoinWorldEvent event) {
          if(event.entity instanceof EntityLivingBase)
          {
              EntityLivingBase entity = (EntityLivingBase)event.entity;
              entity.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(2D);
          }

       }
Так ответ давно есть.
 
Сверху