Fixed Guild Creation
Fixed a bug on guild creation process where the leadership would not be assigned instantly to the guild leader (would need to change channels or reconnect to take effect).
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
#Sun, 11 Jun 2017 10:57:26 -0300
|
||||
#Mon, 12 Jun 2017 14:40:21 -0300
|
||||
|
||||
|
||||
C\:\\Nexon\\MapleSolaxia\\MapleSolaxiaV2=
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
dist/MapleSolaxia.jar
vendored
BIN
dist/MapleSolaxia.jar
vendored
Binary file not shown.
@@ -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.
|
||||
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.
|
||||
@@ -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) {}
|
||||
|
||||
@@ -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<Party Quest: Tower of Goddess>#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<Party Quest: Tower of Goddess>#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 {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -47,7 +47,7 @@ public class MapleGuild {
|
||||
private enum BCOp {
|
||||
NONE, DISBAND, EMBLEMCHANGE
|
||||
}
|
||||
private List<MapleGuildCharacter> members;
|
||||
private final List<MapleGuildCharacter> 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;
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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<MapleCharacter> players = getPlayerList();
|
||||
MapleStatEffect mse = MapleItemInformationProvider.getInstance().getItemEffect(itemId);
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user