Ninja Ambush & Donators on GM Map glitch
Normalized the Ninja Ambush skill, now applying a more sane DOT amount. Added "mobhp" and "resetskill" commands. Fixed a glitch with donators on the GM map, being able to interact with those NPCs as if they were GM's. Added scripts for the Dyle questline.
This commit is contained in:
@@ -5547,6 +5547,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
|
||||
ps.close();
|
||||
ret.cashshop = new CashShop(ret.accountid, ret.id, ret.getJobType());
|
||||
ret.autoban = new AutobanManager(ret);
|
||||
ret.marriageRing = null; //for now
|
||||
ps = con.prepareStatement("SELECT name, level FROM characters WHERE accountid = ? AND id != ? ORDER BY level DESC limit 1");
|
||||
ps.setInt(1, ret.accountid);
|
||||
ps.setInt(2, charid);
|
||||
|
||||
@@ -651,6 +651,15 @@ public class Commands {
|
||||
}
|
||||
break;
|
||||
|
||||
case "mobhp":
|
||||
for(MapleMonster monster : player.getMap().getMonsters()) {
|
||||
if(monster != null && monster.getHp() > 0) {
|
||||
player.yellowMessage(monster.getName() + " (" + monster.getId() + ") has " + monster.getHp() + " / " + monster.getMaxHp() + " HP.");
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case "ranks":
|
||||
PreparedStatement ps = null;
|
||||
ResultSet rs = null;
|
||||
@@ -1329,6 +1338,30 @@ public class Commands {
|
||||
player.yellowMessage("Skills maxed out.");
|
||||
break;
|
||||
|
||||
case "resetskill":
|
||||
for (MapleData skill_ : MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/" + "String.wz")).getData("Skill.img").getChildren()) {
|
||||
try {
|
||||
skill = SkillFactory.getSkill(Integer.parseInt(skill_.getName()));
|
||||
player.changeSkillLevel(skill, (byte) 0, skill.getMaxLevel(), -1);
|
||||
} catch (NumberFormatException nfe) {
|
||||
nfe.printStackTrace();
|
||||
break;
|
||||
} catch (NullPointerException npe) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(player.getJob().isA(MapleJob.ARAN1) || player.getJob().isA(MapleJob.LEGEND)) {
|
||||
skill = SkillFactory.getSkill(5001005);
|
||||
player.changeSkillLevel(skill, (byte) -1, -1, -1);
|
||||
} else {
|
||||
skill = SkillFactory.getSkill(21001001);
|
||||
player.changeSkillLevel(skill, (byte) -1, -1, -1);
|
||||
}
|
||||
|
||||
player.yellowMessage("Skills reseted.");
|
||||
break;
|
||||
|
||||
case "mesos":
|
||||
if (sub.length >= 2) {
|
||||
player.gainMeso(Integer.parseInt(sub[1]), true);
|
||||
@@ -2394,8 +2427,8 @@ public class Commands {
|
||||
case "cake":
|
||||
MapleMonster monster = MapleLifeFactory.getMonster(9400606);
|
||||
if(sub.length > 1) {
|
||||
int newHp = Integer.parseInt(sub[1]);
|
||||
if(newHp < 0) newHp = Integer.MAX_VALUE;
|
||||
double mobHp = Double.parseDouble(sub[1]);
|
||||
int newHp = (mobHp <= 0) ? Integer.MAX_VALUE : ((mobHp > Integer.MAX_VALUE) ? Integer.MAX_VALUE : (int) mobHp);
|
||||
|
||||
monster.getStats().setHp(newHp);
|
||||
monster.setStartingHp(newHp);
|
||||
|
||||
@@ -899,7 +899,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
} else if (status.getSkill().getId() == 4121004 || status.getSkill().getId() == 4221004) { // Ninja Ambush
|
||||
final Skill skill = SkillFactory.getSkill(status.getSkill().getId());
|
||||
final byte level = from.getSkillLevel(skill);
|
||||
final int damage = (int) ((from.getStr() + from.getLuk()) * (1.5 + (level * 0.05)) * skill.getEffect(level).getDamage());
|
||||
final int damage = (int) ((from.getStr() + from.getLuk()) * ((3.7 * skill.getEffect(level).getDamage()) / 100));
|
||||
|
||||
status.setValue(MonsterStatus.NINJA_AMBUSH, Integer.valueOf(damage));
|
||||
animationTime = broadcastStatusEffect(status);
|
||||
@@ -1164,7 +1164,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
}
|
||||
if (damage > 0) {
|
||||
damage(chr, damage, true);
|
||||
if (type == 1 || type == 2) {
|
||||
if (type == 1) { // ninja ambush (type 2) is already displaying DOT
|
||||
map.broadcastMessage(MaplePacketCreator.damageMonster(getObjectId(), damage), getPosition());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user