diff --git a/build/built-jar.properties b/build/built-jar.properties index 5dc1e98207..aa4fb80ec9 100644 --- a/build/built-jar.properties +++ b/build/built-jar.properties @@ -1,4 +1,4 @@ -#Sun, 11 Jun 2017 10:57:26 -0300 +#Mon, 12 Jun 2017 14:40:21 -0300 C\:\\Nexon\\MapleSolaxia\\MapleSolaxiaV2= diff --git a/build/classes/client/MapleCharacter$10.class b/build/classes/client/MapleCharacter$10.class index 98746842a6..0c94467ef7 100644 Binary files a/build/classes/client/MapleCharacter$10.class and b/build/classes/client/MapleCharacter$10.class differ diff --git a/build/classes/client/MapleCharacter$11.class b/build/classes/client/MapleCharacter$11.class index f9aa6c0cfe..90b2a95c62 100644 Binary files a/build/classes/client/MapleCharacter$11.class and b/build/classes/client/MapleCharacter$11.class differ diff --git a/build/classes/client/MapleCharacter$12.class b/build/classes/client/MapleCharacter$12.class index 9ae33780d7..3d7e57afdd 100644 Binary files a/build/classes/client/MapleCharacter$12.class and b/build/classes/client/MapleCharacter$12.class differ diff --git a/build/classes/client/MapleCharacter$13.class b/build/classes/client/MapleCharacter$13.class index bde7bd413a..563c8c25f8 100644 Binary files a/build/classes/client/MapleCharacter$13.class and b/build/classes/client/MapleCharacter$13.class differ diff --git a/build/classes/client/MapleCharacter$14.class b/build/classes/client/MapleCharacter$14.class index 50f0ee568b..d4334e38c8 100644 Binary files a/build/classes/client/MapleCharacter$14.class and b/build/classes/client/MapleCharacter$14.class differ diff --git a/build/classes/client/MapleCharacter$15.class b/build/classes/client/MapleCharacter$15.class index fdfa3e4a56..c20247f2ec 100644 Binary files a/build/classes/client/MapleCharacter$15.class and b/build/classes/client/MapleCharacter$15.class differ diff --git a/build/classes/client/MapleCharacter$16.class b/build/classes/client/MapleCharacter$16.class index 786f72a22e..8b3e2f8fb0 100644 Binary files a/build/classes/client/MapleCharacter$16.class and b/build/classes/client/MapleCharacter$16.class differ diff --git a/build/classes/client/MapleCharacter$17.class b/build/classes/client/MapleCharacter$17.class index 817a5bd7d9..f664b9de83 100644 Binary files a/build/classes/client/MapleCharacter$17.class and b/build/classes/client/MapleCharacter$17.class differ diff --git a/build/classes/client/MapleCharacter$18.class b/build/classes/client/MapleCharacter$18.class index 1c874a4885..1cc5779651 100644 Binary files a/build/classes/client/MapleCharacter$18.class and b/build/classes/client/MapleCharacter$18.class differ diff --git a/build/classes/client/MapleCharacter$7.class b/build/classes/client/MapleCharacter$7.class index 41710b5734..3f6b1c79cb 100644 Binary files a/build/classes/client/MapleCharacter$7.class and b/build/classes/client/MapleCharacter$7.class differ diff --git a/build/classes/client/MapleCharacter$8.class b/build/classes/client/MapleCharacter$8.class index 3c53eda8b1..d75ca0dd3f 100644 Binary files a/build/classes/client/MapleCharacter$8.class and b/build/classes/client/MapleCharacter$8.class differ diff --git a/build/classes/client/MapleCharacter$9.class b/build/classes/client/MapleCharacter$9.class index 1f3ced3200..7a3e5d0847 100644 Binary files a/build/classes/client/MapleCharacter$9.class and b/build/classes/client/MapleCharacter$9.class differ diff --git a/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class b/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class index 71ac2054c5..ea01bf7f92 100644 Binary files a/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class and b/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class differ diff --git a/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class b/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class index 2685700530..f62461f241 100644 Binary files a/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class and b/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class differ diff --git a/build/classes/client/MapleCharacter$SkillEntry.class b/build/classes/client/MapleCharacter$SkillEntry.class index 121ed4546f..59947544f6 100644 Binary files a/build/classes/client/MapleCharacter$SkillEntry.class and b/build/classes/client/MapleCharacter$SkillEntry.class differ diff --git a/build/classes/client/MapleCharacter.class b/build/classes/client/MapleCharacter.class index 2e6e076ea5..9a4f431270 100644 Binary files a/build/classes/client/MapleCharacter.class and b/build/classes/client/MapleCharacter.class differ diff --git a/build/classes/net/server/Server$1.class b/build/classes/net/server/Server$1.class index 29a4d8a87d..e3bb2746e5 100644 Binary files a/build/classes/net/server/Server$1.class and b/build/classes/net/server/Server$1.class differ diff --git a/build/classes/net/server/Server.class b/build/classes/net/server/Server.class index f89934da00..69a961adad 100644 Binary files a/build/classes/net/server/Server.class and b/build/classes/net/server/Server.class differ diff --git a/build/classes/net/server/channel/handlers/GuildOperationHandler.class b/build/classes/net/server/channel/handlers/GuildOperationHandler.class index 80b724b9e6..7fa6382f58 100644 Binary files a/build/classes/net/server/channel/handlers/GuildOperationHandler.class and b/build/classes/net/server/channel/handlers/GuildOperationHandler.class differ diff --git a/build/classes/net/server/guild/MapleGuild.class b/build/classes/net/server/guild/MapleGuild.class index f519cead26..8d99550387 100644 Binary files a/build/classes/net/server/guild/MapleGuild.class and b/build/classes/net/server/guild/MapleGuild.class differ diff --git a/build/classes/net/server/guild/MapleGuildCharacter.class b/build/classes/net/server/guild/MapleGuildCharacter.class index 159f9f587e..d809ec1d7c 100644 Binary files a/build/classes/net/server/guild/MapleGuildCharacter.class and b/build/classes/net/server/guild/MapleGuildCharacter.class differ diff --git a/build/classes/net/server/world/World$1.class b/build/classes/net/server/world/World$1.class index 7f55db4019..56e9a73b06 100644 Binary files a/build/classes/net/server/world/World$1.class and b/build/classes/net/server/world/World$1.class differ diff --git a/build/classes/net/server/world/World.class b/build/classes/net/server/world/World.class index 4abf3be6fa..842b441318 100644 Binary files a/build/classes/net/server/world/World.class and b/build/classes/net/server/world/World.class differ diff --git a/build/classes/scripting/event/EventInstanceManager$1.class b/build/classes/scripting/event/EventInstanceManager$1.class index 3134159c26..07dfe3fb98 100644 Binary files a/build/classes/scripting/event/EventInstanceManager$1.class and b/build/classes/scripting/event/EventInstanceManager$1.class differ diff --git a/build/classes/scripting/event/EventInstanceManager$2.class b/build/classes/scripting/event/EventInstanceManager$2.class index 5c6a3897c7..c950298c1b 100644 Binary files a/build/classes/scripting/event/EventInstanceManager$2.class and b/build/classes/scripting/event/EventInstanceManager$2.class differ diff --git a/build/classes/scripting/event/EventInstanceManager$3.class b/build/classes/scripting/event/EventInstanceManager$3.class index 13a9ea440b..ab7e253a22 100644 Binary files a/build/classes/scripting/event/EventInstanceManager$3.class and b/build/classes/scripting/event/EventInstanceManager$3.class differ diff --git a/build/classes/scripting/event/EventInstanceManager.class b/build/classes/scripting/event/EventInstanceManager.class index 956b7b3376..d8cc1af832 100644 Binary files a/build/classes/scripting/event/EventInstanceManager.class and b/build/classes/scripting/event/EventInstanceManager.class differ diff --git a/build/classes/server/MapleStatEffect.class b/build/classes/server/MapleStatEffect.class index c63a0e0565..0bfbc621fb 100644 Binary files a/build/classes/server/MapleStatEffect.class and b/build/classes/server/MapleStatEffect.class differ diff --git a/build/classes/tools/MaplePacketCreator.class b/build/classes/tools/MaplePacketCreator.class index d66d8edeff..e464d333f1 100644 Binary files a/build/classes/tools/MaplePacketCreator.class and b/build/classes/tools/MaplePacketCreator.class differ diff --git a/dist/MapleSolaxia.jar b/dist/MapleSolaxia.jar index 058b9e37c3..856984c5cd 100644 Binary files a/dist/MapleSolaxia.jar and b/dist/MapleSolaxia.jar differ diff --git a/mychanges_ptbr.txt b/mychanges_ptbr.txt index 666f830175..4c25d7f28f 100644 --- a/mychanges_ptbr.txt +++ b/mychanges_ptbr.txt @@ -306,4 +306,7 @@ Implementa 11 Junho 2016, Correção de alguns bugs vindos com o commit da OPQ. -Incrementada a documentação referente aos métodos usados nos scripts de eventos. \ No newline at end of file +Incrementada a documentação referente aos métodos usados nos scripts de eventos. + +12 Junho 2016, +Correção de falha em criação de guilds, não atribuindo corretamente o título de mestre da guild ao criador. \ No newline at end of file diff --git a/scripts/event/OrbisPQ.js b/scripts/event/OrbisPQ.js index 044efdeb03..391318651e 100644 --- a/scripts/event/OrbisPQ.js +++ b/scripts/event/OrbisPQ.js @@ -138,9 +138,18 @@ function setup(level, lobbyid) { return eim; } +function isTeamAllJobs(eim) { + var eventJobs = eim.getEventPlayersJobs(); + var rangeJobs = parseInt('111110', 2); + + return ((eventJobs & rangeJobs) == rangeJobs); +} + function afterSetup(eim) { - var rnd = Math.floor(Math.random() * 4); - eim.applyEventPlayersItemBuff(2022090 + rnd); + if(isTeamAllJobs(eim)) { + var rnd = Math.floor(Math.random() * 4); + eim.applyEventPlayersItemBuff(2022090 + rnd); + } } function respawnStages(eim) {} diff --git a/scripts/npc/2013000.js b/scripts/npc/2013000.js index 54eecd98c6..9cb383cead 100644 --- a/scripts/npc/2013000.js +++ b/scripts/npc/2013000.js @@ -61,7 +61,7 @@ function action(mode, type, selection) { cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); cm.dispose(); } else if (selection == 2) { - cm.sendOk("#e#b#k#n\r\nOur goddess has been missing since some time ago, rumor has it She has been seen last time inside the Tower of Goddess. Furthermore, our sanctuary has been seized by the overwhelming forces of the pixies, those beings that are recently wandering at the outskirts of Orbis. Their leader, Papa Pixie, currently holds the throne and may know Her whereabouts, so we urge to find a composition of brave heroes to charge into and claim back our sanctuary and rescue Her. Will you join us?\r\n"); + cm.sendOk("#e#b#k#n\r\nOur goddess has been missing since some time ago, rumor has it She has been seen last time inside the Tower of Goddess. Furthermore, our sanctuary has been seized by the overwhelming forces of the pixies, those beings that are recently wandering at the outskirts of Orbis. Their leader, Papa Pixie, currently holds the throne and may know Her whereabouts, so we urge to find a composition of brave heroes to charge into and claim back our sanctuary and rescue Her. If your team is able to be a composite of every job niche available (Warrior, Magician, Bowman, Thief and Pirate), you guys will receive my blessings to aid you in battle. Will you aid us?\r\n"); cm.dispose(); } else { diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java index d871339d66..dae423c560 100644 --- a/src/client/MapleCharacter.java +++ b/src/client/MapleCharacter.java @@ -182,7 +182,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { private int currentPage, currentType = 0, currentTab = 1; private int chair; private int itemEffect; - private int guildid, guildrank, allianceRank; + private int guildid, guildRank, allianceRank; private int messengerposition = 4; private int slots = 0; private int energybar; @@ -1203,11 +1203,11 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { this.closePlayerInteractions(); client.announce(warpPacket); - map.removePlayer(MapleCharacter.this); + map.removePlayer(this); if (client.getChannelServer().getPlayerStorage().getCharacterById(getId()) != null) { map = to; setPosition(pos); - map.addPlayer(MapleCharacter.this); + map.addPlayer(this); if (party != null) { mpc.setMapId(to.getId()); silentPartyUpdate(); @@ -1808,7 +1808,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } public void disbandGuild() { - if (guildid < 1 || guildrank != 1) { + if (guildid < 1 || guildRank != 1) { return; } try { @@ -2436,7 +2436,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } public int getGuildRank() { - return guildrank; + return guildRank; } public int getHair() { @@ -3810,7 +3810,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { int mountlevel = rs.getInt("mountlevel"); int mounttiredness = rs.getInt("mounttiredness"); ret.guildid = rs.getInt("guildid"); - ret.guildrank = rs.getInt("guildrank"); + ret.guildRank = rs.getInt("guildrank"); ret.allianceRank = rs.getInt("allianceRank"); ret.familyId = rs.getInt("familyId"); ret.bookCover = rs.getInt("monsterbookcover"); @@ -3820,9 +3820,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { ret.dojoPoints = rs.getInt("dojoPoints"); ret.dojoStage = rs.getInt("lastDojoStage"); ret.dataString = rs.getString("dataString"); - if (ret.guildid > 0) { - ret.mgc = new MapleGuildCharacter(ret); // oh boy, that's quite funny - } + if (ret.guildid > 0) ret.mgc = new MapleGuildCharacter(ret); int buddyCapacity = rs.getInt("buddyCapacity"); ret.buddylist = new BuddyList(buddyCapacity); ret.getInventory(MapleInventoryType.EQUIP).setSlotLimit(rs.getByte("equipslots")); @@ -4639,7 +4637,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { try { try (PreparedStatement ps = DatabaseConnection.getConnection().prepareStatement("UPDATE characters SET guildid = ?, guildrank = ?, allianceRank = ? WHERE id = ?")) { ps.setInt(1, guildid); - ps.setInt(2, guildrank); + ps.setInt(2, guildRank); ps.setInt(3, allianceRank); ps.setInt(4, id); ps.executeUpdate(); @@ -5087,10 +5085,6 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } } - public void setAllianceRank(int rank) { - allianceRank = rank; - } - public void setAllowWarpToId(int id) { this.warpToId = id; } @@ -5205,14 +5199,17 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } } else { mgc = null; + guildRank = 5; + allianceRank = 5; } } public void setGuildRank(int _rank) { - guildrank = _rank; - if (mgc != null) { - mgc.setGuildRank(_rank); - } + guildRank = _rank; + } + + public void setAllianceRank(int _rank) { + allianceRank = _rank; } public void setHair(int hair) { diff --git a/src/net/server/Server.java b/src/net/server/Server.java index dbbd1dda8a..b0fa5880f2 100644 --- a/src/net/server/Server.java +++ b/src/net/server/Server.java @@ -499,11 +499,8 @@ public class Server implements Runnable { } if(mc != null) { - MapleGuildCharacter mgc = mc.getMGC(); - if (mgc != null) { - g.setOnline(mgc.getId(), true, mgc.getChannel()); - mc.setMGC(g.getMGC(mc.getId())); // i really REALLY must make player MGC the same as the guild MGC - } + g.addGuildMember(mc.getMGC()); // i really REALLY must make player MGC the same as the guild MGC + g.setOnline(mc.getId(), true, mc.getClient().getChannel()); } guilds.put(id, g); diff --git a/src/net/server/channel/handlers/GuildOperationHandler.java b/src/net/server/channel/handlers/GuildOperationHandler.java index dda5268203..7248626da9 100644 --- a/src/net/server/channel/handlers/GuildOperationHandler.java +++ b/src/net/server/channel/handlers/GuildOperationHandler.java @@ -22,6 +22,7 @@ package net.server.channel.handlers; import net.server.guild.MapleGuildResponse; +import net.server.guild.MapleGuildCharacter; import net.server.guild.MapleGuild; import client.MapleClient; import net.AbstractMaplePacketHandler; @@ -30,7 +31,6 @@ import java.util.Iterator; import tools.MaplePacketCreator; import client.MapleCharacter; import net.server.Server; -import net.server.guild.MapleAlliance; public final class GuildOperationHandler extends AbstractMaplePacketHandler { private boolean isGuildNameAcceptable(String name) { @@ -123,16 +123,13 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { return; } mc.gainMeso(-MapleGuild.CREATE_GUILD_COST, true, false, true); - mc.setGuildId(gid); - mc.setGuildRank(1); - mc.setAllianceRank(5); - MapleGuild guild = Server.getInstance().getGuild(mc.getGuildId(), c.getWorld(), mc); // initialize guild structure - guild.getMGC(guild.getLeaderId()).setCharacter(mc); + Server.getInstance().getWorld(mc.getWorld()).setGuildAndRank(mc.getId(), gid, 1); + Server.getInstance().setGuildMemberOnline(mc, true, mc.getClient().getChannel()); + c.announce(MaplePacketCreator.showGuildInfo(mc)); c.getPlayer().dropMessage(1, "You have successfully created a Guild."); - respawnPlayer(mc); break; case 0x05: if (mc.getGuildId() <= 0 || mc.getGuildRank() > 2) { diff --git a/src/net/server/guild/MapleGuild.java b/src/net/server/guild/MapleGuild.java index b03917df1c..1d3c936877 100644 --- a/src/net/server/guild/MapleGuild.java +++ b/src/net/server/guild/MapleGuild.java @@ -47,7 +47,7 @@ public class MapleGuild { private enum BCOp { NONE, DISBAND, EMBLEMCHANGE } - private List members; + private final List members; private String rankTitles[] = new String[5]; // 1 = master, 2 = jr, 5 = lowest member private String name, notice; private int id, gp, logo, logoColor, leader, capacity, logoBG, logoBGColor, signature, allianceId; diff --git a/src/net/server/guild/MapleGuildCharacter.java b/src/net/server/guild/MapleGuildCharacter.java index ce79f188ff..5f199a96c0 100644 --- a/src/net/server/guild/MapleGuildCharacter.java +++ b/src/net/server/guild/MapleGuildCharacter.java @@ -112,13 +112,23 @@ public class MapleGuildCharacter { public void setGuildId(int gid) { guildid = gid; } + + public int getGuildRank() { + return guildrank; + } public void setGuildRank(int rank) { guildrank = rank; + if(character != null) character.setGuildRank(rank); } - - public int getGuildRank() { - return guildrank; + + public int getAllianceRank() { + return allianceRank; + } + + public void setAllianceRank(int rank) { + allianceRank = rank; + if(character != null) character.setAllianceRank(rank); } public boolean isOnline() { @@ -133,15 +143,6 @@ public class MapleGuildCharacter { return name; } - public void setAllianceRank(int rank) { - allianceRank = rank; - if(character != null) character.setAllianceRank(rank); - } - - public int getAllianceRank() { - return allianceRank; - } - @Override public boolean equals(Object other) { if (!(other instanceof MapleGuildCharacter)) { diff --git a/src/net/server/world/World.java b/src/net/server/world/World.java index 468c0a4d2c..995ef36e84 100644 --- a/src/net/server/world/World.java +++ b/src/net/server/world/World.java @@ -266,7 +266,13 @@ public class World { } else { bDifferentGuild = guildid != mc.getGuildId(); mc.setGuildId(guildid); - mc.setGuildRank(rank); + + MapleGuildCharacter mgc = mc.getMGC(); + if(mgc != null) { + mgc.setGuildRank(rank); + if(bDifferentGuild) mgc.setAllianceRank(5); + } + mc.saveGuildStatus(); } if (bDifferentGuild) { diff --git a/src/scripting/event/EventInstanceManager.java b/src/scripting/event/EventInstanceManager.java index 52d584ccff..11255c2cc3 100644 --- a/src/scripting/event/EventInstanceManager.java +++ b/src/scripting/event/EventInstanceManager.java @@ -117,6 +117,18 @@ public class EventInstanceManager { return em; } + public int getEventPlayersJobs() { + //Bits -> 0: BEGINNER 1: WARRIOR 2: MAGICIAN + // 3: BOWMAN 4: THIEF 5: PIRATE + + int mask = 0; + for(MapleCharacter chr: getPlayers()) { + mask |= (1 << chr.getJob().getJobNiche()); + } + + return mask; + } + public void applyEventPlayersItemBuff(int itemId) { List players = getPlayerList(); MapleStatEffect mse = MapleItemInformationProvider.getInstance().getItemEffect(itemId); diff --git a/src/tools/MaplePacketCreator.java b/src/tools/MaplePacketCreator.java index 20865227d5..c6cde6b4ab 100644 --- a/src/tools/MaplePacketCreator.java +++ b/src/tools/MaplePacketCreator.java @@ -3730,8 +3730,6 @@ public class MaplePacketCreator { if (g == null) { //failed to read from DB - don't show a guild mplew.write(0); return mplew.getPacket(); - } else { - c.setGuildRank(c.getGuildRank()); } mplew.write(1); //bInGuild mplew.writeInt(g.getId());