The great MCPQ Merge offensive
Fulfilled the lovely pull request #427 from @dragoso, which added in backing code content to HeavenMS. Implemented structural changes for the Marriage wishlist, in order to receive, maintain and distribute gifts to spouses. Added untradeable check on wishlist gift handler. Adjusted CPQ drops to actually load from DB rathe than hard-coded. Fixed CPQ "random disease to player/party" functionality not applying properly. Adjusted how CPQ maps are generated. It directly loads a new area from WZ (this process should at least removes the player's spawned mobs) rather than reset the cache at every MCPQ creation.
This commit is contained in:
@@ -33,6 +33,7 @@ import server.life.MapleLifeFactory;
|
||||
import server.life.MapleMonster;
|
||||
import server.partyquest.MapleCarnivalFactory;
|
||||
import server.partyquest.MapleCarnivalFactory.MCSkill;
|
||||
import server.partyquest.MonsterCarnival;
|
||||
import tools.MaplePacketCreator;
|
||||
import tools.Pair;
|
||||
import tools.data.input.SeekableLittleEndianAccessor;
|
||||
@@ -46,87 +47,95 @@ public final class MonsterCarnivalHandler extends AbstractMaplePacketHandler {
|
||||
|
||||
@Override
|
||||
public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
c.tryacquireClient();
|
||||
try {
|
||||
int tab = slea.readByte();
|
||||
int num = slea.readByte();
|
||||
int neededCP = 0;
|
||||
if (tab == 0) {
|
||||
final List<Pair<Integer, Integer>> mobs = c.getPlayer().getMap().getMobsToSpawn();
|
||||
if (num >= mobs.size() || c.getPlayer().getCP() < mobs.get(num).right) {
|
||||
c.announce(MaplePacketCreator.CPQMessage((byte) 1));
|
||||
c.getSession().write(MaplePacketCreator.enableActions());
|
||||
return;
|
||||
}
|
||||
|
||||
final MapleMonster mob = MapleLifeFactory.getMonster(mobs.get(num).left);
|
||||
if (c.getPlayer().getMonsterCarnival() != null) {
|
||||
Point spawnPos = c.getPlayer().getMap().getRandomSP(c.getPlayer().getTeam());
|
||||
if (!c.getPlayer().getMonsterCarnival().canSummon() && c.getPlayer().getTeam() == 0 || !c.getPlayer().getMonsterCarnival().canSummons() && c.getPlayer().getTeam() == 1) {
|
||||
c.announce(MaplePacketCreator.CPQMessage((byte) 2));
|
||||
c.getSession().write(MaplePacketCreator.enableActions());
|
||||
try {
|
||||
int tab = slea.readByte();
|
||||
int num = slea.readByte();
|
||||
int neededCP = 0;
|
||||
if (tab == 0) {
|
||||
final List<Pair<Integer, Integer>> mobs = c.getPlayer().getMap().getMobsToSpawn();
|
||||
if (num >= mobs.size() || c.getPlayer().getCP() < mobs.get(num).right) {
|
||||
c.announce(MaplePacketCreator.CPQMessage((byte) 1));
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
return;
|
||||
}
|
||||
mob.setPosition(spawnPos);
|
||||
if (c.getPlayer().getTeam() == 0) {
|
||||
c.getPlayer().getMonsterCarnival().summon();
|
||||
} else {
|
||||
c.getPlayer().getMonsterCarnival().summons();
|
||||
}
|
||||
|
||||
final MapleMonster mob = MapleLifeFactory.getMonster(mobs.get(num).left);
|
||||
MonsterCarnival mcpq = c.getPlayer().getMonsterCarnival();
|
||||
if (mcpq != null) {
|
||||
if (!mcpq.canSummonR() && c.getPlayer().getTeam() == 0 || !mcpq.canSummonB() && c.getPlayer().getTeam() == 1) {
|
||||
c.announce(MaplePacketCreator.CPQMessage((byte) 2));
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
return;
|
||||
}
|
||||
|
||||
if (c.getPlayer().getTeam() == 0) {
|
||||
mcpq.summonR();
|
||||
} else {
|
||||
mcpq.summonB();
|
||||
}
|
||||
|
||||
Point spawnPos = c.getPlayer().getMap().getRandomSP(c.getPlayer().getTeam());
|
||||
mob.setPosition(spawnPos);
|
||||
|
||||
c.getPlayer().getMap().addMonsterSpawn(mob, 1, c.getPlayer().getTeam());
|
||||
c.getSession().write(MaplePacketCreator.enableActions());
|
||||
c.getPlayer().getMap().addAllMonsterSpawn(mob, 1, c.getPlayer().getTeam());
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
}
|
||||
|
||||
neededCP = mobs.get(num).right;
|
||||
} else if (tab == 1) { //debuffs
|
||||
final List<Integer> skillid = c.getPlayer().getMap().getSkillIds();
|
||||
if (num >= skillid.size()) {
|
||||
c.getPlayer().dropMessage(5, "Ocorreu um erro.");
|
||||
c.getSession().write(MaplePacketCreator.enableActions());
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
return;
|
||||
}
|
||||
final MCSkill skil = MapleCarnivalFactory.getInstance().getSkill(skillid.get(num)); //ugh wtf
|
||||
if (skil == null || c.getPlayer().getCP() < skil.cpLoss) {
|
||||
final MCSkill skill = MapleCarnivalFactory.getInstance().getSkill(skillid.get(num)); //ugh wtf
|
||||
if (skill == null || c.getPlayer().getCP() < skill.cpLoss) {
|
||||
c.announce(MaplePacketCreator.CPQMessage((byte) 1));
|
||||
c.getSession().write(MaplePacketCreator.enableActions());
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
return;
|
||||
}
|
||||
final MapleDisease dis = skil.getDisease();
|
||||
MapleParty inimigos = c.getPlayer().getParty().getEnemy();
|
||||
if (skil.targetsAll) {
|
||||
final MapleDisease dis = skill.getDisease();
|
||||
MapleParty enemies = c.getPlayer().getParty().getEnemy();
|
||||
if (skill.targetsAll) {
|
||||
int chanceAcerto = 0;
|
||||
if (dis.getDisease() == 121 || dis.getDisease() == 122 || dis.getDisease() == 125 || dis.getDisease() == 126) {
|
||||
chanceAcerto = (int) (Math.random() * 100);
|
||||
}
|
||||
if (chanceAcerto <= 80) {
|
||||
for (MaplePartyCharacter chrS : inimigos.getPartyMembers()) {
|
||||
for (MaplePartyCharacter chrS : enemies.getPartyMembers()) {
|
||||
if (dis == null) {
|
||||
chrS.getPlayer().dispel();
|
||||
} else {
|
||||
chrS.getPlayer().giveDebuff(dis, skil.getSkill());
|
||||
chrS.getPlayer().giveDebuff(dis, skill.getSkill());
|
||||
}
|
||||
if (!skil.targetsAll) {
|
||||
if (!skill.targetsAll) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
int amount = inimigos.getMembers().size() - 1;
|
||||
int amount = enemies.getMembers().size() - 1;
|
||||
int randd = (int) Math.floor(Math.random() * amount);
|
||||
MapleCharacter chrApp = c.getChannelServer().getPlayerStorage().getCharacterById(inimigos.getMemberByPos(randd).getId());
|
||||
MapleCharacter chrApp = c.getChannelServer().getPlayerStorage().getCharacterById(enemies.getMemberByPos(randd).getId());
|
||||
if (chrApp != null && chrApp.getMap().isCPQMap()) {
|
||||
if (dis == null) {
|
||||
chrApp.dispel();
|
||||
} else {
|
||||
chrApp.giveDebuff(dis, skil.getSkill());
|
||||
chrApp.giveDebuff(dis, skill.getSkill());
|
||||
}
|
||||
}
|
||||
}
|
||||
neededCP = skil.cpLoss;
|
||||
c.getSession().write(MaplePacketCreator.enableActions());
|
||||
neededCP = skill.cpLoss;
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
} else if (tab == 2) { //protectors
|
||||
final MCSkill skil = MapleCarnivalFactory.getInstance().getGuardian(num);
|
||||
if (skil == null || c.getPlayer().getCP() < skil.cpLoss) {
|
||||
final MCSkill skill = MapleCarnivalFactory.getInstance().getGuardian(num);
|
||||
if (skill == null || c.getPlayer().getCP() < skill.cpLoss) {
|
||||
c.announce(MaplePacketCreator.CPQMessage((byte) 1));
|
||||
c.getSession().write(MaplePacketCreator.enableActions());
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
return;
|
||||
}
|
||||
int success = c.getPlayer().getMap().spawnGuardian(c.getPlayer().getTeam(), num);
|
||||
@@ -138,17 +147,20 @@ public final class MonsterCarnivalHandler extends AbstractMaplePacketHandler {
|
||||
} else if (success == 2) {
|
||||
c.announce(MaplePacketCreator.CPQMessage((byte) 3));
|
||||
}
|
||||
c.getSession().write(MaplePacketCreator.enableActions());
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
return;
|
||||
} else {
|
||||
neededCP = skil.cpLoss;
|
||||
neededCP = skill.cpLoss;
|
||||
}
|
||||
}
|
||||
c.getPlayer().gainCP(-neededCP);
|
||||
c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.playerSummoned(c.getPlayer().getName(), tab, num));
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
e.printStackTrace();
|
||||
}
|
||||
} finally {
|
||||
c.releaseClient();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -21,32 +21,34 @@
|
||||
*/
|
||||
package net.server.channel.handlers;
|
||||
|
||||
import client.MapleClient;
|
||||
import client.MapleCharacter;
|
||||
import client.inventory.MapleInventoryType;
|
||||
import client.processor.DueyProcessor;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import net.AbstractMaplePacketHandler;
|
||||
import client.inventory.manipulator.MapleInventoryManipulator;
|
||||
import tools.DatabaseConnection;
|
||||
import tools.data.input.SeekableLittleEndianAccessor;
|
||||
import tools.Pair;
|
||||
import tools.MaplePacketCreator;
|
||||
import tools.packets.Wedding;
|
||||
import net.server.world.World;
|
||||
import net.server.channel.Channel;
|
||||
import server.MapleItemInformationProvider;
|
||||
|
||||
import client.MapleClient;
|
||||
import client.MapleCharacter;
|
||||
import client.MapleRing;
|
||||
import client.inventory.Equip;
|
||||
import client.inventory.Item;
|
||||
import client.inventory.MapleInventoryType;
|
||||
import client.inventory.manipulator.MapleInventoryManipulator;
|
||||
import client.processor.DueyProcessor;
|
||||
import net.AbstractMaplePacketHandler;
|
||||
import net.server.world.World;
|
||||
import net.server.channel.Channel;
|
||||
import server.MapleItemInformationProvider;
|
||||
import scripting.event.EventInstanceManager;
|
||||
import tools.DatabaseConnection;
|
||||
import tools.Pair;
|
||||
import tools.MaplePacketCreator;
|
||||
import tools.data.input.SeekableLittleEndianAccessor;
|
||||
import tools.packets.Wedding;
|
||||
|
||||
/**
|
||||
* @author Jvlaple
|
||||
* @author Ronan - major overhaul on Ring handling mechanics
|
||||
* @author Drago/Dragohe4rt on Wishlist
|
||||
* @author Drago/Dragohe4rt - on Wishlist
|
||||
*/
|
||||
public final class RingActionHandler extends AbstractMaplePacketHandler {
|
||||
private static int getBoxId(int useItemId) {
|
||||
@@ -463,57 +465,42 @@ public final class RingActionHandler extends AbstractMaplePacketHandler {
|
||||
break;
|
||||
|
||||
case 9:
|
||||
// By Drago/Dragohe4rt
|
||||
// Groom and Bride's Wishlist
|
||||
//short size = slea.readShort();
|
||||
int amount = slea.readShort();
|
||||
if (amount > 10) {
|
||||
amount = 10;
|
||||
}
|
||||
for (int i = 0; i < amount; i++) {
|
||||
c.getPlayer().setItens(slea.readMapleAsciiString());
|
||||
}
|
||||
|
||||
//System.out.println("G&B WISHLIST: " + itemnames);
|
||||
|
||||
/*
|
||||
if (c.getPlayer().getMarriageItemId() > -1) {
|
||||
switch(c.getPlayer().getMarriageItemId()) {
|
||||
case 10: // Premium Cathedral
|
||||
c.getAbstractPlayerInteraction().gainItem(4031375, (short)1);
|
||||
c.getAbstractPlayerInteraction().gainItem(4031395, (short)15);
|
||||
break;
|
||||
case 11: // Normal Cathedral
|
||||
c.getAbstractPlayerInteraction().gainItem(4031480, (short)1);
|
||||
c.getAbstractPlayerInteraction().gainItem(4031395, (short)15);
|
||||
break;
|
||||
case 20: // Premium Chapel
|
||||
c.getAbstractPlayerInteraction().gainItem(4031376, (short)1);
|
||||
c.getAbstractPlayerInteraction().gainItem(4031377, (short)15);
|
||||
break;
|
||||
case 21: // Normal Chapel
|
||||
c.getAbstractPlayerInteraction().gainItem(4031481, (short)1);
|
||||
c.getAbstractPlayerInteraction().gainItem(4031377, (short)15);
|
||||
break;
|
||||
default: {
|
||||
System.out.println("Invalid Wedding Type for player " + c.getPlayer().getName() + "!");
|
||||
break;
|
||||
try {
|
||||
// By Drago/Dragohe4rt
|
||||
// Groom and Bride's Wishlist
|
||||
|
||||
MapleCharacter player = c.getPlayer();
|
||||
|
||||
EventInstanceManager eim = player.getEventInstance();
|
||||
if (eim != null) {
|
||||
boolean isMarrying = (player.getId() == eim.getIntProperty("groomId") || player.getId() == eim.getIntProperty("brideId"));
|
||||
|
||||
if (isMarrying) {
|
||||
int amount = slea.readShort();
|
||||
if (amount > 10) {
|
||||
amount = 10;
|
||||
}
|
||||
|
||||
String wishlistItems = "";
|
||||
for (int i = 0; i < amount; i++) {
|
||||
String s = slea.readMapleAsciiString();
|
||||
wishlistItems += (s + "\r\n");
|
||||
}
|
||||
|
||||
String wlKey;
|
||||
if (player.getId() == eim.getIntProperty("groomId")) {
|
||||
wlKey = "groomWishlist";
|
||||
} else {
|
||||
wlKey = "brideWishlist";
|
||||
}
|
||||
|
||||
if (eim.getProperty(wlKey).contentEquals("")) {
|
||||
eim.setProperty(wlKey, wishlistItems);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//c.getPlayer().setMarriageItemId(-1); ?????
|
||||
}
|
||||
} catch (NumberFormatException nfe) {}
|
||||
|
||||
if (c.getPlayer().getWishlist() == null) {
|
||||
c.getPlayer().registerWishlist(itemnames);
|
||||
}
|
||||
|
||||
if (c.getPlayer().getWedding() != null) {
|
||||
if (c.getPlayer().getGender() == 0 ? c.getPlayer().getWedding().isExistantGroom(c.getPlayer().getId()) : c.getPlayer().getWedding().isExistantBride(c.getPlayer().getId())) {
|
||||
c.getPlayer().getWedding().registerWishlist(c.getPlayer().getGender() == 1, itemnames);
|
||||
}
|
||||
}
|
||||
*/
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -6,19 +6,23 @@
|
||||
|
||||
package net.server.channel.handlers;
|
||||
|
||||
import client.inventory.Item;
|
||||
import client.inventory.MapleInventoryType;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.MapleClient;
|
||||
import client.inventory.Equip;
|
||||
import constants.ItemConstants;
|
||||
import net.AbstractMaplePacketHandler;
|
||||
import client.inventory.Item;
|
||||
import client.inventory.MapleInventory;
|
||||
import client.inventory.MapleInventoryType;
|
||||
import client.inventory.manipulator.MapleInventoryManipulator;
|
||||
import net.server.channel.Channel;
|
||||
import scripting.event.EventInstanceManager;
|
||||
import client.inventory.manipulator.MapleKarmaManipulator;
|
||||
import constants.ItemConstants;
|
||||
import constants.ServerConstants;
|
||||
import net.AbstractMaplePacketHandler;
|
||||
import server.MapleMarriage;
|
||||
import tools.MaplePacketCreator;
|
||||
import tools.data.input.SeekableLittleEndianAccessor;
|
||||
import tools.packets.Wedding;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -28,43 +32,123 @@ public final class WeddingHandler extends AbstractMaplePacketHandler {
|
||||
|
||||
@Override
|
||||
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
MapleCharacter chr = c.getPlayer();
|
||||
final byte mode = slea.readByte();
|
||||
Channel cs = c.getChannelServer();
|
||||
|
||||
if (mode == 6) { //additem
|
||||
short slot = slea.readShort();
|
||||
int itemid = slea.readInt();
|
||||
short quantity = slea.readShort();
|
||||
EventInstanceManager eim = c.getPlayer().getEventInstance();
|
||||
if (eim != null) {
|
||||
String name = eim.getProperty("brideId");
|
||||
MapleCharacter chrs = cs.getPlayerStorage().getCharacterById(Integer.parseInt(name));
|
||||
//MapleCharacter chrs = cs.getPlayerStorage().getCharacterById(3);
|
||||
MapleInventoryType type = ItemConstants.getInventoryType(itemid);
|
||||
Item item = chr.getInventory(type).getItem((byte) slot);
|
||||
if (itemid == item.getItemId() && quantity <= item.getQuantity()) {
|
||||
if(!(item instanceof Equip)) {
|
||||
item = new Item(itemid, slot, quantity);
|
||||
}
|
||||
chrs.setEquips(item);
|
||||
MapleInventoryManipulator.removeById(chr.getClient(), type, itemid, quantity, false, false);
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xB, chrs.getItens(), chrs.getItem()));
|
||||
}
|
||||
}
|
||||
} else if (mode == 7) { // noiva abre e pega itens
|
||||
byte inventId = slea.readByte();
|
||||
int itemPos = slea.readByte();
|
||||
MapleInventoryType inv = MapleInventoryType.getByType(inventId);
|
||||
Item item = chr.getItemid(itemPos);
|
||||
c.getAbstractPlayerInteraction().gainItem(item.getItemId(), item.getQuantity());
|
||||
chr.removeItem(item);
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xF, chr.getItens(), chr.getItem()));
|
||||
} else if (mode == 8) { // sair update?
|
||||
c.tryacquireClient();
|
||||
try {
|
||||
MapleCharacter chr = c.getPlayer();
|
||||
final byte mode = slea.readByte();
|
||||
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
} else {
|
||||
System.out.println(mode);
|
||||
if (mode == 6) { //additem
|
||||
short slot = slea.readShort();
|
||||
int itemid = slea.readInt();
|
||||
short quantity = slea.readShort();
|
||||
|
||||
MapleMarriage marriage = c.getPlayer().getMarriageInstance();
|
||||
if (marriage != null) {
|
||||
try {
|
||||
boolean groomWishlist = marriage.giftItemToSpouse(chr.getId());
|
||||
String groomWishlistProp = "giftedItem" + (groomWishlist ? "G" : "B") + chr.getId();
|
||||
|
||||
int giftCount = marriage.getIntProperty(groomWishlistProp);
|
||||
if (giftCount < ServerConstants.WEDDING_GIFT_LIMIT) {
|
||||
int cid = marriage.getIntProperty(groomWishlist ? "groomId" : "brideId");
|
||||
if (chr.getId() != cid) { // cannot gift yourself
|
||||
MapleCharacter spouse = marriage.getPlayerById(cid);
|
||||
if (spouse != null) {
|
||||
MapleInventoryType type = ItemConstants.getInventoryType(itemid);
|
||||
MapleInventory chrInv = chr.getInventory(type);
|
||||
|
||||
chrInv.lockInventory();
|
||||
try {
|
||||
Item item = chrInv.getItem((byte) slot);
|
||||
if (item != null) {
|
||||
if (!item.isUntradeable()) {
|
||||
if (itemid == item.getItemId() && quantity <= item.getQuantity()) {
|
||||
Item newItem = item.copy();
|
||||
|
||||
marriage.addGiftItem(groomWishlist, newItem);
|
||||
MapleInventoryManipulator.removeFromSlot(c, type, slot, quantity, false, false);
|
||||
|
||||
if (ServerConstants.USE_ENFORCE_MERCHANT_SAVE) chr.saveCharToDB(false);
|
||||
marriage.saveGiftItemsToDb(c, groomWishlist, cid);
|
||||
|
||||
MapleKarmaManipulator.toggleKarmaFlagToUntradeable(newItem);
|
||||
marriage.setIntProperty(groomWishlistProp, giftCount + 1);
|
||||
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xB, marriage.getWishlistItems(groomWishlist), Collections.singletonList(newItem)));
|
||||
}
|
||||
} else {
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xE, marriage.getWishlistItems(groomWishlist), null));
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
chrInv.unlockInventory();
|
||||
}
|
||||
} else {
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xE, marriage.getWishlistItems(groomWishlist), null));
|
||||
}
|
||||
} else {
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xE, marriage.getWishlistItems(groomWishlist), null));
|
||||
}
|
||||
} else {
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xC, marriage.getWishlistItems(groomWishlist), null));
|
||||
}
|
||||
} catch (NumberFormatException nfe) {}
|
||||
} else {
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
}
|
||||
} else if (mode == 7) { // take items
|
||||
slea.readByte(); // invType
|
||||
int itemPos = slea.readByte();
|
||||
|
||||
MapleMarriage marriage = chr.getMarriageInstance();
|
||||
if (marriage != null) {
|
||||
Boolean groomWishlist = marriage.isMarriageGroom(chr);
|
||||
if (groomWishlist != null) {
|
||||
Item item = marriage.getGiftItem(c, groomWishlist, itemPos);
|
||||
if (item != null) {
|
||||
if (MapleInventory.checkSpot(chr, item)) {
|
||||
marriage.removeGiftItem(groomWishlist, item);
|
||||
marriage.saveGiftItemsToDb(c, groomWishlist, chr.getId());
|
||||
|
||||
MapleInventoryManipulator.addFromDrop(c, item, true);
|
||||
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xF, marriage.getWishlistItems(groomWishlist), marriage.getGiftItems(c, groomWishlist)));
|
||||
} else {
|
||||
c.getPlayer().dropMessage(1, "Free a slot on your inventory before collecting this item.");
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xE, marriage.getWishlistItems(groomWishlist), marriage.getGiftItems(c, groomWishlist)));
|
||||
}
|
||||
} else {
|
||||
c.getPlayer().dropMessage(1, "You have already collected this item.");
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xE, marriage.getWishlistItems(groomWishlist), marriage.getGiftItems(c, groomWishlist)));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
List<Item> items = c.getAbstractPlayerInteraction().getUnclaimedMarriageGifts();
|
||||
try {
|
||||
Item item = items.get(itemPos);
|
||||
if (MapleInventory.checkSpot(chr, item)) {
|
||||
items.remove(itemPos);
|
||||
MapleMarriage.saveGiftItemsToDb(c, items, chr.getId());
|
||||
|
||||
MapleInventoryManipulator.addFromDrop(c, item, true);
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xF, Collections.singletonList(""), items));
|
||||
} else {
|
||||
c.getPlayer().dropMessage(1, "Free a slot on your inventory before collecting this item.");
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xE, Collections.singletonList(""), items));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
c.getPlayer().dropMessage(1, "You have already collected this item.");
|
||||
c.announce(Wedding.OnWeddingGiftResult((byte) 0xE, Collections.singletonList(""), items));
|
||||
}
|
||||
}
|
||||
} else if (mode == 8) { // out of Wedding Registry
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
} else {
|
||||
System.out.println(mode);
|
||||
}
|
||||
} finally {
|
||||
c.releaseClient();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -182,7 +182,7 @@ public class MaplePartyCharacter {
|
||||
case 222:
|
||||
return "Arquimago (Gelo, Raio)";
|
||||
case 230:
|
||||
return "Clérigo";
|
||||
return "Clerigo";
|
||||
case 231:
|
||||
return "Sacerdote";
|
||||
case 232:
|
||||
@@ -191,7 +191,7 @@ public class MaplePartyCharacter {
|
||||
case 300:
|
||||
return "Arqueiro";
|
||||
case 310:
|
||||
return "Caçador";
|
||||
return "Cacador";
|
||||
case 311:
|
||||
return "Rastreador";
|
||||
case 312:
|
||||
@@ -231,7 +231,7 @@ public class MaplePartyCharacter {
|
||||
case 521:
|
||||
return "Bucaneiro";
|
||||
case 522:
|
||||
return "Captain";
|
||||
return "Capitao";
|
||||
|
||||
default:
|
||||
return "Unknown Job";
|
||||
|
||||
Reference in New Issue
Block a user