Reactor drops & Looting & Mob HP overhaul + TreasurePQ
Modified coupon rates buff icon to not show up as expirable. Reactor drops now also drops quest items at the border of the dropped items. Added themed drop data for the Cake boss. Reworked the Balrog expedition. Added quest script for the Assassinate skill. Fixed looting system blocking the killer's party from retrieving a loot until the FFA timeout. Fixed a deadlock with the MapleMap class. Refactored damage/heal contabilization on mobs. Fixed issues with HT and status-based damage, providing weird issues with mob HP. New PQ: TreasurePQ, for level 140+.
This commit is contained in:
@@ -33,7 +33,7 @@ public class MapleMapItem extends AbstractMapleMapObject {
|
||||
protected MapleClient ownerClient;
|
||||
protected Item item;
|
||||
protected MapleMapObject dropper;
|
||||
protected int character_ownerid, meso, questid = -1;
|
||||
protected int character_ownerid, party_ownerid, meso, questid = -1;
|
||||
protected byte type;
|
||||
protected boolean pickedUp = false, playerDrop;
|
||||
protected long dropTime;
|
||||
@@ -43,7 +43,8 @@ public class MapleMapItem extends AbstractMapleMapObject {
|
||||
setPosition(position);
|
||||
this.item = item;
|
||||
this.dropper = dropper;
|
||||
this.character_ownerid = owner.getId();
|
||||
this.character_ownerid = owner.getId();
|
||||
this.party_ownerid = owner.getPartyId();
|
||||
this.ownerClient = owner.getClient();
|
||||
this.meso = 0;
|
||||
this.type = type;
|
||||
@@ -54,7 +55,8 @@ public class MapleMapItem extends AbstractMapleMapObject {
|
||||
setPosition(position);
|
||||
this.item = item;
|
||||
this.dropper = dropper;
|
||||
this.character_ownerid = owner.getParty() == null ? owner.getId() : owner.getPartyId();
|
||||
this.character_ownerid = owner.getId();
|
||||
this.party_ownerid = owner.getPartyId();
|
||||
this.ownerClient = owner.getClient();
|
||||
this.meso = 0;
|
||||
this.type = type;
|
||||
@@ -66,8 +68,9 @@ public class MapleMapItem extends AbstractMapleMapObject {
|
||||
setPosition(position);
|
||||
this.item = null;
|
||||
this.dropper = dropper;
|
||||
this.character_ownerid = owner.getParty() == null ? owner.getId() : owner.getPartyId();
|
||||
this.ownerClient = owner.getClient();
|
||||
this.character_ownerid = owner.getId();
|
||||
this.party_ownerid = owner.getPartyId();
|
||||
this.ownerClient = owner.getClient();
|
||||
this.meso = meso;
|
||||
this.type = type;
|
||||
this.playerDrop = playerDrop;
|
||||
@@ -90,10 +93,32 @@ public class MapleMapItem extends AbstractMapleMapObject {
|
||||
return dropper;
|
||||
}
|
||||
|
||||
public final int getOwner() {
|
||||
public final int getOwnerId() {
|
||||
return character_ownerid;
|
||||
}
|
||||
|
||||
public final boolean canBePickedBy(MapleCharacter chr) {
|
||||
if (character_ownerid <= 0) return true;
|
||||
|
||||
if (party_ownerid == -1) {
|
||||
if (chr.getId() == character_ownerid) {
|
||||
return true;
|
||||
} else if (chr.isPartyMember(character_ownerid)) {
|
||||
party_ownerid = chr.getPartyId();
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (chr.getPartyId() == party_ownerid) {
|
||||
return true;
|
||||
} else if (chr.getId() == character_ownerid) {
|
||||
party_ownerid = chr.getPartyId();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return System.currentTimeMillis() - dropTime >= 15 * 1000;
|
||||
}
|
||||
|
||||
public final MapleClient getOwnerClient() {
|
||||
return (ownerClient.isLoggedIn() && !ownerClient.getPlayer().isAwayFromWorld()) ? ownerClient : null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user