Proper collision methods, float values and usage.

This commit is contained in:
MobiusDevelopment
2020-08-29 19:11:31 +00:00
parent 89dbb63055
commit a5219616ff
220 changed files with 1201 additions and 1125 deletions

View File

@@ -95,8 +95,8 @@ public class NpcActionShift implements IActionShiftHandler
html.replace("%men%", String.valueOf(((Creature) target).getMEN()));
html.replace("%loc%", target.getX() + " " + target.getY() + " " + target.getZ());
html.replace("%heading%", String.valueOf(((Creature) target).getHeading()));
html.replace("%collision_radius%", String.valueOf(((Creature) target).getTemplate().getfCollisionRadius()));
html.replace("%collision_height%", String.valueOf(((Creature) target).getTemplate().getfCollisionHeight()));
html.replace("%collision_radius%", String.valueOf(((Creature) target).getTemplate().getFCollisionRadius()));
html.replace("%collision_height%", String.valueOf(((Creature) target).getTemplate().getFCollisionHeight()));
html.replace("%loc2d%", String.valueOf((int) player.calculateDistance2D(target)));
html.replace("%loc3d%", String.valueOf((int) player.calculateDistance3D(target)));

View File

@@ -45,7 +45,7 @@ public class Grow extends AbstractEffect
if (info.getEffected().isNpc())
{
final Npc npc = (Npc) info.getEffected();
npc.setCollisionRadius(npc.getTemplate().getfCollisionRadius());
npc.setCollisionRadius(npc.getTemplate().getFCollisionRadius());
}
}

View File

@@ -180,8 +180,8 @@ public class Npc extends Creature
_currentEnchant = Config.ENABLE_RANDOM_ENCHANT_EFFECT ? Rnd.get(4, 21) : getTemplate().getWeaponEnchant();
// initialize the "current" collisions
_currentCollisionHeight = getTemplate().getfCollisionHeight();
_currentCollisionRadius = getTemplate().getfCollisionRadius();
_currentCollisionHeight = getTemplate().getFCollisionHeight();
_currentCollisionRadius = getTemplate().getFCollisionRadius();
setFlying(template.isFlying());
}
@@ -1175,8 +1175,8 @@ public class Npc extends Creature
// we do need to reset the weapons back to the initial template weapon.
_currentLHandId = getTemplate().getLHandId();
_currentRHandId = getTemplate().getRHandId();
_currentCollisionHeight = getTemplate().getfCollisionHeight();
_currentCollisionRadius = getTemplate().getfCollisionRadius();
_currentCollisionHeight = getTemplate().getFCollisionHeight();
_currentCollisionRadius = getTemplate().getFCollisionRadius();
final Weapon weapon = (killer != null) ? killer.getActiveWeaponItem() : null;
_killingBlowWeaponId = (weapon != null) ? weapon.getId() : 0;

View File

@@ -13412,30 +13412,30 @@ public class PlayerInstance extends Playable
}
}
public double getCollisionRadius()
public float getCollisionRadius()
{
if (isMounted() && (_mountNpcId > 0))
{
return NpcData.getInstance().getTemplate(getMountNpcId()).getfCollisionRadius();
return NpcData.getInstance().getTemplate(getMountNpcId()).getFCollisionRadius();
}
if (isTransformed())
{
return _transformation.getCollisionRadius(this);
}
return _appearance.isFemale() ? getBaseTemplate().getFCollisionRadiusFemale() : getBaseTemplate().getfCollisionRadius();
return _appearance.isFemale() ? getBaseTemplate().getFCollisionRadiusFemale() : getBaseTemplate().getFCollisionRadius();
}
public double getCollisionHeight()
public float getCollisionHeight()
{
if (isMounted() && (_mountNpcId > 0))
{
return NpcData.getInstance().getTemplate(getMountNpcId()).getfCollisionHeight();
return NpcData.getInstance().getTemplate(getMountNpcId()).getFCollisionHeight();
}
if (isTransformed())
{
return _transformation.getCollisionHeight(this);
}
return _appearance.isFemale() ? getBaseTemplate().getFCollisionHeightFemale() : getBaseTemplate().getfCollisionHeight();
return _appearance.isFemale() ? getBaseTemplate().getFCollisionHeightFemale() : getBaseTemplate().getFCollisionHeight();
}
public int getClientX()

View File

