New mechanic: Jail + fixed mob book cover issues
Added new mechanic: jail. Fixed missing card info reference about dropper mobs on the sql, reflecting into erros on the monster book.
This commit is contained in:
@@ -230,3 +230,8 @@ Corre
|
|||||||
18 - 19 Maio 2017,
|
18 - 19 Maio 2017,
|
||||||
Implementação das mecânicas do Horntail (spawn e kill).
|
Implementação das mecânicas do Horntail (spawn e kill).
|
||||||
Correção de bugs em casos onde valores de EXP ganhos excedem o limite máximo de um inteiro de 32bits.
|
Correção de bugs em casos onde valores de EXP ganhos excedem o limite máximo de um inteiro de 32bits.
|
||||||
|
|
||||||
|
20 Maio 2017,
|
||||||
|
Adição: mecânica de cadeia para GMs.
|
||||||
|
Em conjunto com vcoc, adicionaram-se comandos: !clearslot, !hide/unhide, !jail, !itemvac e !healmap.
|
||||||
|
Correção de bug em tabela SQL que continha informação imcompleta para com alguns registros de cards e respectivos mobs.
|
||||||
@@ -3,24 +3,12 @@
|
|||||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
||||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||||
<group>
|
<group>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/inventory/MaplePet.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/sql/tools/test_mobcarddrop.sql</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/partyquest/MonsterCarnival.java</file>
|
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/command/Commands.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/command/Commands.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/world0/2013002.js</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/AbstractPlayerInteraction.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/constants/ServerConstants.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/event/EventInstanceManager.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/life/MapleMonster.java</file>
|
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/tools/MaplePacketCreator.java</file>
|
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/event/OrbisPQ.js</file>
|
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/MapleServerHandler.java</file>
|
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/event/LudiPQ.js</file>
|
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/ScrollHandler.java</file>
|
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/ItemRewardHandler.java</file>
|
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/GeneralChatHandler.java</file>
|
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/MapleInventoryManipulator.java</file>
|
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleCharacter.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleCharacter.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/maps/MapleMap.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/event/EventManager.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/PetLootHandler.java</file>
|
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/ItemPickupHandler.java</file>
|
|
||||||
</group>
|
</group>
|
||||||
</open-files>
|
</open-files>
|
||||||
</project-private>
|
</project-private>
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* @author: Ronan
|
||||||
|
* @event: Jail - visit to jail :3
|
||||||
|
*/
|
||||||
|
|
||||||
|
function enter(pi) {
|
||||||
|
pi.warp(300000012,0);
|
||||||
|
return(true);
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* @author: Ronan
|
||||||
|
* @event: Jail
|
||||||
|
*/
|
||||||
|
|
||||||
|
function enter(pi) {
|
||||||
|
var jailedTime = pi.getJailTimeLeft();
|
||||||
|
|
||||||
|
if(jailedTime <= 0) {
|
||||||
|
pi.warp(300000010,0);
|
||||||
|
return(true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var seconds = Math.floor(jailedTime / 1000) % 60 ;
|
||||||
|
var minutes = (Math.floor(jailedTime / (1000*60)) % 60);
|
||||||
|
var hours = (Math.floor(jailedTime / (1000*60*60)) % 24);
|
||||||
|
|
||||||
|
pi.playerMessage(5, "You have been caught in bad behaviour by the Maple POLICE. You've got to stay here for " + hours + " hours " + minutes + " minutes " + seconds + " seconds yet.");
|
||||||
|
return(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -175,6 +175,7 @@ CREATE TABLE IF NOT EXISTS `characters` (
|
|||||||
`dataString` varchar(64) NOT NULL DEFAULT '',
|
`dataString` varchar(64) NOT NULL DEFAULT '',
|
||||||
`lastLogoutTime` timestamp NOT NULL DEFAULT '2015-01-01 05:00:00',
|
`lastLogoutTime` timestamp NOT NULL DEFAULT '2015-01-01 05:00:00',
|
||||||
`pendantExp` tinyint(1) NOT NULL DEFAULT '0',
|
`pendantExp` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
`jailexpire` bigint(20) NOT NULL DEFAULT '0',
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `accountid` (`accountid`),
|
KEY `accountid` (`accountid`),
|
||||||
KEY `party` (`party`),
|
KEY `party` (`party`),
|
||||||
|
|||||||
+19
-6
@@ -19015,11 +19015,14 @@
|
|||||||
(9500319, 1422011, 1, 1, 0, 4000),
|
(9500319, 1422011, 1, 1, 0, 4000),
|
||||||
(9500319, 1432046, 1, 1, 0, 4000),
|
(9500319, 1432046, 1, 1, 0, 4000),
|
||||||
(9500319, 1332030, 1, 1, 0, 4000),
|
(9500319, 1332030, 1, 1, 0, 4000),
|
||||||
(9300188, 2388052, 1, 1, 0, 24000),
|
(9300188, 2388052, 1, 1, 0, 8000),
|
||||||
(9300196, 2388008, 1, 1, 0, 24000),
|
(9300196, 2388008, 1, 1, 0, 8000),
|
||||||
(9300204, 2388015, 1, 1, 0, 24000),
|
(9300204, 2388015, 1, 1, 0, 8000),
|
||||||
(9300207, 2388052, 1, 1, 0, 24000),
|
(9300201, 2388039, 1, 1, 0, 8000),
|
||||||
(9300209, 2388052, 1, 1, 0, 24000);
|
(9300206, 2388032, 1, 1, 0, 8000),
|
||||||
|
(9300207, 2388054, 1, 1, 0, 8000),
|
||||||
|
(9300209, 2388053, 1, 1, 0, 8000),
|
||||||
|
(9300215, 2388046, 1, 1, 0, 8000);
|
||||||
|
|
||||||
# (dropperid, itemid, minqty, maxqty, questid, chance)
|
# (dropperid, itemid, minqty, maxqty, questid, chance)
|
||||||
|
|
||||||
@@ -19204,4 +19207,14 @@
|
|||||||
(9102006, 4001099, 3, -1),
|
(9102006, 4001099, 3, -1),
|
||||||
(9102007, 4001100, 3, -1);
|
(9102007, 4001100, 3, -1);
|
||||||
|
|
||||||
#global data already updated
|
# updates info for all cards on monster book
|
||||||
|
DROP TABLE `monstercarddata`;
|
||||||
|
CREATE TABLE IF NOT EXISTS `monstercarddata` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`cardid` int(11) NOT NULL DEFAULT '0',
|
||||||
|
`mobid` int(11) NOT NULL DEFAULT '0',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
UNIQUE KEY `id` (`id`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
|
||||||
|
|
||||||
|
INSERT INTO `monstercarddata` (`cardid`, `mobid`) (SELECT itemid, min(dropperid) FROM drop_data where itemid>=2380000 and itemid<2390000 group by itemid);
|
||||||
@@ -200,7 +200,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
|
|||||||
private int expRate = 1, mesoRate = 1, dropRate = 1;
|
private int expRate = 1, mesoRate = 1, dropRate = 1;
|
||||||
private int omokwins, omokties, omoklosses, matchcardwins, matchcardties, matchcardlosses;
|
private int omokwins, omokties, omoklosses, matchcardwins, matchcardties, matchcardlosses;
|
||||||
private int married;
|
private int married;
|
||||||
private long dojoFinish, lastfametime, lastUsedCashItem, lastHealed, lastMesoDrop = -1;
|
private long dojoFinish, lastfametime, lastUsedCashItem, lastHealed, lastMesoDrop = -1, jailExpiration = -1;
|
||||||
private transient int localmaxhp, localmaxmp, localstr, localdex, localluk, localint_, magic, watk;
|
private transient int localmaxhp, localmaxmp, localstr, localdex, localluk, localint_, magic, watk;
|
||||||
private boolean hidden, canDoor = true, Berserk, hasMerchant, whiteChat = false;
|
private boolean hidden, canDoor = true, Berserk, hasMerchant, whiteChat = false;
|
||||||
private int linkedLevel = 0;
|
private int linkedLevel = 0;
|
||||||
@@ -3183,6 +3183,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
|
|||||||
ret.face = rs.getInt("face");
|
ret.face = rs.getInt("face");
|
||||||
ret.accountid = rs.getInt("accountid");
|
ret.accountid = rs.getInt("accountid");
|
||||||
ret.mapid = rs.getInt("map");
|
ret.mapid = rs.getInt("map");
|
||||||
|
ret.jailExpiration = rs.getLong("jailexpire");
|
||||||
ret.initialSpawnPoint = rs.getInt("spawnpoint");
|
ret.initialSpawnPoint = rs.getInt("spawnpoint");
|
||||||
ret.world = rs.getByte("world");
|
ret.world = rs.getByte("world");
|
||||||
ret.rank = rs.getInt("rank");
|
ret.rank = rs.getInt("rank");
|
||||||
@@ -4154,7 +4155,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
|
|||||||
con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
|
con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
|
||||||
con.setAutoCommit(false);
|
con.setAutoCommit(false);
|
||||||
PreparedStatement ps;
|
PreparedStatement ps;
|
||||||
ps = con.prepareStatement("UPDATE characters SET level = ?, fame = ?, str = ?, dex = ?, luk = ?, `int` = ?, exp = ?, gachaexp = ?, hp = ?, mp = ?, maxhp = ?, maxmp = ?, sp = ?, ap = ?, gm = ?, skincolor = ?, gender = ?, job = ?, hair = ?, face = ?, map = ?, meso = ?, hpMpUsed = ?, spawnpoint = ?, party = ?, buddyCapacity = ?, messengerid = ?, messengerposition = ?, mountlevel = ?, mountexp = ?, mounttiredness= ?, equipslots = ?, useslots = ?, setupslots = ?, etcslots = ?, monsterbookcover = ?, vanquisherStage = ?, dojoPoints = ?, lastDojoStage = ?, finishedDojoTutorial = ?, vanquisherKills = ?, matchcardwins = ?, matchcardlosses = ?, matchcardties = ?, omokwins = ?, omoklosses = ?, omokties = ?, dataString = ?, fquest = ? WHERE id = ?", Statement.RETURN_GENERATED_KEYS);
|
ps = con.prepareStatement("UPDATE characters SET level = ?, fame = ?, str = ?, dex = ?, luk = ?, `int` = ?, exp = ?, gachaexp = ?, hp = ?, mp = ?, maxhp = ?, maxmp = ?, sp = ?, ap = ?, gm = ?, skincolor = ?, gender = ?, job = ?, hair = ?, face = ?, map = ?, meso = ?, hpMpUsed = ?, spawnpoint = ?, party = ?, buddyCapacity = ?, messengerid = ?, messengerposition = ?, mountlevel = ?, mountexp = ?, mounttiredness= ?, equipslots = ?, useslots = ?, setupslots = ?, etcslots = ?, monsterbookcover = ?, vanquisherStage = ?, dojoPoints = ?, lastDojoStage = ?, finishedDojoTutorial = ?, vanquisherKills = ?, matchcardwins = ?, matchcardlosses = ?, matchcardties = ?, omokwins = ?, omoklosses = ?, omokties = ?, dataString = ?, fquest = ?, jailexpire = ? WHERE id = ?", Statement.RETURN_GENERATED_KEYS);
|
||||||
if (gmLevel < 1 && level > 199) {
|
if (gmLevel < 1 && level > 199) {
|
||||||
ps.setInt(1, isCygnus() ? 120 : 200);
|
ps.setInt(1, isCygnus() ? 120 : 200);
|
||||||
} else {
|
} else {
|
||||||
@@ -4248,7 +4249,8 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
|
|||||||
ps.setInt(47, omokties);
|
ps.setInt(47, omokties);
|
||||||
ps.setString(48, dataString);
|
ps.setString(48, dataString);
|
||||||
ps.setInt(49, quest_fame);
|
ps.setInt(49, quest_fame);
|
||||||
ps.setInt(50, id);
|
ps.setLong(50, jailExpiration);
|
||||||
|
ps.setInt(51, id);
|
||||||
|
|
||||||
int updateRows = ps.executeUpdate();
|
int updateRows = ps.executeUpdate();
|
||||||
if (updateRows < 1) {
|
if (updateRows < 1) {
|
||||||
@@ -5692,4 +5694,23 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
|
|||||||
}
|
}
|
||||||
return sp;
|
return sp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getJailExpirationTimeLeft() {
|
||||||
|
return jailExpiration - System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setFutureJailExpiration(long time) {
|
||||||
|
jailExpiration = System.currentTimeMillis() + time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addJailExpirationTime(long time) {
|
||||||
|
long timeLeft = getJailExpirationTimeLeft();
|
||||||
|
|
||||||
|
if(timeLeft <= 0) setFutureJailExpiration(time);
|
||||||
|
else setFutureJailExpiration(timeLeft + time);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeJailExpirationTime() {
|
||||||
|
jailExpiration = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -333,10 +333,10 @@ public class Commands {
|
|||||||
player.message("@uptime: Shows how long Solaxia has been online.");
|
player.message("@uptime: Shows how long Solaxia has been online.");
|
||||||
player.message("@bosshp: Displays the remaining HP of the bosses on your map.");
|
player.message("@bosshp: Displays the remaining HP of the bosses on your map.");
|
||||||
if(ServerConstants.USE_DEBUG) {
|
if(ServerConstants.USE_DEBUG) {
|
||||||
player.message("@debugpos: Displays the coordinates on the map the player is currently located.");
|
player.message("@debugpos: Displays the coordinates on the map the player is currently located.");
|
||||||
player.message("@debugmap: Displays info about the current map the player is located.");
|
player.message("@debugmap: Displays info about the current map the player is located.");
|
||||||
player.message("@debugevent: Displays the name of the event in which the player is currently registered.");
|
player.message("@debugevent: Displays the name of the event in which the player is currently registered.");
|
||||||
player.message("@debugreactors: Displays current info for all reactors on the map the the player is currently located.");
|
player.message("@debugreactors: Displays current info for all reactors on the map the player is currently located.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "time":
|
case "time":
|
||||||
@@ -364,7 +364,7 @@ public class Commands {
|
|||||||
int seconds = (int) (milliseconds / 1000) % 60 ;
|
int seconds = (int) (milliseconds / 1000) % 60 ;
|
||||||
int minutes = (int) ((milliseconds / (1000*60)) % 60);
|
int minutes = (int) ((milliseconds / (1000*60)) % 60);
|
||||||
int hours = (int) ((milliseconds / (1000*60*60)) % 24);
|
int hours = (int) ((milliseconds / (1000*60*60)) % 24);
|
||||||
int days = (int) ((milliseconds / (1000*60*60*24)));
|
int days = (int) ((milliseconds / (1000*60*60*24)));
|
||||||
player.yellowMessage("Solaxia has been online for " + days + " days " + hours + " hours " + minutes + " minutes and " + seconds + " seconds.");
|
player.yellowMessage("Solaxia has been online for " + days + " days " + hours + " hours " + minutes + " minutes and " + seconds + " seconds.");
|
||||||
break;
|
break;
|
||||||
case "gacha":
|
case "gacha":
|
||||||
@@ -554,8 +554,6 @@ public class Commands {
|
|||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
case "joinevent":
|
case "joinevent":
|
||||||
case "event":
|
|
||||||
case "join":
|
|
||||||
if(!FieldLimit.CHANGECHANNEL.check(player.getMap().getFieldLimit())) {
|
if(!FieldLimit.CHANGECHANNEL.check(player.getMap().getFieldLimit())) {
|
||||||
MapleEvent event = c.getChannelServer().getEvent();
|
MapleEvent event = c.getChannelServer().getEvent();
|
||||||
if(event != null) {
|
if(event != null) {
|
||||||
@@ -583,7 +581,6 @@ public class Commands {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "leaveevent":
|
case "leaveevent":
|
||||||
case "leave":
|
|
||||||
int returnMap = player.getSavedLocation("EVENT");
|
int returnMap = player.getSavedLocation("EVENT");
|
||||||
if(returnMap != -1) {
|
if(returnMap != -1) {
|
||||||
if(player.getOla() != null) {
|
if(player.getOla() != null) {
|
||||||
@@ -685,7 +682,27 @@ public class Commands {
|
|||||||
MapleCharacter player = c.getPlayer();
|
MapleCharacter player = c.getPlayer();
|
||||||
Channel cserv = c.getChannelServer();
|
Channel cserv = c.getChannelServer();
|
||||||
Server srv = Server.getInstance();
|
Server srv = Server.getInstance();
|
||||||
if (sub[0].equals("ap")) {
|
|
||||||
|
if (sub[0].equals("sp")) {
|
||||||
|
if (sub.length < 2){
|
||||||
|
player.yellowMessage("Syntax: !sp [<playername>] <newsp>");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sub.length == 2) {
|
||||||
|
player.setRemainingSp(Integer.parseInt(sub[1]));
|
||||||
|
player.updateSingleStat(MapleStat.AVAILABLESP, player.getRemainingSp());
|
||||||
|
} else {
|
||||||
|
MapleCharacter victim = c.getChannelServer().getPlayerStorage().getCharacterByName(sub[1]);
|
||||||
|
victim.setRemainingSp(Integer.parseInt(sub[2]));
|
||||||
|
victim.updateSingleStat(MapleStat.AVAILABLESP, player.getRemainingSp());
|
||||||
|
}
|
||||||
|
} else if (sub[0].equals("ap")) {
|
||||||
|
if (sub.length < 2){
|
||||||
|
player.yellowMessage("Syntax: !ap [<playername>] <newap>");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (sub.length < 3) {
|
if (sub.length < 3) {
|
||||||
player.setRemainingAp(Integer.parseInt(sub[1]));
|
player.setRemainingAp(Integer.parseInt(sub[1]));
|
||||||
player.updateSingleStat(MapleStat.AVAILABLEAP, player.getRemainingAp());
|
player.updateSingleStat(MapleStat.AVAILABLEAP, player.getRemainingAp());
|
||||||
@@ -702,7 +719,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("spawn")) {
|
} else if (sub[0].equals("spawn")) {
|
||||||
if (sub.length < 2) {
|
if (sub.length < 2) {
|
||||||
player.yellowMessage("Syntax: !spawn <mobid>");
|
player.yellowMessage("Syntax: !spawn <mobid>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleMonster monster = MapleLifeFactory.getMonster(Integer.parseInt(sub[1]));
|
MapleMonster monster = MapleLifeFactory.getMonster(Integer.parseInt(sub[1]));
|
||||||
@@ -756,7 +773,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("go")) {
|
} else if (sub[0].equals("go")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !go <mapid>");
|
player.yellowMessage("Syntax: !go <mapid>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gotomaps.containsKey(sub[1])) {
|
if (gotomaps.containsKey(sub[1])) {
|
||||||
@@ -806,14 +823,14 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("warp")) {
|
} else if (sub[0].equals("warp")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !warp <mapid>");
|
player.yellowMessage("Syntax: !warp <mapid>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
MapleMap target = c.getChannelServer().getMapFactory().getMap(Integer.parseInt(sub[1]));
|
MapleMap target = c.getChannelServer().getMapFactory().getMap(Integer.parseInt(sub[1]));
|
||||||
if (target == null) {
|
if (target == null) {
|
||||||
player.yellowMessage("Map ID " + sub[1] + " is invalid.");
|
player.yellowMessage("Map ID " + sub[1] + " is invalid.");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
if (player.getEventInstance() != null) {
|
if (player.getEventInstance() != null) {
|
||||||
player.getEventInstance().removePlayer(player);
|
player.getEventInstance().removePlayer(player);
|
||||||
@@ -822,7 +839,7 @@ public class Commands {
|
|||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
player.yellowMessage("Map ID " + sub[1] + " is invalid.");
|
player.yellowMessage("Map ID " + sub[1] + " is invalid.");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
} else if (sub[0].equals("reloadmap")) {
|
} else if (sub[0].equals("reloadmap")) {
|
||||||
MapleMap oldMap = c.getPlayer().getMap();
|
MapleMap oldMap = c.getPlayer().getMap();
|
||||||
@@ -838,7 +855,7 @@ public class Commands {
|
|||||||
for (String s : songs){
|
for (String s : songs){
|
||||||
player.yellowMessage(s);
|
player.yellowMessage(s);
|
||||||
}
|
}
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
String song = joinStringFrom(sub, 1);
|
String song = joinStringFrom(sub, 1);
|
||||||
for (String s : songs){
|
for (String s : songs){
|
||||||
@@ -855,12 +872,12 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("monitor")) {
|
} else if (sub[0].equals("monitor")) {
|
||||||
if (sub.length < 1){
|
if (sub.length < 1){
|
||||||
player.yellowMessage("Syntax: !monitor <ign>");
|
player.yellowMessage("Syntax: !monitor <ign>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
MapleCharacter victim = c.getWorldServer().getPlayerStorage().getCharacterByName(sub[1]);
|
MapleCharacter victim = c.getWorldServer().getPlayerStorage().getCharacterByName(sub[1]);
|
||||||
if (victim == null){
|
if (victim == null){
|
||||||
player.yellowMessage("Player not found!");
|
player.yellowMessage("Player not found!");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
boolean monitored = MapleLogger.monitored.contains(victim.getName());
|
boolean monitored = MapleLogger.monitored.contains(victim.getName());
|
||||||
if (monitored){
|
if (monitored){
|
||||||
@@ -878,12 +895,12 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("ignore")) {
|
} else if (sub[0].equals("ignore")) {
|
||||||
if (sub.length < 1){
|
if (sub.length < 1){
|
||||||
player.yellowMessage("Syntax: !ignore <ign>");
|
player.yellowMessage("Syntax: !ignore <ign>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
MapleCharacter victim = c.getWorldServer().getPlayerStorage().getCharacterByName(sub[1]);
|
MapleCharacter victim = c.getWorldServer().getPlayerStorage().getCharacterByName(sub[1]);
|
||||||
if (victim == null){
|
if (victim == null){
|
||||||
player.yellowMessage("Player not found!");
|
player.yellowMessage("Player not found!");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
boolean monitored = MapleLogger.ignored.contains(victim.getName());
|
boolean monitored = MapleLogger.ignored.contains(victim.getName());
|
||||||
if (monitored){
|
if (monitored){
|
||||||
@@ -907,7 +924,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("dc")) {
|
} else if (sub[0].equals("dc")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !dc <playername>");
|
player.yellowMessage("Syntax: !dc <playername>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleCharacter victim = c.getWorldServer().getPlayerStorage().getCharacterByName(sub[1]);
|
MapleCharacter victim = c.getWorldServer().getPlayerStorage().getCharacterByName(sub[1]);
|
||||||
@@ -934,7 +951,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("exprate")) {
|
} else if (sub[0].equals("exprate")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !exprate <newrate>");
|
player.yellowMessage("Syntax: !exprate <newrate>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
c.getWorldServer().setExpRate(Integer.parseInt(sub[1]));
|
c.getWorldServer().setExpRate(Integer.parseInt(sub[1]));
|
||||||
} else if (sub[0].equals("chat")) {
|
} else if (sub[0].equals("chat")) {
|
||||||
@@ -943,7 +960,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("warpto")) {
|
} else if (sub[0].equals("warpto")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !warpto <mapid>");
|
player.yellowMessage("Syntax: !warpto <mapid>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
|
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
|
||||||
@@ -981,7 +998,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("warphere")) {
|
} else if (sub[0].equals("warphere")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !warphere <playername>");
|
player.yellowMessage("Syntax: !warphere <playername>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
|
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
|
||||||
@@ -1018,7 +1035,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("fame")) {
|
} else if (sub[0].equals("fame")) {
|
||||||
if (sub.length < 3){
|
if (sub.length < 3){
|
||||||
player.yellowMessage("Syntax: !fame <playername> <gainfame>");
|
player.yellowMessage("Syntax: !fame <playername> <gainfame>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
|
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
|
||||||
@@ -1027,7 +1044,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("giftnx")) {
|
} else if (sub[0].equals("giftnx")) {
|
||||||
if (sub.length < 3){
|
if (sub.length < 3){
|
||||||
player.yellowMessage("Syntax: !giftnx <playername> <gainnx>");
|
player.yellowMessage("Syntax: !giftnx <playername> <gainnx>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
cserv.getPlayerStorage().getCharacterByName(sub[1]).getCashShop().gainCash(1, Integer.parseInt(sub[2]));
|
cserv.getPlayerStorage().getCharacterByName(sub[1]).getCashShop().gainCash(1, Integer.parseInt(sub[2]));
|
||||||
player.message("Done");
|
player.message("Done");
|
||||||
@@ -1038,13 +1055,13 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("vp")) {
|
} else if (sub[0].equals("vp")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !vp <gainvotepoint>");
|
player.yellowMessage("Syntax: !vp <gainvotepoint>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
c.addVotePoints(Integer.parseInt(sub[1]));
|
c.addVotePoints(Integer.parseInt(sub[1]));
|
||||||
} else if (sub[0].equals("id")) {
|
} else if (sub[0].equals("id")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !id <id>");
|
player.yellowMessage("Syntax: !id <id>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
try (BufferedReader dis = new BufferedReader(new InputStreamReader(new URL("http://www.mapletip.com/search_java.php?search_value=" + sub[1] + "&check=true").openConnection().getInputStream()))) {
|
try (BufferedReader dis = new BufferedReader(new InputStreamReader(new URL("http://www.mapletip.com/search_java.php?search_value=" + sub[1] + "&check=true").openConnection().getInputStream()))) {
|
||||||
@@ -1059,7 +1076,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("item") || sub[0].equals("drop")) {
|
} else if (sub[0].equals("item") || sub[0].equals("drop")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !item <itemid> <quantity>");
|
player.yellowMessage("Syntax: !item <itemid> <quantity>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int itemId = Integer.parseInt(sub[1]);
|
int itemId = Integer.parseInt(sub[1]);
|
||||||
@@ -1110,7 +1127,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("kill")) {
|
} else if (sub[0].equals("kill")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !kill <playername>");
|
player.yellowMessage("Syntax: !kill <playername>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
|
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
|
||||||
@@ -1119,7 +1136,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("seed")) {
|
} else if (sub[0].equals("seed")) {
|
||||||
if (player.getMapId() != 910010000) {
|
if (player.getMapId() != 910010000) {
|
||||||
player.yellowMessage("This command can only be used in HPQ.");
|
player.yellowMessage("This command can only be used in HPQ.");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
Point pos[] = {new Point(7, -207), new Point(179, -447), new Point(-3, -687), new Point(-357, -687), new Point(-538, -447), new Point(-359, -207)};
|
Point pos[] = {new Point(7, -207), new Point(179, -447), new Point(-3, -687), new Point(-357, -687), new Point(-538, -447), new Point(-359, -207)};
|
||||||
int seed[] = {4001097, 4001096, 4001095, 4001100, 4001099, 4001098};
|
int seed[] = {4001097, 4001096, 4001095, 4001100, 4001099, 4001098};
|
||||||
@@ -1154,7 +1171,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("level")) {
|
} else if (sub[0].equals("level")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !level <newlevel>");
|
player.yellowMessage("Syntax: !level <newlevel>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
player.setLevel(Integer.parseInt(sub[1]) - 1);
|
player.setLevel(Integer.parseInt(sub[1]) - 1);
|
||||||
@@ -1163,7 +1180,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("levelpro")) {
|
} else if (sub[0].equals("levelpro")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !levelpro <newlevel>");
|
player.yellowMessage("Syntax: !levelpro <newlevel>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (player.getLevel() < Math.min(255, Integer.parseInt(sub[1]))) {
|
while (player.getLevel() < Math.min(255, Integer.parseInt(sub[1]))) {
|
||||||
@@ -1206,7 +1223,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("openportal")) {
|
} else if (sub[0].equals("openportal")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !openportal <portalid>");
|
player.yellowMessage("Syntax: !openportal <portalid>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
player.getMap().getPortal(sub[1]).setPortalState(true);
|
player.getMap().getPortal(sub[1]).setPortalState(true);
|
||||||
} else if (sub[0].equals("pe")) {
|
} else if (sub[0].equals("pe")) {
|
||||||
@@ -1220,7 +1237,7 @@ public class Commands {
|
|||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
player.yellowMessage("Failed to load pe.txt");
|
player.yellowMessage("Failed to load pe.txt");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
|
MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
|
||||||
mplew.write(HexTool.getByteArrayFromHexString(packet));
|
mplew.write(HexTool.getByteArrayFromHexString(packet));
|
||||||
@@ -1229,25 +1246,20 @@ public class Commands {
|
|||||||
final MaplePacketHandler packetHandler = PacketProcessor.getProcessor(0, c.getChannel()).getHandler(packetId);
|
final MaplePacketHandler packetHandler = PacketProcessor.getProcessor(0, c.getChannel()).getHandler(packetId);
|
||||||
if (packetHandler != null && packetHandler.validateState(c)) {
|
if (packetHandler != null && packetHandler.validateState(c)) {
|
||||||
try {
|
try {
|
||||||
player.yellowMessage("Recieving: " + packet);
|
player.yellowMessage("Receiving: " + packet);
|
||||||
packetHandler.handlePacket(slea, c);
|
packetHandler.handlePacket(slea, c);
|
||||||
} catch (final Throwable t) {
|
} catch (final Throwable t) {
|
||||||
FilePrinter.printError(FilePrinter.PACKET_HANDLER + packetHandler.getClass().getName() + ".txt", t, "Error for " + (c.getPlayer() == null ? "" : "player ; " + c.getPlayer() + " on map ; " + c.getPlayer().getMapId() + " - ") + "account ; " + c.getAccountName() + "\r\n" + slea.toString());
|
FilePrinter.printError(FilePrinter.PACKET_HANDLER + packetHandler.getClass().getName() + ".txt", t, "Error for " + (c.getPlayer() == null ? "" : "player ; " + c.getPlayer() + " on map ; " + c.getPlayer().getMapId() + " - ") + "account ; " + c.getAccountName() + "\r\n" + slea.toString());
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (sub[0].equals("closeportal")) {
|
} else if (sub[0].equals("closeportal")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !closeportal <portalid>");
|
player.yellowMessage("Syntax: !closeportal <portalid>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
player.getMap().getPortal(sub[1]).setPortalState(false);
|
player.getMap().getPortal(sub[1]).setPortalState(false);
|
||||||
} else if (sub[0].equals("startevent")) {
|
} else if (sub[0].equals("startevent")) {
|
||||||
for (MapleCharacter chr : player.getMap().getCharacters()) {
|
|
||||||
player.getMap().startEvent(chr);
|
|
||||||
}
|
|
||||||
c.getChannelServer().setEvent(null);
|
|
||||||
} else if (sub[0].equals("scheduleevent")) {
|
|
||||||
int players = 50;
|
int players = 50;
|
||||||
if(sub.length > 1)
|
if(sub.length > 1)
|
||||||
players = Integer.parseInt(sub[1]);
|
players = Integer.parseInt(sub[1]);
|
||||||
@@ -1278,7 +1290,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equalsIgnoreCase("search")) {
|
} else if (sub[0].equalsIgnoreCase("search")) {
|
||||||
if (sub.length < 3){
|
if (sub.length < 3){
|
||||||
player.yellowMessage("Syntax: !search <type> <name>");
|
player.yellowMessage("Syntax: !search <type> <name>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
@@ -1347,7 +1359,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("unban")) {
|
} else if (sub[0].equals("unban")) {
|
||||||
if (sub.length < 2){
|
if (sub.length < 2){
|
||||||
player.yellowMessage("Syntax: !unban <playername>");
|
player.yellowMessage("Syntax: !unban <playername>");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -1371,7 +1383,7 @@ public class Commands {
|
|||||||
} else if (sub[0].equals("ban")) {
|
} else if (sub[0].equals("ban")) {
|
||||||
if (sub.length < 3) {
|
if (sub.length < 3) {
|
||||||
player.yellowMessage("Syntax: !ban <IGN> <Reason> (Please be descriptive)");
|
player.yellowMessage("Syntax: !ban <IGN> <Reason> (Please be descriptive)");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
String ign = sub[1];
|
String ign = sub[1];
|
||||||
String reason = joinStringFrom(sub, 2);
|
String reason = joinStringFrom(sub, 2);
|
||||||
@@ -1416,9 +1428,162 @@ public class Commands {
|
|||||||
} else {
|
} else {
|
||||||
c.announce(MaplePacketCreator.getGMEffect(6, (byte) 1));
|
c.announce(MaplePacketCreator.getGMEffect(6, (byte) 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if (sub[0].equals("jail")) {
|
||||||
|
if (sub.length < 2) {
|
||||||
|
player.yellowMessage("Syntax: !jail <playername> [<minutes>]");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int minutesJailed = 5;
|
||||||
|
if(sub.length >= 3) {
|
||||||
|
minutesJailed = Integer.valueOf(sub[2]);
|
||||||
|
if(minutesJailed <= 0) {
|
||||||
|
player.yellowMessage("Syntax: !jail <playername> [<minutes>]");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
|
||||||
|
if (victim != null) {
|
||||||
|
victim.addJailExpirationTime(minutesJailed * 60 * 1000);
|
||||||
|
|
||||||
|
int mapid = 300000012;
|
||||||
|
|
||||||
|
if(victim.getMapId() != mapid) { // those gone to jail won't be changing map anyway
|
||||||
|
MapleMap target = cserv.getMapFactory().getMap(mapid);
|
||||||
|
MaplePortal targetPortal = target.getPortal(0);
|
||||||
|
victim.changeMap(target, targetPortal);
|
||||||
|
player.dropMessage(victim.getName() + " was jailed for " + minutesJailed + " minutes.");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
player.dropMessage(victim.getName() + "'s time in jail has been extended for " + minutesJailed + " minutes.");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
player.dropMessage(sub[1] + " not found on this channel! Make sure your target is logged on and on the same channel as yours.");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (sub[0].equals("unjail")) {
|
||||||
|
if (sub.length < 2) {
|
||||||
|
player.yellowMessage("Syntax: !unjail <playername>");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
|
||||||
|
if (victim != null) {
|
||||||
|
if(victim.getJailExpirationTimeLeft() <= 0) {
|
||||||
|
player.dropMessage("This player is already free.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
victim.removeJailExpirationTime();
|
||||||
|
victim.dropMessage("By lack of concrete proof you are now unjailed. Enjoy freedom!");
|
||||||
|
player.dropMessage(victim.getName() + " was unjailed.");
|
||||||
|
} else {
|
||||||
|
player.dropMessage(sub[1] + " not found on this channel! Make sure your target is logged on and on the same channel as yours.");
|
||||||
|
}
|
||||||
|
} else if (sub[0].equals("clearslot")) {
|
||||||
|
if (sub.length < 2) {
|
||||||
|
player.yellowMessage("Syntax: !clearslot <all, equip, use, setup, etc or cash.>");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
String type = sub[1];
|
||||||
|
if (type.equals("all")) {
|
||||||
|
for (int i = 0; i < 101; i++) {
|
||||||
|
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem((byte) i);
|
||||||
|
if (tempItem == null)
|
||||||
|
continue;
|
||||||
|
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.EQUIP, (byte) i, tempItem.getQuantity(), false, true);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < 101; i++) {
|
||||||
|
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.USE).getItem((byte) i);
|
||||||
|
if (tempItem == null)
|
||||||
|
continue;
|
||||||
|
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, (byte) i, tempItem.getQuantity(), false, true);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < 101; i++) {
|
||||||
|
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.ETC).getItem((byte) i);
|
||||||
|
if (tempItem == null)
|
||||||
|
continue;
|
||||||
|
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.ETC, (byte) i, tempItem.getQuantity(), false, true);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < 101; i++) {
|
||||||
|
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.SETUP).getItem((byte) i);
|
||||||
|
if (tempItem == null)
|
||||||
|
continue;
|
||||||
|
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.SETUP, (byte) i, tempItem.getQuantity(), false, true);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < 101; i++) {
|
||||||
|
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.CASH).getItem((byte) i);
|
||||||
|
if (tempItem == null)
|
||||||
|
continue;
|
||||||
|
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.CASH, (byte) i, tempItem.getQuantity(), false, true);
|
||||||
|
}
|
||||||
|
player.yellowMessage("All Slots Cleared.");
|
||||||
|
}
|
||||||
|
else if (type.equals("equip")) {
|
||||||
|
for (int i = 0; i < 101; i++) {
|
||||||
|
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem((byte) i);
|
||||||
|
if (tempItem == null)
|
||||||
|
continue;
|
||||||
|
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.EQUIP, (byte) i, tempItem.getQuantity(), false, true);
|
||||||
|
}
|
||||||
|
player.yellowMessage("Equipment Slot Cleared.");
|
||||||
|
}
|
||||||
|
else if (type.equals("use")) {
|
||||||
|
for (int i = 0; i < 101; i++) {
|
||||||
|
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.USE).getItem((byte) i);
|
||||||
|
if (tempItem == null)
|
||||||
|
continue;
|
||||||
|
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, (byte) i, tempItem.getQuantity(), false, true);
|
||||||
|
}
|
||||||
|
player.yellowMessage("Use Slot Cleared.");
|
||||||
|
}
|
||||||
|
else if (type.equals("setup")) {
|
||||||
|
for (int i = 0; i < 101; i++) {
|
||||||
|
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.SETUP).getItem((byte) i);
|
||||||
|
if (tempItem == null)
|
||||||
|
continue;
|
||||||
|
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.SETUP, (byte) i, tempItem.getQuantity(), false, true);
|
||||||
|
}
|
||||||
|
player.yellowMessage("Set-Up Slot Cleared.");
|
||||||
|
}
|
||||||
|
else if (type.equals("etc")) {
|
||||||
|
for (int i = 0; i < 101; i++) {
|
||||||
|
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.ETC).getItem((byte) i);
|
||||||
|
if (tempItem == null)
|
||||||
|
continue;
|
||||||
|
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.ETC, (byte) i, tempItem.getQuantity(), false, true);
|
||||||
|
}
|
||||||
|
player.yellowMessage("ETC Slot Cleared.");
|
||||||
|
}
|
||||||
|
else if (type.equals("cash")) {
|
||||||
|
for (int i = 0; i < 101; i++) {
|
||||||
|
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.CASH).getItem((byte) i);
|
||||||
|
if (tempItem == null)
|
||||||
|
continue;
|
||||||
|
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.CASH, (byte) i, tempItem.getQuantity(), false, true);
|
||||||
|
}
|
||||||
|
player.yellowMessage("Cash Slot Cleared.");
|
||||||
|
}
|
||||||
|
else player.yellowMessage("Slot" + type + " does not exist!");
|
||||||
|
} else if (sub[0].equals("hide")) {
|
||||||
|
SkillFactory.getSkill(9101004).getEffect(SkillFactory.getSkill(9101004).getMaxLevel()).applyTo(player);
|
||||||
|
} else if (sub[0].equals("unhide")) {
|
||||||
|
SkillFactory.getSkill(9101004).getEffect(SkillFactory.getSkill(9101004).getMaxLevel()).applyTo(player);
|
||||||
|
|
||||||
|
} else if (sub[0].equals("healmap")) {
|
||||||
|
for (MapleCharacter mch : player.getMap().getCharacters()) {
|
||||||
|
if (mch != null) {
|
||||||
|
mch.setHp(mch.getMaxHp());
|
||||||
|
mch.updateSingleStat(MapleStat.HP, mch.getMaxHp());
|
||||||
|
mch.setMp(mch.getMaxMp());
|
||||||
|
mch.updateSingleStat(MapleStat.MP, mch.getMaxMp());
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (sub[0].equalsIgnoreCase("night")) {
|
} else if (sub[0].equalsIgnoreCase("night")) {
|
||||||
player.getMap().broadcastNightEffect();
|
player.getMap().broadcastNightEffect();
|
||||||
player.yellowMessage("Done.");
|
player.yellowMessage("Done.");
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1446,22 +1611,6 @@ public class Commands {
|
|||||||
player.getMap().spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8820001), player.getPosition());
|
player.getMap().spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8820001), player.getPosition());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "sp": //Changed to support giving sp /a
|
|
||||||
if (sub.length < 2){
|
|
||||||
player.yellowMessage("Syntax: !sp <newsp>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sub.length == 2) {
|
|
||||||
player.setRemainingSp(Integer.parseInt(sub[1]));
|
|
||||||
player.updateSingleStat(MapleStat.AVAILABLESP, player.getRemainingSp());
|
|
||||||
} else {
|
|
||||||
MapleCharacter victim = c.getChannelServer().getPlayerStorage().getCharacterByName(sub[1]);
|
|
||||||
victim.setRemainingSp(Integer.parseInt(sub[2]));
|
|
||||||
victim.updateSingleStat(MapleStat.AVAILABLESP, player.getRemainingSp());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "packet":
|
case "packet":
|
||||||
player.getMap().broadcastMessage(MaplePacketCreator.customPacket(joinStringFrom(sub, 1)));
|
player.getMap().broadcastMessage(MaplePacketCreator.customPacket(joinStringFrom(sub, 1)));
|
||||||
break;
|
break;
|
||||||
@@ -1617,18 +1766,28 @@ public class Commands {
|
|||||||
player.equipChanged();
|
player.equipChanged();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "itemvac":
|
|
||||||
List<MapleMapObject> items = player.getMap().getMapObjectsInRange(player.getPosition(), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.ITEM));
|
case "itemvac":
|
||||||
for (MapleMapObject item : items) {
|
List<MapleMapObject> items = player.getMap().getMapObjectsInRange(player.getPosition(), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.ITEM));
|
||||||
MapleMapItem mapitem = (MapleMapItem) item;
|
for (MapleMapObject item : items) {
|
||||||
if (!MapleInventoryManipulator.addFromDrop(c, mapitem.getItem(), true)) {
|
MapleMapItem mapItem = (MapleMapItem) item;
|
||||||
continue;
|
if (mapItem.getMeso() > 0) {
|
||||||
}
|
player.gainMeso(mapItem.getMeso(), true);
|
||||||
mapitem.setPickedUp(true);
|
} else if (mapItem.getItem().getItemId() >= 5000000 && mapItem.getItem().getItemId() <= 5000100) {
|
||||||
player.getMap().broadcastMessage(MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 2, player.getId()), mapitem.getPosition());
|
int petId = MaplePet.createPet(mapItem.getItem().getItemId());
|
||||||
player.getMap().removeMapObject(item);
|
if (petId == -1) {
|
||||||
}
|
continue;
|
||||||
break;
|
}
|
||||||
|
MapleInventoryManipulator.addById(c, mapItem.getItem().getItemId(), mapItem.getItem().getQuantity(), null, petId);
|
||||||
|
} else {
|
||||||
|
MapleInventoryManipulator.addFromDrop(c, mapItem.getItem(), true);
|
||||||
|
}
|
||||||
|
mapItem.setPickedUp(true);
|
||||||
|
player.getMap().removeMapObject(item);
|
||||||
|
player.getMap().broadcastMessage(MaplePacketCreator.removeItemFromMap(mapItem.getObjectId(), 2, player.getId()), mapItem.getPosition());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case "clearquestcache":
|
case "clearquestcache":
|
||||||
MapleQuest.clearCache();
|
MapleQuest.clearCache();
|
||||||
player.dropMessage(5, "Quest Cache Cleared.");
|
player.dropMessage(5, "Quest Cache Cleared.");
|
||||||
|
|||||||
@@ -829,4 +829,8 @@ public class AbstractPlayerInteraction {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getJailTimeLeft() {
|
||||||
|
return getPlayer().getJailExpirationTimeLeft();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,11 +95,13 @@ public class EventManager {
|
|||||||
private List<Integer> getLobbyRange() {
|
private List<Integer> getLobbyRange() {
|
||||||
try {
|
try {
|
||||||
return convertToIntegerArray((List<Double>)iv.invokeFunction("setLobbyRange", (Object) null));
|
return convertToIntegerArray((List<Double>)iv.invokeFunction("setLobbyRange", (Object) null));
|
||||||
} catch (ScriptException | NoSuchMethodException ex) {
|
} catch (ScriptException | NoSuchMethodException ex) { // they didn't define a lobby range
|
||||||
ex.printStackTrace();
|
List<Integer> defaultList = new ArrayList<>();
|
||||||
}
|
defaultList.add(0);
|
||||||
|
defaultList.add(maxLobbys);
|
||||||
|
|
||||||
return new ArrayList<>();
|
return defaultList;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void schedule(String methodName, long delay) {
|
public void schedule(String methodName, long delay) {
|
||||||
|
|||||||
@@ -64,9 +64,9 @@ public class TimerManager implements TimerManagerMBean {
|
|||||||
});
|
});
|
||||||
//this is a no-no, it actually does nothing..then why the fuck are you doing it?
|
//this is a no-no, it actually does nothing..then why the fuck are you doing it?
|
||||||
stpe.setContinueExistingPeriodicTasksAfterShutdownPolicy(false);
|
stpe.setContinueExistingPeriodicTasksAfterShutdownPolicy(false);
|
||||||
stpe.setRemoveOnCancelPolicy(true);
|
stpe.setRemoveOnCancelPolicy(true);
|
||||||
|
|
||||||
stpe.setKeepAliveTime(5, TimeUnit.MINUTES);
|
stpe.setKeepAliveTime(5, TimeUnit.MINUTES);
|
||||||
stpe.allowCoreThreadTimeOut(true);
|
stpe.allowCoreThreadTimeOut(true);
|
||||||
|
|
||||||
ses = stpe;
|
ses = stpe;
|
||||||
@@ -143,7 +143,7 @@ public class TimerManager implements TimerManagerMBean {
|
|||||||
try {
|
try {
|
||||||
r.run();
|
r.run();
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
FilePrinter.printError(FilePrinter.EXCEPTION_CAUGHT, t);
|
FilePrinter.printError(FilePrinter.EXCEPTION_CAUGHT, t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1032,7 +1032,7 @@
|
|||||||
<int name="y" value="238"/>
|
<int name="y" value="238"/>
|
||||||
<int name="tm" value="999999999"/>
|
<int name="tm" value="999999999"/>
|
||||||
<string name="tn" value=""/>
|
<string name="tn" value=""/>
|
||||||
<string name="script" value="cellar"/>
|
<string name="script" value="jail_in"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
|||||||
@@ -1,261 +1,280 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<imgdir name="300000012.img">
|
<imgdir name="300000012.img">
|
||||||
<imgdir name="info">
|
<imgdir name="info">
|
||||||
<int name="version" value="10"/>
|
|
||||||
<int name="cloud" value="0"/>
|
|
||||||
<int name="town" value="1"/>
|
|
||||||
<int name="swim" value="0"/>
|
|
||||||
<int name="returnMap" value="300000010"/>
|
|
||||||
<int name="forcedReturn" value="300000010"/>
|
|
||||||
<float name="mobRate" value="1.0"/>
|
|
||||||
<string name="bgm" value="Bgm15/ElinForest"/>
|
<string name="bgm" value="Bgm15/ElinForest"/>
|
||||||
<string name="mapMark" value="EilnForest"/>
|
<int name="cloud" value="0"/>
|
||||||
|
<int name="swim" value="0"/>
|
||||||
|
<int name="forcedReturn" value="999999999"/>
|
||||||
<int name="hideMinimap" value="0"/>
|
<int name="hideMinimap" value="0"/>
|
||||||
<int name="fieldLimit" value="8958"/>
|
<string name="mapMark" value="EilnForest"/>
|
||||||
<int name="VRTop" value="-357"/>
|
<float name="mobRate" value="1.0"/>
|
||||||
|
<int name="returnMap" value="300000010"/>
|
||||||
|
<int name="town" value="1"/>
|
||||||
|
<int name="version" value="10"/>
|
||||||
|
<int name="fieldLimit" value="140024"/>
|
||||||
<int name="VRLeft" value="-359"/>
|
<int name="VRLeft" value="-359"/>
|
||||||
<int name="VRBottom" value="239"/>
|
|
||||||
<int name="VRRight" value="439"/>
|
<int name="VRRight" value="439"/>
|
||||||
</imgdir>
|
<int name="VRTop" value="-357"/>
|
||||||
<imgdir name="back">
|
<int name="VRBottom" value="239"/>
|
||||||
<imgdir name="0">
|
|
||||||
<string name="bS" value="ancientForest"/>
|
|
||||||
<int name="front" value="0"/>
|
|
||||||
<int name="ani" value="0"/>
|
|
||||||
<int name="no" value="0"/>
|
|
||||||
<int name="f" value="0"/>
|
|
||||||
<int name="x" value="0"/>
|
|
||||||
<int name="y" value="0"/>
|
|
||||||
<int name="rx" value="0"/>
|
|
||||||
<int name="ry" value="0"/>
|
|
||||||
<int name="type" value="3"/>
|
|
||||||
<int name="cx" value="0"/>
|
|
||||||
<int name="cy" value="0"/>
|
|
||||||
<int name="a" value="255"/>
|
|
||||||
</imgdir>
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="life">
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="reactor">
|
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="0">
|
<imgdir name="0">
|
||||||
<imgdir name="info">
|
<imgdir name="info">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="tile">
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="obj">
|
<imgdir name="obj">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
<imgdir name="tile">
|
||||||
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="1">
|
<imgdir name="1">
|
||||||
<imgdir name="info">
|
<imgdir name="info">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="tile">
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="obj">
|
<imgdir name="obj">
|
||||||
<imgdir name="0">
|
<imgdir name="0">
|
||||||
|
<int name="x" value="241"/>
|
||||||
|
<int name="y" value="91"/>
|
||||||
|
<int name="z" value="9"/>
|
||||||
|
<int name="zM" value="0"/>
|
||||||
<string name="oS" value="insideEL"/>
|
<string name="oS" value="insideEL"/>
|
||||||
<string name="l0" value="undergroundroom"/>
|
<string name="l0" value="undergroundroom"/>
|
||||||
<string name="l1" value="wall"/>
|
<string name="l1" value="wall"/>
|
||||||
<string name="l2" value="0"/>
|
<string name="l2" value="0"/>
|
||||||
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="0"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="1">
|
||||||
<int name="x" value="241"/>
|
<int name="x" value="241"/>
|
||||||
<int name="y" value="91"/>
|
<int name="y" value="91"/>
|
||||||
<int name="z" value="9"/>
|
<int name="z" value="9"/>
|
||||||
<int name="f" value="0"/>
|
<int name="zM" value="1"/>
|
||||||
<int name="zM" value="0"/>
|
|
||||||
<int name="r" value="0"/>
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="1">
|
|
||||||
<string name="oS" value="insideEL"/>
|
<string name="oS" value="insideEL"/>
|
||||||
<string name="l0" value="undergroundroom"/>
|
<string name="l0" value="undergroundroom"/>
|
||||||
<string name="l1" value="wall"/>
|
<string name="l1" value="wall"/>
|
||||||
<string name="l2" value="1"/>
|
<string name="l2" value="1"/>
|
||||||
<int name="x" value="241"/>
|
|
||||||
<int name="y" value="91"/>
|
|
||||||
<int name="z" value="9"/>
|
|
||||||
<int name="f" value="0"/>
|
|
||||||
<int name="zM" value="1"/>
|
|
||||||
<int name="r" value="0"/>
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="0"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="2">
|
<imgdir name="2">
|
||||||
|
<int name="x" value="-159"/>
|
||||||
|
<int name="y" value="-209"/>
|
||||||
|
<int name="z" value="9"/>
|
||||||
|
<int name="zM" value="0"/>
|
||||||
<string name="oS" value="insideEL"/>
|
<string name="oS" value="insideEL"/>
|
||||||
<string name="l0" value="undergroundroom"/>
|
<string name="l0" value="undergroundroom"/>
|
||||||
<string name="l1" value="wall"/>
|
<string name="l1" value="wall"/>
|
||||||
<string name="l2" value="2"/>
|
<string name="l2" value="2"/>
|
||||||
<int name="x" value="-159"/>
|
|
||||||
<int name="y" value="-209"/>
|
|
||||||
<int name="z" value="9"/>
|
|
||||||
<int name="f" value="0"/>
|
|
||||||
<int name="zM" value="0"/>
|
|
||||||
<int name="r" value="0"/>
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="0"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="3">
|
<imgdir name="3">
|
||||||
|
<int name="x" value="241"/>
|
||||||
|
<int name="y" value="-209"/>
|
||||||
|
<int name="z" value="9"/>
|
||||||
|
<int name="zM" value="0"/>
|
||||||
<string name="oS" value="insideEL"/>
|
<string name="oS" value="insideEL"/>
|
||||||
<string name="l0" value="undergroundroom"/>
|
<string name="l0" value="undergroundroom"/>
|
||||||
<string name="l1" value="wall"/>
|
<string name="l1" value="wall"/>
|
||||||
<string name="l2" value="3"/>
|
<string name="l2" value="3"/>
|
||||||
<int name="x" value="241"/>
|
|
||||||
<int name="y" value="-209"/>
|
|
||||||
<int name="z" value="9"/>
|
|
||||||
<int name="f" value="0"/>
|
|
||||||
<int name="zM" value="0"/>
|
|
||||||
<int name="r" value="0"/>
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="0"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="4">
|
<imgdir name="4">
|
||||||
|
<int name="x" value="64"/>
|
||||||
|
<int name="y" value="-62"/>
|
||||||
|
<int name="z" value="10"/>
|
||||||
|
<int name="zM" value="0"/>
|
||||||
<string name="oS" value="insideEL"/>
|
<string name="oS" value="insideEL"/>
|
||||||
<string name="l0" value="undergroundroom"/>
|
<string name="l0" value="undergroundroom"/>
|
||||||
<string name="l1" value="wall"/>
|
<string name="l1" value="wall"/>
|
||||||
<string name="l2" value="4"/>
|
<string name="l2" value="4"/>
|
||||||
<int name="x" value="64"/>
|
|
||||||
<int name="y" value="-62"/>
|
|
||||||
<int name="z" value="10"/>
|
|
||||||
<int name="f" value="0"/>
|
|
||||||
<int name="zM" value="0"/>
|
|
||||||
<int name="r" value="0"/>
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="0"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="5">
|
<imgdir name="5">
|
||||||
|
<int name="x" value="36"/>
|
||||||
|
<int name="y" value="98"/>
|
||||||
|
<int name="z" value="11"/>
|
||||||
|
<int name="zM" value="0"/>
|
||||||
<string name="oS" value="insideEL"/>
|
<string name="oS" value="insideEL"/>
|
||||||
<string name="l0" value="undergroundroom"/>
|
<string name="l0" value="undergroundroom"/>
|
||||||
<string name="l1" value="wall"/>
|
<string name="l1" value="wall"/>
|
||||||
<string name="l2" value="5"/>
|
<string name="l2" value="5"/>
|
||||||
<int name="x" value="36"/>
|
|
||||||
<int name="y" value="98"/>
|
|
||||||
<int name="z" value="11"/>
|
|
||||||
<int name="f" value="0"/>
|
|
||||||
<int name="zM" value="0"/>
|
|
||||||
<int name="r" value="0"/>
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="0"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="6">
|
<imgdir name="6">
|
||||||
|
<int name="x" value="-301"/>
|
||||||
|
<int name="y" value="102"/>
|
||||||
|
<int name="z" value="10"/>
|
||||||
|
<int name="zM" value="0"/>
|
||||||
<string name="oS" value="insideEL"/>
|
<string name="oS" value="insideEL"/>
|
||||||
<string name="l0" value="undergroundroom"/>
|
<string name="l0" value="undergroundroom"/>
|
||||||
<string name="l1" value="acc"/>
|
<string name="l1" value="acc"/>
|
||||||
<string name="l2" value="0"/>
|
<string name="l2" value="0"/>
|
||||||
<int name="x" value="-301"/>
|
|
||||||
<int name="y" value="102"/>
|
|
||||||
<int name="z" value="10"/>
|
|
||||||
<int name="f" value="0"/>
|
|
||||||
<int name="zM" value="0"/>
|
|
||||||
<int name="r" value="0"/>
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="0"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
<imgdir name="tile">
|
||||||
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="2">
|
<imgdir name="2">
|
||||||
<imgdir name="info">
|
<imgdir name="info">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="tile">
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="obj">
|
<imgdir name="obj">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
<imgdir name="tile">
|
||||||
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="3">
|
<imgdir name="3">
|
||||||
<imgdir name="info">
|
<imgdir name="info">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="tile">
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="obj">
|
<imgdir name="obj">
|
||||||
<imgdir name="0">
|
<imgdir name="0">
|
||||||
<string name="oS" value="insideEL"/>
|
|
||||||
<string name="l0" value="undergroundroom"/>
|
|
||||||
<string name="l1" value="frame"/>
|
|
||||||
<string name="l2" value="0"/>
|
|
||||||
<int name="x" value="-227"/>
|
<int name="x" value="-227"/>
|
||||||
<int name="y" value="-276"/>
|
<int name="y" value="-276"/>
|
||||||
<int name="z" value="9"/>
|
<int name="z" value="9"/>
|
||||||
<int name="f" value="0"/>
|
|
||||||
<int name="zM" value="0"/>
|
<int name="zM" value="0"/>
|
||||||
<int name="r" value="0"/>
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="1">
|
|
||||||
<string name="oS" value="insideEL"/>
|
|
||||||
<string name="l0" value="undergroundroom"/>
|
|
||||||
<string name="l1" value="frame"/>
|
|
||||||
<string name="l2" value="1"/>
|
|
||||||
<int name="x" value="-324"/>
|
|
||||||
<int name="y" value="-40"/>
|
|
||||||
<int name="z" value="9"/>
|
|
||||||
<int name="f" value="0"/>
|
|
||||||
<int name="zM" value="0"/>
|
|
||||||
<int name="r" value="0"/>
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="2">
|
|
||||||
<string name="oS" value="insideEL"/>
|
|
||||||
<string name="l0" value="undergroundroom"/>
|
|
||||||
<string name="l1" value="frame"/>
|
|
||||||
<string name="l2" value="2"/>
|
|
||||||
<int name="x" value="27"/>
|
|
||||||
<int name="y" value="100"/>
|
|
||||||
<int name="z" value="9"/>
|
|
||||||
<int name="f" value="0"/>
|
|
||||||
<int name="zM" value="0"/>
|
|
||||||
<int name="r" value="0"/>
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="3">
|
|
||||||
<string name="oS" value="insideEL"/>
|
|
||||||
<string name="l0" value="undergroundroom"/>
|
|
||||||
<string name="l1" value="frame"/>
|
|
||||||
<string name="l2" value="2"/>
|
|
||||||
<int name="x" value="55"/>
|
|
||||||
<int name="y" value="99"/>
|
|
||||||
<int name="z" value="9"/>
|
|
||||||
<int name="f" value="1"/>
|
|
||||||
<int name="zM" value="0"/>
|
|
||||||
<int name="r" value="0"/>
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="4">
|
|
||||||
<string name="oS" value="insideEL"/>
|
|
||||||
<string name="l0" value="undergroundroom"/>
|
|
||||||
<string name="l1" value="frame"/>
|
|
||||||
<string name="l2" value="1"/>
|
|
||||||
<int name="x" value="406"/>
|
|
||||||
<int name="y" value="-41"/>
|
|
||||||
<int name="z" value="9"/>
|
|
||||||
<int name="f" value="1"/>
|
|
||||||
<int name="zM" value="0"/>
|
|
||||||
<int name="r" value="0"/>
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="5">
|
|
||||||
<string name="oS" value="insideEL"/>
|
<string name="oS" value="insideEL"/>
|
||||||
<string name="l0" value="undergroundroom"/>
|
<string name="l0" value="undergroundroom"/>
|
||||||
<string name="l1" value="frame"/>
|
<string name="l1" value="frame"/>
|
||||||
<string name="l2" value="0"/>
|
<string name="l2" value="0"/>
|
||||||
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="0"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="1">
|
||||||
|
<int name="x" value="-324"/>
|
||||||
|
<int name="y" value="-40"/>
|
||||||
|
<int name="z" value="9"/>
|
||||||
|
<int name="zM" value="0"/>
|
||||||
|
<string name="oS" value="insideEL"/>
|
||||||
|
<string name="l0" value="undergroundroom"/>
|
||||||
|
<string name="l1" value="frame"/>
|
||||||
|
<string name="l2" value="1"/>
|
||||||
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="0"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="2">
|
||||||
|
<int name="x" value="27"/>
|
||||||
|
<int name="y" value="100"/>
|
||||||
|
<int name="z" value="9"/>
|
||||||
|
<int name="zM" value="0"/>
|
||||||
|
<string name="oS" value="insideEL"/>
|
||||||
|
<string name="l0" value="undergroundroom"/>
|
||||||
|
<string name="l1" value="frame"/>
|
||||||
|
<string name="l2" value="2"/>
|
||||||
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="0"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="3">
|
||||||
|
<int name="x" value="55"/>
|
||||||
|
<int name="y" value="99"/>
|
||||||
|
<int name="z" value="9"/>
|
||||||
|
<int name="zM" value="0"/>
|
||||||
|
<string name="oS" value="insideEL"/>
|
||||||
|
<string name="l0" value="undergroundroom"/>
|
||||||
|
<string name="l1" value="frame"/>
|
||||||
|
<string name="l2" value="2"/>
|
||||||
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="1"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="4">
|
||||||
|
<int name="x" value="406"/>
|
||||||
|
<int name="y" value="-41"/>
|
||||||
|
<int name="z" value="9"/>
|
||||||
|
<int name="zM" value="0"/>
|
||||||
|
<string name="oS" value="insideEL"/>
|
||||||
|
<string name="l0" value="undergroundroom"/>
|
||||||
|
<string name="l1" value="frame"/>
|
||||||
|
<string name="l2" value="1"/>
|
||||||
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="1"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="5">
|
||||||
<int name="x" value="309"/>
|
<int name="x" value="309"/>
|
||||||
<int name="y" value="-276"/>
|
<int name="y" value="-276"/>
|
||||||
<int name="z" value="9"/>
|
<int name="z" value="9"/>
|
||||||
<int name="f" value="1"/>
|
|
||||||
<int name="zM" value="0"/>
|
<int name="zM" value="0"/>
|
||||||
|
<string name="oS" value="insideEL"/>
|
||||||
|
<string name="l0" value="undergroundroom"/>
|
||||||
|
<string name="l1" value="frame"/>
|
||||||
|
<string name="l2" value="0"/>
|
||||||
<int name="r" value="0"/>
|
<int name="r" value="0"/>
|
||||||
|
<int name="f" value="1"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
<imgdir name="tile">
|
||||||
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="4">
|
<imgdir name="4">
|
||||||
<imgdir name="info">
|
<imgdir name="info">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="tile">
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="obj">
|
<imgdir name="obj">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
<imgdir name="tile">
|
||||||
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="5">
|
<imgdir name="5">
|
||||||
<imgdir name="info">
|
<imgdir name="info">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="tile">
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="obj">
|
<imgdir name="obj">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
<imgdir name="tile">
|
||||||
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="6">
|
<imgdir name="6">
|
||||||
<imgdir name="info">
|
<imgdir name="info">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="tile">
|
|
||||||
</imgdir>
|
|
||||||
<imgdir name="obj">
|
<imgdir name="obj">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
<imgdir name="tile">
|
||||||
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="7">
|
<imgdir name="7">
|
||||||
<imgdir name="info">
|
<imgdir name="info">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
<imgdir name="obj">
|
||||||
|
</imgdir>
|
||||||
<imgdir name="tile">
|
<imgdir name="tile">
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="obj">
|
</imgdir>
|
||||||
|
<imgdir name="ladderRope">
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="portal">
|
||||||
|
<imgdir name="0">
|
||||||
|
<int name="x" value="194"/>
|
||||||
|
<int name="y" value="19"/>
|
||||||
|
<int name="pt" value="0"/>
|
||||||
|
<int name="tm" value="999999999"/>
|
||||||
|
<string name="tn" value=""/>
|
||||||
|
<string name="pn" value="sp"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="1">
|
||||||
|
<int name="x" value="-306"/>
|
||||||
|
<int name="y" value="97"/>
|
||||||
|
<int name="pt" value="8"/>
|
||||||
|
<int name="tm" value="999999999"/>
|
||||||
|
<string name="tn" value=""/>
|
||||||
|
<string name="pn" value="portal"/>
|
||||||
|
<string name="script" value="jail_out"/>
|
||||||
|
</imgdir>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="reactor">
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="back">
|
||||||
|
<imgdir name="0">
|
||||||
|
<int name="x" value="0"/>
|
||||||
|
<int name="y" value="0"/>
|
||||||
|
<int name="rx" value="0"/>
|
||||||
|
<int name="ry" value="0"/>
|
||||||
|
<int name="cx" value="0"/>
|
||||||
|
<int name="cy" value="0"/>
|
||||||
|
<int name="a" value="255"/>
|
||||||
|
<int name="type" value="3"/>
|
||||||
|
<int name="front" value="0"/>
|
||||||
|
<int name="f" value="0"/>
|
||||||
|
<string name="bS" value="ancientForest"/>
|
||||||
|
<int name="ani" value="0"/>
|
||||||
|
<int name="no" value="0"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="foothold">
|
<imgdir name="foothold">
|
||||||
@@ -269,8 +288,6 @@
|
|||||||
<int name="prev" value="0"/>
|
<int name="prev" value="0"/>
|
||||||
<int name="next" value="2"/>
|
<int name="next" value="2"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
|
||||||
<imgdir name="1">
|
|
||||||
<imgdir name="2">
|
<imgdir name="2">
|
||||||
<int name="x1" value="49"/>
|
<int name="x1" value="49"/>
|
||||||
<int name="y1" value="98"/>
|
<int name="y1" value="98"/>
|
||||||
@@ -282,16 +299,6 @@
|
|||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="ladderRope">
|
<imgdir name="life">
|
||||||
</imgdir>
|
|
||||||
<imgdir name="portal">
|
|
||||||
<imgdir name="0">
|
|
||||||
<string name="pn" value="sp"/>
|
|
||||||
<int name="pt" value="0"/>
|
|
||||||
<int name="x" value="194"/>
|
|
||||||
<int name="y" value="19"/>
|
|
||||||
<int name="tm" value="999999999"/>
|
|
||||||
<string name="tn" value=""/>
|
|
||||||
</imgdir>
|
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
|||||||
Reference in New Issue
Block a user