Rename and clean up MapleDataTool
This commit is contained in:
@@ -24,7 +24,7 @@ package server.life;
|
||||
import provider.Data;
|
||||
import provider.DataProvider;
|
||||
import provider.DataProviderFactory;
|
||||
import provider.MapleDataTool;
|
||||
import provider.DataTool;
|
||||
import provider.wz.DataType;
|
||||
import provider.wz.WZFiles;
|
||||
import tools.Pair;
|
||||
@@ -100,7 +100,7 @@ public class MapleLifeFactory {
|
||||
List<MobAttackInfoHolder> attackInfos = new LinkedList<>();
|
||||
MapleMonsterStats stats = new MapleMonsterStats();
|
||||
|
||||
int linkMid = MapleDataTool.getIntConvert("link", monsterInfoData, 0);
|
||||
int linkMid = DataTool.getIntConvert("link", monsterInfoData, 0);
|
||||
if (linkMid != 0) {
|
||||
Pair<MapleMonsterStats, List<MobAttackInfoHolder>> linkStats = getMonsterStats(linkMid);
|
||||
if (linkStats == null) {
|
||||
@@ -111,63 +111,63 @@ public class MapleLifeFactory {
|
||||
attackInfos.addAll(linkStats.getRight());
|
||||
}
|
||||
|
||||
stats.setHp(MapleDataTool.getIntConvert("maxHP", monsterInfoData));
|
||||
stats.setFriendly(MapleDataTool.getIntConvert("damagedByMob", monsterInfoData, stats.isFriendly() ? 1 : 0) == 1);
|
||||
stats.setPADamage(MapleDataTool.getIntConvert("PADamage", monsterInfoData));
|
||||
stats.setPDDamage(MapleDataTool.getIntConvert("PDDamage", monsterInfoData));
|
||||
stats.setMADamage(MapleDataTool.getIntConvert("MADamage", monsterInfoData));
|
||||
stats.setMDDamage(MapleDataTool.getIntConvert("MDDamage", monsterInfoData));
|
||||
stats.setMp(MapleDataTool.getIntConvert("maxMP", monsterInfoData, stats.getMp()));
|
||||
stats.setExp(MapleDataTool.getIntConvert("exp", monsterInfoData, stats.getExp()));
|
||||
stats.setLevel(MapleDataTool.getIntConvert("level", monsterInfoData));
|
||||
stats.setRemoveAfter(MapleDataTool.getIntConvert("removeAfter", monsterInfoData, stats.removeAfter()));
|
||||
stats.setBoss(MapleDataTool.getIntConvert("boss", monsterInfoData, stats.isBoss() ? 1 : 0) > 0);
|
||||
stats.setExplosiveReward(MapleDataTool.getIntConvert("explosiveReward", monsterInfoData, stats.isExplosiveReward() ? 1 : 0) > 0);
|
||||
stats.setFfaLoot(MapleDataTool.getIntConvert("publicReward", monsterInfoData, stats.isFfaLoot() ? 1 : 0) > 0);
|
||||
stats.setUndead(MapleDataTool.getIntConvert("undead", monsterInfoData, stats.isUndead() ? 1 : 0) > 0);
|
||||
stats.setName(MapleDataTool.getString(mid + "/name", mobStringData, "MISSINGNO"));
|
||||
stats.setBuffToGive(MapleDataTool.getIntConvert("buff", monsterInfoData, stats.getBuffToGive()));
|
||||
stats.setCP(MapleDataTool.getIntConvert("getCP", monsterInfoData, stats.getCP()));
|
||||
stats.setRemoveOnMiss(MapleDataTool.getIntConvert("removeOnMiss", monsterInfoData, stats.removeOnMiss() ? 1 : 0) > 0);
|
||||
stats.setHp(DataTool.getIntConvert("maxHP", monsterInfoData));
|
||||
stats.setFriendly(DataTool.getIntConvert("damagedByMob", monsterInfoData, stats.isFriendly() ? 1 : 0) == 1);
|
||||
stats.setPADamage(DataTool.getIntConvert("PADamage", monsterInfoData));
|
||||
stats.setPDDamage(DataTool.getIntConvert("PDDamage", monsterInfoData));
|
||||
stats.setMADamage(DataTool.getIntConvert("MADamage", monsterInfoData));
|
||||
stats.setMDDamage(DataTool.getIntConvert("MDDamage", monsterInfoData));
|
||||
stats.setMp(DataTool.getIntConvert("maxMP", monsterInfoData, stats.getMp()));
|
||||
stats.setExp(DataTool.getIntConvert("exp", monsterInfoData, stats.getExp()));
|
||||
stats.setLevel(DataTool.getIntConvert("level", monsterInfoData));
|
||||
stats.setRemoveAfter(DataTool.getIntConvert("removeAfter", monsterInfoData, stats.removeAfter()));
|
||||
stats.setBoss(DataTool.getIntConvert("boss", monsterInfoData, stats.isBoss() ? 1 : 0) > 0);
|
||||
stats.setExplosiveReward(DataTool.getIntConvert("explosiveReward", monsterInfoData, stats.isExplosiveReward() ? 1 : 0) > 0);
|
||||
stats.setFfaLoot(DataTool.getIntConvert("publicReward", monsterInfoData, stats.isFfaLoot() ? 1 : 0) > 0);
|
||||
stats.setUndead(DataTool.getIntConvert("undead", monsterInfoData, stats.isUndead() ? 1 : 0) > 0);
|
||||
stats.setName(DataTool.getString(mid + "/name", mobStringData, "MISSINGNO"));
|
||||
stats.setBuffToGive(DataTool.getIntConvert("buff", monsterInfoData, stats.getBuffToGive()));
|
||||
stats.setCP(DataTool.getIntConvert("getCP", monsterInfoData, stats.getCP()));
|
||||
stats.setRemoveOnMiss(DataTool.getIntConvert("removeOnMiss", monsterInfoData, stats.removeOnMiss() ? 1 : 0) > 0);
|
||||
|
||||
Data special = monsterInfoData.getChildByPath("coolDamage");
|
||||
if (special != null) {
|
||||
int coolDmg = MapleDataTool.getIntConvert("coolDamage", monsterInfoData);
|
||||
int coolProb = MapleDataTool.getIntConvert("coolDamageProb", monsterInfoData, 0);
|
||||
int coolDmg = DataTool.getIntConvert("coolDamage", monsterInfoData);
|
||||
int coolProb = DataTool.getIntConvert("coolDamageProb", monsterInfoData, 0);
|
||||
stats.setCool(new Pair<>(coolDmg, coolProb));
|
||||
}
|
||||
special = monsterInfoData.getChildByPath("loseItem");
|
||||
if (special != null) {
|
||||
for (Data liData : special.getChildren()) {
|
||||
stats.addLoseItem(new loseItem(MapleDataTool.getInt(liData.getChildByPath("id")), (byte) MapleDataTool.getInt(liData.getChildByPath("prop")), (byte) MapleDataTool.getInt(liData.getChildByPath("x"))));
|
||||
stats.addLoseItem(new loseItem(DataTool.getInt(liData.getChildByPath("id")), (byte) DataTool.getInt(liData.getChildByPath("prop")), (byte) DataTool.getInt(liData.getChildByPath("x"))));
|
||||
}
|
||||
}
|
||||
special = monsterInfoData.getChildByPath("selfDestruction");
|
||||
if (special != null) {
|
||||
stats.setSelfDestruction(new selfDestruction((byte) MapleDataTool.getInt(special.getChildByPath("action")), MapleDataTool.getIntConvert("removeAfter", special, -1), MapleDataTool.getIntConvert("hp", special, -1)));
|
||||
stats.setSelfDestruction(new selfDestruction((byte) DataTool.getInt(special.getChildByPath("action")), DataTool.getIntConvert("removeAfter", special, -1), DataTool.getIntConvert("hp", special, -1)));
|
||||
}
|
||||
Data firstAttackData = monsterInfoData.getChildByPath("firstAttack");
|
||||
int firstAttack = 0;
|
||||
if (firstAttackData != null) {
|
||||
if (firstAttackData.getType() == DataType.FLOAT) {
|
||||
firstAttack = Math.round(MapleDataTool.getFloat(firstAttackData));
|
||||
firstAttack = Math.round(DataTool.getFloat(firstAttackData));
|
||||
} else {
|
||||
firstAttack = MapleDataTool.getInt(firstAttackData);
|
||||
firstAttack = DataTool.getInt(firstAttackData);
|
||||
}
|
||||
}
|
||||
stats.setFirstAttack(firstAttack > 0);
|
||||
stats.setDropPeriod(MapleDataTool.getIntConvert("dropItemPeriod", monsterInfoData, stats.getDropPeriod() / 10000) * 10000);
|
||||
stats.setDropPeriod(DataTool.getIntConvert("dropItemPeriod", monsterInfoData, stats.getDropPeriod() / 10000) * 10000);
|
||||
|
||||
// thanks yuxaij, Riizade, Z1peR, Anesthetic for noticing some bosses crashing players due to missing requirements
|
||||
boolean hpbarBoss = stats.isBoss() && hpbarBosses.contains(mid);
|
||||
stats.setTagColor(hpbarBoss ? MapleDataTool.getIntConvert("hpTagColor", monsterInfoData, 0) : 0);
|
||||
stats.setTagBgColor(hpbarBoss ? MapleDataTool.getIntConvert("hpTagBgcolor", monsterInfoData, 0) : 0);
|
||||
stats.setTagColor(hpbarBoss ? DataTool.getIntConvert("hpTagColor", monsterInfoData, 0) : 0);
|
||||
stats.setTagBgColor(hpbarBoss ? DataTool.getIntConvert("hpTagBgcolor", monsterInfoData, 0) : 0);
|
||||
|
||||
for (Data idata : monsterData) {
|
||||
if (!idata.getName().equals("info")) {
|
||||
int delay = 0;
|
||||
for (Data pic : idata.getChildren()) {
|
||||
delay += MapleDataTool.getIntConvert("delay", pic, 0);
|
||||
delay += DataTool.getIntConvert("delay", pic, 0);
|
||||
}
|
||||
stats.setAnimationTime(idata.getName(), delay);
|
||||
}
|
||||
@@ -176,11 +176,11 @@ public class MapleLifeFactory {
|
||||
if (reviveInfo != null) {
|
||||
List<Integer> revives = new LinkedList<>();
|
||||
for (Data data_ : reviveInfo) {
|
||||
revives.add(MapleDataTool.getInt(data_));
|
||||
revives.add(DataTool.getInt(data_));
|
||||
}
|
||||
stats.setRevives(revives);
|
||||
}
|
||||
decodeElementalString(stats, MapleDataTool.getString("elemAttr", monsterInfoData, ""));
|
||||
decodeElementalString(stats, DataTool.getString("elemAttr", monsterInfoData, ""));
|
||||
|
||||
MapleMonsterInformationProvider mi = MapleMonsterInformationProvider.getInstance();
|
||||
Data monsterSkillInfoData = monsterInfoData.getChildByPath("skill");
|
||||
@@ -188,15 +188,15 @@ public class MapleLifeFactory {
|
||||
int i = 0;
|
||||
List<Pair<Integer, Integer>> skills = new ArrayList<>();
|
||||
while (monsterSkillInfoData.getChildByPath(Integer.toString(i)) != null) {
|
||||
int skillId = MapleDataTool.getInt(i + "/skill", monsterSkillInfoData, 0);
|
||||
int skillLv = MapleDataTool.getInt(i + "/level", monsterSkillInfoData, 0);
|
||||
int skillId = DataTool.getInt(i + "/skill", monsterSkillInfoData, 0);
|
||||
int skillLv = DataTool.getInt(i + "/level", monsterSkillInfoData, 0);
|
||||
skills.add(new Pair<>(skillId, skillLv));
|
||||
|
||||
Data monsterSkillData = monsterData.getChildByPath("skill" + (i + 1));
|
||||
if (monsterSkillData != null) {
|
||||
int animationTime = 0;
|
||||
for (Data effectEntry : monsterSkillData.getChildren()) {
|
||||
animationTime += MapleDataTool.getIntConvert("delay", effectEntry, 0);
|
||||
animationTime += DataTool.getIntConvert("delay", effectEntry, 0);
|
||||
}
|
||||
|
||||
MobSkill skill = MobSkillFactory.getMobSkill(skillId, skillLv);
|
||||
@@ -213,23 +213,23 @@ public class MapleLifeFactory {
|
||||
while ((monsterAttackData = monsterData.getChildByPath("attack" + (i + 1))) != null) {
|
||||
int animationTime = 0;
|
||||
for (Data effectEntry : monsterAttackData.getChildren()) {
|
||||
animationTime += MapleDataTool.getIntConvert("delay", effectEntry, 0);
|
||||
animationTime += DataTool.getIntConvert("delay", effectEntry, 0);
|
||||
}
|
||||
|
||||
int mpCon = MapleDataTool.getIntConvert("info/conMP", monsterAttackData, 0);
|
||||
int coolTime = MapleDataTool.getIntConvert("info/attackAfter", monsterAttackData, 0);
|
||||
int mpCon = DataTool.getIntConvert("info/conMP", monsterAttackData, 0);
|
||||
int coolTime = DataTool.getIntConvert("info/attackAfter", monsterAttackData, 0);
|
||||
attackInfos.add(new MobAttackInfoHolder(i, mpCon, coolTime, animationTime));
|
||||
i++;
|
||||
}
|
||||
|
||||
Data banishData = monsterInfoData.getChildByPath("ban");
|
||||
if (banishData != null) {
|
||||
stats.setBanishInfo(new BanishInfo(MapleDataTool.getString("banMsg", banishData), MapleDataTool.getInt("banMap/0/field", banishData, -1), MapleDataTool.getString("banMap/0/portal", banishData, "sp")));
|
||||
stats.setBanishInfo(new BanishInfo(DataTool.getString("banMsg", banishData), DataTool.getInt("banMap/0/field", banishData, -1), DataTool.getString("banMap/0/portal", banishData, "sp")));
|
||||
}
|
||||
|
||||
int noFlip = MapleDataTool.getInt("noFlip", monsterInfoData, 0);
|
||||
int noFlip = DataTool.getInt("noFlip", monsterInfoData, 0);
|
||||
if (noFlip > 0) {
|
||||
Point origin = MapleDataTool.getPoint("stand/0/origin", monsterData, null);
|
||||
Point origin = DataTool.getPoint("stand/0/origin", monsterData, null);
|
||||
if (origin != null) {
|
||||
stats.setFixedStance(origin.getX() < 1 ? 5 : 4); // fixed left/right
|
||||
}
|
||||
@@ -267,7 +267,7 @@ public class MapleLifeFactory {
|
||||
return -1;
|
||||
}
|
||||
Data monsterInfoData = monsterData.getChildByPath("info");
|
||||
return MapleDataTool.getIntConvert("level", monsterInfoData);
|
||||
return DataTool.getIntConvert("level", monsterInfoData);
|
||||
} else {
|
||||
return stats.getLevel();
|
||||
}
|
||||
@@ -286,11 +286,11 @@ public class MapleLifeFactory {
|
||||
}
|
||||
|
||||
public static MapleNPC getNPC(int nid) {
|
||||
return new MapleNPC(nid, new MapleNPCStats(MapleDataTool.getString(nid + "/name", npcStringData, "MISSINGNO")));
|
||||
return new MapleNPC(nid, new MapleNPCStats(DataTool.getString(nid + "/name", npcStringData, "MISSINGNO")));
|
||||
}
|
||||
|
||||
public static String getNPCDefaultTalk(int nid) {
|
||||
return MapleDataTool.getString(nid + "/d0", npcStringData, "(...)");
|
||||
return DataTool.getString(nid + "/d0", npcStringData, "(...)");
|
||||
}
|
||||
|
||||
public static class BanishInfo {
|
||||
|
||||
@@ -25,7 +25,7 @@ import constants.inventory.ItemConstants;
|
||||
import provider.Data;
|
||||
import provider.DataProvider;
|
||||
import provider.DataProviderFactory;
|
||||
import provider.MapleDataTool;
|
||||
import provider.DataTool;
|
||||
import provider.wz.WZFiles;
|
||||
import server.MapleItemInformationProvider;
|
||||
import tools.DatabaseConnection;
|
||||
@@ -233,7 +233,7 @@ public class MapleMonsterInformationProvider {
|
||||
List<Pair<Integer, String>> mobPairList = new LinkedList<>();
|
||||
for (Data mobIdData : data.getChildren()) {
|
||||
int mobIdFromData = Integer.parseInt(mobIdData.getName());
|
||||
String mobNameFromData = MapleDataTool.getString(mobIdData.getChildByPath("name"), "NO-NAME");
|
||||
String mobNameFromData = DataTool.getString(mobIdData.getChildByPath("name"), "NO-NAME");
|
||||
mobPairList.add(new Pair<>(mobIdFromData, mobNameFromData));
|
||||
}
|
||||
for (Pair<Integer, String> mobPair : mobPairList) {
|
||||
@@ -270,7 +270,7 @@ public class MapleMonsterInformationProvider {
|
||||
DataProvider dataProvider = DataProviderFactory.getDataProvider(WZFiles.STRING);
|
||||
Data mobData = dataProvider.getData("Mob.img");
|
||||
|
||||
mobName = MapleDataTool.getString(mobData.getChildByPath(id + "/name"), "");
|
||||
mobName = DataTool.getString(mobData.getChildByPath(id + "/name"), "");
|
||||
mobNameCache.put(id, mobName);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ import net.server.Server;
|
||||
import provider.Data;
|
||||
import provider.DataProvider;
|
||||
import provider.DataProviderFactory;
|
||||
import provider.MapleDataTool;
|
||||
import provider.DataTool;
|
||||
import provider.wz.WZFiles;
|
||||
|
||||
import java.util.HashMap;
|
||||
@@ -76,23 +76,23 @@ public class MaplePlayerNPCFactory {
|
||||
for (Data data : dnpcData.getChildren()) {
|
||||
int scriptId = Integer.parseInt(data.getName());
|
||||
|
||||
String name = MapleDataTool.getString("name", data, "");
|
||||
int face = MapleDataTool.getIntConvert("face", data, 20000);
|
||||
int hair = MapleDataTool.getIntConvert("hair", data, 30000);
|
||||
int gender = MapleDataTool.getIntConvert("gender", data, 0);
|
||||
byte skin = (byte) MapleDataTool.getIntConvert("skin", data, 0);
|
||||
int dir = MapleDataTool.getIntConvert("dir", data, 0);
|
||||
int mapid = MapleDataTool.getIntConvert("map", data, 0);
|
||||
int FH = MapleDataTool.getIntConvert("fh", data, 0);
|
||||
int RX0 = MapleDataTool.getIntConvert("rx0", data, 0);
|
||||
int RX1 = MapleDataTool.getIntConvert("rx1", data, 0);
|
||||
int CX = MapleDataTool.getIntConvert("cx", data, 0);
|
||||
int CY = MapleDataTool.getIntConvert("cy", data, 0);
|
||||
String name = DataTool.getString("name", data, "");
|
||||
int face = DataTool.getIntConvert("face", data, 20000);
|
||||
int hair = DataTool.getIntConvert("hair", data, 30000);
|
||||
int gender = DataTool.getIntConvert("gender", data, 0);
|
||||
byte skin = (byte) DataTool.getIntConvert("skin", data, 0);
|
||||
int dir = DataTool.getIntConvert("dir", data, 0);
|
||||
int mapid = DataTool.getIntConvert("map", data, 0);
|
||||
int FH = DataTool.getIntConvert("fh", data, 0);
|
||||
int RX0 = DataTool.getIntConvert("rx0", data, 0);
|
||||
int RX1 = DataTool.getIntConvert("rx1", data, 0);
|
||||
int CX = DataTool.getIntConvert("cx", data, 0);
|
||||
int CY = DataTool.getIntConvert("cy", data, 0);
|
||||
|
||||
Map<Short, Integer> equips = new HashMap<>();
|
||||
for (Data edata : data.getChildByPath("equips").getChildren()) {
|
||||
short equippos = (short) MapleDataTool.getIntConvert("pos", edata);
|
||||
int equipid = MapleDataTool.getIntConvert("itemid", edata);
|
||||
short equippos = (short) DataTool.getIntConvert("pos", edata);
|
||||
int equipid = DataTool.getIntConvert("itemid", edata);
|
||||
|
||||
equips.put(equippos, equipid);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ package server.life;
|
||||
import provider.Data;
|
||||
import provider.DataProvider;
|
||||
import provider.DataProviderFactory;
|
||||
import provider.MapleDataTool;
|
||||
import provider.DataTool;
|
||||
import provider.wz.WZFiles;
|
||||
import tools.StringUtil;
|
||||
|
||||
@@ -50,7 +50,7 @@ public class MobAttackInfoFactory {
|
||||
Data mobData = dataSource.getData(StringUtil.getLeftPaddedStr(mob.getId() + ".img", '0', 11));
|
||||
if (mobData != null) {
|
||||
// MapleData infoData = mobData.getChildByPath("info");
|
||||
String linkedmob = MapleDataTool.getString("link", mobData, "");
|
||||
String linkedmob = DataTool.getString("link", mobData, "");
|
||||
if (!linkedmob.equals("")) {
|
||||
mobData = dataSource.getData(StringUtil.getLeftPaddedStr(linkedmob + ".img", '0', 11));
|
||||
}
|
||||
@@ -61,10 +61,10 @@ public class MobAttackInfoFactory {
|
||||
}
|
||||
|
||||
Data deadlyAttack = attackData.getChildByPath("deadlyAttack");
|
||||
int mpBurn = MapleDataTool.getInt("mpBurn", attackData, 0);
|
||||
int disease = MapleDataTool.getInt("disease", attackData, 0);
|
||||
int level = MapleDataTool.getInt("level", attackData, 0);
|
||||
int mpCon = MapleDataTool.getInt("conMP", attackData, 0);
|
||||
int mpBurn = DataTool.getInt("mpBurn", attackData, 0);
|
||||
int disease = DataTool.getInt("disease", attackData, 0);
|
||||
int level = DataTool.getInt("level", attackData, 0);
|
||||
int mpCon = DataTool.getInt("conMP", attackData, 0);
|
||||
ret = new MobAttackInfo(mob.getId(), attack);
|
||||
ret.setDeadlyAttack(deadlyAttack != null);
|
||||
ret.setMpBurn(mpBurn);
|
||||
|
||||
@@ -30,7 +30,7 @@ import net.server.audit.locks.factory.MonitoredWriteLockFactory;
|
||||
import provider.Data;
|
||||
import provider.DataProvider;
|
||||
import provider.DataProviderFactory;
|
||||
import provider.MapleDataTool;
|
||||
import provider.DataTool;
|
||||
import provider.wz.WZFiles;
|
||||
|
||||
import java.awt.*;
|
||||
@@ -70,24 +70,24 @@ public class MobSkillFactory {
|
||||
if (ret == null) {
|
||||
Data skillData = skillRoot.getChildByPath(skillId + "/level/" + level);
|
||||
if (skillData != null) {
|
||||
int mpCon = MapleDataTool.getInt(skillData.getChildByPath("mpCon"), 0);
|
||||
int mpCon = DataTool.getInt(skillData.getChildByPath("mpCon"), 0);
|
||||
List<Integer> toSummon = new ArrayList<>();
|
||||
for (int i = 0; i > -1; i++) {
|
||||
if (skillData.getChildByPath(String.valueOf(i)) == null) {
|
||||
break;
|
||||
}
|
||||
toSummon.add(MapleDataTool.getInt(skillData.getChildByPath(String.valueOf(i)), 0));
|
||||
toSummon.add(DataTool.getInt(skillData.getChildByPath(String.valueOf(i)), 0));
|
||||
}
|
||||
int effect = MapleDataTool.getInt("summonEffect", skillData, 0);
|
||||
int hp = MapleDataTool.getInt("hp", skillData, 100);
|
||||
int x = MapleDataTool.getInt("x", skillData, 1);
|
||||
int y = MapleDataTool.getInt("y", skillData, 1);
|
||||
int count = MapleDataTool.getInt("count", skillData, 1);
|
||||
long duration = MapleDataTool.getInt("time", skillData, 0) * 1000;
|
||||
long cooltime = MapleDataTool.getInt("interval", skillData, 0) * 1000;
|
||||
int iprop = MapleDataTool.getInt("prop", skillData, 100);
|
||||
int effect = DataTool.getInt("summonEffect", skillData, 0);
|
||||
int hp = DataTool.getInt("hp", skillData, 100);
|
||||
int x = DataTool.getInt("x", skillData, 1);
|
||||
int y = DataTool.getInt("y", skillData, 1);
|
||||
int count = DataTool.getInt("count", skillData, 1);
|
||||
long duration = DataTool.getInt("time", skillData, 0) * 1000;
|
||||
long cooltime = DataTool.getInt("interval", skillData, 0) * 1000;
|
||||
int iprop = DataTool.getInt("prop", skillData, 100);
|
||||
float prop = iprop / 100;
|
||||
int limit = MapleDataTool.getInt("limit", skillData, 0);
|
||||
int limit = DataTool.getInt("limit", skillData, 0);
|
||||
Data ltd = skillData.getChildByPath("lt");
|
||||
Point lt = null;
|
||||
Point rb = null;
|
||||
|
||||
Reference in New Issue
Block a user