@@ -78,8 +78,8 @@ public class CreatureTemplate extends ListenersContainer
/** For client info use {@link #_fCollisionHeight} */
private int _collisionHeight;
private double _fCollisionRadius;
private double _fCollisionHeight;
private float _fCollisionRadius;
private float _fCollisionHeight;
private final double[] _moveType = new double[MoveType.values().length];
/** The creature's race. */
@@ -135,8 +135,8 @@ public class CreatureTemplate extends ListenersContainer
_baseElementRes = set.getInt("baseElementRes", 0);
// Geometry
_fCollisionHeight = set.getDouble("collisionHeight", 0);
_fCollisionRadius = set.getDouble("collisionRadius", 0);
_fCollisionHeight = set.getFloat("collisionHeight", 0);
_fCollisionRadius = set.getFloat("collisionRadius", 0);
_collisionRadius = (int) _fCollisionRadius;
_collisionHeight = (int) _fCollisionHeight;
@@ -467,7 +467,7 @@ public class CreatureTemplate extends ListenersContainer
/**
* @return the fCollisionRadius
*/
public double getfCollisionRadius()
public float getFCollisionRadius()
{
return _fCollisionRadius;
}
@@ -475,7 +475,7 @@ public class CreatureTemplate extends ListenersContainer
/**
* @return the fCollisionHeight
*/
public double getfCollisionHeight()
public float getFCollisionHeight()
{
return _fCollisionHeight;
}

View File

@@ -42,8 +42,8 @@ public class PlayerTemplate extends CreatureTemplate
private final double[] _baseMpReg;
private final double[] _baseCpReg;
private final double _fCollisionHeightFemale;
private final double _fCollisionRadiusFemale;
private final float _fCollisionHeightFemale;
private final float _fCollisionRadiusFemale;
private final int _baseSafeFallHeight;
@@ -75,8 +75,8 @@ public class PlayerTemplate extends CreatureTemplate
_baseSlotDef.put(Inventory.PAPERDOLL_LFINGER, set.getInt("baseMDefrfinger", 0));
_baseSlotDef.put(Inventory.PAPERDOLL_NECK, set.getInt("baseMDefneck", 0));
_fCollisionRadiusFemale = set.getDouble("collisionFemaleradius");
_fCollisionHeightFemale = set.getDouble("collisionFemaleheight");
_fCollisionRadiusFemale = set.getFloat("collisionFemaleradius");
_fCollisionHeightFemale = set.getFloat("collisionFemaleheight");
_baseSafeFallHeight = set.getInt("baseSafeFall", 333);
_creationPoints = creationPoints;
}
@@ -206,7 +206,7 @@ public class PlayerTemplate extends CreatureTemplate
/**
* @return the template collision height for female characters.
*/
public double getFCollisionHeightFemale()
public float getFCollisionHeightFemale()
{
return _fCollisionHeightFemale;
}
@@ -214,7 +214,7 @@ public class PlayerTemplate extends CreatureTemplate
/**
* @return the template collision radius for female characters.
*/
public double getFCollisionRadiusFemale()
public float getFCollisionRadiusFemale()
{
return _fCollisionRadiusFemale;
}

View File

