Пуля, дубль №999

svk

1,185
3
this.getThrower() равен null.

Точно не замечал, но по-моему null на первых тиках. Это порождает столкновение со стреляющим игроком, проверить на то, что энтити не равна стреляющему я не могу, из-этой проблемы.

Помогите, что мне делать? Спавнить пулю дальше от игрока, не охото.
Вот пуля: http://forum.mcmodding.ru/viewtopic.php?id=2591

Базовый класс, полностью копирует EntityThrowable, и не имеет модификаций, которые могли-бы на это повлиять.
[merge_posts_bbcode]Добавлено: 29.06.2015 16:19:37[/merge_posts_bbcode]

Если ещё что-то потребуется предоставить - говорите.
 
Такой конструктор в ней есть, хоть бы код посмотрел :D
 
И?Пусть их хоть 6666 штук будет,такой надо выполянть(ибо 2 параметр ставит thrower)
[merge_posts_bbcode]Добавлено: 29.06.2015 18:34:54[/merge_posts_bbcode]

А вообще так всё вроде.Попробуй сетить лично или дебагом глянь что сетиться,что нет
 
Я выполняю его -_-

Я же сказал, надо код посмотреть, прежде чем такую банальщину советовать.
 
У меня же она равна нулу, получается может -_-
И всё это началось после того, как я начал регистрировать пули в базовом классе мода.
 
В предоставленном коде есть. Ты надомной издеваешься?
 
svk написал(а):
В предоставленном коде есть. 
Код:
if(!world.isRemote)
            {
                        Vec3 movingobjectposition = player.getLookVec();
                        EntityBullet bullet = new EntityZardiaShell(world, player);
                        bullet.setPosition(bullet.posX + movingobjectposition.xCoord * 1.0D, bullet.posY+0.5 + movingobjectposition.yCoord * 1.0D, bullet.posZ + movingobjectposition.zCoord * 1.0D);
                        bullet.bulletMotionX = movingobjectposition.xCoord + Функция_разброса;
                        bullet.bulletMotionY = movingobjectposition.yCoord + Функция_разброса;
                        bullet.bulletMotionZ = movingobjectposition.zCoord + Функция разброса;
                        bullet.damage = bulletDamage;
                        bullet.speed = bulletSpeed;
    
                        world.spawnEntityInWorld(bullet);
            }

Что-то я не вижу откуда это всё
 
Если можешь получить стреляющего - пробуй костылить при создании пули в главном методе класса.
 
Может он быть нулл только при черной магии с sun.misc.Unsafe и его обходом конструктора, а так агравейн прав.
 
Ну может он делает так
private EntityPlayer player;
public void onItemRightClick(args){
<...>
new EntityBullet(world,player);
}
[merge_posts_bbcode]Добавлено: 30.06.2015 15:50:34[/merge_posts_bbcode]

Надо дебагом смотреть.Поставь брейкпоинт на спавн и смотри где,что нулл
 
Хм, а и вправду, надо проверить игрока в самом методе в котором стоит вызов... Чёт я и не подумал об этом :D
 
Хм, он равен нулу только от клиента, и не при вызове :\.
Поставил в вызове onImpact условие, если не равен нулу - всё прошло.

Не знаю с чем это связанно...
 
Назад
Сверху