Cash Pet Food issue + BRPQ minor patch
As issued by vcoc, some pet items not working properly has been patches. New BRPQ reward announcer NPC. More minor patches.
This commit is contained in:
@@ -2,7 +2,7 @@ MapleSolaxiaV2
|
|||||||
|
|
||||||
Freelance developer: Ronan C. P. Lana
|
Freelance developer: Ronan C. P. Lana
|
||||||
|
|
||||||
Credits are to be given too to Nexon(Duh!), the original MapleSolaxia staff, and other colaborators, as just some changes/patches on the game were applied by myself, in which some of them diverged from the original v83 patch contents.
|
Credits are to be given too to Nexon(Duh!), the original MapleSolaxia staff and other colaborators, as just some changes/patches on the game were applied by myself, in which some of them diverged from the original v83 patch contents.
|
||||||
|
|
||||||
Regarding distributability and usage of the code presented here: like it was before, this MapleStory server is open-source. By that, it is meant that anyone is free to install, use, modify and redistribute the contents, as long as there is no kind of commercial trading involved and the credits to the original creators are maintained within the codes.
|
Regarding distributability and usage of the code presented here: like it was before, this MapleStory server is open-source. By that, it is meant that anyone is free to install, use, modify and redistribute the contents, as long as there is no kind of commercial trading involved and the credits to the original creators are maintained within the codes.
|
||||||
|
|
||||||
|
|||||||
@@ -181,4 +181,8 @@ Corre
|
|||||||
Adição de Happyville, via Rooney.
|
Adição de Happyville, via Rooney.
|
||||||
Correção: mapas com "everlast" fazendo os itens dropados sumirem.
|
Correção: mapas com "everlast" fazendo os itens dropados sumirem.
|
||||||
Correção: itens dropados na área dos NPCs Snowman não podem ser pegos por outros jogadores.
|
Correção: itens dropados na área dos NPCs Snowman não podem ser pegos por outros jogadores.
|
||||||
Correção: bug no par de comandos unban/ban não permitindo IP de cliente voltar a reconectar ao jogo.
|
Correção: bug no par de comandos unban/ban não permitindo IP de cliente voltar a reconectar ao jogo.
|
||||||
|
|
||||||
|
29 Abril 2017,
|
||||||
|
Novos métodos para uso especializado em eventos caracteristicos de PQ.
|
||||||
|
Aprimoração da Boss Rush PQ: novo sistema de recompensas.
|
||||||
@@ -4,17 +4,19 @@
|
|||||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||||
<group>
|
<group>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/command/Commands.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/command/Commands.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/expeditions/MapleExpedition.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MonsterBook.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/portal/raid_stage.js</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/portal/raid_stage.js</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/AbstractPlayerInteraction.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/AbstractPlayerInteraction.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/constants/ServerConstants.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/constants/ServerConstants.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/PartyOperationHandler.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/world0/1022101.js</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/world/MapleParty.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/world0/1012103.js</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/tools/MaplePacketCreator.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/tools/MaplePacketCreator.java</file>
|
||||||
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/world0/9000038.js</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/portal/raid_rest.js</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/portal/raid_rest.js</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/world/MaplePartyCharacter.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleDisease.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/event/EventInstanceManager.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/event/EventInstanceManager.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/event/BossRushPQ.js</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/event/BossRushPQ.js</file>
|
||||||
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/QuestActionHandler.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/npc/NPCConversationManager.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/npc/NPCConversationManager.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleCharacter.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleCharacter.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/world0/9000037.js</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/world0/9000037.js</file>
|
||||||
@@ -23,6 +25,8 @@
|
|||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/event/PiratePQ.js</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/event/PiratePQ.js</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleClient.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleClient.java</file>
|
||||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/event/EventManager.java</file>
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/event/EventManager.java</file>
|
||||||
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/quest/MapleQuest.java</file>
|
||||||
|
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/quest/requirements/MonsterBookCountRequirement.java</file>
|
||||||
</group>
|
</group>
|
||||||
</open-files>
|
</open-files>
|
||||||
</project-private>
|
</project-private>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ function setEventRewards(eim) {
|
|||||||
|
|
||||||
evLevel = 6; //Rewards at event completion
|
evLevel = 6; //Rewards at event completion
|
||||||
itemSet = [1122018, 1122005, 1022088, 1402013, 1032048, 1032070, 1102046, 2330004, 2041013, 2041016, 2041019, 2041022, 2049100, 2049003, 2020012, 2020013, 2020014, 2020015, 2022029, 2022045, 2022068, 2022069, 2022179, 2022180, 4004000, 4004001, 4004002, 4004003, 4004004, 4003000];
|
itemSet = [1122018, 1122005, 1022088, 1402013, 1032048, 1032070, 1102046, 2330004, 2041013, 2041016, 2041019, 2041022, 2049100, 2049003, 2020012, 2020013, 2020014, 2020015, 2022029, 2022045, 2022068, 2022069, 2022179, 2022180, 4004000, 4004001, 4004002, 4004003, 4004004, 4003000];
|
||||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 25, 25, 25, 25, 25, 25, 25, 25, 4, 12, 12, 12, 12, 12, 25];
|
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 25, 25, 25, 25, 25, 25, 25, 4, 4, 12, 12, 12, 12, 12, 25];
|
||||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||||
|
|
||||||
evLevel = 5; //Rewards at Rest Spot V
|
evLevel = 5; //Rewards at Rest Spot V
|
||||||
@@ -40,7 +40,7 @@ function setEventRewards(eim) {
|
|||||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||||
|
|
||||||
evLevel = 1; //Rewards at Rest Spot I
|
evLevel = 1; //Rewards at Rest Spot I
|
||||||
itemSet = [1122004, 1012078, 1432008, 1432009, 1032040, 1032009, 1102166, 2070001, 2040002, 2040310, 2040400, 2040600, 2040825, 2040902, 2010000, 2010001, 2010002, 2010003, 2010004, 2020001, 2020002, 2020003, 2022020, 2022022, 4003000];
|
itemSet = [1122004, 1012078, 1432008, 1432009, 1032040, 1032009, 1102166, 2070001, 2040002, 2040310, 2040400, 2040600, 2040825, 2040902, 2010000, 2010001, 2010002, 2010003, 2010004, 2020001, 2020002, 2020003, 2022020, 2022022, 4010000, 4010001, 4010002, 4010003, 4010004, 4010005, 4010006, 4010007, 4003000];
|
||||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2];
|
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2];
|
||||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||||
}
|
}
|
||||||
@@ -62,10 +62,6 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!hasLeader) print("no leader");
|
|
||||||
else if(eligible.length < minPlayers) print("no min");
|
|
||||||
else if(eligible.length < minPlayers) print("no max");
|
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return eligible;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,60 +1,91 @@
|
|||||||
/**
|
/*
|
||||||
* @author: Eric
|
This file is part of the OdinMS Maple Story Server
|
||||||
* @npc: Sgt. Anderson
|
Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc>
|
||||||
* @maps: Ludibrium PQ Maps
|
Matthias Butz <matze@odinms.de>
|
||||||
* @func: Ludi PQ (Warps you out)
|
Jan Christian Meyer <vimes@odinms.de>
|
||||||
*/
|
|
||||||
|
|
||||||
var status = -1;
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as
|
||||||
|
published by the Free Software Foundation version 3 as published by
|
||||||
|
the Free Software Foundation. You may not use, modify or distribute
|
||||||
|
this program under any other version of the GNU Affero General Public
|
||||||
|
License.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
@ Author : Raz
|
||||||
|
@
|
||||||
|
@ NPC = Sgt.Anderson
|
||||||
|
@ Map = Abandoned Tower <Stage 1>
|
||||||
|
@ NPC MapId = 922010100
|
||||||
|
@ NPC Exit-MapId = 221024500
|
||||||
|
@
|
||||||
|
*/
|
||||||
|
//4001022 - PASS OF DIMENSION
|
||||||
|
|
||||||
|
var status = 0;
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
if (cm.getMapId() != 922010000 && cm.getMapId() != 922010800) {
|
cm.sendYesNo("Are you sure you want to leave?");
|
||||||
cm.sendYesNo("You'll have to start over from scratch if you want to take a crack at this quest after leaving this stage. Are you sure you want to leave this map?");
|
|
||||||
} else if (cm.getMapId() == 922010800) {
|
|
||||||
cm.sendSimple("Do you need some help?#b\r\n#L0#I need Platform Puppet.#l\r\n#L1#I want to get out of here.#l#k");
|
|
||||||
} else {
|
|
||||||
cm.removeAll(4001022); // pass of dimension
|
|
||||||
cm.removeAll(4001023);
|
|
||||||
cm.removeAll(4001454); // platform puppet
|
|
||||||
cm.warp(221024500, 0);
|
|
||||||
cm.dispose();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function action(mode, type, selection) {
|
function action(mode, type, selection) {
|
||||||
if (mode == 1)
|
if (mode == -1) //ExitChat
|
||||||
status++;
|
cm.dispose();
|
||||||
else if (mode == 0 && (status == 0 || status == -1)) {
|
else if (mode == 0) {//No
|
||||||
cm.sendNext("I see. Gather up the strength of your party members and try harder!");
|
cm.sendOk("OK, Talk to me again if you want to leave here.");
|
||||||
cm.dispose();
|
cm.dispose();
|
||||||
return;
|
} else { //Regular Talk
|
||||||
} else
|
if (mode == 1)
|
||||||
status--;
|
status++;
|
||||||
if (status == 0) {
|
else
|
||||||
if (cm.getMapId() == 922010800) {
|
status--;
|
||||||
if (selection == 0) {
|
if (cm.getPlayer().getMap().getId() == 109050001) {
|
||||||
cm.sendNext("You have received a Platform Puppet. If you place it on the platform, it will have the same effect as someone standing there.\r\nRemember, though, this is an item that can only be used in here.");
|
if(status == 0)
|
||||||
cm.gainItem(4001454, 1);
|
cm.sendNext("See ya.");
|
||||||
cm.dispose();
|
else if (status == 1){
|
||||||
} else {
|
cm.warp(109060001);
|
||||||
cm.sendYesNo("You'll have to start over from scratch if you want to take a crack at this quest after leaving this stage. Are you sure you want to leave this map?");
|
cm.dispose();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var eim = cm.getPlayer().getEventInstance();
|
if (status == 1)
|
||||||
if(eim != null) {
|
cm.sendNext("Ok, Bye!");
|
||||||
eim.removePlayer(cm.getPlayer());
|
else if (status == 2) {
|
||||||
} else {
|
var eim = cm.getPlayer().getEventInstance();
|
||||||
cm.warp(922010000, 0);
|
if (eim == null)
|
||||||
}
|
cm.sendOk("Wait, Hey! how'd you get here?\r\nOh well you can leave anyways");
|
||||||
cm.dispose();
|
else {
|
||||||
}
|
if(isLeader()){
|
||||||
} else if (status == 1) {
|
eim.disbandParty();
|
||||||
var eim = cm.getPlayer().getEventInstance();
|
cm.removeFromParty(4001008, eim.getPlayers());
|
||||||
if(eim != null) {
|
} else {
|
||||||
eim.removePlayer(cm.getPlayer());
|
eim.leftParty(cm.getPlayer());
|
||||||
} else {
|
cm.removeAll(4001008);
|
||||||
cm.warp(922010000, 0);
|
cm.removeAll(4031059);
|
||||||
}
|
cm.removeAll(4001102);
|
||||||
cm.dispose();
|
cm.removeAll(4001108);
|
||||||
}
|
}
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
|
} else if (status == 3) {
|
||||||
|
cm.warp(109050001);
|
||||||
|
cm.removeAll(4001008);
|
||||||
|
cm.removeAll(4031059);
|
||||||
|
cm.removeAll(4001102);
|
||||||
|
cm.removeAll(4001108);
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isLeader(){
|
||||||
|
return cm.getParty() == null ? false : cm.isLeader();
|
||||||
}
|
}
|
||||||
60
scripts/npc/world0/2040047_old.js
Normal file
60
scripts/npc/world0/2040047_old.js
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
/**
|
||||||
|
* @author: Eric
|
||||||
|
* @npc: Sgt. Anderson
|
||||||
|
* @maps: Ludibrium PQ Maps
|
||||||
|
* @func: Ludi PQ (Warps you out)
|
||||||
|
*/
|
||||||
|
|
||||||
|
var status = -1;
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
if (cm.getMapId() != 922010000 && cm.getMapId() != 922010800) {
|
||||||
|
cm.sendYesNo("You'll have to start over from scratch if you want to take a crack at this quest after leaving this stage. Are you sure you want to leave this map?");
|
||||||
|
} else if (cm.getMapId() == 922010800) {
|
||||||
|
cm.sendSimple("Do you need some help?#b\r\n#L0#I need Platform Puppet.#l\r\n#L1#I want to get out of here.#l#k");
|
||||||
|
} else {
|
||||||
|
cm.removeAll(4001022); // pass of dimension
|
||||||
|
cm.removeAll(4001023);
|
||||||
|
cm.removeAll(4001454); // platform puppet
|
||||||
|
cm.warp(221024500, 0);
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function action(mode, type, selection) {
|
||||||
|
if (mode == 1)
|
||||||
|
status++;
|
||||||
|
else if (mode == 0 && (status == 0 || status == -1)) {
|
||||||
|
cm.sendNext("I see. Gather up the strength of your party members and try harder!");
|
||||||
|
cm.dispose();
|
||||||
|
return;
|
||||||
|
} else
|
||||||
|
status--;
|
||||||
|
if (status == 0) {
|
||||||
|
if (cm.getMapId() == 922010800) {
|
||||||
|
if (selection == 0) {
|
||||||
|
cm.sendNext("You have received a Platform Puppet. If you place it on the platform, it will have the same effect as someone standing there.\r\nRemember, though, this is an item that can only be used in here.");
|
||||||
|
cm.gainItem(4001454, 1);
|
||||||
|
cm.dispose();
|
||||||
|
} else {
|
||||||
|
cm.sendYesNo("You'll have to start over from scratch if you want to take a crack at this quest after leaving this stage. Are you sure you want to leave this map?");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
var eim = cm.getPlayer().getEventInstance();
|
||||||
|
if(eim != null) {
|
||||||
|
eim.removePlayer(cm.getPlayer());
|
||||||
|
} else {
|
||||||
|
cm.warp(922010000, 0);
|
||||||
|
}
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
|
} else if (status == 1) {
|
||||||
|
var eim = cm.getPlayer().getEventInstance();
|
||||||
|
if(eim != null) {
|
||||||
|
eim.removePlayer(cm.getPlayer());
|
||||||
|
} else {
|
||||||
|
cm.warp(922010000, 0);
|
||||||
|
}
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -41,22 +41,18 @@ function action(mode, type, selection) {
|
|||||||
|
|
||||||
if (status == 0) {
|
if (status == 0) {
|
||||||
if(state == 3) {
|
if(state == 3) {
|
||||||
if(cm.getPlayer().getEventInstance() != null) {
|
if(cm.isLeader()) {
|
||||||
if(!cm.isLeader()) {
|
if(cm.getPlayer().getEventInstance().getPlayerCount() > 1) {
|
||||||
cm.sendOk("Your party leader has not spoken to me yet, please wait him/her talk to me.");
|
cm.sendOk("Now, tell your party I will be warping everyone out and rewarding them as they talk to me. The leader goes last.");
|
||||||
cm.dispose();
|
cm.dispose();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
cm.getPlayer().getEventInstance().finishPQ();
|
cm.sendOk("Your party completed such an astounding feat coming this far, #byou have defeated all the bosses#k, congratulations! Now I will be handing your reward as you are being transported out...");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cm.isLeader()) {
|
|
||||||
cm.sendOk("Your party completed such an astounding feat coming this far, #byou have defeated all the bosses#k, congratulations! Now, tell your party I will be warping everyone out and rewarding them as they talk to me.");
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
cm.sendOk("For completing all stages in this event, congratulations! Now you will receive a prize that matches your performance here as I warp you out.");
|
cm.sendOk("For #bdefeating all bosses#k in this event, congratulations! Now you will receive a prize that matches your performance here as I warp you out.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(state == 2) {
|
else if(state == 2) {
|
||||||
@@ -71,7 +67,7 @@ function action(mode, type, selection) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
cm.sendOk("Wait for your party leader to give me the signal to proceed. If you're not feeling too well and want to quit, walk through the portal and you will be transported out, you will receive a prize for coming this far.");
|
cm.sendOk("Wait for your party leader to give me the signal to proceed. If you're not feeling too well and want to quit, walk through the portal and you will be transported out, and you will receive a prize for coming this far.");
|
||||||
cm.dispose();
|
cm.dispose();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
88
scripts/npc/world0/9000038.js
Normal file
88
scripts/npc/world0/9000038.js
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
/**
|
||||||
|
* @author: Ronan
|
||||||
|
* @npc: Agent Kitty
|
||||||
|
* @map: 970030000 - Hidden Street - Exclusive Training Center
|
||||||
|
* @func: Boss Rush PQ Reward Announcer
|
||||||
|
*/
|
||||||
|
|
||||||
|
var status;
|
||||||
|
|
||||||
|
var itemSet_lv6 = [1122018, 1122005, 1022088, 1402013, 1032048, 1032070, 1102046, 2330004, 2041013, 2041016, 2041019, 2041022, 2049100, 2049003, 2020012, 2020013, 2020014, 2020015, 2022029, 2022045, 2022068, 2022069, 2022179, 2022180, 4004000, 4004001, 4004002, 4004003, 4004004, 4003000];
|
||||||
|
var itemQty_lv6 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 25, 25, 25, 25, 25, 25, 25, 4, 4, 12, 12, 12, 12, 12, 25];
|
||||||
|
|
||||||
|
var itemSet_lv5 = [1122018, 1122005, 1022088, 1402013, 1032048, 1032070, 1102046, 2330004, 2041013, 2041016, 2041019, 2041022, 2049100, 2049003, 2020012, 2020013, 2020014, 2020015, 2022029, 2022045, 2022068, 2022069, 2022179, 2022180, 4004000, 4004001, 4004002, 4004003, 4004004, 4003000];
|
||||||
|
var itemQty_lv5 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 2, 8, 8, 8, 8, 8, 12];
|
||||||
|
|
||||||
|
var itemSet_lv4 = [1122001, 1122006, 1022103, 1442065, 1032042, 1032021, 1102168, 2070005, 2040025, 2040029, 2040301, 2040413, 2040701, 2040817, 2002028, 2020009, 2020010, 2020011, 2022004, 2022005, 2022025, 2022027, 2022048, 2022049, 4020000, 4020001, 4020002, 4020003, 4020004, 4020005, 4020006, 4020007, 4020008, 4003000];
|
||||||
|
var itemQty_lv4 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8];
|
||||||
|
|
||||||
|
var itemSet_lv3 = [1122002, 1022088, 1012076, 1402029, 1032041, 1032044, 1102167, 2070011, 2040026, 2040030, 2040302, 2040412, 2040702, 2040818, 2002028, 2020009, 2020010, 2020011, 2022004, 2022005, 2022025, 2022027, 2022048, 2022049, 4010000, 4010001, 4010002, 4010003, 4010004, 4010005, 4010006, 4010007, 4003000];
|
||||||
|
var itemQty_lv3 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5, 5, 5, 5, 5, 5, 5, 5, 5];
|
||||||
|
|
||||||
|
var itemSet_lv2 = [1122003, 1012077, 1012079, 1432014, 1032059, 1032002, 1102191, 2330002, 2040001, 2040311, 2040401, 2040601, 2040824, 2040901, 2010000, 2010001, 2010002, 2010003, 2010004, 2020001, 2020002, 2020003, 2022020, 2022022, 4020000, 4020001, 4020002, 4020003, 4020004, 4020005, 4020006, 4020007, 4020008, 4003000];
|
||||||
|
var itemQty_lv2 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3];
|
||||||
|
|
||||||
|
var itemSet_lv1 = [1122004, 1012078, 1432008, 1432009, 1032040, 1032009, 1102166, 2070001, 2040002, 2040310, 2040400, 2040600, 2040825, 2040902, 2010000, 2010001, 2010002, 2010003, 2010004, 2020001, 2020002, 2020003, 2022020, 2022022, 4010000, 4010001, 4010002, 4010003, 4010004, 4010005, 4010006, 4010007, 4003000];
|
||||||
|
var itemQty_lv1 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2];
|
||||||
|
|
||||||
|
var levels = ["#m970030001#", "#m970030002#", "#m970030003#", "#m970030004#", "#m970030005#", "Final stage"];
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
status = -1;
|
||||||
|
action(1, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function action(mode, type, selection) {
|
||||||
|
if (mode == -1) {
|
||||||
|
cm.dispose();
|
||||||
|
} else {
|
||||||
|
if (mode == 0 && status == 0) {
|
||||||
|
cm.dispose();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (mode == 1)
|
||||||
|
status++;
|
||||||
|
else
|
||||||
|
status--;
|
||||||
|
|
||||||
|
if (status == 0) {
|
||||||
|
var sendStr = "The #bBoss Rush Party Quest#k rewards players accordingly to how far the team went on the boss huntings. Take note that each player #bcan only claim a reward if they leave through a portal inside a Resting Spot#k. Challenging stronger bosses will require the team to commit to more fightings until the next Resting Spot is reached, or until the final boss is defeated.\r\n\r\nThe possible rewards for those leaving in the selected Resting Point are depicted here:\r\n\r\n#b";
|
||||||
|
for(var i = 0; i < 6; i++) {
|
||||||
|
sendStr += "#L" + i + "#" + levels[i] + "#l\r\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
cm.sendSimple(sendStr);
|
||||||
|
} else if(status == 1) {
|
||||||
|
var lvTarget, lvQty;
|
||||||
|
|
||||||
|
if(selection == 0) {
|
||||||
|
lvTarget = itemSet_lv1;
|
||||||
|
lvQty = itemQty_lv1;
|
||||||
|
} else if(selection == 1) {
|
||||||
|
lvTarget = itemSet_lv2;
|
||||||
|
lvQty = itemQty_lv2;
|
||||||
|
} else if(selection == 2) {
|
||||||
|
lvTarget = itemSet_lv3;
|
||||||
|
lvQty = itemQty_lv3;
|
||||||
|
} else if(selection == 3) {
|
||||||
|
lvTarget = itemSet_lv4;
|
||||||
|
lvQty = itemQty_lv4;
|
||||||
|
} else if(selection == 4) {
|
||||||
|
lvTarget = itemSet_lv5;
|
||||||
|
lvQty = itemQty_lv5;
|
||||||
|
} else {
|
||||||
|
lvTarget = itemSet_lv6;
|
||||||
|
lvQty = itemQty_lv6;
|
||||||
|
}
|
||||||
|
|
||||||
|
var sendStr = "The following items are being awarded at #b" + levels[selection] + "#k:\r\n\r\n";
|
||||||
|
for(var i = 0; i < lvTarget.length; i++) {
|
||||||
|
sendStr += " #L" + i + "# #i" + lvTarget[i] + "# #t" + lvTarget[i] + "#";
|
||||||
|
if(lvQty[i] > 1) sendStr += " (" + lvQty[i] + ")";
|
||||||
|
sendStr += "#l\r\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
cm.sendPrev(sendStr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -36,7 +36,7 @@ function action(mode, type, selection) {
|
|||||||
cm.dispose();
|
cm.dispose();
|
||||||
else {
|
else {
|
||||||
if (status >= 0 && mode == 0) {
|
if (status >= 0 && mode == 0) {
|
||||||
cm.sendOk("Ok come back when your'e ready.");
|
cm.sendOk("Ok come back when you're ready.");
|
||||||
cm.dispose();
|
cm.dispose();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
9
scripts/npc/world0/9201051.js
Normal file
9
scripts/npc/world0/9201051.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
*9201051 - John Barricade
|
||||||
|
*@author Ronan
|
||||||
|
*/
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
cm.sendOk("The patrol in New Leaf City is always ready. No creatures are able to break through to the city.");
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
9
scripts/npc/world0/9201052.js
Normal file
9
scripts/npc/world0/9201052.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
*9201052 - Professor Foxwit
|
||||||
|
*@author Ronan
|
||||||
|
*/
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
cm.sendOk("The patrol in New Leaf City is always ready. No creatures are able to break through to the city.");
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
9
scripts/npc/world0/9201054.js
Normal file
9
scripts/npc/world0/9201054.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
*9201054 - Lita Lawless
|
||||||
|
*@author Ronan
|
||||||
|
*/
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
cm.sendOk("The patrol in New Leaf City is always ready. No creatures are able to break through to the city.");
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
9
scripts/npc/world0/9201071.js
Normal file
9
scripts/npc/world0/9201071.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
*9201071 - Sunstone Grave
|
||||||
|
*@author Ronan
|
||||||
|
*/
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
cm.sendOk("(This tombstone keeps emmiting ever oddier light waves the more I stare to it...)");
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
9
scripts/npc/world0/9201072.js
Normal file
9
scripts/npc/world0/9201072.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
*9201072 - Moonstone Grave
|
||||||
|
*@author Ronan
|
||||||
|
*/
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
cm.sendOk("(This tombstone keeps emmiting ever oddier light waves the more I stare to it...)");
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
@@ -1,91 +1,9 @@
|
|||||||
/*
|
/**
|
||||||
This file is part of the OdinMS Maple Story Server
|
*9201073 - Tombstone
|
||||||
Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc>
|
*@author Ronan
|
||||||
Matthias Butz <matze@odinms.de>
|
|
||||||
Jan Christian Meyer <vimes@odinms.de>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Affero General Public License as
|
|
||||||
published by the Free Software Foundation version 3 as published by
|
|
||||||
the Free Software Foundation. You may not use, modify or distribute
|
|
||||||
this program under any other version of the GNU Affero General Public
|
|
||||||
License.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU Affero General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Affero General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
@ Author : Raz
|
|
||||||
@
|
|
||||||
@ NPC = Sgt.Anderson
|
|
||||||
@ Map = Abandoned Tower <Stage 1>
|
|
||||||
@ NPC MapId = 922010100
|
|
||||||
@ NPC Exit-MapId = 221024500
|
|
||||||
@
|
|
||||||
*/
|
*/
|
||||||
//4001022 - PASS OF DIMENSION
|
|
||||||
|
|
||||||
var status = 0;
|
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
cm.sendYesNo("Are you sure you want to leave?");
|
cm.sendOk("(This enigmatic tombstone keeps emmiting strange forces... Better look another way.)");
|
||||||
|
cm.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
function action(mode, type, selection) {
|
|
||||||
if (mode == -1) //ExitChat
|
|
||||||
cm.dispose();
|
|
||||||
else if (mode == 0) {//No
|
|
||||||
cm.sendOk("OK, Talk to me again if you want to leave here.");
|
|
||||||
cm.dispose();
|
|
||||||
} else { //Regular Talk
|
|
||||||
if (mode == 1)
|
|
||||||
status++;
|
|
||||||
else
|
|
||||||
status--;
|
|
||||||
if (cm.getPlayer().getMap().getId() == 109050001) {
|
|
||||||
if(status == 0)
|
|
||||||
cm.sendNext("See ya.");
|
|
||||||
else if (status == 1){
|
|
||||||
cm.warp(109060001);
|
|
||||||
cm.dispose();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (status == 1)
|
|
||||||
cm.sendNext("Ok, Bye!");
|
|
||||||
else if (status == 2) {
|
|
||||||
var eim = cm.getPlayer().getEventInstance();
|
|
||||||
if (eim == null)
|
|
||||||
cm.sendOk("Wait, Hey! how'd you get here?\r\nOh well you can leave anyways");
|
|
||||||
else {
|
|
||||||
if(isLeader()){
|
|
||||||
eim.disbandParty();
|
|
||||||
cm.removeFromParty(4001008, eim.getPlayers());
|
|
||||||
} else {
|
|
||||||
eim.leftParty(cm.getPlayer());
|
|
||||||
cm.removeAll(4001008);
|
|
||||||
cm.removeAll(4031059);
|
|
||||||
cm.removeAll(4001102);
|
|
||||||
cm.removeAll(4001108);
|
|
||||||
}
|
|
||||||
cm.dispose();
|
|
||||||
}
|
|
||||||
} else if (status == 3) {
|
|
||||||
cm.warp(109050001);
|
|
||||||
cm.removeAll(4001008);
|
|
||||||
cm.removeAll(4031059);
|
|
||||||
cm.removeAll(4001102);
|
|
||||||
cm.removeAll(4001108);
|
|
||||||
cm.dispose();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function isLeader(){
|
|
||||||
return cm.getParty() == null ? false : cm.isLeader();
|
|
||||||
}
|
|
||||||
9
scripts/npc/world0/9201083.js
Normal file
9
scripts/npc/world0/9201083.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
*9201083 - The Glimmer Man
|
||||||
|
*@author Ronan
|
||||||
|
*/
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
cm.sendOk("The patrol in New Leaf City is always ready. No creatures are able to break through to the city.");
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
9
scripts/npc/world0/9201093.js
Normal file
9
scripts/npc/world0/9201093.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
*9201093 - Little Suzy
|
||||||
|
*@author Ronan
|
||||||
|
*/
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
cm.sendOk("Have you heard the fantasic Jack Masque appeared around the city these days? That is sooooo nice!");
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
9
scripts/npc/world0/9201094.js
Normal file
9
scripts/npc/world0/9201094.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
*9201094 - Corine
|
||||||
|
*@author Ronan
|
||||||
|
*/
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
cm.sendOk("The patrol in New Leaf City is always ready. No creatures are able to break through to the city.");
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
9
scripts/npc/world0/9201102.js
Normal file
9
scripts/npc/world0/9201102.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
*9201102 - Stirgeman
|
||||||
|
*@author Ronan
|
||||||
|
*/
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
cm.sendOk("The patrol in New Leaf City is always ready. No creatures are able to break through to the city.");
|
||||||
|
cm.dispose();
|
||||||
|
}
|
||||||
@@ -27,6 +27,11 @@ BossRushPQ - Rest Spot portal
|
|||||||
function enter(pi) {
|
function enter(pi) {
|
||||||
var evLevel = ((pi.getMapId() - 1) % 5) + 1;
|
var evLevel = ((pi.getMapId() - 1) % 5) + 1;
|
||||||
|
|
||||||
|
if(pi.getPlayer().getEventInstance().isLeader(pi.getPlayer()) && pi.getPlayer().getEventInstance().getPlayerCount() > 1) {
|
||||||
|
pi.message("Being the party leader, you cannot leave before your teammates leave first.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if(pi.getPlayer().getEventInstance().giveEventReward(pi.getPlayer(), evLevel)) {
|
if(pi.getPlayer().getEventInstance().giveEventReward(pi.getPlayer(), evLevel)) {
|
||||||
pi.warp(970030000);
|
pi.warp(970030000);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -18997,7 +18997,12 @@
|
|||||||
(9500319, 1132009, 1, 1, 0, 4000),
|
(9500319, 1132009, 1, 1, 0, 4000),
|
||||||
(9500319, 1422011, 1, 1, 0, 4000),
|
(9500319, 1422011, 1, 1, 0, 4000),
|
||||||
(9500319, 1432046, 1, 1, 0, 4000),
|
(9500319, 1432046, 1, 1, 0, 4000),
|
||||||
(9500319, 1332030, 1, 1, 0, 4000);
|
(9500319, 1332030, 1, 1, 0, 4000),
|
||||||
|
(9300188, 2388052, 1, 1, 0, 24000),
|
||||||
|
(9300196, 2388008, 1, 1, 0, 24000),
|
||||||
|
(9300204, 2388015, 1, 1, 0, 24000),
|
||||||
|
(9300207, 2388052, 1, 1, 0, 24000),
|
||||||
|
(9300209, 2388052, 1, 1, 0, 24000);
|
||||||
|
|
||||||
# (dropperid, itemid, minqty, maxqty, questid, chance)
|
# (dropperid, itemid, minqty, maxqty, questid, chance)
|
||||||
|
|
||||||
|
|||||||
@@ -1673,7 +1673,11 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void gainExp(int gain, boolean show, boolean inChat) {
|
public void gainExp(int gain, boolean show, boolean inChat) {
|
||||||
gainExp(gain, 0, show, inChat, true);
|
gainExp(gain, show, inChat, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void gainExp(int gain, boolean show, boolean inChat, boolean white) {
|
||||||
|
gainExp(gain, 0, show, inChat, white);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void gainExp(int gain, int party, boolean show, boolean inChat, boolean white) {
|
public void gainExp(int gain, int party, boolean show, boolean inChat, boolean white) {
|
||||||
@@ -5003,10 +5007,10 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
|
|||||||
pet.saveToDb();
|
pet.saveToDb();
|
||||||
Item petz = getInventory(MapleInventoryType.CASH).getItem(pet.getPosition());
|
Item petz = getInventory(MapleInventoryType.CASH).getItem(pet.getPosition());
|
||||||
if (petz != null) {
|
if (petz != null) {
|
||||||
forceUpdateItem(petz);
|
forceUpdateItem(petz);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}, 180000, 18000);
|
}, 180000, 18000);
|
||||||
fullnessSchedule[petSlot] = schedule;
|
fullnessSchedule[petSlot] = schedule;
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
package client.inventory;
|
package client.inventory;
|
||||||
|
|
||||||
import com.mysql.jdbc.Statement;
|
import com.mysql.jdbc.Statement;
|
||||||
|
import constants.ExpTable;
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
@@ -32,6 +33,8 @@ import server.MapleItemInformationProvider;
|
|||||||
import server.movement.AbsoluteLifeMovement;
|
import server.movement.AbsoluteLifeMovement;
|
||||||
import server.movement.LifeMovement;
|
import server.movement.LifeMovement;
|
||||||
import server.movement.LifeMovementFragment;
|
import server.movement.LifeMovementFragment;
|
||||||
|
import client.MapleCharacter;
|
||||||
|
import tools.MaplePacketCreator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -155,13 +158,54 @@ public class MaplePet extends Item {
|
|||||||
this.closeness = closeness;
|
this.closeness = closeness;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void gainCloseness(int x) {
|
|
||||||
this.closeness += x;
|
|
||||||
}
|
|
||||||
|
|
||||||
public byte getLevel() {
|
public byte getLevel() {
|
||||||
return level;
|
return level;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void gainClosenessFullness(MapleCharacter owner, int incCloseness, int incFullness, int type) {
|
||||||
|
byte slot = owner.getPetIndex(this);
|
||||||
|
boolean enjoyed;
|
||||||
|
|
||||||
|
//will NOT increase pet's closeness if tried to feed pet with 100% fullness
|
||||||
|
if (fullness < 100 || incFullness == 0) { //incFullness == 0: command given
|
||||||
|
int newFullness = fullness + incFullness;
|
||||||
|
if (newFullness > 100) newFullness = 100;
|
||||||
|
fullness = newFullness;
|
||||||
|
|
||||||
|
if (incCloseness > 0 && closeness < 30000) {
|
||||||
|
int newCloseness = closeness + incCloseness;
|
||||||
|
if (newCloseness > 30000) newCloseness = 30000;
|
||||||
|
|
||||||
|
closeness = newCloseness;
|
||||||
|
while(newCloseness >= ExpTable.getClosenessNeededForLevel(level)) {
|
||||||
|
level += 1;
|
||||||
|
owner.getClient().announce(MaplePacketCreator.showOwnPetLevelUp(slot));
|
||||||
|
owner.getMap().broadcastMessage(MaplePacketCreator.showPetLevelUp(owner, slot));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enjoyed = true;
|
||||||
|
} else {
|
||||||
|
if (incCloseness > 0) {
|
||||||
|
int newCloseness = closeness - 1;
|
||||||
|
if (newCloseness < 0) newCloseness = 0;
|
||||||
|
|
||||||
|
closeness = newCloseness;
|
||||||
|
if (level > 1 && newCloseness < ExpTable.getClosenessNeededForLevel(level)) {
|
||||||
|
level -= 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enjoyed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
owner.getMap().broadcastMessage(MaplePacketCreator.commandResponse(owner.getId(), slot, type, enjoyed));
|
||||||
|
saveToDb();
|
||||||
|
|
||||||
|
Item petz = owner.getInventory(MapleInventoryType.CASH).getItem(getPosition());
|
||||||
|
if (petz == null) return;
|
||||||
|
owner.forceUpdateItem(petz);
|
||||||
|
}
|
||||||
|
|
||||||
public void setLevel(byte level) {
|
public void setLevel(byte level) {
|
||||||
this.level = level;
|
this.level = level;
|
||||||
|
|||||||
@@ -54,25 +54,12 @@ public final class PetCommandHandler extends AbstractMaplePacketHandler {
|
|||||||
if (petCommand == null) {
|
if (petCommand == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean success = false;
|
|
||||||
if (Randomizer.nextInt(101) <= petCommand.getProbability()) {
|
if (Randomizer.nextInt(101) <= petCommand.getProbability()) {
|
||||||
success = true;
|
pet.gainClosenessFullness(chr, petCommand.getIncrease(), 0, command);
|
||||||
if (pet.getCloseness() < 30000) {
|
}
|
||||||
int newCloseness = pet.getCloseness() + petCommand.getIncrease();
|
else {
|
||||||
if (newCloseness > 30000) {
|
chr.getMap().broadcastMessage(MaplePacketCreator.commandResponse(chr.getId(), petIndex, command, false));
|
||||||
newCloseness = 30000;
|
|
||||||
}
|
|
||||||
pet.setCloseness(newCloseness);
|
|
||||||
if (newCloseness >= ExpTable.getClosenessNeededForLevel(pet.getLevel())) {
|
|
||||||
pet.setLevel((byte) (pet.getLevel() + 1));
|
|
||||||
c.announce(MaplePacketCreator.showOwnPetLevelUp(chr.getPetIndex(pet)));
|
|
||||||
chr.getMap().broadcastMessage(MaplePacketCreator.showPetLevelUp(c.getPlayer(), chr.getPetIndex(pet)));
|
|
||||||
}
|
|
||||||
pet.saveToDb();
|
|
||||||
Item petz = chr.getInventory(MapleInventoryType.CASH).getItem(pet.getPosition());
|
|
||||||
chr.forceUpdateItem(petz);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
chr.getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.commandResponse(chr.getId(), petIndex, command, success), true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,51 +68,9 @@ public final class PetFoodHandler extends AbstractMaplePacketHandler {
|
|||||||
if (use == null || (itemId / 10000) != 212 || use.getItemId() != itemId) {
|
if (use == null || (itemId / 10000) != 212 || use.getItemId() != itemId) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean gainCloseness = false;
|
|
||||||
if (Randomizer.nextInt(101) > 50) {
|
// 50% chance to get +1 closeness
|
||||||
gainCloseness = true;
|
pet.gainClosenessFullness(chr, (Randomizer.nextInt(101) <= 50) ? 1 : 0, 30, 1);
|
||||||
}
|
|
||||||
if (pet.getFullness() < 100) {
|
|
||||||
int newFullness = pet.getFullness() + 30;
|
|
||||||
if (newFullness > 100) {
|
|
||||||
newFullness = 100;
|
|
||||||
}
|
|
||||||
pet.setFullness(newFullness);
|
|
||||||
if (gainCloseness && pet.getCloseness() < 30000) {
|
|
||||||
int newCloseness = pet.getCloseness() + 1;
|
|
||||||
if (newCloseness > 30000) {
|
|
||||||
newCloseness = 30000;
|
|
||||||
}
|
|
||||||
pet.setCloseness(newCloseness);
|
|
||||||
if (newCloseness >= ExpTable.getClosenessNeededForLevel(pet.getLevel())) {
|
|
||||||
pet.setLevel((byte) (pet.getLevel() + 1));
|
|
||||||
c.announce(MaplePacketCreator.showOwnPetLevelUp(chr.getPetIndex(pet)));
|
|
||||||
chr.getMap().broadcastMessage(MaplePacketCreator.showPetLevelUp(c.getPlayer(), chr.getPetIndex(pet)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
chr.getMap().broadcastMessage(MaplePacketCreator.commandResponse(chr.getId(), slot, 0, true));
|
|
||||||
} else {
|
|
||||||
if (gainCloseness) {
|
|
||||||
int newCloseness = pet.getCloseness() - 1;
|
|
||||||
if (newCloseness < 0) {
|
|
||||||
newCloseness = 0;
|
|
||||||
}
|
|
||||||
pet.setCloseness(newCloseness);
|
|
||||||
if (pet.getLevel() > 1 && newCloseness < ExpTable.getClosenessNeededForLevel(pet.getLevel())) {
|
|
||||||
pet.setLevel((byte) (pet.getLevel() - 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
chr.getMap().broadcastMessage(MaplePacketCreator.commandResponse(chr.getId(), slot, 0, false));
|
|
||||||
}
|
|
||||||
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, pos, (short) 1, false);
|
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, pos, (short) 1, false);
|
||||||
|
|
||||||
pet.saveToDb();
|
|
||||||
|
|
||||||
Item petz = chr.getInventory(MapleInventoryType.CASH).getItem(pet.getPosition());
|
|
||||||
if (petz == null){ //Not a real fix but fuck it you know?
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
chr.forceUpdateItem(petz);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,11 +66,12 @@ public final class QuestActionHandler extends AbstractMaplePacketHandler {
|
|||||||
//System.out.println(slea.toString());
|
//System.out.println(slea.toString());
|
||||||
int npc = slea.readInt();
|
int npc = slea.readInt();
|
||||||
slea.readInt();
|
slea.readInt();
|
||||||
if(quest.canComplete(player, npc)) {
|
|
||||||
QuestScriptManager.getInstance().end(c, questid, npc);
|
if(quest.canComplete(player, npc)) {
|
||||||
player.getClient().getSession().write(MaplePacketCreator.showSpecialEffect(9)); //show effect when completion
|
QuestScriptManager.getInstance().end(c, questid, npc);
|
||||||
player.getMap().broadcastMessage(player, MaplePacketCreator.showForeignEffect(player.getId(), 9));//show effect around players I guess
|
player.getClient().getSession().write(MaplePacketCreator.showSpecialEffect(9)); //show effect when completion
|
||||||
}
|
player.getMap().broadcastMessage(player, MaplePacketCreator.showForeignEffect(player.getId(), 9));//show effect around players I guess
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ import client.inventory.Equip;
|
|||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import client.inventory.MapleInventoryType;
|
import client.inventory.MapleInventoryType;
|
||||||
import client.inventory.MaplePet;
|
import client.inventory.MaplePet;
|
||||||
import constants.ExpTable;
|
|
||||||
import constants.ItemConstants;
|
import constants.ItemConstants;
|
||||||
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
@@ -435,22 +434,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler {
|
|||||||
MaplePet pet = player.getPet(i);
|
MaplePet pet = player.getPet(i);
|
||||||
if (pet != null) {
|
if (pet != null) {
|
||||||
if (pet.canConsume(itemId)) {
|
if (pet.canConsume(itemId)) {
|
||||||
pet.setFullness(100);
|
pet.gainClosenessFullness(player, 100, 100, 1);
|
||||||
if (pet.getCloseness() + 100 > 30000) {
|
|
||||||
pet.setCloseness(30000);
|
|
||||||
} else {
|
|
||||||
pet.gainCloseness(100);
|
|
||||||
}
|
|
||||||
|
|
||||||
while (pet.getCloseness() >= ExpTable.getClosenessNeededForLevel(pet.getLevel())) {
|
|
||||||
pet.setLevel((byte) (pet.getLevel() + 1));
|
|
||||||
byte index = player.getPetIndex(pet);
|
|
||||||
c.announce(MaplePacketCreator.showOwnPetLevelUp(index));
|
|
||||||
player.getMap().broadcastMessage(MaplePacketCreator.showPetLevelUp(c.getPlayer(), index));
|
|
||||||
}
|
|
||||||
Item item = player.getInventory(MapleInventoryType.CASH).getItem(pet.getPosition());
|
|
||||||
player.forceUpdateItem(item);
|
|
||||||
player.getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.commandResponse(player.getId(), i, 1, true), true);
|
|
||||||
remove(c, itemId);
|
remove(c, itemId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,11 +21,6 @@
|
|||||||
*/
|
*/
|
||||||
package scripting;
|
package scripting;
|
||||||
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import tools.DatabaseConnection;
|
|
||||||
|
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|||||||
@@ -519,6 +519,10 @@ public class EventInstanceManager {
|
|||||||
return intList;
|
return intList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final void setEventRewards(List<Double> rwds, List<Double> qtys, int expGiven) {
|
||||||
|
setEventRewards(1, rwds, qtys, expGiven);
|
||||||
|
}
|
||||||
|
|
||||||
public final void setEventRewards(List<Double> rwds, List<Double> qtys) {
|
public final void setEventRewards(List<Double> rwds, List<Double> qtys) {
|
||||||
setEventRewards(1, rwds, qtys);
|
setEventRewards(1, rwds, qtys);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -280,19 +280,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
|
|||||||
|
|
||||||
public void gainCloseness(int closeness) {
|
public void gainCloseness(int closeness) {
|
||||||
for (MaplePet pet : getPlayer().getPets()) {
|
for (MaplePet pet : getPlayer().getPets()) {
|
||||||
if (pet.getCloseness() > 30000) {
|
pet.gainClosenessFullness(getPlayer(), closeness, 0, 0);
|
||||||
pet.setCloseness(30000);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
pet.gainCloseness(closeness);
|
|
||||||
while (pet.getCloseness() > ExpTable.getClosenessNeededForLevel(pet.getLevel())) {
|
|
||||||
pet.setLevel((byte) (pet.getLevel() + 1));
|
|
||||||
byte index = getPlayer().getPetIndex(pet);
|
|
||||||
getClient().announce(MaplePacketCreator.showOwnPetLevelUp(index));
|
|
||||||
getPlayer().getMap().broadcastMessage(getPlayer(), MaplePacketCreator.showPetLevelUp(getPlayer(), index));
|
|
||||||
}
|
|
||||||
Item petz = getPlayer().getInventory(MapleInventoryType.CASH).getItem(pet.getPosition());
|
|
||||||
getPlayer().forceUpdateItem(petz);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1171,6 +1171,8 @@ public class MapleMap {
|
|||||||
monster.setMap(this);
|
monster.setMap(this);
|
||||||
Point spos = new Point(pos.x, pos.y - 1);
|
Point spos = new Point(pos.x, pos.y - 1);
|
||||||
spos = calcPointBelow(spos);
|
spos = calcPointBelow(spos);
|
||||||
|
if(spos == null) return;
|
||||||
|
|
||||||
spos.y--;
|
spos.y--;
|
||||||
monster.setPosition(spos);
|
monster.setPosition(spos);
|
||||||
if (mapid < 925020000 || mapid > 925030000) {
|
if (mapid < 925020000 || mapid > 925030000) {
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ public class MapleQuest {
|
|||||||
a.run(c, selection);
|
a.run(c, selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
c.getClient().getSession().write(MaplePacketCreator.showForeignEffect(9)); // Quest completion
|
c.getClient().getSession().write(MaplePacketCreator.showSpecialEffect(9)); // Quest completion
|
||||||
c.getMap().broadcastMessage(c, MaplePacketCreator.showForeignEffect(c.getId(), 9), false); //use 9 instead of 12 for both
|
c.getMap().broadcastMessage(c, MaplePacketCreator.showForeignEffect(c.getId(), 9), false); //use 9 instead of 12 for both
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39706,6 +39706,7 @@
|
|||||||
<int name="count" value="4"/>
|
<int name="count" value="4"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
<int name="nextQuest" value="8249"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="8249">
|
<imgdir name="8249">
|
||||||
@@ -39784,6 +39785,32 @@
|
|||||||
<imgdir name="8">
|
<imgdir name="8">
|
||||||
<int name="id" value="1102041"/>
|
<int name="id" value="1102041"/>
|
||||||
<int name="count" value="1"/>
|
<int name="count" value="1"/>
|
||||||
|
<int name="job" value="1180673"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="9">
|
||||||
|
<int name="id" value="1102041"/>
|
||||||
|
<int name="count" value="1"/>
|
||||||
|
<int name="job" value="2099202"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="10">
|
||||||
|
<int name="id" value="1102042"/>
|
||||||
|
<int name="count" value="1"/>
|
||||||
|
<int name="job" value="4198404"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="11">
|
||||||
|
<int name="id" value="1102041"/>
|
||||||
|
<int name="count" value="1"/>
|
||||||
|
<int name="job" value="8200"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="12">
|
||||||
|
<int name="id" value="1102041"/>
|
||||||
|
<int name="count" value="1"/>
|
||||||
|
<int name="job" value="16400"/>
|
||||||
|
</imgdir>
|
||||||
|
<imgdir name="13">
|
||||||
|
<int name="id" value="1102041"/>
|
||||||
|
<int name="count" value="1"/>
|
||||||
|
<int name="job" value="32800"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
|
|||||||
@@ -63665,6 +63665,12 @@
|
|||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="0">
|
<imgdir name="0">
|
||||||
<int name="npc" value="9209001"/>
|
<int name="npc" value="9209001"/>
|
||||||
|
<imgdir name="quest">
|
||||||
|
<imgdir name="0">
|
||||||
|
<int name="id" value="8248"/>
|
||||||
|
<int name="state" value="2"/>
|
||||||
|
</imgdir>
|
||||||
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="8251">
|
<imgdir name="8251">
|
||||||
|
|||||||
@@ -19523,7 +19523,7 @@ Able to proceed to 'Merry-go-round in Kampung' as next quest.
|
|||||||
<imgdir name="8206">
|
<imgdir name="8206">
|
||||||
<string name="name" value="Ace of Heart's Secret Ability"/>
|
<string name="name" value="Ace of Heart's Secret Ability"/>
|
||||||
<string name="0" value="#b#p2041017##k and his partner seems pretty busy recently. Should I check with them on what kind of business they are on now?"/>
|
<string name="0" value="#b#p2041017##k and his partner seems pretty busy recently. Should I check with them on what kind of business they are on now?"/>
|
||||||
<string name="1" value="#b#p2041017##k said he can make a nice package for a chocolate... ...... Nope, not this time. Actually, he and his partner are providing a "synthetizing on demand" kind of service. Of #b#t2049100##k! By completing his quest, I am granted a fair amount of these scrolls. But LOOK AT THIS LIST:\n\n#i4000257# #t4000257# #c4000257# / #r50#k\n#i4000046# #t4000046# #c4000046# / #r50#k\n#i4000054# #t4000054# #c4000054# / #r50#k\n#i4000150# #t4000150# #c4000150# / #r50#k\n#i4000080# #t4000080# #c4000080# / #r50#k\n#i4000151# #t4000151# #c4000151# / #r5#k\n#i4000152# #t4000152# #c4000152# / #r5#k\n#i4031906# #t4031906# #c4031906# / #r5#k\n#i4000040# #t4000040# #c4000040# / #r2#k\n#i4000176# #t4000176# #c4000176# / #r2#k\n#i4000175# #t4000175# #c4000175# / #r2#k\n#i4000138# #t4000138# #c4000138# / #r2#k\n#i4011007# #t4011007# #c4011007# / #r2#k\n#i4021009# #t4021009# #c4021009# / #r2#k\n#i4005000# #t4005000# #c4005000# / #r5#k\n#i4005001# #t4005001# #c4005001# / #r5#k\n#i4005002# #t4005002# #c4005002# / #r5#k\n#i4005003# #t4005003# #c4005003# / #r5#k\n#i4005004# #t4005004# #c4005004# / #r5#k\n#i4011000# #t4011000# #c4011000# / #r5#k\n#i4011001# #t4011001# #c4011001# / #r5#k\n#i4011002# #t4011002# #c4011002# / #r5#k\n#i4011003# #t4011003# #c4011003# / #r5#k\n#i4011004# #t4011004# #c4011004# / #r5#k\n#i4011005# #t4011005# #c4011005# / #r5#k\n#i4011006# #t4011006# #c4011006# / #r5#k\n#i4021000# #t4021000# #c4021000# / #r5#k\n#i4021001# #t4021001# #c4021001# / #r5#k\n#i4021002# #t4021002# #c4021002# / #r5#k\n#i4021003# #t4021003# #c4021003# / #r5#k\n#i4021004# #t4021004# #c4021004# / #r5#k\n#i4021005# #t4021005# #c4021005# / #r5#k\n#i4021006# #t4021006# #c4021006# / #r5#k\n#i4021007# #t4021007# #c4021007# / #r5#k\n#i4021008# #t4021008# #c4021008# / #r5#k\n#i1442030# #t1442030# #c1442030# / #r1#k\n#i1002033# #t1002033# #c1002033# / #r1#k\n#i1050132# #t1050132# #c1050132# / #r1#k\n#i1082002# #t1082002# #c1082002# / #r1#k\n#i1072169# #t1072169# #c1072169# / #r1#k"/>
|
<string name="1" value="#b#p2041017##k said he can make a nice package for a chocolate... ...... Nope, not this time. Actually, he and his partner are providing a "synthetizing on demand" kind of service. Of #b#t2049100##k! By completing his quest, I am granted a fair amount of these scrolls. But LOOK AT THIS LIST:\n\n#i4032474# #t4032474# #c4032474# / #r5#k\n#i4000046# #t4000046# #c4000046# / #r50#k\n#i4000054# #t4000054# #c4000054# / #r50#k\n#i4000150# #t4000150# #c4000150# / #r50#k\n#i4000080# #t4000080# #c4000080# / #r50#k\n#i4000151# #t4000151# #c4000151# / #r5#k\n#i4000152# #t4000152# #c4000152# / #r5#k\n#i4031906# #t4031906# #c4031906# / #r5#k\n#i4000040# #t4000040# #c4000040# / #r2#k\n#i4000176# #t4000176# #c4000176# / #r2#k\n#i4000175# #t4000175# #c4000175# / #r2#k\n#i4000138# #t4000138# #c4000138# / #r2#k\n#i4011007# #t4011007# #c4011007# / #r2#k\n#i4021009# #t4021009# #c4021009# / #r2#k\n#i4005000# #t4005000# #c4005000# / #r5#k\n#i4005001# #t4005001# #c4005001# / #r5#k\n#i4005002# #t4005002# #c4005002# / #r5#k\n#i4005003# #t4005003# #c4005003# / #r5#k\n#i4005004# #t4005004# #c4005004# / #r5#k\n#i4011000# #t4011000# #c4011000# / #r5#k\n#i4011001# #t4011001# #c4011001# / #r5#k\n#i4011002# #t4011002# #c4011002# / #r5#k\n#i4011003# #t4011003# #c4011003# / #r5#k\n#i4011004# #t4011004# #c4011004# / #r5#k\n#i4011005# #t4011005# #c4011005# / #r5#k\n#i4011006# #t4011006# #c4011006# / #r5#k\n#i4021000# #t4021000# #c4021000# / #r5#k\n#i4021001# #t4021001# #c4021001# / #r5#k\n#i4021002# #t4021002# #c4021002# / #r5#k\n#i4021003# #t4021003# #c4021003# / #r5#k\n#i4021004# #t4021004# #c4021004# / #r5#k\n#i4021005# #t4021005# #c4021005# / #r5#k\n#i4021006# #t4021006# #c4021006# / #r5#k\n#i4021007# #t4021007# #c4021007# / #r5#k\n#i4021008# #t4021008# #c4021008# / #r5#k\n#i1442030# #t1442030# #c1442030# / #r1#k\n#i1002033# #t1002033# #c1002033# / #r1#k\n#i1050132# #t1050132# #c1050132# / #r1#k\n#i1082002# #t1082002# #c1082002# / #r1#k\n#i1072169# #t1072169# #c1072169# / #r1#k"/>
|
||||||
<string name="2" value="Ace of Hearts helped me make these scrolls... Geez, that was hard. It is repeatable within 3 days, huh?"/>
|
<string name="2" value="Ace of Hearts helped me make these scrolls... Geez, that was hard. It is repeatable within 3 days, huh?"/>
|
||||||
<int name="area" value="50"/>
|
<int name="area" value="50"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
@@ -19739,7 +19739,7 @@ Able to proceed to 'Merry-go-round in Kampung' as next quest.
|
|||||||
<string name="parent" value="Maple 7th Day Market"/>
|
<string name="parent" value="Maple 7th Day Market"/>
|
||||||
<int name="order" value="1"/>
|
<int name="order" value="1"/>
|
||||||
<string name="0" value="The Maple 7th Day Market will open soon. Better check with #b#p9209001##k what's up."/>
|
<string name="0" value="The Maple 7th Day Market will open soon. Better check with #b#p9209001##k what's up."/>
|
||||||
<string name="1" value="She needs some help collecting omok pieces for the entertainment of the folks, better gather them soon."/>
|
<string name="1" value="She needs some help collecting omok pieces for the entertainment of the folks, better gather them soon.\n\n#i4030000# #t4030000# #c4030000# / #r15#k\n#i4030001# #t4030001# #c4030001# / #r15#k\n#i4030010# #t4030010# #c4030010# / #r15#k\n#i4030011# #t4030011# #c4030011# / #r15#k\n#i4030013# #t4030013# #c4030013# / #r15#k\n#i4030014# #t4030014# #c4030014# / #r15#k\n#i4030015# #t4030015# #c4030015# / #r15#k\n#i4030016# #t4030016# #c4030016# / #r15#k\n#i4030009# #t4030009# #c4030009# / #r2#k\n#i3010001# #t3010001# #c3010001# / #r4#k\n"/>
|
||||||
<string name="2" value="I completed #b#p9209001##k's first task. Turned out that the main event became even more attractive."/>
|
<string name="2" value="I completed #b#p9209001##k's first task. Turned out that the main event became even more attractive."/>
|
||||||
<int name="area" value="50"/>
|
<int name="area" value="50"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
@@ -19748,23 +19748,21 @@ Able to proceed to 'Merry-go-round in Kampung' as next quest.
|
|||||||
<string name="parent" value="Maple 7th Day Market"/>
|
<string name="parent" value="Maple 7th Day Market"/>
|
||||||
<int name="order" value="2"/>
|
<int name="order" value="2"/>
|
||||||
<string name="0" value="The time for the Maple 7th Day Market has come. #b#p9209001##k is preparing another event now."/>
|
<string name="0" value="The time for the Maple 7th Day Market has come. #b#p9209001##k is preparing another event now."/>
|
||||||
<string name="1" value="Now it is a Card-Game Convention she plans to host. As before, there is some great reward for the completion of this task."/>
|
<string name="1" value="Now it is a Card-Game Convention she plans to host. As before, there is some great reward for the completion of this task.\n\n#i4000035# #t4000035# #c4000035# / #r10#k\n#i4000114# #t4000114# #c4000114# / #r10#k\n#i4030009# #t4030009# #c4030009# / #r10#k\n#i3010001# #t3010001# #c3010001# / #r20#k\n#i4030012# #t4030012# #c4030012# / #r200#k\n"/>
|
||||||
<string name="2" value="I completed #b#p9209001##k's final task. The public seems to have enjoyed a lot the events of the Maple 7th Day Market."/>
|
<string name="2" value="I completed #b#p9209001##k's final task. The public seems to have enjoyed a lot the events of the Maple 7th Day Market."/>
|
||||||
<int name="area" value="50"/>
|
<int name="area" value="50"/>
|
||||||
<int name="autoStart" value="1"/>
|
|
||||||
<int name="autoPreComplete" value="1"/>
|
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="8251">
|
<imgdir name="8251">
|
||||||
<string name="name" value="Assembling the toy-armada!"/>
|
<string name="name" value="Assembling the toy-armada!"/>
|
||||||
<string name="0" value="It seems the aliens started to plunder cows from the farms around #bHenesys#k. I will check with #bLazy Daisy#k what is going on."/>
|
<string name="0" value="It seems the aliens started to plunder cows from the farms around #bHenesys#k. I will check with #bLazy Daisy#k what is going on."/>
|
||||||
<string name="1" value="#bLazy Daisy#k figured out that assembling an armada to fight back the aliens would stop them from their current plundering actions. Let's help her!"/>
|
<string name="1" value="#bLazy Daisy#k figured out that assembling an armada to fight back the aliens would stop them from their current plundering actions. Let's help her!\n\n#i4000099# #t4000099# #c4000099# / #r100#k\n#i4000104# #t4000104# #c4000104# / #r100#k\n#i4000105# #t4000105# #c4000105# / #r100#k\n#i4000118# #t4000118# #c4000118# / #r100#k\n#i4000122# #t4000122# #c4000122# / #r100#k\n#i4000124# #t4000124# #c4000124# / #r10#k\n#i4000125# #t4000125# #c4000125# / #r10#k\n#i4000126# #t4000126# #c4000126# / #r10#k\n"/>
|
||||||
<string name="2" value="That teached these aliens a lesson or two. Now #bHenesys'#k farms are well-suited against any other attacks from UFOs. Mission complete."/>
|
<string name="2" value="That teached these aliens a lesson or two. Now #bHenesys'#k farms are well-suited against any other attacks from UFOs. Mission complete."/>
|
||||||
<int name="area" value="50"/>
|
<int name="area" value="50"/>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="8254">
|
<imgdir name="8254">
|
||||||
<string name="name" value="GM's help"/>
|
<string name="name" value="GM's hand"/>
|
||||||
<string name="0" value="Now that I got my PAC, while I am thinking on how to upgrade it's stats to better suit me, better check on what the Maple Administrator has to say."/>
|
<string name="0" value="Now that I got my PAC, while I am thinking on how I should upgrade it's stats to better suit me, better check on what the Maple Administrator has to say about this matter..."/>
|
||||||
<string name="1" value="Now I'm on a quest to test my fetching skills. She said the reward would be the powerful Chaos Scrolls. Not only one, but a bunch! "/>
|
<string name="1" value="Now I'm on a quest to test my fetching skills. She said the reward would be the powerful Chaos Scrolls. Not only one, but a bunch!\n\n#i4031017# #t4031017# #c4031017# / #r1#k\n#i4011007# #t4011007# #c4011007# / #r5#k\n#i4021009# #t4021009# #c4021009# / #r5#k\n#i4003002# #t4003002# #c4003002# / #r5#k\n#i4003001# #t4003001# #c4003001# / #r5#k\n#i4003000# #t4003000# #c4003000# / #r30#k\n"/>
|
||||||
<string name="2" value="The administrator told me more about the Chaos Scrolls capabilities: enhancing or downgrading an equipment's stats."/>
|
<string name="2" value="The administrator told me more about the Chaos Scrolls capabilities: enhancing or downgrading an equipment's stats."/>
|
||||||
<int name="area" value="50"/>
|
<int name="area" value="50"/>
|
||||||
<int name="autoStart" value="1"/>
|
<int name="autoStart" value="1"/>
|
||||||
|
|||||||
@@ -43694,9 +43694,9 @@
|
|||||||
</imgdir>
|
</imgdir>
|
||||||
</imgdir>
|
</imgdir>
|
||||||
<imgdir name="0">
|
<imgdir name="0">
|
||||||
<string name="0" value="Hello, I see you just helped Lazy Daisy in confronting those aliens, and the reward was anything but a nuisance."/>
|
<string name="0" value="Hello, I see you just helped Lazy Daisy in confronting those aliens, and the reward was anything but a nuisance, I must say."/>
|
||||||
<string name="1" value="See, the #bPink Adventurer Cape#k you just got is the #bonly cape providing an w. attack bonus#k, besides of being quite rare to find. You are thinking right now: 'neat, now I have this nice rare piece of fabric that grants me a bonus on attack'... Well, how do you expect to improve it?"/>
|
<string name="1" value="See, the #bP. Adventurer Cape#k you just got is the #bonly cape providing an attack bonus#k, besides of being quite rare to find. You must be thinking right now: 'neat, now I have this nice rare piece of fabric that grants me a bonus on attack... I must give a shot on improving it right now!' ... Well, how do you expect to improve it?"/>
|
||||||
<string name="2" value="Yes, at first this question is quite simple: just using scrolls for cape. Well, this is right. However, suppose you want to #bempower#k it with more attack bonus. Nope, there is no scrolls for cape for W. Attack..."/>
|
<string name="2" value="Yes, at first the answer to this question is quite simple: just use scrolls for cape! Well, indeed this is right. However, suppose you want to #bempower#k it with even more attack bonus. Nope, there is no scrolls for cape for W. Attack..."/>
|
||||||
<string name="3" value="However, there are #bspecial#k scrolls that are capable of #bimprove attributes#k of a given item: Chaos Scroll, for instance. With it, one can #btry the luck#k changing the attributes of their equipments, for better or for worse."/>
|
<string name="3" value="However, there are #bspecial#k scrolls that are capable of #bimprove attributes#k of a given item: Chaos Scroll, for instance. With it, one can #btry the luck#k changing the attributes of their equipments, for better or for worse."/>
|
||||||
<string name="4" value="Said this, I have quite the quest for you, to test your fetching capabilities. Pass this quest, and you receive not a single scroll, but a #bbooster#k of these. Are you up to the challenge?"/>
|
<string name="4" value="Said this, I have quite the quest for you, to test your fetching capabilities. Pass this quest, and you receive not a single scroll, but a #bbooster#k of these. Are you up to the challenge?"/>
|
||||||
<imgdir name="yes">
|
<imgdir name="yes">
|
||||||
|
|||||||
Reference in New Issue
Block a user