Angle of attack rework.

Contributed by kamikadzz.
This commit is contained in:
MobiusDevelopment
2022-10-19 21:14:04 +00:00
parent d8f7b7be7a
commit fc4ae26cc6
108 changed files with 459 additions and 84 deletions

View File

@@ -413,7 +413,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -84,12 +84,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -413,7 +413,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -84,12 +84,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -413,7 +413,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -84,12 +84,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -413,7 +413,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -84,12 +84,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -413,7 +413,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -84,12 +84,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -413,7 +413,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -84,12 +84,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -413,7 +413,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -84,12 +84,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -413,7 +413,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -86,12 +86,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -423,7 +423,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -86,12 +86,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -423,7 +423,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -86,12 +86,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -423,7 +423,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -86,12 +86,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -546,7 +546,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -95,6 +95,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _spiritShotChance; private int _spiritShotChance;
private int _minSkillChance; private int _minSkillChance;
private int _maxSkillChance; private int _maxSkillChance;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -177,6 +178,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_spiritShotChance = set.getInt("spiritShotChance", 0); _spiritShotChance = set.getInt("spiritShotChance", 0);
_minSkillChance = set.getInt("minSkillChance", 7); _minSkillChance = set.getInt("minSkillChance", 7);
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getDouble("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getDouble("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getDouble("collisionHeightGrown", 0); _collisionHeightGrown = set.getDouble("collisionHeightGrown", 0);
if (Config.ENABLE_NPC_STAT_MULTIPLIERS) // Custom NPC Stat Multipliers if (Config.ENABLE_NPC_STAT_MULTIPLIERS) // Custom NPC Stat Multipliers
@@ -477,6 +479,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _maxSkillChance; return _maxSkillChance;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -45,6 +45,7 @@ public class Weapon extends ItemTemplate
private int _spiritShotCount; private int _spiritShotCount;
private int _mpConsume; private int _mpConsume;
private int _baseAttackRange; private int _baseAttackRange;
private int _baseAttackRadius;
private int _baseAttackAngle; private int _baseAttackAngle;
/** /**
* Skill that activates when item is enchanted +4 (for duals). * Skill that activates when item is enchanted +4 (for duals).
@@ -90,13 +91,15 @@ public class Weapon extends ItemTemplate
_mpConsume = set.getInt("mp_consume", 0); _mpConsume = set.getInt("mp_consume", 0);
_baseAttackRange = set.getInt("attack_range", 40); _baseAttackRange = set.getInt("attack_range", 40);
final String[] damageRange = set.getString("damage_range", "").split(";"); // 0?;0?;fan sector;base attack angle final String[] damageRange = set.getString("damage_range", "").split(";"); // 0?;0?;fan sector;base attack angle
if ((damageRange.length > 1) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackAngle = 240; // 360 - 120 _baseAttackRadius = 40;
_baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");
@@ -279,6 +282,11 @@ public class Weapon extends ItemTemplate
return _baseAttackRange; return _baseAttackRange;
} }
public int getBaseAttackRadius()
{
return _baseAttackRadius;
}
public int getBaseAttackAngle() public int getBaseAttackAngle()
{ {
return _baseAttackAngle; return _baseAttackAngle;

View File

@@ -564,7 +564,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -95,6 +95,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _spiritShotChance; private int _spiritShotChance;
private int _minSkillChance; private int _minSkillChance;
private int _maxSkillChance; private int _maxSkillChance;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -177,6 +178,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_spiritShotChance = set.getInt("spiritShotChance", 0); _spiritShotChance = set.getInt("spiritShotChance", 0);
_minSkillChance = set.getInt("minSkillChance", 7); _minSkillChance = set.getInt("minSkillChance", 7);
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getDouble("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getDouble("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getDouble("collisionHeightGrown", 0); _collisionHeightGrown = set.getDouble("collisionHeightGrown", 0);
if (Config.ENABLE_NPC_STAT_MULTIPLIERS) // Custom NPC Stat Multipliers if (Config.ENABLE_NPC_STAT_MULTIPLIERS) // Custom NPC Stat Multipliers
@@ -477,6 +479,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _maxSkillChance; return _maxSkillChance;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -45,6 +45,7 @@ public class Weapon extends ItemTemplate
private int _spiritShotCount; private int _spiritShotCount;
private int _mpConsume; private int _mpConsume;
private int _baseAttackRange; private int _baseAttackRange;
private int _baseAttackRadius;
private int _baseAttackAngle; private int _baseAttackAngle;
/** /**
* Skill that activates when item is enchanted +4 (for duals). * Skill that activates when item is enchanted +4 (for duals).
@@ -91,13 +92,15 @@ public class Weapon extends ItemTemplate
_mpConsume = set.getInt("mp_consume", 0); _mpConsume = set.getInt("mp_consume", 0);
_baseAttackRange = set.getInt("attack_range", 40); _baseAttackRange = set.getInt("attack_range", 40);
final String[] damageRange = set.getString("damage_range", "").split(";"); // 0?;0?;fan sector;base attack angle final String[] damageRange = set.getString("damage_range", "").split(";"); // 0?;0?;fan sector;base attack angle
if ((damageRange.length > 1) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackAngle = 240; // 360 - 120 _baseAttackRadius = 40;
_baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");
@@ -281,6 +284,11 @@ public class Weapon extends ItemTemplate
return _baseAttackRange; return _baseAttackRange;
} }
public int getBaseAttackRadius()
{
return _baseAttackRadius;
}
public int getBaseAttackAngle() public int getBaseAttackAngle()
{ {
return _baseAttackAngle; return _baseAttackAngle;

View File

@@ -564,7 +564,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -95,6 +95,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _spiritShotChance; private int _spiritShotChance;
private int _minSkillChance; private int _minSkillChance;
private int _maxSkillChance; private int _maxSkillChance;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -177,6 +178,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_spiritShotChance = set.getInt("spiritShotChance", 0); _spiritShotChance = set.getInt("spiritShotChance", 0);
_minSkillChance = set.getInt("minSkillChance", 7); _minSkillChance = set.getInt("minSkillChance", 7);
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getDouble("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getDouble("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getDouble("collisionHeightGrown", 0); _collisionHeightGrown = set.getDouble("collisionHeightGrown", 0);
if (Config.ENABLE_NPC_STAT_MULTIPLIERS) // Custom NPC Stat Multipliers if (Config.ENABLE_NPC_STAT_MULTIPLIERS) // Custom NPC Stat Multipliers
@@ -477,6 +479,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _maxSkillChance; return _maxSkillChance;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -45,6 +45,7 @@ public class Weapon extends ItemTemplate
private int _spiritShotCount; private int _spiritShotCount;
private int _mpConsume; private int _mpConsume;
private int _baseAttackRange; private int _baseAttackRange;
private int _baseAttackRadius;
private int _baseAttackAngle; private int _baseAttackAngle;
/** /**
* Skill that activates when item is enchanted +4 (for duals). * Skill that activates when item is enchanted +4 (for duals).
@@ -91,13 +92,15 @@ public class Weapon extends ItemTemplate
_mpConsume = set.getInt("mp_consume", 0); _mpConsume = set.getInt("mp_consume", 0);
_baseAttackRange = set.getInt("attack_range", 40); _baseAttackRange = set.getInt("attack_range", 40);
final String[] damageRange = set.getString("damage_range", "").split(";"); // 0?;0?;fan sector;base attack angle final String[] damageRange = set.getString("damage_range", "").split(";"); // 0?;0?;fan sector;base attack angle
if ((damageRange.length > 1) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackAngle = 240; // 360 - 120 _baseAttackRadius = 40;
_baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");
@@ -281,6 +284,11 @@ public class Weapon extends ItemTemplate
return _baseAttackRange; return _baseAttackRange;
} }
public int getBaseAttackRadius()
{
return _baseAttackRadius;
}
public int getBaseAttackAngle() public int getBaseAttackAngle()
{ {
return _baseAttackAngle; return _baseAttackAngle;

View File

@@ -403,7 +403,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -82,12 +82,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -403,7 +403,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -105,6 +105,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -195,6 +196,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -519,6 +521,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -82,12 +82,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -403,7 +403,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -105,6 +105,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -195,6 +196,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -519,6 +521,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -82,12 +82,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -403,7 +403,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -105,6 +105,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -195,6 +196,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -519,6 +521,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -82,12 +82,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -403,7 +403,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -105,6 +105,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -195,6 +196,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -519,6 +521,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -82,12 +82,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -403,7 +403,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -106,6 +106,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -200,6 +201,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -534,6 +536,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -82,12 +82,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -403,7 +403,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -106,6 +106,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -200,6 +201,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -534,6 +536,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -82,12 +82,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -403,7 +403,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -106,6 +106,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -200,6 +201,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -534,6 +536,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -82,12 +82,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -403,7 +403,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -106,6 +106,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -200,6 +201,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -534,6 +536,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -82,12 +82,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -403,7 +403,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -104,6 +104,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -194,6 +195,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -518,6 +520,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -84,12 +84,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

View File

@@ -413,7 +413,7 @@ public class CreatureStat
public int getPhysicalAttackAngle() public int getPhysicalAttackAngle()
{ {
return 240; // 360 - 120 return 0;
} }
/** /**

View File

@@ -36,4 +36,10 @@ public class NpcStat extends CreatureStat
{ {
return (Npc) super.getActiveChar(); return (Npc) super.getActiveChar();
} }
@Override
public int getPhysicalAttackAngle()
{
return getActiveChar().getTemplate().getBaseAttackAngle();
}
} }

View File

@@ -105,6 +105,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
private int _maxSkillChance; private int _maxSkillChance;
private double _hitTimeFactor; private double _hitTimeFactor;
private double _hitTimeFactorSkill; private double _hitTimeFactorSkill;
private int _baseAttackAngle;
private Map<Integer, Skill> _skills; private Map<Integer, Skill> _skills;
private Map<AISkillScope, List<Skill>> _aiSkillLists; private Map<AISkillScope, List<Skill>> _aiSkillLists;
private Set<Integer> _clans; private Set<Integer> _clans;
@@ -199,6 +200,7 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
_maxSkillChance = set.getInt("maxSkillChance", 15); _maxSkillChance = set.getInt("maxSkillChance", 15);
_hitTimeFactor = set.getInt("hitTime", 100) / 100d; _hitTimeFactor = set.getInt("hitTime", 100) / 100d;
_hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d; _hitTimeFactorSkill = set.getInt("hitTimeSkill", 100) / 100d;
_baseAttackAngle = set.getInt("width", 120);
_collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0); _collisionRadiusGrown = set.getFloat("collisionRadiusGrown", 0);
_collisionHeightGrown = set.getFloat("collisionHeightGrown", 0); _collisionHeightGrown = set.getFloat("collisionHeightGrown", 0);
_mpRewardValue = set.getInt("mpRewardValue", 0); _mpRewardValue = set.getInt("mpRewardValue", 0);
@@ -533,6 +535,11 @@ public class NpcTemplate extends CreatureTemplate implements IIdentifiable
return _hitTimeFactorSkill; return _hitTimeFactorSkill;
} }
public int getBaseAttackAngle()
{
return _baseAttackAngle;
}
@Override @Override
public Map<Integer, Skill> getSkills() public Map<Integer, Skill> getSkills()
{ {

View File

@@ -82,12 +82,12 @@ public class Weapon extends ItemTemplate
if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3])) if ((damageRange.length > 1) && Util.isDigit(damageRange[2]) && Util.isDigit(damageRange[3]))
{ {
_baseAttackRadius = Integer.parseInt(damageRange[2]); _baseAttackRadius = Integer.parseInt(damageRange[2]);
_baseAttackAngle = 360 - Integer.parseInt(damageRange[3]); _baseAttackAngle = Integer.parseInt(damageRange[3]);
} }
else else
{ {
_baseAttackRadius = 40; _baseAttackRadius = 40;
_baseAttackAngle = 240; // 360 - 120 _baseAttackAngle = 0;
} }
final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(","); final String[] reducedSoulshots = set.getString("reduced_soulshot", "").split(",");

Some files were not shown because too many files have changed in this diff Show More