White scroll & PiratePQ fix + Party for starters + concurrency protection on event scripts

Fixed successful scrolled items not using up an upgrade slot when using white scroll. Fixed some issues with the PiratePQ and added a "clear all boxes to complete a stage"-mode. Added "Party for Starters" feature. Added concurrency protection on event script modules.
This commit is contained in:
ronancpl
2017-10-13 03:31:51 -03:00
parent 6e1442af30
commit 1ec7487bd3
96 changed files with 470 additions and 109 deletions

View File

@@ -21,6 +21,7 @@
*/
package net.server.world;
import client.MapleClient;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
@@ -195,6 +196,24 @@ public class MapleParty {
return slot;
}
public void assignNewLeader(MapleClient c) {
World world = c.getWorldServer();
MaplePartyCharacter newLeadr = null;
lock.lock();
try {
for(MaplePartyCharacter mpc : members) {
if(mpc.getId() != leaderId && (newLeadr == null || newLeadr.getLevel() < mpc.getLevel())) {
newLeadr = mpc;
}
}
} finally {
lock.unlock();
}
if(newLeadr != null) world.updateParty(this.getId(), PartyOperation.CHANGE_LEADER, newLeadr);
}
@Override
public int hashCode() {
final int prime = 31;

View File

@@ -27,7 +27,6 @@ import java.util.LinkedHashMap;
import java.util.Collection;
import server.maps.MapleDoor;
import server.MapleStatEffect;
import client.MapleCharacter;
import client.MapleJob;
import java.util.Collections;

View File

@@ -400,8 +400,8 @@ public class World {
chr.setParty(null);
chr.setMPC(null);
}
default:
break;
default:
break;
}
}