@@ -183,13 +183,13 @@ public class Transform implements IIdentifiable
return _type == TransformType.PURE_STAT;
}
public double getCollisionHeight(PlayerInstance player)
public float getCollisionHeight(PlayerInstance player)
{
final TransformTemplate template = getTemplate(player);
return template != null ? template.getCollisionHeight() : player.getCollisionHeight();
}
public double getCollisionRadius(PlayerInstance player)
public float getCollisionRadius(PlayerInstance player)
{
final TransformTemplate template = getTemplate(player);
return template != null ? template.getCollisionRadius() : player.getCollisionRadius();

View File

@@ -38,8 +38,8 @@ import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList;
*/
public class TransformTemplate
{
private final double _collisionRadius;
private final double _collisionHeight;
private final float _collisionRadius;
private final float _collisionHeight;
private final WeaponType _baseAttackType;
private final int _baseAttackRange;
private final double _baseRandomDamage;
@@ -55,8 +55,8 @@ public class TransformTemplate
public TransformTemplate(StatSet set)
{
_collisionRadius = set.getDouble("radius", 0);
_collisionHeight = set.getDouble("height", 0);
_collisionRadius = set.getFloat("radius", 0);
_collisionHeight = set.getFloat("height", 0);
_baseAttackType = set.getEnum("attackType", WeaponType.class, WeaponType.FIST);
_baseAttackRange = set.getInt("range", 40);
_baseRandomDamage = set.getDouble("randomDamage", 0);
@@ -148,12 +148,12 @@ public class TransformTemplate
return _baseStats.get(stat.ordinal());
}
public double getCollisionRadius()
public float getCollisionRadius()
{
return _collisionRadius;
}
public double getCollisionHeight()
public float getCollisionHeight()
{
return _collisionHeight;
}

View File

@@ -56,8 +56,8 @@ public abstract class AbstractNpcInfo implements IClientOutgoingPacket
protected int _lhand;
protected int _chest;
protected int _enchantEffect;
protected double _collisionHeight;
protected double _collisionRadius;
protected float _collisionHeight;
protected float _collisionRadius;
protected String _name = "";
protected String _title = "";
protected final boolean _gmSeeInvis;
@@ -112,8 +112,8 @@ public abstract class AbstractNpcInfo implements IClientOutgoingPacket
_rhand = cha.getRightHandItem(); // On every subclass
_lhand = cha.getLeftHandItem(); // On every subclass
_enchantEffect = cha.getEnchantEffect();
_collisionHeight = cha.getCollisionHeight(); // On every subclass
_collisionRadius = cha.getCollisionRadius(); // On every subclass
_collisionHeight = cha.getTemplate().getFCollisionHeight(); // On every subclass
_collisionRadius = cha.getTemplate().getFCollisionRadius(); // On every subclass
_isAttackable = cha.isAutoAttackable(attacker);
// npc crest of owning clan/ally of castle
@@ -269,8 +269,8 @@ public abstract class AbstractNpcInfo implements IClientOutgoingPacket
_isAttackable = cha.isAutoAttackable(attacker);
_rhand = 0;
_lhand = 0;
_collisionHeight = _trap.getTemplate().getfCollisionHeight();
_collisionRadius = _trap.getTemplate().getfCollisionRadius();
_collisionHeight = _trap.getTemplate().getFCollisionHeight();
_collisionRadius = _trap.getTemplate().getFCollisionRadius();
if (cha.getTemplate().isUsingServerSideName())
{
_name = cha.getName();
@@ -365,8 +365,8 @@ public abstract class AbstractNpcInfo implements IClientOutgoingPacket
_name = cha.getName();
_title = (cha.getOwner() != null) && cha.getOwner().isOnline() ? cha.getOwner().getName() : "";
_displayId = cha.getTemplate().getDisplayId();
_collisionHeight = cha.getTemplate().getfCollisionHeight();
_collisionRadius = cha.getTemplate().getfCollisionRadius();
_collisionHeight = cha.getTemplate().getFCollisionHeight();
_collisionRadius = cha.getTemplate().getFCollisionRadius();
}
@Override

View File

@@ -57,8 +57,8 @@ public class MonRaceInfo implements IClientOutgoingPacket
packet.writeD(12080); // end X
packet.writeD(181875 + (58 * (7 - i))); // end Y
packet.writeD(-3566); // end Z
packet.writeF(_monsters[i].getTemplate().getfCollisionHeight()); // coll. height
packet.writeF(_monsters[i].getTemplate().getfCollisionRadius()); // coll. radius
packet.writeF(_monsters[i].getTemplate().getFCollisionHeight()); // coll. height
packet.writeF(_monsters[i].getTemplate().getFCollisionRadius()); // coll. radius
packet.writeD(120); // ?? unknown
for (int j = 0; j < 20; j++)
{

View File

@@ -106,8 +106,8 @@ public class PetInfo implements IClientOutgoingPacket
packet.writeD(_flyWalkSpd);
packet.writeF(_moveMultiplier);
packet.writeF(_summon.getAttackSpeedMultiplier()); // attack speed multiplier
packet.writeF(_summon.getTemplate().getfCollisionRadius());
packet.writeF(_summon.getTemplate().getfCollisionHeight());
packet.writeF(_summon.getTemplate().getFCollisionRadius());
packet.writeF(_summon.getTemplate().getFCollisionHeight());
packet.writeD(_summon.getWeapon()); // right hand weapon
packet.writeD(_summon.getArmor()); // body armor
packet.writeD(0x00); // left hand weapon