Адекватное пвп с огнестрельным оружием

Версия Minecraft
1.7.10
1,203
31
185
Тут проблема выкатилась у меня, юзаю фланс, переписал его немного, но в плане пвп на сервере, это - сущий ад. Пули вылетают с задержкой, с игроками пвпшиться очень сложно, приходится расходовать много патрон, так еще и попадают криво. На клиенте все идеально (очевидно, лул)
Кто нибудь с этим работал?
Заранее спасибо)
 
87
1
12
А суть краша какая была?
если в транспорте находилось несколько людей, то возможно были баги с местами пассажиров. Типа если пассажир "типа стреляет", то фланс может выкинуть Null где-то из-за пинга и крашнуть сервер
Другой баг с модификацией оружия - там нет проверки на существования NBT тегов - что и вызывал краш
 

CumingSoon

Местный стендапер
1,634
12
269
Java:
    //If we couldn't get a snapshot, use normal entity hitbox calculations
                if(data == null || shouldDoNormalHitDetect)
                {
                    MovingObjectPosition mop = player.boundingBox.calculateIntercept(origin.toVec3(), Vec3.createVectorHelper(posX + motionX, posY + motionY, posZ + motionZ));
                    if(mop != null)
                    {
                        Vector3f hitPoint = new Vector3f(mop.hitVec.xCoord - posX, mop.hitVec.yCoord - posY, mop.hitVec.zCoord - posZ);
                        float hitLambda = 1F;
                        if(motion.x != 0F)
                            hitLambda = hitPoint.x / motion.x;
                        else if(motion.y != 0F)
                            hitLambda = hitPoint.y / motion.y;
                        else if(motion.z != 0F)
                            hitLambda = hitPoint.z / motion.z;
                        if(hitLambda < 0)
                            hitLambda = -hitLambda;
                     
                        hits.add(new PlayerBulletHit(new PlayerHitbox(player, new RotatedAxes(), new Vector3f(), new Vector3f(), new Vector3f(), EnumHitboxType.BODY), hitLambda));
                    }
                }
            }
            else
            {
                Entity entity = (Entity)obj;
                if(entity != this && entity != owner && !entity.isDead && (entity instanceof EntityLivingBase || entity instanceof EntityAAGun || entity instanceof EntityGrenade))
                {
                    MovingObjectPosition mop = entity.boundingBox.calculateIntercept(origin.toVec3(), Vec3.createVectorHelper(posX + motionX, posY + motionY, posZ + motionZ));
                    if(mop != null)
                    {
                        Vector3f hitPoint = new Vector3f(mop.hitVec.xCoord - posX, mop.hitVec.yCoord - posY, mop.hitVec.zCoord - posZ);
                        float hitLambda = 1F;
                        if(motion.x != 0F)
                            hitLambda = hitPoint.x / motion.x;
                        else if(motion.y != 0F)
                            hitLambda = hitPoint.y / motion.y;
                        else if(motion.z != 0F)
                            hitLambda = hitPoint.z / motion.z;
                        if(hitLambda < 0)
                            hitLambda = -hitLambda;
                     
                        hits.add(new EntityHit(entity, hitLambda));
                    }
                }
Если не работает система снапшотов, есть вот это.
Это адекватная система?)
>> //If we couldn't get a snapshot, use normal entity hitbox calculations

da3b86250d28612f49f028cbfd4e9c3c.jpg
 
1,203
31
185
если в транспорте находилось несколько людей, то возможно были баги с местами пассажиров. Типа если пассажир "типа стреляет", то фланс может выкинуть Null где-то из-за пинга и крашнуть сервер
Другой баг с модификацией оружия - там нет проверки на существования NBT тегов - что и вызывал краш
эм, я допилил модификации оружия, и теперь читает нбт тег недропа, к примеру
 
1,203
31
185
>> //If we couldn't get a snapshot, use normal entity hitbox calculations
вас понел, можна больше не спрашевать ыыыы
а так, надо менять во флансе энтити баллет, иначе будет полное говно. Либо кушать это все, ничего не меняя =)
эх, надо бы только разобраться как, что менять там, на "болие мение" стрельбу
 

CumingSoon

Местный стендапер
1,634
12
269
Смотри как Quake 3 делает это. Там тоже снапшоты и дельта-пакеты(а вот дельта-пакеты были бы полезны всем, кто шлёт много данных часто). Трафик, я читал, получается огромный, так что стоит ли оно того?
 
Сверху