Proper collision methods, float values and usage.
This commit is contained in:
@@ -7871,10 +7871,10 @@ public class PlayerInstance extends Playable
|
||||
statement.setInt(29, getAppearance().getHairStyle());
|
||||
statement.setInt(30, getAppearance().getHairColor());
|
||||
statement.setInt(31, getAppearance().isFemale() ? 1 : 0);
|
||||
statement.setDouble(32, 1/* getMovementMultiplier() */);
|
||||
statement.setDouble(33, 1/* getAttackSpeedMultiplier() */);
|
||||
statement.setDouble(34, getTemplate().getCollisionRadius());
|
||||
statement.setDouble(35, getTemplate().getCollisionHeight());
|
||||
statement.setDouble(32, 1 /* getMovementMultiplier() */);
|
||||
statement.setDouble(33, 1 /* getAttackSpeedMultiplier() */);
|
||||
statement.setDouble(34, getCollisionRadius());
|
||||
statement.setDouble(35, getCollisionHeight());
|
||||
statement.setLong(36, getExp());
|
||||
statement.setInt(37, getSp());
|
||||
statement.setInt(38, getKarma());
|
||||
@@ -15385,6 +15385,24 @@ public class PlayerInstance extends Playable
|
||||
_offlineShopStart = time;
|
||||
}
|
||||
|
||||
public float getCollisionRadius()
|
||||
{
|
||||
if (isMounted() && (_summon != null))
|
||||
{
|
||||
return _summon.getTemplate().getCollisionRadius();
|
||||
}
|
||||
return _appearance.isFemale() ? getBaseTemplate().getFCollisionRadiusFemale() : getBaseTemplate().getFCollisionRadius();
|
||||
}
|
||||
|
||||
public float getCollisionHeight()
|
||||
{
|
||||
if (isMounted() && (_summon != null))
|
||||
{
|
||||
return _summon.getTemplate().getCollisionHeight();
|
||||
}
|
||||
return _appearance.isFemale() ? getBaseTemplate().getFCollisionHeightFemale() : getBaseTemplate().getFCollisionHeight();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if character falling now On the start of fall return false for correct coord sync !.
|
||||
* @param z the z
|
||||
|
@@ -90,9 +90,14 @@ public class CreatureTemplate
|
||||
private final int _baseMpConsumeRate;
|
||||
private final int _baseHpConsumeRate;
|
||||
|
||||
/** For client info use {@link #_fCollisionRadius} */
|
||||
private final int _collisionRadius;
|
||||
/** For client info use {@link #_fCollisionHeight} */
|
||||
private final int _collisionHeight;
|
||||
|
||||
private final float _fCollisionRadius;
|
||||
private final float _fCollisionHeight;
|
||||
|
||||
public CreatureTemplate(StatSet set)
|
||||
{
|
||||
// Base stats
|
||||
@@ -160,8 +165,10 @@ public class CreatureTemplate
|
||||
_baseHpConsumeRate = set.getInt("baseHpConsumeRate", 0);
|
||||
|
||||
// Geometry
|
||||
_collisionRadius = (int) set.getFloat("collision_radius"); // TODO: Support float.
|
||||
_collisionHeight = (int) set.getFloat("collision_height"); // TODO: Support float.
|
||||
_fCollisionRadius = set.getFloat("collision_radius", 0);
|
||||
_fCollisionHeight = set.getFloat("collision_height", 0);
|
||||
_collisionRadius = (int) _fCollisionRadius;
|
||||
_collisionHeight = (int) _fCollisionHeight;
|
||||
}
|
||||
|
||||
public int getBaseSTR()
|
||||
@@ -463,4 +470,14 @@ public class CreatureTemplate
|
||||
{
|
||||
return _collisionHeight;
|
||||
}
|
||||
|
||||
public float getFCollisionRadius()
|
||||
{
|
||||
return _fCollisionRadius;
|
||||
}
|
||||
|
||||
public float getFCollisionHeight()
|
||||
{
|
||||
return _fCollisionHeight;
|
||||
}
|
||||
}
|
||||
|
@@ -37,6 +37,8 @@ public class PlayerTemplate extends CreatureTemplate
|
||||
private final int _spawnY;
|
||||
private final int _spawnZ;
|
||||
private final List<ItemHolder> _items = new ArrayList<>();
|
||||
private final float _fCollisionRadiusFemale;
|
||||
private final float _fCollisionHeightFemale;
|
||||
private final float[] _hpTable;
|
||||
private final float[] _mpTable;
|
||||
private final float[] _cpTable;
|
||||
@@ -51,6 +53,8 @@ public class PlayerTemplate extends CreatureTemplate
|
||||
_spawnY = set.getInt("spawnY");
|
||||
_spawnZ = set.getInt("spawnZ");
|
||||
_classBaseLevel = set.getInt("baseLevel");
|
||||
_fCollisionRadiusFemale = set.getFloat("collision_radius_female");
|
||||
_fCollisionHeightFemale = set.getFloat("collision_height_female");
|
||||
|
||||
String[] item;
|
||||
for (String split : set.getString("items").split(";"))
|
||||
@@ -124,6 +128,16 @@ public class PlayerTemplate extends CreatureTemplate
|
||||
return _classBaseLevel;
|
||||
}
|
||||
|
||||
public float getFCollisionRadiusFemale()
|
||||
{
|
||||
return _fCollisionRadiusFemale;
|
||||
}
|
||||
|
||||
public float getFCollisionHeightFemale()
|
||||
{
|
||||
return _fCollisionHeightFemale;
|
||||
}
|
||||
|
||||
public float getBaseHpMax(int level)
|
||||
{
|
||||
if (level > _hpTable.length)
|
||||
|
@@ -106,9 +106,8 @@ public class CharInfo extends GameServerPacket
|
||||
writeD(_flyWalkSpd);
|
||||
writeF(_moveMultiplier);
|
||||
writeF(_player.getAttackSpeedMultiplier());
|
||||
writeF(_player.getBaseTemplate().getCollisionRadius());
|
||||
writeF(_player.getBaseTemplate().getCollisionHeight());
|
||||
|
||||
writeF(_player.getCollisionRadius());
|
||||
writeF(_player.getCollisionHeight());
|
||||
writeD(_player.getAppearance().getHairStyle());
|
||||
writeD(_player.getAppearance().getHairColor());
|
||||
writeD(_player.getAppearance().getFace());
|
||||
|
@@ -57,8 +57,8 @@ public class NpcInfo extends GameServerPacket
|
||||
private int _flyWalkSpd;
|
||||
private int _rhand;
|
||||
private int _lhand;
|
||||
private int _collisionHeight;
|
||||
private int _collisionRadius;
|
||||
private float _collisionHeight;
|
||||
private float _collisionRadius;
|
||||
protected int _clanCrest;
|
||||
protected int _allyCrest;
|
||||
protected int _allyId;
|
||||
@@ -86,8 +86,8 @@ public class NpcInfo extends GameServerPacket
|
||||
_rhand = cha.getRightHandItem();
|
||||
_lhand = cha.getLeftHandItem();
|
||||
_isSummoned = false;
|
||||
_collisionHeight = cha.getCollisionHeight();
|
||||
_collisionRadius = cha.getCollisionRadius();
|
||||
_collisionHeight = cha.getTemplate().getFCollisionHeight();
|
||||
_collisionRadius = cha.getTemplate().getFCollisionRadius();
|
||||
|
||||
if (Config.SHOW_NPC_CLAN_CREST && (cha.getCastle() != null) && (cha.getCastle().getOwnerId() != 0) && !cha.isMonster() && !cha.isArtefact() && !(cha instanceof ControlTowerInstance))
|
||||
{
|
||||
@@ -174,8 +174,8 @@ public class NpcInfo extends GameServerPacket
|
||||
_rhand = 0;
|
||||
_lhand = 0;
|
||||
_isSummoned = cha.isShowSummonAnimation();
|
||||
_collisionHeight = _creature.getTemplate().getCollisionHeight();
|
||||
_collisionRadius = _creature.getTemplate().getCollisionRadius();
|
||||
_collisionHeight = _creature.getTemplate().getFCollisionHeight();
|
||||
_collisionRadius = _creature.getTemplate().getFCollisionRadius();
|
||||
if (cha.getTemplate().isServerSideName() || (cha instanceof PetInstance) || (cha instanceof SummonInstance))
|
||||
{
|
||||
_name = _creature.getName();
|
||||
|
@@ -107,8 +107,8 @@ public class PetInfo extends GameServerPacket
|
||||
|
||||
writeF(1/* _cha.getProperMultiplier() */);
|
||||
writeF(1/* _cha.getAttackSpeedMultiplier() */);
|
||||
writeF(_summon.getTemplate().getCollisionRadius());
|
||||
writeF(_summon.getTemplate().getCollisionHeight());
|
||||
writeF(_summon.getTemplate().getFCollisionRadius());
|
||||
writeF(_summon.getTemplate().getFCollisionHeight());
|
||||
writeD(0); // right hand weapon
|
||||
writeD(0);
|
||||
writeD(0); // left hand weapon
|
||||
|
@@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Summon;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
|
||||
@@ -155,19 +154,8 @@ public class UserInfo extends GameServerPacket
|
||||
writeD(_flyWalkSpd);
|
||||
writeF(_player.getMovementSpeedMultiplier()); // run speed multiplier
|
||||
writeF(_player.getAttackSpeedMultiplier()); // attack speed multiplier
|
||||
|
||||
final Summon pet = _player.getPet();
|
||||
if ((_player.getMountType() != 0) && (pet != null))
|
||||
{
|
||||
writeF(pet.getTemplate().getCollisionRadius());
|
||||
writeF(pet.getTemplate().getCollisionHeight());
|
||||
}
|
||||
else
|
||||
{
|
||||
writeF(_player.getBaseTemplate().getCollisionRadius());
|
||||
writeF(_player.getBaseTemplate().getCollisionHeight());
|
||||
}
|
||||
|
||||
writeF(_player.getCollisionRadius());
|
||||
writeF(_player.getCollisionHeight());
|
||||
writeD(_player.getAppearance().getHairStyle());
|
||||
writeD(_player.getAppearance().getHairColor());
|
||||
writeD(_player.getAppearance().getFace());
|
||||
|
Reference in New Issue
Block a user