summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/char/char-server.conf1
-rw-r--r--conf/map/battle/client.conf8
-rw-r--r--conf/map/battle/items.conf3
-rw-r--r--conf/messages.conf2
-rw-r--r--db/constants.conf3
-rw-r--r--db/pre-re/item_db.conf24
-rw-r--r--db/re/item_db.conf24
-rw-r--r--doc/constants.md6
-rw-r--r--doc/script_commands.txt11
-rw-r--r--npc/quests/quests_ein.txt2720
-rw-r--r--sql-files/item_db.sql12
-rw-r--r--sql-files/item_db_re.sql12
-rw-r--r--src/common/mmo.h3
-rw-r--r--src/map/atcommand.c73
-rw-r--r--src/map/battle.c3
-rw-r--r--src/map/battle.h3
-rw-r--r--src/map/clif.c40
-rw-r--r--src/map/itemdb.h13
-rw-r--r--src/map/map.h1
-rw-r--r--src/map/packets.h1324
-rw-r--r--src/map/pc.c46
-rw-r--r--src/map/script.c3
-rw-r--r--src/map/status.c101
-rw-r--r--src/map/status.h4
24 files changed, 2154 insertions, 2286 deletions
diff --git a/conf/char/char-server.conf b/conf/char/char-server.conf
index c512f1fb7..47506e324 100644
--- a/conf/char/char-server.conf
+++ b/conf/char/char-server.conf
@@ -50,6 +50,7 @@ char_configuration: {
// Server Communication username and password.
userid: "s1"
passwd: "p1"
+
// Login Server IP
// The character server connects to the login server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
diff --git a/conf/map/battle/client.conf b/conf/map/battle/client.conf
index c3409b578..32f1324be 100644
--- a/conf/map/battle/client.conf
+++ b/conf/map/battle/client.conf
@@ -126,6 +126,14 @@ summer_ignorepalette: false
// Set this to true if your cloth palettes pack doesn't has Hanbok palettes (or has less than the other jobs)
hanbok_ignorepalette: false
+// Do not display cloth colors for the Oktoberfest costume?
+// Set this to true if your cloth palettes pack doesn't has Oktoberfest palettes (or has less than the other jobs)
+oktoberfest_ignorepalette: false
+
+// Do not display cloth colors for the Summer 2 costume?
+// Set this to true if your cloth palettes pack doesn't has Summer 2 palettes (or has less than the other jobs)
+summer2_ignorepalette: false
+
// Show Hercules version to users when the login?
display_version: false
diff --git a/conf/map/battle/items.conf b/conf/map/battle/items.conf
index c7aa99245..f7ffd3f32 100644
--- a/conf/map/battle/items.conf
+++ b/conf/map/battle/items.conf
@@ -86,9 +86,6 @@ item_check: false
// On officials this is 0, but it's set to 100ms as a measure against bots/macros.
item_use_interval: 100
-// How much time must pass between cash food uses? Default: 60000 (1 min)
-cashfood_use_interval: 60000
-
// Required level of bNoMagicDamage before Status Changes are blocked (Golden Thief Bug card).
// For example, if left at 50. An item can give bNoMagicDamage,40;
// which reduces magic damage by 40%, but does not blocks status changes.
diff --git a/conf/messages.conf b/conf/messages.conf
index a1b070391..e14ec239a 100644
--- a/conf/messages.conf
+++ b/conf/messages.conf
@@ -60,7 +60,7 @@
32: PvP: On.
33: GvG: Off.
34: GvG: On.
-//35 FREE
+35: This job has no alternate body styles.
36: Appearance changed.
37: An invalid number was specified.
38: Invalid location number, or name.
diff --git a/db/constants.conf b/db/constants.conf
index d108e0976..dd280612c 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -1394,6 +1394,9 @@ constants_db: {
SC_TUNAPARTY: 649
SC_SHRIMP: 650
SC_FRESHSHRIMP: 651
+
+ // Summer 2 Costume
+ SC_DRESS_UP: 652
comment__: "Emotes"
e_gasp: 0
diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf
index 7309af4d3..b17e57252 100644
--- a/db/pre-re/item_db.conf
+++ b/db/pre-re/item_db.conf
@@ -69802,8 +69802,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_STR,1800000,10;
- percentheal 20,10;
+ sc_start(SC_FOOD_STR_CASH, 1800000, 10);
+ percentheal(20, 10);
">
},
{
@@ -69823,8 +69823,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_AGI,1800000,10;
- percentheal 15,5;
+ sc_start(SC_FOOD_AGI_CASH, 1800000, 10);
+ percentheal(15, 5);
">
},
{
@@ -69844,8 +69844,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_INT,1800000,10;
- percentheal 10,20;
+ sc_start(SC_FOOD_INT_CASH, 1800000, 10);
+ percentheal(10, 20);
">
},
{
@@ -69865,8 +69865,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_DEX,1800000,10;
- percentheal 10,10;
+ sc_start(SC_FOOD_DEX_CASH, 1800000, 10);
+ percentheal(10, 10);
">
},
{
@@ -69886,8 +69886,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_LUK,1800000,10;
- percentheal 14,8;
+ sc_start(SC_FOOD_LUK_CASH, 1800000, 10);
+ percentheal(14, 8);
">
},
{
@@ -69907,8 +69907,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_VIT,1800000,10;
- percentheal 25,0;
+ sc_start(SC_FOOD_VIT_CASH, 1800000, 10);
+ percentheal(25, 0);
">
},
{
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index b47bd46d4..514337801 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -87604,8 +87604,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_STR,1800000,10;
- percentheal 20,10;
+ sc_start(SC_FOOD_STR_CASH, 1800000, 10);
+ percentheal(20, 10);
">
},
{
@@ -87625,8 +87625,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_AGI,1800000,10;
- percentheal 15,5;
+ sc_start(SC_FOOD_AGI_CASH, 1800000, 10);
+ percentheal(15, 5);
">
},
{
@@ -87646,8 +87646,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_INT,1800000,10;
- percentheal 10,20;
+ sc_start(SC_FOOD_INT_CASH, 1800000, 10);
+ percentheal(10, 20);
">
},
{
@@ -87667,8 +87667,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_DEX,1800000,10;
- percentheal 10,10;
+ sc_start(SC_FOOD_DEX_CASH, 1800000, 10);
+ percentheal(10, 10);
">
},
{
@@ -87688,8 +87688,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_LUK,1800000,10;
- percentheal 14,8;
+ sc_start(SC_FOOD_LUK_CASH, 1800000, 10);
+ percentheal(14, 8);
">
},
{
@@ -87709,8 +87709,8 @@ item_db: (
nogstorage: true
}
Script: <"
- sc_start SC_FOOD_VIT,1800000,10;
- percentheal 25,0;
+ sc_start(SC_FOOD_VIT_CASH, 1800000, 10);
+ percentheal(25, 0);
">
},
{
diff --git a/doc/constants.md b/doc/constants.md
index c6010420c..0ecb527dc 100644
--- a/doc/constants.md
+++ b/doc/constants.md
@@ -1316,6 +1316,7 @@
- `SC_TUNAPARTY`: 649
- `SC_SHRIMP`: 650
- `SC_FRESHSHRIMP`: 651
+- `SC_DRESS_UP`: 652
### Emotes
@@ -3797,6 +3798,7 @@
- `MAX_CART`: 100
- `MAX_INVENTORY`: 100
- `MAX_ZENY`: 2147483647
+- `MAX_BANK_ZENY`: 2147483647
- `MAX_BG_MEMBERS`: 30
- `MAX_CHAT_USERS`: 20
- `MAX_REFINE`: 20
@@ -3827,11 +3829,12 @@
- `Option_Dragon5`: 67108864
- `Option_Hanbok`: 134217728
- `Option_Oktoberfest`: 268435456
+- `Option_Summer2`: 536870912
### status option compounds
- `Option_Dragon`: 126353408
-- `Option_Costume`: 402984960
+- `Option_Costume`: 939855872
### send_target
@@ -4003,6 +4006,7 @@
- `SkillPoint`: [param]
- `Class`: [param]
- `Zeny`: [param]
+- `BankVault`: [param]
- `Sex`: [param]
- `NextBaseExp`: [param]
- `NextJobExp`: [param]
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 894b3fc2f..5ba0aaa2e 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -540,7 +540,8 @@ allows you to replace lots of numbered arguments for many commands with
easier to read text. The special variables most commonly used are all
permanent character-based variables:
-Zeny - Amount of Zeny.
+Zeny - Amount of Zeny in the inventory.
+BankVault - Amount of Zeny in the bank.
Hp - Current amount of hit points.
MaxHp - Maximum amount of hit points.
Sp - Current spell points.
@@ -707,7 +708,8 @@ MAX_STORAGE - Maximum storage items
MAX_GUILD_STORAGE - Maximum guild storage items
MAX_CART - Maximum cart items
MAX_INVENTORY - Maximum inventory items
-MAX_ZENY - Maximum Zeny
+MAX_ZENY - Maximum Zeny in the inventory
+MAX_BANK_ZENY - Maximum Zeny in the bank
MAX_BG_MEMBERS - Maximum BattleGround members
MAX_CHAT_USERS - Maximum Chat users
MAX_REFINE - Maximum Refine level
@@ -4290,8 +4292,9 @@ if <color> field is left out.
*showscript("<message>"{, <GID>})
-Makes attached player or GID says a message like shouting a skill name, the message
-will be seen to everyone around but not in chat window.
+Makes the attached player or GID, display a message similiar to a chat,
+this will be seen by everyone near the invoking character but will not
+be displayed in the chat window.
---------------------------------------
diff --git a/npc/quests/quests_ein.txt b/npc/quests/quests_ein.txt
index f7d702277..f5b2e14a6 100644
--- a/npc/quests/quests_ein.txt
+++ b/npc/quests/quests_ein.txt
@@ -474,20 +474,479 @@ einbech,97,167,5 script Cavitar 4_M_EINOLD,{
//== Uwe Kleine :: ein_anoz ================================
einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
+ function F_AboutEinbroch {
+ mes "[Uwe]";
+ mes "Einbroch was originally";
+ mes "built to support Einbech's";
+ mes "mining efforts. Because it's";
+ mes "small and crowded with people,";
+ mes "there's no room to build the ore refining factories over there.";
+ next;
+ mes "[Uwe]";
+ mes "Since Einbroch used to be";
+ mes "an empty lot, it was perfect";
+ mes "for building factories. That's";
+ mes "what my grandfather told me a";
+ mes "long time ago. Anyway, Einbroch quickly grew into a major city.";
+ next;
+ mes "[Uwe]";
+ mes "Now people think that this";
+ mes "city was never planned to be";
+ mes "just an extension of Einbech.";
+ mes "See that rampart over there?";
+ mes "It doesn't connect to Einbech at all! No protection for them...";
+ next;
+ mes "[Uwe]";
+ mes "It's like the government";
+ mes "lost all interest in Einbech.";
+ mes "Even the miners there have";
+ mes "been moving here to work in ";
+ mes "the factories. But more people hasn't made this city more lively.";
+ next;
+ mes "[Uwe]";
+ mes "Einbroch may look modern";
+ mes "and exciting now, but soon";
+ mes "you'll see that there's no sign";
+ mes "of warmth or life. So... Just don't live here in your old age.";
+ next;
+ .@choice2$ = "I won't. Thanks for the advice.";
+ if (BaseClass == Job_Blacksmith)
+ .@choice2$ = "But I like the city life~";
+ switch (select("Then why are you here?", .@choice2$)) {
+ case 1:
+ if (BaseClass == Job_Blacksmith) {
+ mes "[Uwe]";
+ mes "Well, sugar honey,";
+ mes "I've been waiting for";
+ mes "someone. But... It looks";
+ mes "like that person won't be";
+ mes "coming back anyway.";
+ next;
+ mes "[Uwe]";
+ mes "Oooh, but let's not talk";
+ mes "about that. Next time you";
+ mes "drop by, we'll talk about";
+ mes "something more fun, 'kay?";
+ close;
+ }
+ mes "[Uwe]";
+ mes "Well, I have some";
+ mes "precious memories of";
+ mes "this place. Once, there was";
+ mes "a man who lived here who";
+ mes "was just like a father to me.";
+ next;
+ mes "[Uwe]";
+ mes "Oh, but I'm sure that";
+ mes "you don't want to hear";
+ mes "about that. Next time you";
+ mes "drop by, we'll talk about";
+ mes "something more fun, 'kay?";
+ mes "Buhbye for now, cutie~";
+ close;
+ case 2:
+ if (BaseClass != Job_Blacksmith) {
+ mes "[Uwe]";
+ mes "Oh, that is such";
+ mes "a good decision,";
+ mes "sugar honey! Oh, you";
+ mes "cutie adventurers are";
+ mes "so precious, so lovable.";
+ mes "^333333*Tee hee hee~*^000000";
+ next;
+ mes "[Uwe]";
+ mes "Well, that was";
+ mes "a fun talk. Come";
+ mes "back and visit, 'kay?";
+ mes "I'll miss you until";
+ mes "the next time~";
+ close;
+ }
+ mes "[Uwe]";
+ mes "Big cities can be nice,";
+ mes "but you never get to enjoy";
+ mes "the sensation of stepping";
+ mes "barefoot through the grass,";
+ mes "or the magnificent sight of";
+ mes "the shining stars at night.";
+ next;
+ mes "[Uwe]";
+ mes "And the people who live";
+ mes "in the cities can be so";
+ mes "uptight! I've known more";
+ mes "than a few who look down";
+ mes "on people from smaller towns.";
+ next;
+ mes "[Uwe]";
+ mes "It's sad to see some";
+ mes "people will always be";
+ mes "that ignorant. I... I just";
+ mes "can't believe those people";
+ mes "can be sooo close minded!";
+ next;
+ mes "[Uwe]";
+ mes "Oh...!";
+ mes "I'm sorry, I guess";
+ mes "I went a little overboard.";
+ mes "^666666*Titter*^000000 Next time you drop";
+ mes "by, we'll talk about something";
+ mes "more fun, 'kay? Buhbye~";
+ close;
+ }
+ }
+
+ function F_ForgeWeapon {
+ mes "[Uwe]";
+ mes "Well...";
+ mes "I actually just";
+ mes "do smithing work";
+ mes "to create my own";
+ mes "cooking tools.";
+ next;
+ mes "[Uwe]";
+ mes "Oh, I understand";
+ mes "that somebody needs";
+ mes "to fight the monsters,";
+ mes "but I'm the wrong person";
+ mes "to ask for forging weapons.";
+ mes "I... am a strict pacifist~";
+ next;
+ mes "[Uwe]";
+ mes "Just go look";
+ mes "around for a little";
+ mes "bit, I'm sure you'll";
+ mes "find a Blacksmith";
+ mes "who's willing to forge";
+ mes "you a good weapon~";
+ close;
+ }
+
+ function F_Cancel {
+ mes "[Uwe]";
+ mes "Oh...?";
+ mes "Well, feel";
+ mes "free to visit";
+ mes "me whenever";
+ mes "you want, 'kay?";
+ close;
+ }
+
+ function F_RandCloseMsg {
+ switch (rand(1, 3)) {
+ case 1:
+ mes "...Ho ho~";
+ close;
+ case 2:
+ mes "...*Tee Hee~*";
+ close;
+ case 3:
+ mes "...Behbie~";
+ close;
+ }
+ }
+
+ function F_Ingredients {
+ mes "[Uwe]";
+ mes "Now for beginners,";
+ mes "learning to select";
+ mes "and use ingredients";
+ mes "is one of the most";
+ mes "important fundamentals.";
+ next;
+ mes "[Uwe]";
+ mes "Cooking is like forging";
+ mes "since specific ingredients";
+ mes "are needed to make specialty";
+ mes "items or dishes. You can't just";
+ mes "skip them if you really need";
+ mes "them, right? Right!";
+ next;
+ mes "[Uwe]";
+ mes "Once you make up your";
+ mes "mind to do something,";
+ mes "focus on finishing it, 'kay?";
+ mes "Never cut corners and always";
+ mes "dedicate yourself to make the";
+ mes "very best finished product~";
+ if (ein_cook == 7 && BaseClass == Job_Blacksmith)
+ ein_cook += 10;
+ next;
+ mes "[Uwe]";
+ mes "Well, that was";
+ mes "a fun talk. Come";
+ mes "back and visit, 'kay?";
+ mes "I'll miss you until";
+ mes "the next time~";
+ F_RandCloseMsg();
+ }
+
+ function F_Cooking {
+ mes "[Uwe]";
+ mes "Mm...?";
+ mes "Did you just";
+ mes "say that you";
+ mes "want to learn";
+ mes "the art of cooking?";
+ next;
+ mes "[Uwe]";
+ mes "I'm sorry, but I can't";
+ mes "really give culinary";
+ mes "lessons. But I will";
+ mes "give good advice for";
+ mes "hopeful beginners.";
+ next;
+ mes "[Uwe]";
+ mes "Now...";
+ mes "For your tuition";
+ mes "I'll need-- Gosh,";
+ mes "there's just so many";
+ mes "things. Get some paper,";
+ mes "and a pen for this list...";
+ next;
+ ein_cook += 100;
+ mes "[Uwe]";
+ mes "Just kidding!";
+ mes "^333333*Titter~*^000000 I don't need";
+ mes "much to make some";
+ mes "cooking utensils. Bring";
+ mes "6 ^0000FFLarge Jellopy^000000. That's it!";
+ next;
+ mes "[Uwe]";
+ mes "In return, I will give you";
+ mes "1 Coal and some useful";
+ mes "cooking advice for novices.";
+ mes "I give this advice for free to";
+ mes "my smithing colleages, though...";
+ next;
+ mes "[Uwe]";
+ mes "Why ^EEA9B8don't^000000 you";
+ mes "become a Blacksmith?";
+ mes "I'm much more confident";
+ mes "in that field. ^333333*Tee hee~*^000000";
+ next;
+ mes "[Uwe]";
+ mes "Well, I'll be";
+ mes "waiting right";
+ mes "here until you";
+ mes "come back.";
+ F_RandCloseMsg();
+ }
+
+ function F_Heart {
+ mes "[Uwe]";
+ mes "Ah, heart. Just like forging,";
+ mes "you need passion and desire";
+ mes "to create something special.";
+ mes "Every smith and cook knows that";
+ mes "you can do anything if you have";
+ mes "the will and the commitment.";
+ next;
+ mes "[Uwe]";
+ mes "Well, that's all";
+ mes "I really have to";
+ mes "say about that. But";
+ mes "come back and chat";
+ mes "whenever you please.";
+ F_RandCloseMsg();
+ }
+
+ function F_Skills {
+ mes "[Uwe]";
+ mes "When you're beginning to learn";
+ mes "skills, you can't let yourself be discouraged! Practice makes";
+ mes "perfect, you know? But never";
+ mes "use your lack of skills as an";
+ mes "excuse if you happen to fail...";
+ next;
+ mes "[Uwe]";
+ mes "Effort is also an essential";
+ mes "in forging and cooking! Now,";
+ mes "on the other hand, if you put";
+ mes "in all the effort but didn't learn any of the skills, you'll still get nowhere fast, right? Right!";
+ next;
+ mes "[Uwe]";
+ mes "The key is to always";
+ mes "give 100% effort and work";
+ mes "on improving your skills.";
+ mes "Before you know it, you'll";
+ mes "be a respected master!";
+ next;
+ mes "[Uwe]";
+ mes "Well, that was";
+ mes "a fun talk. Come";
+ mes "back and visit, 'kay?";
+ mes "I'll miss you until";
+ mes "the next time~";
+ F_RandCloseMsg();
+ }
+
+ function F_Tools {
+ mes "[Uwe]";
+ mes "Cooking is a little";
+ mes "easier if you have";
+ mes "nicer tools to use,";
+ mes "but that's it. Tools by";
+ mes "themselves can't make";
+ mes "just anybody a master.";
+ next;
+ mes "[Uwe]";
+ mes "In the end, the best";
+ mes "tools are the ones you're";
+ mes "most comfortable with using.";
+ mes "In fact, I still use the old knife I used back when I was just";
+ mes "a little novice chef~";
+ next;
+ mes "[Uwe]";
+ mes "Oh, while we're on";
+ mes "the subject of tools,";
+ mes "I just received some";
+ mes "new hammers today.";
+ mes "Would you like a couple?";
+ next;
+ if (checkweight(Spawn, 50) == 0) {
+ mes "[Uwe]";
+ mes "Mmmm...?";
+ mes "You're holding too many";
+ mes "things. I can't give you any";
+ mes "hammers if you don't have";
+ mes "room. Hurry, put your extra";
+ mes "stuff in your Kafra Storage~";
+ close;
+ }
+ ein_cook += 10;
+ getitem Golden_Hammer, 1;
+ getitem Iron_Hammer, 1;
+ next;
+ mes "[Uwe]";
+ mes "Well, I hope";
+ mes "you like them~";
+ F_RandCloseMsg();
+ }
+
+ function F_ToolsWithoutReward {
+ mes "[Uwe]";
+ mes "Cooking is a little";
+ mes "easier if you have";
+ mes "nicer tools to use,";
+ mes "but that's it. Tools by";
+ mes "themselves can't make";
+ mes "just anybody a master.";
+ next;
+ mes "[Uwe]";
+ mes "In the end, the best";
+ mes "tools are the ones you're";
+ mes "most comfortable with using.";
+ mes "In fact, I still use the old knife I used back when I was just";
+ mes "a little novice chef~";
+ next;
+ mes "[Uwe]";
+ mes "Well, that was";
+ mes "a fun talk. Come";
+ mes "back and visit, 'kay?";
+ mes "I'll miss you until";
+ mes "the next time~";
+ F_RandCloseMsg();
+ }
+
+ function F_OverWeight {
+ mes "[Uwe]";
+ mes "Oh, I was going to give";
+ mes "you a little something,";
+ mes "but you've carrying too";
+ mes "many things. Why don't";
+ mes "you put some of it away";
+ mes "in your Kafra Storage?";
+ close;
+ }
+
+ function F_LargeJellopyForCoal {
+ if (countitem(Large_Jellopy) > 5) {
+ if (checkweight(Spawn, 199) == 0)
+ F_OverWeight();
+ mes "[Uwe]";
+ mes "Thank you ^EEA9B8so^000000 much!";
+ mes "Here's the Coal I promised~";
+ mes "Oh, and take these Mini Furnaces. They were just lying around, so you know, I thought, well, why don't you take them? *Tee hee hee~*";
+ delitem Large_Jellopy, 6;
+ ein_cook = 219;
+ getitem Coal, 1;
+ getitem Portable_Furnace, 10;
+ next;
+ mes "[Uwe]";
+ mes "I hope you enjoy!";
+ mes "Personally, I think the";
+ mes "best part of smithing";
+ mes "is standing over the flaming";
+ mes "heat and getting all ^EEA9B8hot and";
+ mes "sweaty^000000. Ooh, how exciting~!";
+ close;
+ } else if (countitem(Large_Jellopy) > 0) {
+ mes "[Uwe]";
+ mes "Ooh, you're missing";
+ mes "some. I guess you can";
+ mes "still give them to me, but";
+ mes "you'd get less of a reward";
+ if (Sex == SEX_MALE) {
+ mes "...you ^EEA9B8naughty boy^000000.";
+ } else {
+ mes "...you ^EEA9B8naughty girl^000000.";
+ }
+ next;
+ .@choice = select("Give him all.", "Cancel.");
+ if (.@choice == 1) {
+ mes "[Uwe]";
+ mes "Just kidding~";
+ mes "Don't be so nervous, I don't really need those anymore. But since I know you're hard working, I'll throw in a little something extra...";
+ next;
+ mes "[Uwe]";
+ mesf("I usually give you cutie %ss 10 Mini Furnaces, but you can have ^EEA9B811^000000." /* TODO: HULD Plural Table for jobname() */
+ "There's the little something extra I was talking about.", jobname(Class));
+ } else {
+ mes "[Uwe]";
+ mes "Well... Then... Anyway,";
+ mes "Congratulation to becoming";
+ mesf("a %s!!", jobname(Class));
+ mes "This is my present for it.";
+ if (Sex == SEX_MALE) {
+ mes "...you ^EEA9B8naughty boy^000000.";
+ } else {
+ mes "...you ^EEA9B8naughty girl^000000.";
+ }
+ }
+ if (checkweight(Knife, 1) == 0 ||
+ checkweight(Spawn, (.@choice == 1 ? 220 : 200)) == 0)
+ F_OverWeight();
+ ein_cook = 219;
+ getitem Portable_Furnace, (.@choice == 1 ? 11 : 10);
+ next;
+ mes "[Uwe]";
+ mes "I know it's not very extravagant, but these will come in handy next time you're smithing. So make the best use of them, 'kay?";
+ close;
+ } else {
+ mes "[Uwe]";
+ mes "^666666You didn't bring";
+ mes "any Large Jellopy...?^000000.";
+ ein_cook = 219;
+ next;
+ mes "[Uwe]";
+ mes "It's fine! It's not like I feel ^EEA9B8betrayed^000000 or anything, but I don't need them anymore! Since we're both in the business of smithing, I just hope that you remember to follow through on your favors, 'kay? Buhbye~";
+ close;
+ }
+ }
+
EinUwe = 0;
if (BaseClass == Job_Blacksmith) {
if (ein_cook > 999) {
- .@ccc = ein_cook-1000;
- if (.@ccc > 199) {
+ if (ein_cook > 1199) {
mes "[Uwe]";
mes "Oh hello hello~";
mes "It's been a long";
mes "time since we've talked,";
mes "you cutie adventurer~";
next;
- switch(select("So... You're a chef.", "Yes, I tried my best.")) {
+ switch (select("So... You're a chef.", "Yes, I tried my best.")) {
case 1:
- mes "["+ strcharinfo(PC_NAME) +"]";
+ mesf("[%s]", strcharinfo(PC_NAME));
mes "So...";
mes "You're a chef.";
next;
@@ -505,18 +964,10 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
next;
break;
}
- if (checkweight(Spawn,200) == 0) {
- mes "[Uwe]";
- mes "Oh, I was going to give";
- mes "you a little something,";
- mes "but you've carrying too";
- mes "many things. Why don't";
- mes "you put some of it away";
- mes "in your Kafra Storage?";
- close;
- }
+ if (checkweight(Spawn, 200) == 0)
+ F_OverWeight();
ein_cook = 219;
- getitem Portable_Furnace,10;
+ getitem Portable_Furnace, 10;
mes "[Uwe]";
mes "I had these lying";
mes "around, so why don't";
@@ -529,13 +980,8 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Alright then~";
mes "Hope you enjoy";
mes "your Mini Furances";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
- }
- else if (.@ccc > 99) {
+ F_RandCloseMsg();
+ } else if (ein_cook > 1099) { //6 Large Jellopy for Coal Part
mes "[Uwe]";
mes "Oh hello hello~";
mes "It's been a long";
@@ -550,155 +996,12 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Did you already forget";
mes "the 6 Large Jellopy?";
next;
- switch(select("There you go.", "I want to quit.", "Can I do it later?")) {
+ switch (select("There you go.", "I want to quit.", "Can I do it later?")) {
case 1:
- if (countitem(Large_Jellopy) > 5) {
- if (checkweight(Spawn,199) == 0) {
- mes "[Uwe]";
- mes "Oh, I was going to give";
- mes "you a little something,";
- mes "but you've carrying too";
- mes "many things. Why don't";
- mes "you put some of it away";
- mes "in your Kafra Storage?";
- close;
- }
- mes "[Uwe]";
- mes "Thank you ^EEA9B8so^000000 much!";
- mes "Here's the Coal I promised~";
- mes "Oh, and take these Mini Furnaces. They were just lying around, so you know, I thought, well, why don't you take them? *Tee hee hee~*";
- delitem Large_Jellopy,6;
- ein_cook = 219;
- getitem Coal,1;
- getitem Portable_Furnace,10;
- next;
- mes "[Uwe]";
- mes "I hope you enjoy!";
- mes "Personally, I think the";
- mes "best part of smithing";
- mes "is standing over the flaming";
- mes "heat and getting all ^EEA9B8hot and";
- mes "sweaty^000000. Ooh, how exciting~!";
- close;
- }
- else if (countitem(Large_Jellopy) > 0) {
- mes "[Uwe]";
- mes "Ooh, you're missing";
- mes "some. I guess you can";
- mes "still give them to me, but";
- mes "you'd get less of a reward";
- if (Sex == SEX_MALE) {
- mes "...you ^EEA9B8naughty boy^000000.";
- }
- else {
- mes "...you ^EEA9B8naughty girl^000000.";
- }
- switch(select("Give him all.", "Cancel.")) {
- case 1:
- if (checkweight(Knife,1) == 0) {
- mes "[Uwe]";
- mes "Oh, I was going to give";
- mes "you a little something,";
- mes "but you've carrying too";
- mes "many things. Why don't";
- mes "you put some of it away";
- mes "in your Kafra Storage?";
- close;
- }
- mes "[Uwe]";
- mes "Just kidding~";
- mes "Don't be so nervous, I don't really need those anymore. But since I know you're hard working, I'll throw in a little something extra...";
- next;
- if (checkweight(Spawn,220) == 0) {
- mes "[Uwe]";
- mes "Oh, I was going to give";
- mes "you a little something,";
- mes "but you've carrying too";
- mes "many things. Why don't";
- mes "you put some of it away";
- mes "in your Kafra Storage?";
- close;
- }
- mes "[Uwe]";
- if (Class == Job_Whitesmith) {
- mes "I usually give you cutie MasterSmiths 10 Mini Furnaces, but you can have ^EEA9B811^000000. There's the little something extra I was talking about.";
- }
- else {
- mes "I usually give you cutie Blacksmiths 10 Mini Furnaces, but you can have ^EEA9B811^000000. There's the little something extra I was talking about.";
- }
- ein_cook = 219;
- getitem Portable_Furnace,11;
- next;
- mes "[Uwe]";
- mes "I know it's not very extravagant, but these will come in handy next time you're smithing. So make the best use of them, 'kay?";
- close;
- case 2:
- if (checkweight(Knife,1) == 0) {
- mes "[Uwe]";
- mes "Oh, I was going to give";
- mes "you a little something,";
- mes "but you've carrying too";
- mes "many things. Why don't";
- mes "you put some of it away";
- mes "in your Kafra Storage?";
- close;
- }
- mes "[Uwe]";
- mes "Well... Then... Anyway,";
- mes "Congratulation to became";
- if (Class == Job_Whitesmith) {
- mes "a Master Smith!!";
- }
- else {
- mes "a Black Smith!!";
- }
- mes "This is my present for it.";
- if (Sex == SEX_MALE) {
- mes "...you ^EEA9B8naughty boy^000000.";
- }
- else {
- mes "...you ^EEA9B8naughty girl^000000.";
- }
- break;
- }
- if (checkweight(Spawn,100) == 0) {
- next;
- mes "Oh, I was going to give";
- mes "you a little something,";
- mes "but you've carrying too";
- mes "many things. Why don't";
- mes "you put some of it away";
- mes "in your Kafra Storage?";
- close;
- }
- ein_cook = 219;
- getitem Portable_Furnace,5;
- next;
- mes "[Uwe]";
- mes "I know it's not very extravagant, but these will come in handy next time you're smithing. So make the best use of them, 'kay?";
- close;
- }
- else {
- mes "[Uwe]";
- mes "^666666You didn't bring";
- mes "any Large Jellopy...?^000000.";
- ein_cook = 219;
- next;
- mes "[Uwe]";
- mes "It's fine! It's not like I feel ^EEA9B8betrayed^000000 or anything, but I don't need them anymore! Since we're both in the business of smithing, I just hope that you remember to follow through on your favors, 'kay? Buhbye~";
- close;
- }
+ F_LargeJellopyForCoal();
case 2:
- if (checkweight(Spawn,200) == 0) {
- mes "[Uwe]";
- mes "Oh, I was going to give";
- mes "you a little something,";
- mes "but you've carrying too";
- mes "many things. Why don't";
- mes "you put some of it away";
- mes "in your Kafra Storage?";
- close;
- }
+ if (checkweight(Spawn, 200) == 0)
+ F_OverWeight();
mes "[Uwe]";
mes "Quit...?";
mes "Oh well, at least you're honest. But let me give you a little something, since we're both fellow smiths.";
@@ -710,12 +1013,11 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "been very, very bad.";
if (Sex == SEX_MALE) {
mes "...You ^EEA9B8naughty boy^000000.";
- }
- else {
+ } else {
mes "...You ^EEA9B8naughty girl^000000.";
}
ein_cook = 219;
- getitem Portable_Furnace,10;
+ getitem Portable_Furnace, 10;
next;
mes "[Uwe]";
mes "I know it's not very extravagant, but these will come in handy next time you're smithing. So make the best use of them, 'kay?";
@@ -724,144 +1026,26 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "[Uwe]";
mes "Oooh, you came back later than I thought, so I don't need really need them anymore. Then again, just holding onto them doesn't sound right either...";
next;
- switch(select("Here you go~", "I want to quit.")) {
+ switch (select("Here you go~", "I want to quit.")) {
case 1:
- if (checkweight(Spawn,199) == 0) {
- mes "[Uwe]";
- mes "Oh, I was going to give";
- mes "you a little something,";
- mes "but you've carrying too";
- mes "many things. Why don't";
- mes "you put some of it away";
- mes "in your Kafra Storage?";
- close;
- }
- if (countitem(Large_Jellopy) > 5) {
- mes "[Uwe]";
- mes "Thank you ^EEA9B8so^000000 much!";
- mes "Here's the Coal I promised~";
- mes "Oh, and take these Mini Furnaces. They were just lying around, so you know, I thought, well, why don't you take them? *Tee hee hee~*";
- delitem Large_Jellopy,6;
- ein_cook = 219;
- getitem Coal,1;
- getitem Portable_Furnace,10;
- close;
- }
- else if (countitem(Large_Jellopy) > 0) {
- mes "[Uwe]";
- mes "Ooh, you're missing";
- mes "some. I guess you can";
- mes "still give them to me, but";
- mes "you'd get less of a reward";
- if (Sex == SEX_MALE) {
- mes "...You ^EEA9B8naughty boy^000000.";
- }
- else {
- mes "...You ^EEA9B8naughty girl^000000.";
- }
- switch(select("Give them all.", "Cancel.")) {
- case 1:
- if (checkweight(Spawn,220) == 0) {
- mes "[Uwe]";
- mes "Oh, I was going to give";
- mes "you a little something,";
- mes "but you've carrying too";
- mes "many things. Why don't";
- mes "you put some of it away";
- mes "in your Kafra Storage?";
- close;
- }
- mes "[Uwe]";
- mes "Just kidding~";
- mes "Don't be so nervous, I don't really need those anymore. But since I know you're hard working, I'll throw in a little something extra...";
- next;
- mes "[Uwe]";
- if (Class == Job_Whitesmith) {
- mes "I usually give you cutie MasterSmiths 10 Mini Furnaces, but you can have ^EEA9B811^000000. There's the little something extra I was talking about.";
- }
- else {
- mes "I usually give you cutie Blacksmiths 10 Mini Furnaces, but you can have ^EEA9B811^000000. There's the little something extra I was talking about.";
- }
- ein_cook = 219;
- getitem Portable_Furnace,11;
- next;
- mes "[Uwe]";
- mes "I know it's not very extravagant, but these will come in handy next time you're smithing. So make the best use of them, 'kay?";
- close;
- case 2:
- if (checkweight(Spawn,200) == 0) {
- mes "[Uwe]";
- mes "Oh, I was going to give";
- mes "you a little something,";
- mes "but you've carrying too";
- mes "many things. Why don't";
- mes "you put some of it away";
- mes "in your Kafra Storage?";
- close;
- }
- mes "[Uwe]";
- mes "Okay.";
- mes "Anyway~!";
- mes "When you do get all";
- mes "that Large Jellopy,";
- mes "just come back to me.";
- if (Sex == SEX_MALE) {
- mes "...you ^EEA9B8naughty boy^000000.";
- }
- else {
- mes "...you ^EEA9B8naughty girl^000000.";
- }
- ein_cook = 219;
- getitem Portable_Furnace,10;
- next;
- mes "[Uwe]";
- mes "This Portable Furnace is not expensive";
- mes "but very important item for smiths, right?";
- mes "Use it!";
- mes "And visit me someday again. Huhuhu..";
- close;
- }
- }
- else {
- mes "[Uwe]";
- mes "^666666You didn't bring";
- mes "any Large Jellopy...?^000000.";
- ein_cook = 219;
- next;
- mes "[Uwe]";
- mes "It's fine! It's not like I feel ^EEA9B8betrayed^000000 or anything, but I don't need them anymore! Since we're both in the business of smithing, I just hope that you remember to follow through on your favors, 'kay? Buhbye~";
- close;
- }
+ F_LargeJellopyForCoal();
case 2:
- if (checkweight(Spawn,200) == 0) {
- mes "[Uwe]";
- mes "Oh, I was going to give";
- mes "you a little something,";
- mes "but you've carrying too";
- mes "many things. Why don't";
- mes "you put some of it away";
- mes "in your Kafra Storage?";
- close;
- }
+ if (checkweight(Spawn, 200) == 0)
+ F_OverWeight();
mes "[Uwe]";
mes "Well... Then... Anyway,";
- mes "Congratulation to became";
- if (Class == Job_Whitesmith) {
- mes "a Master Smith!!";
- mes "This is my present for it. Huhuhu.";
- }
- else {
- mes "a Black Smith!!";
+ mes "Congratulation to becoming";
+ mesf("a %s!!", jobname(Class));
mes "This is my present for it. Huhuhu.";
+ if (Class != Job_Whitesmith) {
if (Sex == SEX_MALE) {
mes "...You ^EEA9B8naughty boy^000000.";
- }
- else {
+ } else {
mes "...You ^EEA9B8naughty girl^000000.";
}
}
ein_cook = 219;
- getitem Portable_Furnace,10;
+ getitem Portable_Furnace, 10;
next;
mes "[Uwe]";
mes "I know it's not very extravagant, but these will come in handy next time you're smithing. So make the best use of them, 'kay?";
@@ -875,7 +1059,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Cooking is such a joy~!";
mes "The scents, the flavors, the sensation of sheer ^EEA9B8satiation^000000...";
next;
- switch(select("Um, isn't this a forge?", "Ignore him.")) {
+ switch (select("Um, isn't this a forge?", "Ignore him.")) {
case 1:
mes "[Uwe]";
mes "Is this a forge?";
@@ -898,12 +1082,11 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "important factor in cooking,";
if (Sex == SEX_MALE) {
mes "you ^EEA9B8naughty little man^000000?";
- }
- else {
+ } else {
mes "you ^EEA9B8naughty, naughty girl^000000?";
}
next;
- switch(select("Heart.", "Ingredients.", "Skills.", "Tools.")) {
+ switch (select("Heart.", "Ingredients.", "Skills.", "Tools.")) {
case 1:
mes "[Uwe]";
mes "...";
@@ -935,7 +1118,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "so please have one, 'kay?";
mes "Welcome to Einbroch, cutie~";
ein_cook = 1;
- getitem Emveretarcon,1;
+ getitem Emveretarcon, 1;
break;
case 2:
mes "[Uwe]";
@@ -959,7 +1142,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Steel. Why don't you have 2 of";
mes "them as my little way of saying, ''Welcome to Einbroch, cutie~!''";
ein_cook = 3;
- getitem Iron,2;
+ getitem Iron, 2;
break;
case 3:
mes "[Uwe]";
@@ -996,7 +1179,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "so please have one, 'kay?";
mes "Welcome to Einbroch, cutie~";
ein_cook = 5;
- getitem Emveretarcon,1;
+ getitem Emveretarcon, 1;
break;
case 4:
mes "[Uwe]";
@@ -1025,7 +1208,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "my way of saying ''Welcome";
mes "to Einbroch, sugar honey~''";
ein_cook = 7;
- getitem Iron_Hammer,1;
+ getitem Iron_Hammer, 1;
break;
}
next;
@@ -1035,11 +1218,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "come and see me";
mes "anytime, alright?";
mes "So don't be shy";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_RandCloseMsg();
case 2:
mes "[Uwe]";
mes "Hmmm...?";
@@ -1049,438 +1228,62 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "and people to see. Ah well~";
close;
}
- }
- else if (ein_cook < 10) {
+ } else if (ein_cook < 10) {
mes "[Uwe]";
mes "Oh! Hello again,";
mes "you cutie adventurer.";
mes "So tell me, what brings";
- mes "you here, "+strcharinfo(PC_NAME)+"?";
+ mesf("you here, %s?", strcharinfo(PC_NAME));
next;
- switch(select("Ask about Cooking.", "Ask about Einbroch.", "Cancel.")) {
+ switch (select("Ask about Cooking.", "Ask about Einbroch.", "Cancel.")) {
case 1:
+ if (ein_cook % 2 == 0)
+ close; //Yes, there's really nothing defined for this in the Aegis Script
+ mes "[Uwe]";
+ mes "Ooh, cooking!";
+ mes "So what did you";
+ mes "want to ask me...?";
+ next;
if (ein_cook == 1) {
- mes "[Uwe]";
- mes "Ooh, cooking!";
- mes "So what did you";
- mes "want to ask me...?";
- next;
- switch(select("Ingredients", "Skills", "Tools", "Cancel")) {
+ switch (select("Ingredients", "Skills", "Tools", "Cancel")) {
case 1:
- mes "[Uwe]";
- mes "Now for beginners,";
- mes "learning to select";
- mes "and use ingredients";
- mes "is one of the most";
- mes "important fundamentals.";
- next;
- mes "[Uwe]";
- mes "Cooking is like forging";
- mes "since specific ingredients";
- mes "are needed to make specialty";
- mes "items or dishes. You can't just";
- mes "skip them if you really need";
- mes "them, right? Right!";
- next;
- mes "[Uwe]";
- mes "Once you make up your";
- mes "mind to do something,";
- mes "focus on finishing it, 'kay?";
- mes "Never cut corners and always";
- mes "dedicate yourself to make the";
- mes "very best finished product~";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Ingredients();
case 2:
- mes "[Uwe]";
- mes "When you're beginning to learn";
- mes "skills, you can't let yourself be discouraged! Practice makes";
- mes "perfect, you know? But never";
- mes "use your lack of skills as an";
- mes "excuse if you happen to fail...";
- next;
- mes "[Uwe]";
- mes "Effort is also an essential";
- mes "in forging and cooking! Now,";
- mes "on the other hand, if you put";
- mes "in all the effort but didn't learn any of the skills, you'll still get nowhere fast, right? Right!";
- next;
- mes "[Uwe]";
- mes "The key is to always";
- mes "give 100% effort and work";
- mes "on improving your skills.";
- mes "Before you know it, you'll";
- mes "be a respected master!";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "Hohohohoho."; close;
- case 2: mes "Umhohohoho.*"; close;
- case 3: mes "Umho."; close;
- }
+ F_Skills();
case 3:
- mes "[Uwe]";
- mes "Cooking is a little";
- mes "easier if you have";
- mes "nicer tools to use,";
- mes "but that's it. Tools by";
- mes "themselves can't make";
- mes "just anybody a master.";
- next;
- mes "[Uwe]";
- mes "In the end, the best";
- mes "tools are the ones you're";
- mes "most comfortable with using.";
- mes "In fact, I still use the old knife I used back when I was just";
- mes "a little novice chef~";
- next;
- mes "[Uwe]";
- mes "Oh, while we're on";
- mes "the subject of tools,";
- mes "I just received some";
- mes "new hammers today.";
- mes "Would you like a couple?";
- next;
- if (checkweight(Spawn,50) == 0) {
- mes "[Uwe]";
- mes "Mmmm...?";
- mes "You're holding too many";
- mes "things. I can't give you any";
- mes "hammers if you don't have";
- mes "room. Hurry, put your extra";
- mes "stuff in your Kafra Storage~";
- close;
- }
- ein_cook = 11;
- getitem Golden_Hammer,1;
- getitem Iron_Hammer,1;
- mes "[Uwe]";
- mes "Well, I hope";
- mes "you like them~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Tools();
case 4:
- mes "[Uwe]";
- mes "Oh...?";
- mes "Well, feel";
- mes "free to visit";
- mes "me whenever";
- mes "you want, 'kay?";
- close;
+ F_Cancel();
}
- }
- else if (ein_cook == 3) {
- mes "[Uwe]";
- mes "Ooh, cooking!";
- mes "So what did you";
- mes "want to ask me...?";
- next;
- switch(select("Heart", "Skills", "Tools", "Cancel.")) {
+ } else if (ein_cook == 3) {
+ switch (select("Heart", "Skills", "Tools", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Ah, heart. Just like forging,";
- mes "you need passion and desire";
- mes "to create something special.";
- mes "Every smith and cook knows that";
- mes "you can do anything if you have";
- mes "the will and the commitment.";
- next;
- mes "[Uwe]";
- mes "Well, that's all";
- mes "I really have to";
- mes "say about that. But";
- mes "come back and chat";
- mes "whenever you please.";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Heart();
case 2:
- mes "[Uwe]";
- mes "When you're beginning to learn";
- mes "skills, you can't let yourself be discouraged! Practice makes";
- mes "perfect, you know? But never";
- mes "use your lack of skills as an";
- mes "excuse if you happen to fail...";
- next;
- mes "[Uwe]";
- mes "Effort is also an essential";
- mes "in forging and cooking! Now,";
- mes "on the other hand, if you put";
- mes "in all the effort but didn't learn any of the skills, you'll still get nowhere fast, right? Right!";
- next;
- mes "[Uwe]";
- mes "The key is to always";
- mes "give 100% effort and work";
- mes "on improving your skills.";
- mes "Before you know it, you'll";
- mes "be a respected master!";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "Hohohohoho."; close;
- case 2: mes "Umhohohoho.*"; close;
- case 3: mes "Umho."; close;
- }
+ F_Skills();
case 3:
- mes "[Uwe]";
- mes "Cooking is a little";
- mes "easier if you have";
- mes "nicer tools to use,";
- mes "but that's it. Tools by";
- mes "themselves can't make";
- mes "just anybody a master.";
- next;
- mes "[Uwe]";
- mes "In the end, the best";
- mes "tools are the ones you're";
- mes "most comfortable with using.";
- mes "In fact, I still use the old knife I used back when I was just";
- mes "a little novice chef~";
- next;
- mes "[Uwe]";
- mes "Oh, while we're on";
- mes "the subject of tools,";
- mes "I just received some";
- mes "new hammers today.";
- mes "Would you like a couple?";
- next;
- if (checkweight(Spawn,50) == 0) {
- mes "[Uwe]";
- mes "Mmmm...?";
- mes "You're holding too many";
- mes "things. I can't give you any";
- mes "hammers if you don't have";
- mes "room. Hurry, put your extra";
- mes "stuff in your Kafra Storage~";
- close;
- }
- ein_cook = 13;
- getitem Golden_Hammer,1;
- getitem Iron_Hammer,1;
- mes "[Uwe]";
- mes "Well, I hope";
- mes "you like them~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Tools();
case 4:
- mes "[Uwe]";
- mes "Oh...?";
- mes "Well, feel";
- mes "free to visit";
- mes "me whenever";
- mes "you want, 'kay?";
- close;
+ F_Cancel();
}
- }
- else if (ein_cook == 5) {
- mes "[Uwe]";
- mes "Ooh, cooking!";
- mes "So what did you";
- mes "want to ask me...?";
- next;
- switch(select("Heart", "Ingredients", "Tools", "Cancel")) {
+ } else if (ein_cook == 5) {
+ switch (select("Heart", "Ingredients", "Tools", "Cancel")) {
case 1:
- mes "[Uwe]";
- mes "Ah, heart. Just like forging,";
- mes "you need passion and desire";
- mes "to create something special.";
- mes "Every smith and cook knows that";
- mes "you can do anything if you have";
- mes "the will and the commitment.";
- next;
- mes "[Uwe]";
- mes "Well, that's all";
- mes "I really have to";
- mes "say about that. But";
- mes "come back and chat";
- mes "whenever you please.";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Heart();
case 2:
- mes "[Uwe]";
- mes "Now for beginners,";
- mes "learning to select";
- mes "and use ingredients";
- mes "is one of the most";
- mes "important fundamentals.";
- next;
- mes "[Uwe]";
- mes "Cooking is like forging";
- mes "since specific ingredients";
- mes "are needed to make specialty";
- mes "items or dishes. You can't just";
- mes "skip them if you really need";
- mes "them, right? Right!";
- next;
- mes "[Uwe]";
- mes "Once you make up your";
- mes "mind to do something,";
- mes "focus on finishing it, 'kay?";
- mes "Never cut corners and always";
- mes "dedicate yourself to make the";
- mes "very best finished product~";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Ingredients();
case 3:
- mes "[Uwe]";
- mes "Cooking is a little";
- mes "easier if you have";
- mes "nicer tools to use,";
- mes "but that's it. Tools by";
- mes "themselves can't make";
- mes "just anybody a master.";
- next;
- mes "[Uwe]";
- mes "In the end, the best";
- mes "tools are the ones you're";
- mes "most comfortable with using.";
- mes "In fact, I still use the old knife I used back when I was just";
- mes "a little novice chef~";
- next;
- mes "[Uwe]";
- mes "Oh, while we're on";
- mes "the subject of tools,";
- mes "I just received some";
- mes "new hammers today.";
- mes "Would you like a couple?";
- next;
- if (checkweight(Spawn,50) == 0) {
- mes "[Uwe]";
- mes "Mmmm...?";
- mes "You're holding too many";
- mes "things. I can't give you any";
- mes "hammers if you don't have";
- mes "room. Hurry, put your extra";
- mes "stuff in your Kafra Storage~";
- close;
- }
- ein_cook = 15;
- getitem Golden_Hammer,1;
- getitem Iron_Hammer,1;
- next;
- mes "[Uwe]";
- mes "Well, I hope";
- mes "you like them~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Tools();
case 4:
- mes "[Uwe]";
- mes "Oh...?";
- mes "Well, feel";
- mes "free to visit";
- mes "me whenever";
- mes "you want, 'kay?";
- close;
+ F_Cancel();
}
- }
- else if (ein_cook == 7) {
- mes "[Uwe]";
- mes "Ooh, cooking!";
- mes "So what did you";
- mes "want to ask me...?";
- next;
- switch(select("Heart", "Ingredients", "Skills", "Cancel.")) {
+ } else if (ein_cook == 7) {
+ switch (select("Heart", "Ingredients", "Skills", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Ah, heart. Just like forging,";
- mes "you need passion and desire";
- mes "to create something special.";
- mes "Every smith and cook knows that";
- mes "you can do anything if you have";
- mes "the will and the commitment.";
- next;
- mes "[Uwe]";
- mes "Well, that's all";
- mes "I really have to";
- mes "say about that. But";
- mes "come back and chat";
- mes "whenever you please.";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Heart();
case 2:
- mes "[Uwe]";
- mes "Now for beginners,";
- mes "learning to select";
- mes "and use ingredients";
- mes "is one of the most";
- mes "important fundamentals.";
- next;
- mes "[Uwe]";
- mes "Cooking is like forging";
- mes "since specific ingredients";
- mes "are needed to make specialty";
- mes "items or dishes. You can't just";
- mes "skip them if you really need";
- mes "them, right? Right!";
- next;
- mes "[Uwe]";
- mes "Once you make up your";
- mes "mind to do something,";
- mes "focus on finishing it, 'kay?";
- mes "Never cut corners and always";
- mes "dedicate yourself to make the";
- mes "very best finished product~";
- ein_cook = 17;
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
- case 3:
+ F_Ingredients();
+ case 3: //Yes, the part is suddenly different here in the Aegis Script as well.
mes "[Uwe]";
mes "'I couldn't do it cuz";
mes "I'm not skillful with it.'";
@@ -1518,458 +1321,56 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "[Uwe]";
mes "Well, I hope";
mes "you like them~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_RandCloseMsg();
case 4:
- mes "[Uwe]";
- mes "Oh...?";
- mes "Well, feel";
- mes "free to visit";
- mes "me whenever";
- mes "you want, 'kay?";
- close;
+ F_Cancel();
}
- }
- else if (ein_cook == 9) {
- mes "[Uwe]";
- mes "Ooh, cooking!";
- mes "So what did you";
- mes "want to ask me...?";
- next;
- switch(select("Heart", "Ingredients", "Skills", "Tools", "Cancel.")) {
+ } else if (ein_cook == 9) {
+ switch (select("Heart", "Ingredients", "Skills", "Tools", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Ah, heart. Just like forging,";
- mes "you need passion and desire";
- mes "to create something special.";
- mes "Every smith and cook knows that";
- mes "you can do anything if you have";
- mes "the will and the commitment.";
- next;
- mes "[Uwe]";
- mes "Well, that's all";
- mes "I really have to";
- mes "say about that. But";
- mes "come back and chat";
- mes "whenever you please.";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Heart();
case 2:
- mes "[Uwe]";
- mes "Now for beginners,";
- mes "learning to select";
- mes "and use ingredients";
- mes "is one of the most";
- mes "important fundamentals.";
- next;
- mes "[Uwe]";
- mes "Cooking is like forging";
- mes "since specific ingredients";
- mes "are needed to make specialty";
- mes "items or dishes. You can't just";
- mes "skip them if you really need";
- mes "them, right? Right!";
- next;
- mes "[Uwe]";
- mes "Once you make up your";
- mes "mind to do something,";
- mes "focus on finishing it, 'kay?";
- mes "Never cut corners and always";
- mes "dedicate yourself to make the";
- mes "very best finished product~";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Ingredients();
case 3:
- mes "[Uwe]";
- mes "When you're beginning to learn";
- mes "skills, you can't let yourself be discouraged! Practice makes";
- mes "perfect, you know? But never";
- mes "use your lack of skills as an";
- mes "excuse if you happen to fail...";
- next;
- mes "[Uwe]";
- mes "Effort is also an essential";
- mes "in forging and cooking! Now,";
- mes "on the other hand, if you put";
- mes "in all the effort but didn't learn any of the skills, you'll still get nowhere fast, right? Right!";
- next;
- mes "[Uwe]";
- mes "The key is to always";
- mes "give 100% effort and work";
- mes "on improving your skills.";
- mes "Before you know it, you'll";
- mes "be a respected master!";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "Hohohohoho."; close;
- case 2: mes "Umhohohoho.*"; close;
- case 3: mes "Umho."; close;
- }
+ F_Skills();
case 4:
- mes "[Uwe]";
- mes "Cooking is a little";
- mes "easier if you have";
- mes "nicer tools to use,";
- mes "but that's it. Tools by";
- mes "themselves can't make";
- mes "just anybody a master.";
- next;
- mes "[Uwe]";
- mes "In the end, the best";
- mes "tools are the ones you're";
- mes "most comfortable with using.";
- mes "In fact, I still use the old knife I used back when I was just";
- mes "a little novice chef~";
- next;
- mes "[Uwe]";
- mes "Oh, while we're on";
- mes "the subject of tools,";
- mes "I just received some";
- mes "new hammers today.";
- mes "Would you like a couple?";
- next;
- if (checkweight(Spawn,50) == 0) {
- mes "[Uwe]";
- mes "Mmmm...?";
- mes "You're holding too many";
- mes "things. I can't give you any";
- mes "hammers if you don't have";
- mes "room. Hurry, put your extra";
- mes "stuff in your Kafra Storage~";
- close;
- }
- ein_cook = 19;
- getitem Golden_Hammer,1;
- getitem Iron_Hammer,1;
- next;
- mes "[Uwe]";
- mes "Well, I hope";
- mes "you like them~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Tools();
case 5:
- mes "[Uwe]";
- mes "Oh...?";
- mes "Well, feel";
- mes "free to visit";
- mes "me whenever";
- mes "you want, 'kay?";
- close;
+ F_Cancel();
}
}
case 2:
- mes "[Uwe]";
- mes "Einbroch was originally";
- mes "built to support Einbech's";
- mes "mining efforts. Because it's";
- mes "small and crowded with people,";
- mes "there's no room to build the ore refining factories over there.";
- next;
- mes "[Uwe]";
- mes "Since Einbroch used to be";
- mes "an empty lot, it was perfect";
- mes "for building factories. That's";
- mes "what my grandfather told me a";
- mes "long time ago. Anyway, Einbroch quickly grew into a major city.";
- next;
- mes "[Uwe]";
- mes "Now people think that this";
- mes "city was never planned to be";
- mes "just an extension of Einbech.";
- mes "See that rampart over there?";
- mes "It doesn't connect to Einbech at all! No protection for them...";
- next;
- mes "[Uwe]";
- mes "It's like the government";
- mes "lost all interest in Einbech.";
- mes "Even the miners there have";
- mes "been moving here to work in ";
- mes "the factories. But more people hasn't made this city more lively.";
- next;
- mes "[Uwe]";
- mes "Einbroch may look modern";
- mes "and exciting now, but soon";
- mes "you'll see that there's no sign";
- mes "of warmth or life. So... Just don't live here in your old age.";
- next;
- switch(select("Then why are you here?", "But I like the city life~")) {
- case 1:
- mes "[Uwe]";
- mes "Well, sugar honey,";
- mes "I've been waiting for";
- mes "someone. But... It looks";
- mes "like that person won't be";
- mes "coming back anyway.";
- next;
- mes "[Uwe]";
- mes "Oooh, but let's not talk";
- mes "about that. Next time you";
- mes "drop by, we'll talk about";
- mes "something more fun, 'kay?";
- close;
- case 2:
- mes "[Uwe]";
- mes "Big cities can be nice,";
- mes "but you never get to enjoy";
- mes "the sensation of stepping";
- mes "barefoot through the grass,";
- mes "or the magnificent sight of";
- mes "the shining stars at night.";
- next;
- mes "[Uwe]";
- mes "And the people who live";
- mes "in the cities can be so";
- mes "uptight! I've known more";
- mes "than a few who look down";
- mes "on people from smaller towns.";
- next;
- mes "[Uwe]";
- mes "It's sad to see some";
- mes "people will always be";
- mes "that ignorant. I... I just";
- mes "can't believe those people";
- mes "can be sooo close minded!";
- next;
- mes "[Uwe]";
- mes "Oh...!";
- mes "I'm sorry, I guess";
- mes "I went a little overboard.";
- mes "^666666*Titter*^000000 Next time you drop";
- mes "by, we'll talk about something";
- mes "more fun, 'kay? Buhbye~";
- close;
- }
+ F_AboutEinbroch();
case 3:
- mes "[Uwe]";
- mes "Oh...?";
- mes "Well, feel";
- mes "free to visit";
- mes "me whenever";
- mes "you want, 'kay?";
- close;
+ F_Cancel();
}
- }
- else if ((ein_cook < 20) || (ein_cook == 219)) {
+ } else if (ein_cook < 20 || ein_cook == 219) {
mes "[Uwe]";
mes "Oh, welcome back.";
mes "So how's the weapon";
mes "forging coming along?";
next;
- switch(select("Talk about Cooking", "Talk about Einbroch", "Talk about Cooking Utensils", "Cancel")) {
+ switch (select("Talk about Cooking", "Talk about Einbroch", "Talk about Cooking Utensils", "Cancel")) {
case 1:
mes "[Uwe]";
mes "Ooh, cooking!";
mes "So what did you";
mes "want to ask me...?";
next;
- switch(select("Heart", "Ingredients", "Skills", "Tools", "Cancel.")) {
+ switch (select("Heart", "Ingredients", "Skills", "Tools", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Ah, heart. Just like forging,";
- mes "you need passion and desire";
- mes "to create something special.";
- mes "Every smith and cook knows that";
- mes "you can do anything if you have";
- mes "the will and the commitment.";
- next;
- mes "[Uwe]";
- mes "Well, that's all";
- mes "I really have to";
- mes "say about that. But";
- mes "come back and chat";
- mes "whenever you please.";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Heart();
case 2:
- mes "[Uwe]";
- mes "Now for beginners,";
- mes "learning to select";
- mes "and use ingredients";
- mes "is one of the most";
- mes "important fundamentals.";
- next;
- mes "[Uwe]";
- mes "Cooking is like forging";
- mes "since specific ingredients";
- mes "are needed to make specialty";
- mes "items or dishes. You can't just";
- mes "skip them if you really need";
- mes "them, right? Right!";
- next;
- mes "[Uwe]";
- mes "Once you make up your";
- mes "mind to do something,";
- mes "focus on finishing it, 'kay?";
- mes "Never cut corners and always";
- mes "dedicate yourself to make the";
- mes "very best finished product~";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Ingredients();
case 3:
- mes "[Uwe]";
- mes "When you're beginning to learn";
- mes "skills, you can't let yourself be discouraged! Practice makes";
- mes "perfect, you know? But never";
- mes "use your lack of skills as an";
- mes "excuse if you happen to fail...";
- next;
- mes "[Uwe]";
- mes "Effort is also an essential";
- mes "in forging and cooking! Now,";
- mes "on the other hand, if you put";
- mes "in all the effort but didn't learn any of the skills, you'll still get nowhere fast, right? Right!";
- next;
- mes "[Uwe]";
- mes "The key is to always";
- mes "give 100% effort and work";
- mes "on improving your skills.";
- mes "Before you know it, you'll";
- mes "be a respected master!";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Skills();
case 4:
- mes "[Uwe]";
- mes "Cooking is a little";
- mes "easier if you have";
- mes "nicer tools to use,";
- mes "but that's it. Tools by";
- mes "themselves can't make";
- mes "just anybody a master.";
- next;
- mes "[Uwe]";
- mes "In the end, the best";
- mes "tools are the ones you're";
- mes "most comfortable with using.";
- mes "In fact, I still use the old knife I used back when I was just";
- mes "a little novice chef~";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_ToolsWithoutReward();
case 5:
- mes "[Uwe]";
- mes "Oh...?";
- mes "Well, feel";
- mes "free to visit";
- mes "me whenever";
- mes "you want, 'kay?";
- close;
+ F_Cancel();
}
case 2:
- mes "[Uwe]";
- mes "Einbroch was originally";
- mes "built to support Einbech's";
- mes "mining efforts. Because it's";
- mes "small and crowded with people,";
- mes "there's no room to build the ore refining factories over there.";
- next;
- mes "[Uwe]";
- mes "Since Einbroch used to be";
- mes "an empty lot, it was perfect";
- mes "for building factories. That's";
- mes "what my grandfather told me a";
- mes "long time ago. Anyway, Einbroch quickly grew into a major city.";
- next;
- mes "[Uwe]";
- mes "Now people think that this";
- mes "city was never planned to be";
- mes "just an extension of Einbech.";
- mes "See that rampart over there?";
- mes "It doesn't connect to Einbech at all! No protection for them...";
- next;
- mes "[Uwe]";
- mes "It's like the government";
- mes "lost all interest in Einbech.";
- mes "Even the miners there have";
- mes "been moving here to work in ";
- mes "the factories. But more people hasn't made this city more lively.";
- next;
- mes "[Uwe]";
- mes "Einbroch may look modern";
- mes "and exciting now, but soon";
- mes "you'll see that there's no sign";
- mes "of warmth or life. So... Just don't live here in your old age.";
- next;
- switch(select("Then why are you here?", "But I like the city life~")) {
- case 1:
- mes "[Uwe]";
- mes "Well, sugar honey,";
- mes "I've been waiting for someone. But... It looks like that person won't be coming back anyway.";
- next;
- mes "[Uwe]";
- mes "Oooh, but let's not talk about that. Next time you drop by, we'll talk about something more fun, 'kay? Buhbye~";
- close;
- case 2:
- mes "[Uwe]";
- mes "Well, big cities are nice, but you never get to enjoy the sensation of stepping barefoot through the grass, or the clear sight of the stars at night.";
- next;
- mes "[Uwe]";
- mes "And the people who live in cities can be so uptight! I've known more than a few who look down on people who live in smaller towns.";
- next;
- mes "[Uwe]";
- mes "It's sad to see some people will always be that ignorant. I... I just can't believe people can be sooo close minded!";
- next;
- mes "[Uwe]";
- mes "Oh...!";
- mes "I'm sorry, I guess I went a little overboard. ^666666*Titter*^000000 Next time you drop by, we'll talk about something more fun, 'kay? Buhbye~";
- close;
- }
+ F_AboutEinbroch();
case 3:
mes "[Uwe]";
mes "Cooking utensils?";
@@ -1995,19 +1396,18 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "30 ^0000FFJubilee^000000 and 4 ^0000FFLarge Jellopy^000000.";
mes "Then, I'll trade you 1 Coal for all of those. How does it sound?";
next;
- switch(select("Sure.", "No, thanks.")) {
+ switch (select("Sure.", "No, thanks.")) {
case 1:
- if ((countitem(Jubilee) > 29) && (countitem(Large_Jellopy) > 3)) {
- delitem Jubilee,30;
- delitem Large_Jellopy,4;
- getitem Coal,1;
+ if (countitem(Jubilee) > 29 && countitem(Large_Jellopy) > 3) {
+ delitem Jubilee, 30;
+ delitem Large_Jellopy, 4;
+ getitem Coal, 1;
mes "[Uwe]";
mes "Hooray!";
mes "Thank you";
mes "^EEA9B8soooo^000000 much!";
close;
- }
- else {
+ } else {
mes "[Uwe]";
mes "Hmmm...?";
mes "You don't have";
@@ -2031,22 +1431,15 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
close;
}
case 4:
- mes "[Uwe]";
- mes "Oh...?";
- mes "Well, feel";
- mes "free to visit";
- mes "me whenever";
- mes "you want, 'kay?";
- close;
+ F_Cancel();
}
- }
- else if (ein_cook > 299) {
+ } else if (ein_cook > 299) {
if (Class == Job_Whitesmith) {
mes "[Uwe]";
mes "Oooh...!";
mes "Congratulations!";
mes "You finally became";
- mes "a cutie MasterSmith!";
+ mesf("a cutie %s!", jobname(Class));
next;
mes "[Uwe]";
mes "Mmmm...";
@@ -2057,14 +1450,13 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "cookies I just baked~";
next;
ein_cook = 9;
- getitem Well_Baked_Cookie,5;
+ getitem Well_Baked_Cookie, 5;
mes "[Uwe]";
mes "Okay, enjoy!";
mes "I hope you have";
mes "a good time smithing!";
close;
- }
- else {
+ } else {
mes "[Uwe]";
mes "Hmmm?";
mes "Oh, it's you~";
@@ -2082,40 +1474,24 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
close;
}
}
- }
- else {
- .@aaa = ein_cook % 2;
- if (.@aaa == 1) {
- .@bbb = ein_cook;
- if (.@bbb > 99) {
- .@bbb -= 100;
- if (.@bbb > 99) {
- .@bbb -= 100;
- if (.@bbb > 99) {
- .@ccc = 3;
- }
- else {
- .@ccc = 2;
- }
- }
- else {
- .@ccc = 1;
- }
- }
- else {
- .@ccc = 0;
- }
- if (.@ccc < 3) {
+ } else {
+ if (ein_cook % 2 == 1) {
+ if (ein_cook >= 300) {
+ mes "[Uwe]";
+ mes "Ah, hello again,";
+ mes "cutie adventurer.";
+ mes "How can I help you?";
+ next;
+ } else {
mes "[Uwe]";
mes "Hm...?";
mes "I never forget a face,";
mes "but somehow I feel like";
mes "we've met somewhere before...";
next;
- if (.@ccc == 0) {
+ if (ein_cook < 100) {
ein_cook += 300;
- }
- else if (.@ccc == 2) {
+ } else if (ein_cook < 300) {
ein_cook += 100;
}
mes "[Uwe]";
@@ -2129,442 +1505,66 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "What brings to";
if (Sex == SEX_MALE) {
mes "me, you ^EEA9B8naughty boy^000000?";
- }
- else {
+ } else {
mes "me, you ^EEA9B8naughty girl^000000?";
}
next;
}
- else if (.@ccc == 3) {
- mes "[Uwe]";
- mes "Ah, hello again,";
- mes "cutie adventurer.";
- mes "How can I help you?";
- next;
- }
- switch(select("Ask about Einbroch.", "Ask about Cooking.", "Cancel.")) {
+ switch (select("Ask about Einbroch.", "Ask about Cooking.", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Einbroch was originally";
- mes "built to support Einbech's";
- mes "mining efforts. Because it's";
- mes "small and crowded with people,";
- mes "there's no room to build the ore refining factories over there.";
- next;
- mes "[Uwe]";
- mes "Since Einbroch used to be";
- mes "an empty lot, it was perfect";
- mes "for building factories. That's";
- mes "what my grandfather told me a";
- mes "long time ago. Anyway, Einbroch quickly grew into a major city.";
- next;
- mes "[Uwe]";
- mes "Now people think that this";
- mes "city was never planned to be";
- mes "just an extension of Einbech.";
- mes "See that rampart over there?";
- mes "It doesn't connect to Einbech at all! No protection for them...";
- next;
- mes "[Uwe]";
- mes "It's like the government";
- mes "lost all interest in Einbech.";
- mes "Even the miners there have";
- mes "been moving here to work in ";
- mes "the factories. But more people hasn't made this city more lively.";
- next;
- mes "[Uwe]";
- mes "Einbroch may look modern";
- mes "and exciting now, but soon";
- mes "you'll see that there's no sign";
- mes "of warmth or life. So... Just don't live here in your old age.";
- next;
- switch(select("Then why are you here?", "I won't. Thanks for the advice.")) {
- case 1:
- mes "[Uwe]";
- mes "Well, I have some";
- mes "precious memories of";
- mes "this place. Once, there was";
- mes "a man who lived here who";
- mes "was just like a father to me.";
- next;
- mes "[Uwe]";
- mes "Oh, but I'm sure that";
- mes "you don't want to hear";
- mes "about that. Next time you";
- mes "drop by, we'll talk about";
- mes "something more fun, 'kay?";
- mes "Buhbye for now, cutie~";
- close;
- case 2:
- mes "[Uwe]";
- mes "Oh, that is such";
- mes "a good decision,";
- mes "sugar honey! Oh, you";
- mes "cutie adventurers are";
- mes "so precious, so lovable.";
- mes "^333333*Tee hee hee~*^000000";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- close;
- }
+ F_AboutEinbroch();
case 2:
mes "[Uwe]";
mes "Ooh, cooking!";
mes "So what did you";
mes "want to ask me...?";
next;
- switch(select("Heart", "Ingredients", "Skills", "Tools", "Cancel.")) {
+ switch (select("Heart", "Ingredients", "Skills", "Tools", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Ah, heart. Just like forging,";
- mes "you need passion and desire";
- mes "to create something special.";
- mes "Every smith and cook knows that";
- mes "you can do anything if you have";
- mes "the will and the commitment.";
- next;
- mes "[Uwe]";
- mes "Well, that's all";
- mes "I really have to";
- mes "say about that. But";
- mes "come back and chat";
- mes "whenever you please.";
- break;
+ F_Heart();
case 2:
- mes "[Uwe]";
- mes "Now for beginners,";
- mes "learning to select";
- mes "and use ingredients";
- mes "is one of the most";
- mes "important fundamentals.";
- next;
- mes "[Uwe]";
- mes "Cooking is like forging";
- mes "since specific ingredients";
- mes "are needed to make specialty";
- mes "items or dishes. You can't just";
- mes "skip them if you really need";
- mes "them, right? Right!";
- next;
- mes "[Uwe]";
- mes "Once you make up your";
- mes "mind to do something,";
- mes "focus on finishing it, 'kay?";
- mes "Never cut corners and always";
- mes "dedicate yourself to make the";
- mes "very best finished product~";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- break;
+ F_Ingredients();
case 3:
- mes "[Uwe]";
- mes "When you're beginning to learn";
- mes "skills, you can't let yourself be discouraged! Practice makes";
- mes "perfect, you know? But never";
- mes "use your lack of skills as an";
- mes "excuse if you happen to fail...";
- next;
- mes "[Uwe]";
- mes "Effort is also an essential";
- mes "in forging and cooking! Now,";
- mes "on the other hand, if you put";
- mes "in all the effort but didn't learn any of the skills, you'll still get nowhere fast, right? Right!";
- next;
- mes "[Uwe]";
- mes "The key is to always";
- mes "give 100% effort and work";
- mes "on improving your skills.";
- mes "Before you know it, you'll";
- mes "be a respected master!";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- break;
+ F_Skills();
case 4:
- mes "[Uwe]";
- mes "Cooking is a little";
- mes "easier if you have";
- mes "nicer tools to use,";
- mes "but that's it. Tools by";
- mes "themselves can't make";
- mes "just anybody a master.";
- next;
- mes "[Uwe]";
- mes "In the end, the best";
- mes "tools are the ones you're";
- mes "most comfortable with using.";
- mes "In fact, I still use the old knife I used back when I was just";
- mes "a little novice chef~";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- break;
+ F_ToolsWithoutReward();
case 5:
- mes "[Uwe]";
- mes "Oh...?";
- mes "Well, feel";
- mes "free to visit";
- mes "me whenever";
- mes "you want, 'kay?";
- close;
- }
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; break;
- case 2: mes "...*Tee Hee~*"; break;
- case 3: mes "...Behbie~";
+ F_Cancel();
}
- close;
-
case 3:
- mes "[Uwe]";
- mes "Oh...?";
- mes "Well, feel";
- mes "free to visit";
- mes "me whenever";
- mes "you want, 'kay?";
- close;
+ F_Cancel();
}
}
if (ein_cook > 999) {
- .@eee = ein_cook-1000;
- if (.@eee > 199) {
+ if (ein_cook > 1199) {
mes "[Uwe]";
mes "Ah, hello again,";
mes "cutie adventurer.";
mes "How can I help you?";
next;
- switch(select("Talk about Einbroch.", "Ask him to forge a Weapon.", "Talk about Cooking.", "Cancel.")) {
+ switch (select("Talk about Einbroch.", "Ask him to forge a Weapon.", "Talk about Cooking.", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Einbroch was originally";
- mes "built to support Einbech's";
- mes "mining efforts. Because it's";
- mes "small and crowded with people,";
- mes "there's no room to build the ore refining factories over there.";
- next;
- mes "[Uwe]";
- mes "Since Einbroch used to be";
- mes "an empty lot, it was perfect";
- mes "for building factories. That's";
- mes "what my grandfather told me a";
- mes "long time ago. Anyway, Einbroch quickly grew into a major city.";
- next;
- mes "[Uwe]";
- mes "Now people think that this";
- mes "city was never planned to be";
- mes "just an extension of Einbech.";
- mes "See that rampart over there?";
- mes "It doesn't connect to Einbech at all! No protection for them...";
- next;
- mes "[Uwe]";
- mes "It's like the government";
- mes "lost all interest in Einbech.";
- mes "Even the miners there have";
- mes "been moving here to work in ";
- mes "the factories. But more people hasn't made this city more lively.";
- next;
- mes "[Uwe]";
- mes "Einbroch may look modern";
- mes "and exciting now, but soon";
- mes "you'll see that there's no sign";
- mes "of warmth or life. So... Just don't live here in your old age.";
- next;
- switch(select("Then why are you here?", "I won't. Thanks for the advice.")) {
- case 1:
- mes "[Uwe]";
- mes "Well, I have some";
- mes "precious memories of";
- mes "this place. Once, there was";
- mes "a man who lived here who";
- mes "was just like a father to me.";
- next;
- mes "[Uwe]";
- mes "Oh, but I'm sure that";
- mes "you don't want to hear";
- mes "about that. Next time you";
- mes "drop by, we'll talk about";
- mes "something more fun, 'kay?";
- mes "Buhbye for now, cutie~";
- close;
- case 2:
- mes "[Uwe]";
- mes "Oh, that is such";
- mes "a good decision,";
- mes "sugar honey! Oh, you";
- mes "cutie adventurers are";
- mes "so precious, so lovable.";
- mes "^333333*Tee hee hee~*^000000";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- close;
- }
+ F_AboutEinbroch();
case 2:
- mes "[Uwe]";
- mes "Well...";
- mes "I actually just";
- mes "do smithing work";
- mes "to create my own";
- mes "cooking tools.";
- next;
- mes "[Uwe]";
- mes "Oh, I understand";
- mes "that somebody needs";
- mes "to fight the monsters,";
- mes "but I'm the wrong person";
- mes "to ask for forging weapons.";
- mes "I... am a strict pacifist~";
- next;
- mes "[Uwe]";
- mes "Just go look";
- mes "around for a little";
- mes "bit, I'm sure you'll";
- mes "find a Blacksmith";
- mes "who's willing to forge";
- mes "you a good weapon~";
- close;
+ F_ForgeWeapon();
case 3:
mes "[Uwe]";
mes "Ooh, cooking!";
mes "So what did you";
mes "want to ask me...?";
next;
- switch(select("Heart", "Ingredients", "Skills", "Tools", "Cancel.")) {
+ switch (select("Heart", "Ingredients", "Skills", "Tools", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Ah, heart. Just like forging,";
- mes "you need passion and desire";
- mes "to create something special.";
- mes "Every smith and cook knows that";
- mes "you can do anything if you have";
- mes "the will and the commitment.";
- next;
- mes "[Uwe]";
- mes "Well, that's all";
- mes "I really have to";
- mes "say about that. But";
- mes "come back and chat";
- mes "whenever you please.";
- break;
+ F_Heart();
case 2:
- mes "[Uwe]";
- mes "Now for beginners,";
- mes "learning to select";
- mes "and use ingredients";
- mes "is one of the most";
- mes "important fundamentals.";
- next;
- mes "[Uwe]";
- mes "Cooking is like forging";
- mes "since specific ingredients";
- mes "are needed to make specialty";
- mes "items or dishes. You can't just";
- mes "skip them if you really need";
- mes "them, right? Right!";
- next;
- mes "[Uwe]";
- mes "Once you make up your";
- mes "mind to do something,";
- mes "focus on finishing it, 'kay?";
- mes "Never cut corners and always";
- mes "dedicate yourself to make the";
- mes "very best finished product~";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- break;
+ F_Ingredients();
case 3:
- mes "[Uwe]";
- mes "When you're beginning to learn";
- mes "skills, you can't let yourself be discouraged! Practice makes";
- mes "perfect, you know? But never";
- mes "use your lack of skills as an";
- mes "excuse if you happen to fail...";
- next;
- mes "[Uwe]";
- mes "Effort is also an essential";
- mes "in forging and cooking! Now,";
- mes "on the other hand, if you put";
- mes "in all the effort but didn't learn any of the skills, you'll still get nowhere fast, right? Right!";
- next;
- mes "[Uwe]";
- mes "The key is to always";
- mes "give 100% effort and work";
- mes "on improving your skills.";
- mes "Before you know it, you'll";
- mes "be a respected master!";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- break;
+ F_Skills();
case 4:
- mes "[Uwe]";
- mes "Cooking is a little";
- mes "easier if you have";
- mes "nicer tools to use,";
- mes "but that's it. Tools by";
- mes "themselves can't make";
- mes "just anybody a master.";
- next;
- mes "[Uwe]";
- mes "In the end, the best";
- mes "tools are the ones you're";
- mes "most comfortable with using.";
- mes "In fact, I still use the old knife I used back when I was just";
- mes "a little novice chef~";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- break;
+ F_ToolsWithoutReward();
case 5:
- mes "[Uwe]";
- mes "Oh...?";
- mes "Well, feel";
- mes "free to visit";
- mes "me whenever";
- mes "you want, 'kay?";
- close;
- }
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
+ F_Cancel();
}
-
case 4:
mes "[Uwe]";
mes "Alright then,";
@@ -2573,8 +1573,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Hohohohoho~";
close;
}
- }
- else if (.@eee > 99) {
+ } else if (ein_cook > 1099) {
mes "[Uwe]";
mes "Oh hello hello~";
mes "It's been a long";
@@ -2589,118 +1588,27 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Did you already forget";
mes "the 6 Large Jellopy?";
next;
- switch(select("Talk about Einbroch.", "Ask him to forge a Weapon.", "Give him the Materials.", "Cancel.")) {
+ switch (select("Talk about Einbroch.", "Ask him to forge a Weapon.", "Give him the Materials.", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Einbroch was originally";
- mes "built to support Einbech's";
- mes "mining efforts. Because it's";
- mes "small and crowded with people,";
- mes "there's no room to build the ore refining factories over there.";
- next;
- mes "[Uwe]";
- mes "Since Einbroch used to be";
- mes "an empty lot, it was perfect";
- mes "for building factories. That's";
- mes "what my grandfather told me a";
- mes "long time ago. Anyway, Einbroch quickly grew into a major city.";
- next;
- mes "[Uwe]";
- mes "Now people think that this";
- mes "city was never planned to be";
- mes "just an extension of Einbech.";
- mes "See that rampart over there?";
- mes "It doesn't connect to Einbech at all! No protection for them...";
- next;
- mes "[Uwe]";
- mes "It's like the government";
- mes "lost all interest in Einbech.";
- mes "Even the miners there have";
- mes "been moving here to work in ";
- mes "the factories. But more people hasn't made this city more lively.";
- next;
- mes "[Uwe]";
- mes "Einbroch may look modern";
- mes "and exciting now, but soon";
- mes "you'll see that there's no sign";
- mes "of warmth or life. So... Just don't live here in your old age.";
- next;
- switch(select("Then why are you here?", "I won't. Thanks for the advice.")) {
- case 1:
- mes "[Uwe]";
- mes "Well, I have some";
- mes "precious memories of";
- mes "this place. Once, there was";
- mes "a man who lived here who";
- mes "was just like a father to me.";
- next;
- mes "[Uwe]";
- mes "Oh, but I'm sure that";
- mes "you don't want to hear";
- mes "about that. Next time you";
- mes "drop by, we'll talk about";
- mes "something more fun, 'kay?";
- mes "Buhbye for now, cutie~";
- close;
- case 2:
- mes "[Uwe]";
- mes "Oh, that is such";
- mes "a good decision,";
- mes "sugar honey! Oh, you";
- mes "cutie adventurers are";
- mes "so precious, so lovable.";
- mes "^333333*Tee hee hee~*^000000";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- close;
- }
+ F_AboutEinbroch();
case 2:
- mes "[Uwe]";
- mes "Well...";
- mes "I actually just";
- mes "do smithing work";
- mes "to create my own";
- mes "cooking tools.";
- next;
- mes "[Uwe]";
- mes "Oh, I understand";
- mes "that somebody needs";
- mes "to fight the monsters,";
- mes "but I'm the wrong person";
- mes "to ask for forging weapons.";
- mes "I... am a strict pacifist~";
- next;
- mes "[Uwe]";
- mes "Just go look";
- mes "around for a little";
- mes "bit, I'm sure you'll";
- mes "find a Blacksmith";
- mes "who's willing to forge";
- mes "you a good weapon~";
- close;
+ F_ForgeWeapon();
case 3:
if (countitem(Large_Jellopy) > 5) {
mes "[Uwe]";
mes "Thank you ^EEA9B8so^000000 much!";
mes "Here's the Coal I promised~";
- delitem Large_Jellopy,6;
+ delitem Large_Jellopy, 6;
ein_cook += 100;
- getitem Coal,1;
+ getitem Coal, 1;
next;
- }
- else {
+ } else {
mes "[Uwe]";
mes "Huh...?";
if (countitem(Large_Jellopy) == 0) {
mes "You brought";
mes "none at all...?";
- }
- else {
+ } else {
mes "This isn't enough";
mes "Large Jellopy...!";
}
@@ -2715,121 +1623,15 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "honey. Now what would you like";
mes "to hear more about? Hmm...?";
next;
- switch(select("Heart", "Materials", "Skills", "Tools", "Cancel.")) {
+ switch (select("Heart", "Materials", "Skills", "Tools", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Ah, heart. Just like forging,";
- mes "you need passion and desire";
- mes "to create something special.";
- mes "Every smith and cook knows that";
- mes "you can do anything if you have";
- mes "the will and the commitment.";
- next;
- mes "[Uwe]";
- mes "Well, that's all";
- mes "I really have to";
- mes "say about that. But";
- mes "come back and chat";
- mes "whenever you please.";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Heart();
case 2:
- mes "[Uwe]";
- mes "Now for beginners,";
- mes "learning to select";
- mes "and use ingredients";
- mes "is one of the most";
- mes "important fundamentals.";
- next;
- mes "[Uwe]";
- mes "Cooking is like forging";
- mes "since specific ingredients";
- mes "are needed to make specialty";
- mes "items or dishes. You can't just";
- mes "skip them if you really need";
- mes "them, right? Right!";
- next;
- mes "[Uwe]";
- mes "Once you make up your";
- mes "mind to do something,";
- mes "focus on finishing it, 'kay?";
- mes "Never cut corners and always";
- mes "dedicate yourself to make the";
- mes "very best finished product~";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Ingredients();
case 3:
- mes "[Uwe]";
- mes "When you're beginning to learn";
- mes "skills, you can't let yourself be discouraged! Practice makes";
- mes "perfect, you know? But never";
- mes "use your lack of skills as an";
- mes "excuse if you happen to fail...";
- next;
- mes "[Uwe]";
- mes "Effort is also an essential";
- mes "in forging and cooking! Now,";
- mes "on the other hand, if you put";
- mes "in all the effort but didn't learn any of the skills, you'll still get nowhere fast, right? Right!";
- next;
- mes "[Uwe]";
- mes "The key is to always";
- mes "give 100% effort and work";
- mes "on improving your skills.";
- mes "Before you know it, you'll";
- mes "be a respected master!";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "Hohohohoho."; close;
- case 2: mes "Umhohohoho.*"; close;
- case 3: mes "Umho."; close;
- }
+ F_Skills();
case 4:
- mes "[Uwe]";
- mes "Cooking is a little";
- mes "easier if you have";
- mes "nicer tools to use,";
- mes "but that's it. Tools by";
- mes "themselves can't make";
- mes "just anybody a master.";
- next;
- mes "[Uwe]";
- mes "In the end, the best";
- mes "tools are the ones you're";
- mes "most comfortable with using.";
- mes "In fact, I still use the old knife I used back when I was just";
- mes "a little novice chef~";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_ToolsWithoutReward();
case 5:
mes "[Uwe]";
mes "Alright then,";
@@ -2847,160 +1649,18 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Hohohohoho~";
close;
}
- }
- else {
+ } else {
mes "[Uwe]";
mes "Hello, cutie~";
mes "How can I help you?";
next;
- switch(select("Talk about Einbroch.", "Ask him to forge a Weapon.", "Master, I want to learn cooking.", "Cancel.")) {
+ switch (select("Talk about Einbroch.", "Ask him to forge a Weapon.", "Master, I want to learn cooking.", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Einbroch was originally";
- mes "built to support Einbech's";
- mes "mining efforts. Because it's";
- mes "small and crowded with people,";
- mes "there's no room to build the ore refining factories over there.";
- next;
- mes "[Uwe]";
- mes "Since Einbroch used to be";
- mes "an empty lot, it was perfect";
- mes "for building factories. That's";
- mes "what my grandfather told me a";
- mes "long time ago. Anyway, Einbroch quickly grew into a major city.";
- next;
- mes "[Uwe]";
- mes "Now people think that this";
- mes "city was never planned to be";
- mes "just an extension of Einbech.";
- mes "See that rampart over there?";
- mes "It doesn't connect to Einbech at all! No protection for them...";
- next;
- mes "[Uwe]";
- mes "It's like the government";
- mes "lost all interest in Einbech.";
- mes "Even the miners there have";
- mes "been moving here to work in ";
- mes "the factories. But more people hasn't made this city more lively.";
- next;
- mes "[Uwe]";
- mes "Einbroch may look modern";
- mes "and exciting now, but soon";
- mes "you'll see that there's no sign";
- mes "of warmth or life. So... Just don't live here in your old age.";
- next;
- switch(select("Then why are you here?", "I won't. Thanks for the advice.")) {
- case 1:
- mes "[Uwe]";
- mes "Well, I have some";
- mes "precious memories of";
- mes "this place. Once, there was";
- mes "a man who lived here who";
- mes "was just like a father to me.";
- next;
- mes "[Uwe]";
- mes "Oh, but I'm sure that";
- mes "you don't want to hear";
- mes "about that. Next time you";
- mes "drop by, we'll talk about";
- mes "something more fun, 'kay?";
- mes "Buhbye for now, cutie~";
- close;
- case 2:
- mes "[Uwe]";
- mes "Oh, that is such";
- mes "a good decision,";
- mes "sugar honey! Oh, you";
- mes "cutie adventurers are";
- mes "so precious, so lovable.";
- mes "^333333*Tee hee hee~*^000000";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- close;
- }
+ F_AboutEinbroch();
case 2:
- mes "[Uwe]";
- mes "Well...";
- mes "I actually just";
- mes "do smithing work";
- mes "to create my own";
- mes "cooking tools.";
- next;
- mes "[Uwe]";
- mes "Oh, I understand";
- mes "that somebody needs";
- mes "to fight the monsters,";
- mes "but I'm the wrong person";
- mes "to ask for forging weapons.";
- mes "I... am a strict pacifist~";
- next;
- mes "[Uwe]";
- mes "Just go look";
- mes "around for a little";
- mes "bit, I'm sure you'll";
- mes "find a Blacksmith";
- mes "who's willing to forge";
- mes "you a good weapon~";
- close;
+ F_ForgeWeapon();
case 3:
- mes "[Uwe]";
- mes "Mm...?";
- mes "Did you just";
- mes "say that you";
- mes "want to learn";
- mes "the art of cooking?";
- next;
- mes "[Uwe]";
- mes "I'm sorry, but I can't";
- mes "really give culinary";
- mes "lessons. But I will";
- mes "give good advice for";
- mes "hopeful beginners.";
- next;
- mes "[Uwe]";
- mes "Now...";
- mes "For your tuition";
- mes "I'll need-- Gosh,";
- mes "there's just so many";
- mes "things. Get some paper,";
- mes "and a pen for this list...";
- next;
- ein_cook += 100;
- mes "[Uwe]";
- mes "Just kidding!";
- mes "^333333*Titter~*^000000 I don't need";
- mes "much to make some";
- mes "cooking utensils. Bring";
- mes "6 ^0000FFLarge Jellopy^000000. That's it!";
- next;
- mes "[Uwe]";
- mes "In return, I will give you";
- mes "1 Coal and some useful";
- mes "cooking advice for novices.";
- mes "I give this advice for free to";
- mes "my smithing colleages, though...";
- next;
- mes "[Uwe]";
- mes "Why ^EEA9B8don't^000000 you";
- mes "become a Blacksmith?";
- mes "I'm much more confident";
- mes "in that field. ^333333*Tee hee~*^000000";
- next;
- mes "[Uwe]";
- mes "Well, I'll be";
- mes "waiting right";
- mes "here until you";
- mes "come back.";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Cooking();
case 4:
mes "[Uwe]";
mes "Take care,";
@@ -3009,13 +1669,12 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
close;
}
}
- }
- else if (ein_cook == 0) {
+ } else if (ein_cook == 0) {
mes "[Uwe]";
mes "Cooking is such a joy~!";
mes "The scents, the flavors, the sensation of sheer ^EEA9B8satiation^000000...";
next;
- switch(select("Um, isn't this a forge?", "Ignore him.")) {
+ switch (select("Um, isn't this a forge?", "Ignore him.")) {
case 1:
mes "[Uwe]";
ein_cook = 1000;
@@ -3037,159 +1696,17 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "adooooooooorable";
if (Sex == SEX_MALE) {
mes "hunk of a man?";
- }
- else {
+ } else {
mes "womanly woman?";
}
next;
- switch(select("Talk about Einbroch.", "Ask him to forge a Weapon.", "Master, I want to learn cooking.", "Cancel.")) {
+ switch (select("Talk about Einbroch.", "Ask him to forge a Weapon.", "Master, I want to learn cooking.", "Cancel.")) {
case 1:
- mes "[Uwe]";
- mes "Einbroch was originally";
- mes "built to support Einbech's";
- mes "mining efforts. Because it's";
- mes "small and crowded with people,";
- mes "there's no room to build the ore refining factories over there.";
- next;
- mes "[Uwe]";
- mes "Since Einbroch used to be";
- mes "an empty lot, it was perfect";
- mes "for building factories. That's";
- mes "what my grandfather told me a";
- mes "long time ago. Anyway, Einbroch quickly grew into a major city.";
- next;
- mes "[Uwe]";
- mes "Now people think that this";
- mes "city was never planned to be";
- mes "just an extension of Einbech.";
- mes "See that rampart over there?";
- mes "It doesn't connect to Einbech at all! No protection for them...";
- next;
- mes "[Uwe]";
- mes "It's like the government";
- mes "lost all interest in Einbech.";
- mes "Even the miners there have";
- mes "been moving here to work in ";
- mes "the factories. But more people hasn't made this city more lively.";
- next;
- mes "[Uwe]";
- mes "Einbroch may look modern";
- mes "and exciting now, but soon";
- mes "you'll see that there's no sign";
- mes "of warmth or life. So... Just don't live here in your old age.";
- next;
- switch(select("Then why are you here?", "I won't. Thanks for the advice.")) {
- case 1:
- mes "[Uwe]";
- mes "Well, I have some";
- mes "precious memories of";
- mes "this place. Once, there was";
- mes "a man who lived here who";
- mes "was just like a father to me.";
- next;
- mes "[Uwe]";
- mes "Oh, but I'm sure that";
- mes "you don't want to hear";
- mes "about that. Next time you";
- mes "drop by, we'll talk about";
- mes "something more fun, 'kay?";
- mes "Buhbye for now, cutie~";
- close;
- case 2:
- mes "[Uwe]";
- mes "Oh, that is such";
- mes "a good decision,";
- mes "sugar honey! Oh, you";
- mes "cutie adventurers are";
- mes "so precious, so lovable.";
- mes "^333333*Tee hee hee~*^000000";
- next;
- mes "[Uwe]";
- mes "Well, that was";
- mes "a fun talk. Come";
- mes "back and visit, 'kay?";
- mes "I'll miss you until";
- mes "the next time~";
- close;
- }
+ F_AboutEinbroch();
case 2:
- mes "[Uwe]";
- mes "Well...";
- mes "I actually just";
- mes "do smithing work";
- mes "to create my own";
- mes "cooking tools.";
- next;
- mes "[Uwe]";
- mes "Oh, I understand";
- mes "that somebody needs";
- mes "to fight the monsters,";
- mes "but I'm the wrong person";
- mes "to ask for forging weapons.";
- mes "I... am a strict pacifist~";
- next;
- mes "[Uwe]";
- mes "Just go look";
- mes "around for a little";
- mes "bit, I'm sure you'll";
- mes "find a Blacksmith";
- mes "who's willing to forge";
- mes "you a good weapon~";
- close;
+ F_ForgeWeapon();
case 3:
- mes "[Uwe]";
- mes "Mm...?";
- mes "Did you just";
- mes "say that you";
- mes "want to learn";
- mes "the art of cooking?";
- next;
- mes "[Uwe]";
- mes "I'm sorry, but I can't";
- mes "really give culinary";
- mes "lessons. But I will";
- mes "give good advice for";
- mes "hopeful beginners.";
- next;
- mes "[Uwe]";
- mes "Now...";
- mes "For your tuition";
- mes "I'll need-- Gosh,";
- mes "there's just so many";
- mes "things. Get some paper,";
- mes "and a pen for this list...";
- next;
- ein_cook += 100;
- mes "[Uwe]";
- mes "Just kidding!";
- mes "^333333*Titter~*^000000 I don't need";
- mes "much to make some";
- mes "cooking utensils. Bring";
- mes "6 ^0000FFLarge Jellopy^000000. That's it!";
- next;
- mes "[Uwe]";
- mes "In return, I will give you";
- mes "1 Coal and some useful";
- mes "cooking advice for novices.";
- mes "I give this advice for free to";
- mes "my smithing colleages, though...";
- next;
- mes "[Uwe]";
- mes "Why ^EEA9B8don't^000000 you";
- mes "become a Blacksmith?";
- mes "I'm much more confident";
- mes "in that field. ^333333*Tee hee~*^000000";
- next;
- mes "[Uwe]";
- mes "Well, I'll be";
- mes "waiting right";
- mes "here until you";
- mes "come back.";
- switch(rand(1,3)) {
- case 1: mes "...Ho ho~"; close;
- case 2: mes "...*Tee Hee~*"; close;
- case 3: mes "...Behbie~"; close;
- }
+ F_Cooking();
case 4:
mes "[Uwe]";
mes "Take care,";
@@ -3216,7 +1733,7 @@ einbroch,1,1,0 script Einbroch Smog Alert FAKE_NPC,{
OnEnable:
$@AlrdEinPoll = 1;
- mapannounce "einbroch","This is a state of emercency! Harmful smog is reaching high levels of saturation. Residents of Einbroch must find shelter immediately.",bc_map;
+ mapannounce "einbroch","This is a state of emergency! Harmful smog is reaching high levels of saturation. Residents of Einbroch must find shelter immediately.",bc_map;
enablenpc "Einbroch Smog Alert";
hideonnpc "Centzu#ein";
hideonnpc "Khowropher#ein";
@@ -3576,7 +2093,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
mes "[Zelmeto]";
mes "^333333*Whew*^000000";
mes "I haven't given that much";
- mes "inspriration in a while, but";
+ mes "inspiration in a while, but";
mes "your help was well worth it.";
mes "I'm going to start the repairs, but once again, I'd like to thank you.";
close;
@@ -3616,7 +2133,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
mes "^333333*Sigh*^000000";
mes "My proposal was rejected";
mes "by our superintendant. But";
- mes "maintainance and repairs";
+ mes "maintenance and repairs";
mes "are crucial for peak operating";
mes "efficiency and worker safety!";
next;
@@ -3791,7 +2308,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
mes "[Zelmeto]";
mes "Now, the pipe I want";
mes "you to inspect is located";
- mes "near those large caultrons";
+ mes "near those large cauldrons";
mes "of molten metal. You should";
mes "be able to find it pretty easily.";
next;
@@ -4260,7 +2777,7 @@ einbech,165,105,7 script Buender Hikeman#ein 4_M_EINOLD,{
case 1:
mes "[Buender Hikeman]";
mes "How dare you...";
- mes "How dare you treat ";
+ mes "How dare you treat me";
mes "after destroying all the";
mes "happiness in my life!";
next;
@@ -4741,7 +3258,6 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
close;
}
else if (Shinokas_Quest == 2) {
- einbech = 0;
mes "[Sick Old Man]";
mes "...!";
next;
@@ -4787,7 +3303,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
mes "^3355FFIt doesn't seem";
mes "like this old man";
mes "is telling the truth...^000000";
- einbech = 0;
+ .@einbech = 0;
next;
}
else {
@@ -4924,7 +3440,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
next;
mes "[Shinokas]";
mes "After I destroyed the tunnel,";
- mes "they targeted me and I ended";
+ mes "they targeted me and I ended up";
mes "spending the rest of my life being pursued and running from place to place. What the hell was that ^3131FFore^000000 and why was it so important?";
next;
mes "[Shinokas]";
@@ -7131,7 +5647,7 @@ ein_in01,191,102,5 script Kaijeta#ein 4_F_EINOLD,{
mes "[Kaijeta]";
mes "I can't bear to see the";
mes "petty hatred between our";
- mes "two towns stop my son from";
+ mes "two towns stopping my son from";
mes "seeing the woman he loves...";
changequest 8081,8082;
close;
diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql
index 4ff49624c..113176fdb 100644
--- a/sql-files/item_db.sql
+++ b/sql-files/item_db.sql
@@ -4543,12 +4543,12 @@ REPLACE INTO `item_db` VALUES ('12198','Lucky_Rice_Cake','Lucky Rice Cake','2','
REPLACE INTO `item_db` VALUES ('12199','Rice_Scroll','Scroll of Magic','2','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12200','Event_Cake','X-mas Cake','11','20','10','50','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill PR_MAGNIFICAT,3;','','');
REPLACE INTO `item_db` VALUES ('12201','Red_Box_C','Commonplace Red Box','2','20','10','200','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12202','Str_Dish10_','Steamed Tongue','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1800000,10; percentheal 20,10;','','');
-REPLACE INTO `item_db` VALUES ('12203','Agi_Dish10_','Steamed Scorpion','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_AGI,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12204','Int_Dish10_','Dragon Breath Cocktail','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,1800000,10; percentheal 10,20;','','');
-REPLACE INTO `item_db` VALUES ('12205','Dex_Dish10_','Hwergelmir\'s Tonic','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_DEX,1800000,10; percentheal 10,10;','','');
-REPLACE INTO `item_db` VALUES ('12206','Luk_Dish10_','Cooked Nine Tail\'s Tails','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1800000,10; percentheal 14,8;','','');
-REPLACE INTO `item_db` VALUES ('12207','Vit_Dish10_','Stew Of Immortality','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_VIT,1800000,10; percentheal 25,0;','','');
+REPLACE INTO `item_db` VALUES ('12202','Str_Dish10_','Steamed Tongue','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_STR_CASH, 1800000, 10); percentheal(20, 10);','','');
+REPLACE INTO `item_db` VALUES ('12203','Agi_Dish10_','Steamed Scorpion','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_AGI_CASH, 1800000, 10); percentheal(15, 5);','','');
+REPLACE INTO `item_db` VALUES ('12204','Int_Dish10_','Dragon Breath Cocktail','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_INT_CASH, 1800000, 10); percentheal(10, 20);','','');
+REPLACE INTO `item_db` VALUES ('12205','Dex_Dish10_','Hwergelmir\'s Tonic','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_DEX_CASH, 1800000, 10); percentheal(10, 10);','','');
+REPLACE INTO `item_db` VALUES ('12206','Luk_Dish10_','Cooked Nine Tail\'s Tails','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_LUK_CASH, 1800000, 10); percentheal(14, 8);','','');
+REPLACE INTO `item_db` VALUES ('12207','Vit_Dish10_','Stew Of Immortality','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_VIT_CASH, 1800000, 10); percentheal(25, 0);','','');
REPLACE INTO `item_db` VALUES ('12208','Battle_Manual','Battle Manual','2','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','60000','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,1800000,50;','','');
REPLACE INTO `item_db` VALUES ('12209','Insurance','Life Insurance','2','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_DEATHPENALTY,1800000,0;','','');
REPLACE INTO `item_db` VALUES ('12210','Bubble_Gum','Bubble Gum','2','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','60000','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_RECEIVEITEM,1800000,200;','','');
diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql
index 2cf498356..f6ca7678f 100644
--- a/sql-files/item_db_re.sql
+++ b/sql-files/item_db_re.sql
@@ -5981,12 +5981,12 @@ REPLACE INTO `item_db` VALUES ('12198','Lucky_Rice_Cake','Lucky Rice Cake','2','
REPLACE INTO `item_db` VALUES ('12199','Rice_Scroll','Scroll of Magic','2','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12200','Event_Cake','X-mas Cake','11','20','10','50','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill PR_MAGNIFICAT,3;','','');
REPLACE INTO `item_db` VALUES ('12201','Red_Box_C','Commonplace Red Box','2','20','10','200','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12202','Str_Dish10_','Steamed Tongue','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_STR,1800000,10; percentheal 20,10;','','');
-REPLACE INTO `item_db` VALUES ('12203','Agi_Dish10_','Steamed Scorpion','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_AGI,1800000,10; percentheal 15,5;','','');
-REPLACE INTO `item_db` VALUES ('12204','Int_Dish10_','Dragon Breath Cocktail','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_INT,1800000,10; percentheal 10,20;','','');
-REPLACE INTO `item_db` VALUES ('12205','Dex_Dish10_','Hwergelmir\'s Tonic','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_DEX,1800000,10; percentheal 10,10;','','');
-REPLACE INTO `item_db` VALUES ('12206','Luk_Dish10_','Cooked Nine Tail\'s Tails','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_LUK,1800000,10; percentheal 14,8;','','');
-REPLACE INTO `item_db` VALUES ('12207','Vit_Dish10_','Stew Of Immortality','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_FOOD_VIT,1800000,10; percentheal 25,0;','','');
+REPLACE INTO `item_db` VALUES ('12202','Str_Dish10_','Steamed Tongue','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_STR_CASH, 1800000, 10); percentheal(20, 10);','','');
+REPLACE INTO `item_db` VALUES ('12203','Agi_Dish10_','Steamed Scorpion','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_AGI_CASH, 1800000, 10); percentheal(15, 5);','','');
+REPLACE INTO `item_db` VALUES ('12204','Int_Dish10_','Dragon Breath Cocktail','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_INT_CASH, 1800000, 10); percentheal(10, 20);','','');
+REPLACE INTO `item_db` VALUES ('12205','Dex_Dish10_','Hwergelmir\'s Tonic','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_DEX_CASH, 1800000, 10); percentheal(10, 10);','','');
+REPLACE INTO `item_db` VALUES ('12206','Luk_Dish10_','Cooked Nine Tail\'s Tails','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_LUK_CASH, 1800000, 10); percentheal(14, 8);','','');
+REPLACE INTO `item_db` VALUES ('12207','Vit_Dish10_','Stew Of Immortality','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start(SC_FOOD_VIT_CASH, 1800000, 10); percentheal(25, 0);','','');
REPLACE INTO `item_db` VALUES ('12208','Battle_Manual','Battle Manual','2','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','60000','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_PLUSEXP,1800000,50;','','');
REPLACE INTO `item_db` VALUES ('12209','Insurance','Life Insurance','2','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_DEATHPENALTY,1800000,0;','','');
REPLACE INTO `item_db` VALUES ('12210','Bubble_Gum','Bubble Gum','2','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','60000','475',NULL,'0',NULL,'0',NULL,'0','sc_start SC_CASH_RECEIVEITEM,1800000,200;','','');
diff --git a/src/common/mmo.h b/src/common/mmo.h
index b3069b27c..7bd5b7c06 100644
--- a/src/common/mmo.h
+++ b/src/common/mmo.h
@@ -436,6 +436,7 @@ enum {
OPTION_DRAGON5 = 0x04000000,
OPTION_HANBOK = 0x08000000,
OPTION_OKTOBERFEST = 0x10000000,
+ OPTION_SUMMER2 = 0x20000000,
#ifndef NEW_CARTS
OPTION_CART1 = 0x00000008,
OPTION_CART2 = 0x00000080,
@@ -447,7 +448,7 @@ enum {
#endif
// compound constants
OPTION_DRAGON = OPTION_DRAGON1|OPTION_DRAGON2|OPTION_DRAGON3|OPTION_DRAGON4|OPTION_DRAGON5,
- OPTION_COSTUME = OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST,
+ OPTION_COSTUME = OPTION_WEDDING | OPTION_XMAS | OPTION_SUMMER | OPTION_HANBOK | OPTION_OKTOBERFEST | OPTION_SUMMER2,
};
struct s_skill {
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index bf816faa7..9f37a754f 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -1714,7 +1714,21 @@ ACMD(bodystyle)
memset(atcmd_output, '\0', sizeof(atcmd_output));
- if (!*message || sscanf(message, "%d", &body_style) < 1) {
+ if ((sd->job & MAPID_THIRDMASK) != MAPID_GUILLOTINE_CROSS
+ && (sd->job & MAPID_THIRDMASK) != MAPID_GENETIC
+ && (sd->job & MAPID_THIRDMASK) != MAPID_MECHANIC
+ && (sd->job & MAPID_THIRDMASK) != MAPID_ROYAL_GUARD
+ && (sd->job & MAPID_THIRDMASK) != MAPID_ARCH_BISHOP
+ && (sd->job & MAPID_THIRDMASK) != MAPID_RANGER
+ && (sd->job & MAPID_THIRDMASK) != MAPID_WARLOCK
+ && (sd->job & MAPID_THIRDMASK) != MAPID_SHADOW_CHASER
+ && (sd->job & MAPID_THIRDMASK) != MAPID_MINSTRELWANDERER
+ ) {
+ clif->message(fd, msg_fd(fd, 35)); // This job has no alternate body styles.
+ return false;
+ }
+
+ if (*message == '\0' || sscanf(message, "%d", &body_style) < 1) {
sprintf(atcmd_output, "Please, enter a body style (usage: @bodystyle <body ID: %d-%d>).", MIN_BODY_STYLE, MAX_BODY_STYLE);
clif->message(fd, atcmd_output);
return false;
@@ -1722,9 +1736,9 @@ ACMD(bodystyle)
if (body_style >= MIN_BODY_STYLE && body_style <= MAX_BODY_STYLE) {
pc->changelook(sd, LOOK_BODY2, body_style);
- clif->message(fd, msg_txt(36)); // Appearence changed.
+ clif->message(fd, msg_fd(fd, 36)); // Appearence changed.
} else {
- clif->message(fd, msg_txt(37)); // An invalid number was specified.
+ clif->message(fd, msg_fd(fd, 37)); // An invalid number was specified.
return false;
}
@@ -9250,7 +9264,12 @@ ACMD(searchstore){
searchstore->open(sd, 99, val);
return true;
}
-ACMD(costume){
+
+/*==========================================
+* @costume
+*------------------------------------------*/
+ACMD(costume)
+{
const char* names[] = {
"Wedding",
"Xmas",
@@ -9259,6 +9278,9 @@ ACMD(costume){
#if PACKETVER >= 20131218
"Oktoberfest",
#endif
+#if PACKETVER >= 20141022
+ "Summer2",
+#endif
};
const int name2id[] = {
SC_WEDDING,
@@ -9268,41 +9290,47 @@ ACMD(costume){
#if PACKETVER >= 20131218
SC_OKTOBERFEST,
#endif
+#if PACKETVER >= 20141022
+ SC_DRESS_UP,
+#endif
};
unsigned short k = 0, len = ARRAYLENGTH(names);
if (!*message) {
- for( k = 0; k < len; k++ ) {
- if( sd->sc.data[name2id[k]] ) {
- safesnprintf(atcmd_output, sizeof(atcmd_output),msg_fd(fd,1473),names[k]);//Costume '%s' removed.
- clif->message(sd->fd,atcmd_output);
- status_change_end(&sd->bl,name2id[k],INVALID_TIMER);
+ for (k = 0; k < len; k++) {
+ if (sd->sc.data[name2id[k]]) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1473), names[k]); // Costume '%s' removed.
+ clif->message(sd->fd, atcmd_output);
+ status_change_end(&sd->bl, name2id[k], INVALID_TIMER);
return true;
}
}
- clif->message(sd->fd,msg_fd(fd,1472));
- for( k = 0; k < len; k++ ) {
- safesnprintf(atcmd_output, sizeof(atcmd_output),msg_fd(fd,1471),names[k]);//-- %s
- clif->message(sd->fd,atcmd_output);
+
+ clif->message(sd->fd, msg_fd(fd, 1472)); // - Available Costumes
+
+ for (k = 0; k < len; k++) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1471), names[k]); //-- %s
+ clif->message(sd->fd, atcmd_output);
}
return false;
}
- for( k = 0; k < len; k++ ) {
- if( sd->sc.data[name2id[k]] ) {
- safesnprintf(atcmd_output, sizeof(atcmd_output),msg_fd(fd,1470),names[k]);// You're already with a '%s' costume, type '@costume' to remove it.
- clif->message(sd->fd,atcmd_output);
+ for (k = 0; k < len; k++) {
+ if (sd->sc.data[name2id[k]]) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1470), names[k]); // You're already with a '%s' costume, type '@costume' to remove it.
+ clif->message(sd->fd, atcmd_output);
return false;
}
}
- for( k = 0; k < len; k++ ) {
- if( strcmpi(message,names[k]) == 0 )
+ for (k = 0; k < len; k++) {
+ if (strcmpi(message,names[k]) == 0)
break;
}
- if( k == len ) {
- safesnprintf(atcmd_output, sizeof(atcmd_output),msg_fd(fd,1469),message);// '%s' is not a known costume
- clif->message(sd->fd,atcmd_output);
+
+ if (k == len) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1469), message); // '%s' is not a known costume
+ clif->message(sd->fd, atcmd_output);
return false;
}
@@ -9310,6 +9338,7 @@ ACMD(costume){
return true;
}
+
/* for debugging purposes (so users can easily provide us with debug info) */
/* should be trashed as soon as its no longer necessary */
ACMD(skdebug)
diff --git a/src/map/battle.c b/src/map/battle.c
index cf08bf96c..11425d4a9 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -7036,12 +7036,13 @@ static const struct battle_data {
{ "combo_delay_rate", &battle_config.combo_delay_rate, 100, 0, INT_MAX, },
{ "item_check", &battle_config.item_check, 0, 0, 1, },
{ "item_use_interval", &battle_config.item_use_interval, 100, 0, INT_MAX, },
- { "cashfood_use_interval", &battle_config.cashfood_use_interval, 60000, 0, INT_MAX, },
{ "wedding_modifydisplay", &battle_config.wedding_modifydisplay, 0, 0, 1, },
{ "wedding_ignorepalette", &battle_config.wedding_ignorepalette, 0, 0, 1, },
{ "xmas_ignorepalette", &battle_config.xmas_ignorepalette, 0, 0, 1, },
{ "summer_ignorepalette", &battle_config.summer_ignorepalette, 0, 0, 1, },
{ "hanbok_ignorepalette", &battle_config.hanbok_ignorepalette, 0, 0, 1, },
+ { "oktoberfest_ignorepalette", &battle_config.oktoberfest_ignorepalette, 0, 0, 1, },
+ { "summer2_ignorepalette", &battle_config.summer2_ignorepalette, 0, 0, 1, },
{ "natural_healhp_interval", &battle_config.natural_healhp_interval, 6000, NATURAL_HEAL_INTERVAL, INT_MAX, },
{ "natural_healsp_interval", &battle_config.natural_healsp_interval, 8000, NATURAL_HEAL_INTERVAL, INT_MAX, },
{ "natural_heal_skill_interval", &battle_config.natural_heal_skill_interval, 10000, NATURAL_HEAL_INTERVAL, INT_MAX, },
diff --git a/src/map/battle.h b/src/map/battle.h
index a5e50407e..a73c6dc44 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -240,12 +240,13 @@ struct Battle_Config {
int combo_delay_rate;
int item_check;
int item_use_interval; //[Skotlex]
- int cashfood_use_interval;
int wedding_modifydisplay;
int wedding_ignorepalette; //[Skotlex]
int xmas_ignorepalette; // [Valaris]
int summer_ignorepalette; // [Zephyrus]
int hanbok_ignorepalette;
+ int oktoberfest_ignorepalette;
+ int summer2_ignorepalette;
int natural_healhp_interval;
int natural_healsp_interval;
int natural_heal_skill_interval;
diff --git a/src/map/clif.c b/src/map/clif.c
index f1400a5d4..e70857ab6 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -3194,31 +3194,31 @@ void clif_changelook(struct block_list *bl,int type,int val)
vd->shield = val;
break;
case LOOK_BASE:
- if( !sd ) break;
+ if (sd == NULL)
+ break;
- if ( val == INVISIBLE_CLASS ) /* nothing to change look */
+ if (val == INVISIBLE_CLASS) /* nothing to change look */
return;
- if( sd->sc.option&OPTION_COSTUME )
+ if (sd->sc.option & OPTION_COSTUME)
vd->weapon = vd->shield = 0;
- if( !vd->cloth_color )
+ if (!vd->cloth_color)
break;
- if (sd->sc.option&OPTION_WEDDING && battle_config.wedding_ignorepalette)
+ if ((sd->sc.option & OPTION_WEDDING) != 0 && battle_config.wedding_ignorepalette == true)
+ vd->cloth_color = 0;
+ if ((sd->sc.option & OPTION_XMAS) != 0 && battle_config.xmas_ignorepalette == true)
vd->cloth_color = 0;
- if (sd->sc.option&OPTION_XMAS && battle_config.xmas_ignorepalette)
+ if ((sd->sc.option & OPTION_SUMMER) != 0 && battle_config.summer_ignorepalette == true)
vd->cloth_color = 0;
- if (sd->sc.option&OPTION_SUMMER && battle_config.summer_ignorepalette)
+ if ((sd->sc.option & OPTION_HANBOK) != 0 && battle_config.hanbok_ignorepalette == true)
vd->cloth_color = 0;
- if (sd->sc.option&OPTION_HANBOK && battle_config.hanbok_ignorepalette)
+ if ((sd->sc.option & OPTION_OKTOBERFEST) != 0 && battle_config.oktoberfest_ignorepalette == true)
vd->cloth_color = 0;
- if (sd->sc.option&OPTION_OKTOBERFEST /* TODO: config? */)
+ if ((sd->sc.option & OPTION_SUMMER2) != 0 && battle_config.summer2_ignorepalette == true)
vd->cloth_color = 0;
- if (vd->body_style && (
- sd->sc.option&OPTION_WEDDING || sd->sc.option&OPTION_XMAS ||
- sd->sc.option&OPTION_SUMMER || sd->sc.option&OPTION_HANBOK ||
- sd->sc.option&OPTION_OKTOBERFEST))
+ if (vd->body_style != 0 && (sd->sc.option & OPTION_COSTUME) != 0)
vd->body_style = 0;
break;
case LOOK_HAIR:
@@ -3237,16 +3237,18 @@ void clif_changelook(struct block_list *bl,int type,int val)
vd->hair_color = val;
break;
case LOOK_CLOTHES_COLOR:
- if( val && sd ) {
- if( sd->sc.option&OPTION_WEDDING && battle_config.wedding_ignorepalette )
+ if (val && sd != NULL) {
+ if ((sd->sc.option & OPTION_WEDDING) != 0 && battle_config.wedding_ignorepalette == true)
+ val = 0;
+ if ((sd->sc.option & OPTION_XMAS) != 0 && battle_config.xmas_ignorepalette == true)
val = 0;
- if( sd->sc.option&OPTION_XMAS && battle_config.xmas_ignorepalette )
+ if ((sd->sc.option & OPTION_SUMMER) != 0 && battle_config.summer_ignorepalette == true)
val = 0;
- if( sd->sc.option&OPTION_SUMMER && battle_config.summer_ignorepalette )
+ if ((sd->sc.option & OPTION_HANBOK) != 0 && battle_config.hanbok_ignorepalette == true)
val = 0;
- if( sd->sc.option&OPTION_HANBOK && battle_config.hanbok_ignorepalette )
+ if ((sd->sc.option & OPTION_OKTOBERFEST) != 0 && battle_config.oktoberfest_ignorepalette == true)
val = 0;
- if( sd->sc.option&OPTION_OKTOBERFEST /* TODO: config? */ )
+ if ((sd->sc.option & OPTION_SUMMER2) != 0 && battle_config.summer2_ignorepalette == true)
val = 0;
}
vd->cloth_color = val;
diff --git a/src/map/itemdb.h b/src/map/itemdb.h
index f77801e09..35cd154cb 100644
--- a/src/map/itemdb.h
+++ b/src/map/itemdb.h
@@ -266,18 +266,6 @@ enum mercenary_scroll_item_list {
};
/**
- * Cash Food
- */
-enum cash_food_item_list {
- ITEMID_STR_DISH10_ = 12202,
- ITEMID_AGI_DISH10_, // 12203
- ITEMID_INT_DISH10_, // 12204
- ITEMID_DEX_DISH10_, // 12205
- ITEMID_LUK_DISH10_, // 12206
- ITEMID_VIT_DISH10_, // 12207
-};
-
-/**
* Geneticist
*/
enum geneticist_item_list {
@@ -556,7 +544,6 @@ struct item_data {
#define itemdb_is_spellbook(n) ((n) >= ITEMID_MAGIC_BOOK_FB && (n) <= ITEMID_MAGIC_BOOK_DL)
#define itemdb_is_poison(n) ((n) >= ITEMID_POISON_PARALYSIS && (n) <= ITEMID_POISON_FATIGUE)
#define itemid_isgemstone(n) ((n) >= ITEMID_YELLOW_GEMSTONE && (n) <= ITEMID_BLUE_GEMSTONE)
-#define itemdb_iscashfood(n) ((n) >= ITEMID_STR_DISH10_ && (n) <= ITEMID_VIT_DISH10_)
#define itemdb_is_GNbomb(n) ((n) >= ITEMID_APPLE_BOMB && (n) <= ITEMID_VERY_HARD_LUMP)
#define itemdb_is_GNthrowable(n) ((n) >= ITEMID_MYSTERIOUS_POWDER && (n) <= ITEMID_BLACK_THING_TO_THROW)
#define itemid_is_pilebunker(n) ((n) == ITEMID_PILEBUNCKER || (n) == ITEMID_PILEBUNCKER_P || (n) == ITEMID_PILEBUNCKER_S || (n) == ITEMID_PILEBUNCKER_T)
diff --git a/src/map/map.h b/src/map/map.h
index 8c5372093..d4284b3f7 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -553,6 +553,7 @@ enum status_point_types { //we better clean up this enum and change it name [Hem
SP_MOD_EXP=125,
SP_MOD_DROP=126,
SP_MOD_DEATH=127,
+ SP_BANKVAULT=128,
// Mercenaries
SP_MERCFLEE=165, SP_MERCKILLS=189, SP_MERCFAITH=190,
diff --git a/src/map/packets.h b/src/map/packets.h
index cc2312356..d1875f2f0 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -4564,6 +4564,1229 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0967,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
#endif
+// 2016-01-27aRagexeRE
+#if PACKETVER >= 20160127
+// new packets
+ packet(0x0a4d,-1);
+// changed packet sizes
+#endif
+
+// 2016-01-27bRagexeRE
+#if PACKETVER == 20160127
+// shuffle packets
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0922,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0961,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-02-03aRagexeRE
+#if PACKETVER == 20160203
+// shuffle packets
+ packet(0x0202,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0437,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0811,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0835,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0872,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0873,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0918,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x093e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0940,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0947,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0954,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-02-17cRagexeRE
+#if PACKETVER == 20160217
+// shuffle packets
+ packet(0x0202,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x023b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0362,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0365,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0864,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0870,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0873,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x087a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0888,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x088f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0899,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a0,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a9,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08ac,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08ad,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x091d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0920,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0926,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x092e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x093b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x093e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0941,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x094a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x095e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0966,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0967,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0969,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+#endif
+
+// 2016-03-02bRagexeRE
+#if PACKETVER == 20160302
+// shuffle packets
+ packet(0x022d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0367,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0802,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0819,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0864,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0865,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0867,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0868,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0873,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x087a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x087d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0883,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a6,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08a9,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0927,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0945,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0950,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0957,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0960,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0961,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0967,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0968,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+#endif
+
+// 2016-03-02bRagexeRE
+#if PACKETVER >= 20160302
+// new packets
+ packet(0x0a4e,4);
+ packet(0x0a4f,-1,clif->pDull/*,XXX*/);
+ packet(0x0a50,6);
+ packet(0x0a51,34);
+// changed packet sizes
+#endif
+
+// 2016-03-09aRagexeRE
+#if PACKETVER == 20160309
+// shuffle packets
+ packet(0x023b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0281,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0819,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0838,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x083c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x085a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0866,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0873,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x087e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x089b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a7,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0920,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0922,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0929,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092a,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x092e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0932,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0956,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x095e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x096a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2016-03-16aRagexeRE
+#if PACKETVER >= 20160316
+// new packets
+ packet(0x0a52,20,clif->pDull/*,XXX*/);
+ packet(0x0a53,10);
+ packet(0x0a54,-1);
+ packet(0x0a55,2);
+ packet(0x0a56,6,clif->pDull/*,XXX*/);
+ packet(0x0a57,6);
+ packet(0x0a58,8);
+ packet(0x0a59,-1);
+ packet(0x0a5a,2,clif->pDull/*,XXX*/);
+ packet(0x0a5b,7);
+ packet(0x0a5c,18,clif->pDull/*,XXX*/);
+ packet(0x0a5d,6);
+// changed packet sizes
+#endif
+
+// 2016-03-23aRagexeRE
+#if PACKETVER >= 20160323
+// new packets
+ packet(0x0a68,3);
+ packet(0x0a69,6);
+ packet(0x0a6a,12);
+ packet(0x0a6b,-1);
+// changed packet sizes
+#endif
+
+// 2016-03-30aRagexeRE
+#if PACKETVER == 20160330
+// shuffle packets
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0365,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0867,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x086d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0878,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0889,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x088b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0918,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0925,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x092a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x092c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0930,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0939,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x093b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-03-30aRagexeRE
+#if PACKETVER >= 20160330
+// new packets
+ packet(0x0a6c,7,clif->pDull/*,XXX*/);
+ packet(0x0a6d,-1);
+ packet(0x0a6e,-1);
+ packet(0x0a6f,-1);
+// changed packet sizes
+#endif
+
+// 2016-04-20aRagexeRE
+#if PACKETVER == 20160420
+// shuffle packets
+ packet(0x022d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x02c4,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x035f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0864,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0870,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0872,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0874,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0884,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a5,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0935,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x094e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-04-27aRagexeRE
+#if PACKETVER >= 20160427
+// new packets
+// changed packet sizes
+ packet(0x0a50,4);
+#endif
+
+// 2016-05-04aRagexeRE
+#if PACKETVER >= 20160504
+// new packets
+ packet(0x0a70,2,clif->pDull/*,XXX*/);
+ packet(0x0a71,-1);
+ packet(0x0a72,61);
+// changed packet sizes
+#endif
+
+// 2016-05-11aRagexeRE
+#if PACKETVER == 20160511
+// shuffle packets
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0894,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0918,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0920,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0940,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-05-11aRagexeRE
+#if PACKETVER >= 20160511
+// new packets
+ packet(0x0a73,6);
+ packet(0x0a74,8);
+// changed packet sizes
+#endif
+
+// 2016-05-18aRagexeRE
+#if PACKETVER >= 20160518
+// new packets
+ packet(0x0a76,80);
+// changed packet sizes
+ packet(0x0a73,2);
+#endif
+
+// 2016-05-25aRagexeRE
+#if PACKETVER == 20160525
+// shuffle packets
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x085e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0867,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x086a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0899,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0937,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0945,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x094a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x094e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0951,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0956,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-05-25aRagexeRE
+#if PACKETVER >= 20160525
+// new packets
+ packet(0x0a77,15);
+ packet(0x0a78,15);
+// changed packet sizes
+#endif
+
+// 2016-06-01aRagexeRE
+#if PACKETVER >= 20160601
+// new packets
+ packet(0x0a79,-1);
+ packet(0x0a7b,-1);
+ packet(0x0a7c,-1);
+ packet(0x0a7d,-1);
+// changed packet sizes
+#endif
+
+// 2016-06-08aRagexeRE
+#if PACKETVER == 20160608
+// shuffle packets
+ packet(0x022d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x02c4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x035f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0437,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07ec,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0802,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0885,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0889,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0899,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08a6,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x093b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x094d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0958,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x095b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0969,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-06-15aRagexeRE
+#if PACKETVER == 20160615
+// shuffle packets
+ packet(0x0281,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0363,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0369,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x083c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0866,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0870,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x087e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x087f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0887,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0888,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0891,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0898,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x092f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x093e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0947,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0948,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x094a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x094b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0954,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0957,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0958,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x095e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0961,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+#endif
+
+// 2016-06-15aRagexeRE
+#if PACKETVER >= 20160615
+// new packets
+ packet(0x0a7e,4);
+ packet(0x0a7f,-1);
+ packet(0x0a80,2);
+ packet(0x0a81,3);
+// changed packet sizes
+#endif
+
+// 2016-06-22aRagexeRE
+#if PACKETVER >= 20160622
+// new packets
+ packet(0x0a82,46);
+ packet(0x0a83,46);
+ packet(0x0a84,94);
+ packet(0x0a85,82);
+ packet(0x0a86,-1);
+ packet(0x0a87,4);
+ packet(0x0a88,2);
+// changed packet sizes
+#endif
+
+// 2016-06-29aRagexeRE
+#if PACKETVER >= 20160629
+// new packets
+ packet(0x0a89,32);
+ packet(0x0a8a,6);
+ packet(0x0a8b,2);
+ packet(0x0a8c,2);
+ packet(0x0a8d,-1);
+// changed packet sizes
+ packet(0x0a80,6);
+#endif
+
+// 2016-06-30aRagexeRE
+#if PACKETVER == 20160630
+// shuffle packets
+ packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x022d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x035f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0363,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0368,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x085c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x085e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0860,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0861,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0863,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0867,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x086b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0881,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0885,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0893,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x091e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0922,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0925,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0926,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x093e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0946,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0948,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x094a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0957,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x095a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0968,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0969,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x096a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+#endif
+
+// 2016-07-06cRagexeRE
+#if PACKETVER == 20160706
+// shuffle packets
+ packet(0x0362,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0436,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x085f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0860,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0869,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x086b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0884,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0886,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0889,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0892,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0899,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a5,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a8,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0918,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x091b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0924,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0926,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0927,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0929,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0939,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x093d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0944,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0945,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0952,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0957,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0958,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2016-07-06cRagexeRE
+#if PACKETVER >= 20160706
+// new packets
+ packet(0x0a81,3);
+// changed packet sizes
+ packet(0x0a7e,-1);
+ packet(0x0a89,57);
+#endif
+
+// 2016-07-13bRagexeRE
+#if PACKETVER == 20160713
+// shuffle packets
+ packet(0x022d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0363,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0838,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0860,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0865,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0869,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0877,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x087b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0883,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x088d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0892,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x089a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x089f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a2,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a4,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x091d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0921,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0922,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x092c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0931,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0939,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0944,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0945,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0947,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0957,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x095b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+#endif
+
+// 2016-07-13aRagexeRE
+#if PACKETVER >= 20160713
+// new packets
+// changed packet sizes
+ packet(0x0a87,-1);
+#endif
+
+// 2016-07-20aRagexeRE
+#if PACKETVER == 20160720
+// shuffle packets
+ packet(0x0362,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0363,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0365,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x07e4,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0838,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x086a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0883,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0887,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0897,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x089e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a0,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08aa,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0917,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x091c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x093e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0946,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x094d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0953,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x095b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0960,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0969,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+#endif
+
+// 2016-07-20aRagexeRE
+#if PACKETVER >= 20160720
+// new packets
+ packet(0x0a8e,2);
+ packet(0x0a8f,2);
+ packet(0x0a90,3);
+// changed packet sizes
+#endif
+
+// 2016-07-27aRagexeRE
+#if PACKETVER >= 20160727
+// new packets
+ packet(0x0a91,-1);
+ packet(0x0a92,-1);
+ packet(0x0a93,3);
+// changed packet sizes
+#endif
+
+// 2016-07-27bRagexeRE
+#if PACKETVER == 20160727
+// shuffle packets
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x023b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0362,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0363,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0436,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0438,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x07ec,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0866,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0868,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0869,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0874,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0877,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0883,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0887,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0891,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x089f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08a2,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a4,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08a7,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0936,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0941,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0946,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0949,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0951,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x095f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0966,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0969,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+#endif
+
+// 2016-08-03bRagexeRE
+#if PACKETVER >= 20160803
+// new packets
+ packet(0x0a94,2);
+// changed packet sizes
+ packet(0x0a81,4);
+#endif
+
+// 2016-08-31bRagexeRE
+#if PACKETVER == 20160831
+// shuffle packets
+ packet(0x022d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0366,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x07ec,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0835,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x086d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0870,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0874,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0876,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0878,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x087c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08a8,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08a9,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0917,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x091b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0938,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x093a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0946,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x094a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x094f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0950,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0954,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0957,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x095e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0960,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0964,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0967,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+#endif
+
+// 2016-09-07aRagexeRE
+#if PACKETVER == 20160907
+// shuffle packets
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x091c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-09-07aRagexeRE
+#if PACKETVER >= 20160907
+// new packets
+ packet(0x0a95,4);
+// changed packet sizes
+#endif
+
+// 2016-09-21bRagexeRE
+#if PACKETVER == 20160921
+// shuffle packets
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x094a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-09-21bRagexeRE
+#if PACKETVER >= 20160921
+// new packets
+ packet(0x0a96,51);
+// changed packet sizes
+ packet(0x0a37,59); // ZC_ITEM_PICKUP_ACK_V7
+#endif
+
+// 2016-09-28cRagexeRE
+#if PACKETVER >= 20160928
+// new packets
+ packet(0x0a97,8);
+ packet(0x0a98,12);
+ packet(0x0a99,8);
+ packet(0x0a9a,10);
+ packet(0x0a9b,-1);
+ packet(0x0a9c,2);
+ packet(0x0a9d,4);
+ packet(0x0a9e,2);
+ packet(0x0a9f,2);
+// changed packet sizes
+#endif
+
+// 2016-10-05aRagexeRE
+#if PACKETVER >= 20161005
+// new packets
+ packet(0x0aa0,2,clif->pDull/*,XXX*/);
+ packet(0x0aa1,4);
+ packet(0x0aa2,-1);
+ packet(0x0aa3,7);
+ packet(0x0aa4,2);
+// changed packet sizes
+#endif
+
+// 2016-10-12aRagexeRE
+#if PACKETVER == 20161012
+// shuffle packets
+ packet(0x023b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0365,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0369,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x07ec,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0819,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x085b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x085e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0863,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0868,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0872,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0875,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0880,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0893,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a0,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x092d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0936,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0937,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0939,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0943,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0944,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0951,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x095c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0962,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0966,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0967,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+#endif
+
+// 2016-10-26bRagexeRE
+#if PACKETVER == 20161026
+// shuffle packets
+ packet(0x0363,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0438,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x085a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0861,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0862,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x086a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x086e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x087c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0886,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0891,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0894,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0898,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x091a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0926,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x092c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x092e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x092f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0930,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0953,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x095c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0962,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2016-10-26bRagexeRE
+#if PACKETVER >= 20161026
+// new packets
+ packet(0x0aa5,-1);
+ packet(0x0aa6,36);
+// changed packet sizes
+#endif
+
+// 2016-11-09bRagexeRE
+#if PACKETVER == 20161109
+// shuffle packets
+ packet(0x02c4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0361,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0362,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0366,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x085d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x085e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x086a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x086d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0870,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0876,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0881,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x088e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0891,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0898,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x089f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a7,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08ad,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0937,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x093f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0954,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0956,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2016-11-30aRagexeRE
+#if PACKETVER >= 20161130
+// new packets
+ packet(0x0aa7,6);
+ packet(0x0aa8,5);
+ packet(0x0aa9,-1);
+ packet(0x0aaa,-1);
+ packet(0x0aab,-1);
+// changed packet sizes
+#endif
+
+// 2016-12-07eRagexeRE
+#if PACKETVER == 20161207
+// shuffle packets
+ packet(0x023b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0867,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0868,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0875,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x087e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0886,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a1,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a2,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08ad,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0918,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0943,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x095d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0965,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-12-07cRagexeRE
+#if PACKETVER >= 20161207
+// new packets
+ packet(0x0aac,67);
+// changed packet sizes
+#endif
+
+// 2016-12-14bRagexeRE
+#if PACKETVER == 20161214
+// shuffle packets
+ packet(0x022d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0281,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x02c4,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0436,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0862,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x086d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0887,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0895,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0899,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a6,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x092e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x093d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-12-21aRagexeRE
+#if PACKETVER == 20161221
+// shuffle packets
+ packet(0x035f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0366,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0438,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0817,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0866,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0876,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0881,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0885,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0890,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0899,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x089a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x089b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08aa,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x091e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0926,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0928,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x092e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0930,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0943,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0946,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x094b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x095a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0964,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0965,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2016-12-21aRagexeRE
+#if PACKETVER >= 20161221
+// new packets
+ packet(0x0aad,47);
+ packet(0x0aae,2);
+ packet(0x0aaf,6);
+ packet(0x0ab0,6);
+ packet(0x0ab1,10);
+// changed packet sizes
+#endif
+
+// 2016-12-28aRagexeRE
+#if PACKETVER >= 20161228
+// new packets
+// changed packet sizes
+ packet(0x0ab1,14);
+#endif
+
+// 2017-01-04bRagexeRE
+#if PACKETVER >= 20170104
+// new packets
+ packet(0x0ab2,7);
+ packet(0x0ab3,15);
+// changed packet sizes
+#endif
+
+// 2017-01-11aRagexeRE
+#if PACKETVER >= 20170111
+// new packets
+ packet(0x0ab4,4);
+ packet(0x0ab5,2);
+ packet(0x0ab6,6);
+ packet(0x0ab7,4);
+ packet(0x0ab8,2);
+ packet(0x0ab9,39);
+// changed packet sizes
+#endif
+
+// 2017-01-18aRagexeRE
+#if PACKETVER >= 20170118
+// new packets
+ packet(0x0aba,2);
+ packet(0x0abb,2);
+// changed packet sizes
+ packet(0x0aad,51);
+ packet(0x0ab3,19);
+#endif
+
+// 2017-02-01aRagexeRE
+#if PACKETVER >= 20170201
+// new packets
+ packet(0x0abc,-1);
+// changed packet sizes
+#endif
+
+// 2017-02-15aRagexeRE
+#if PACKETVER >= 20170215
+// new packets
+ packet(0x0abd,10);
+// changed packet sizes
+#endif
+
+// 2017-02-22aRagexeRE
+#if PACKETVER >= 20170222
+// new packets
+ packet(0x0abe,116);
+ packet(0x0abf,114);
+// changed packet sizes
+#endif
+
+// 2017-02-28aRagexeRE
+#if PACKETVER >= 20170228
+// new packets
+ packet(0x0ac0,26);
+ packet(0x0ac1,26);
+ packet(0x0ac2,-1);
+ packet(0x0ac3,2);
+ packet(0x0ac4,-1);
+ packet(0x0ac5,156,clif->pDull/*,XXX*/);
+ packet(0x0ac6,156);
+ packet(0x0ac7,156);
+// changed packet sizes
+ packet(0x0abe,-1);
+ packet(0x0abf,-1);
+#endif
+
+// 2017-03-08bRagexeRE
+#if PACKETVER >= 20170308
+// new packets
+ packet(0x0ac8,2);
+ packet(0x0ac9,-1);
+// changed packet sizes
+#endif
+
+// 2017-03-22aRagexeRE
+#if PACKETVER >= 20170322
+// new packets
+ packet(0x0aca,3);
+// changed packet sizes
+#endif
+
+// 2017-03-29cRagexeRE
+#if PACKETVER >= 20170329
+// new packets
+// changed packet sizes
+ packet(0x0aac,69);
+#endif
+
+// 2017-04-05bRagexeRE
+#if PACKETVER >= 20170405
+// new packets
+ packet(0x0acb,12);
+ packet(0x0acc,18);
+// changed packet sizes
+#endif
+
+// 2017-04-19bRagexeRE
+#if PACKETVER >= 20170419
+// new packets
+ packet(0x0acd,23);
+// changed packet sizes
+ packet(0x0a99,4);
+#endif
+
/* PacketKeys: http://herc.ws/board/topic/1105-hercules-wpe-free-june-14th-patch/ */
#if PACKETVER >= 20110817
packetKeys(0x053D5CED,0x3DED6DED,0x6DED6DED); /* Thanks to Shakto */
@@ -4917,6 +6140,107 @@ packet(0x96e,-1,clif->ackmergeitems);
packetKeys(0x347D68D0,0x2C705320,0x7B4A199D); /* 4144 */
#endif
+#if PACKETVER == 20160127
+ packetKeys(0x6B1E7146,0x612C47E6,0x274E56EE); /* 4144 */
+#endif
+
+#if PACKETVER == 20160203
+ packetKeys(0x3E1411AF,0x6C744497,0x7CFA1BDE); /* 4144 */
+#endif
+
+#if PACKETVER == 20160217
+ packetKeys(0x25895A8E,0x09421C19,0x763A2D7A); /* 4144 */
+#endif
+
+#if PACKETVER == 20160302
+ packetKeys(0x7B4441B9,0x5BBC63AF,0x45DA0E71); /* 4144 */
+#endif
+
+#if PACKETVER == 20160309
+ packetKeys(0x21587520,0x353A7706,0x1B722B25); /* 4144 */
+#endif
+
+#if PACKETVER == 20160330
+ packetKeys(0x02050940,0x545336FF,0x7E7D4902); /* 4144 */
+#endif
+
+#if PACKETVER == 20160420
+ packetKeys(0x67D2163A,0x3068215B,0x4835474D); /* 4144 */
+#endif
+
+#if PACKETVER == 20160511
+ packetKeys(0x3C666FE2,0x27E84E3E,0x53E11BA5); /* 4144 */
+#endif
+
+#if PACKETVER == 20160525
+ packetKeys(0x485C45B6,0x47DC6192,0x76B34A36); /* 4144 */
+#endif
+
+#if PACKETVER == 20160608
+ packetKeys(0x11D74609,0x77C43E8A,0x44290F53); /* 4144 */
+#endif
+
+#if PACKETVER == 20160615
+ packetKeys(0x062C5C26,0x6CF47E82,0x4DD53480); /* 4144 */
+#endif
+
+#if PACKETVER == 20160630
+ packetKeys(0x0DF31CCC,0x54281606,0x5C4C6855); /* 4144 */
+#endif
+
+#if PACKETVER == 20160706
+ packetKeys(0x33A766D0,0x743F04F8,0x0FA0276C); /* 4144 */
+#endif
+
+#if PACKETVER == 20160713
+ packetKeys(0x714F2495,0x7DDC6F32,0x3FD8533D); /* 4144 */
+#endif
+
+#if PACKETVER == 20160720
+ packetKeys(0x4F8A19C0,0x2D8E085C,0x37BB67D6); /* 4144 */
+#endif
+
+#if PACKETVER == 20160727
+ packetKeys(0x3C6952AB,0x26E4077F,0x37E25DF7); /* 4144 */
+#endif
+
+#if PACKETVER == 20160831
+ packetKeys(0x564E13B0,0x7F680549,0x382D273B); /* 4144 */
+#endif
+
+#if PACKETVER == 20160907
+ packetKeys(0x32E5237D,0x57BD4DBD,0x5DBD5DBD); /* 4144 */
+#endif
+
+#if PACKETVER == 20160921
+ packetKeys(0x11CD15CD,0x15CD15CD,0x15CD15CD); /* 4144 */
+#endif
+
+#if PACKETVER == 20161012
+ packetKeys(0x5E2311F2,0x14FD012C,0x76EB64F6); /* 4144 */
+#endif
+
+#if PACKETVER == 20161026
+ packetKeys(0x2CB86AE6,0x7D12660E,0x1B004DEB); /* 4144 */
+#endif
+
+#if PACKETVER == 20161109
+ packetKeys(0x0A5277C0,0x2DB17506,0x0E8F26DA); /* 4144 */
+#endif
+
+#if PACKETVER == 20161207
+ packetKeys(0x52D267AA,0x4FE42156,0x1292153E); /* 4144 */
+#endif
+
+#if PACKETVER == 20161214
+ packetKeys(0x4DDE217B,0x07863AE0,0x5B591656); /* 4144 */
+#endif
+
+#if PACKETVER == 20161221
+ packetKeys(0x69CB4F56,0x793C165E,0x673A2354); /* 4144 */
+#endif
+
+
#if defined(OBFUSCATIONKEY1) && defined(OBFUSCATIONKEY2) && defined(OBFUSCATIONKEY3)
packetKeys(OBFUSCATIONKEY1,OBFUSCATIONKEY2,OBFUSCATIONKEY3);
#endif
diff --git a/src/map/pc.c b/src/map/pc.c
index ca7387474..f40fba8ae 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -4903,25 +4903,6 @@ int pc_isUseitem(struct map_session_data *sd,int n)
if( map->list[sd->bl.m].flag.nobranch || map_flag_gvg2(sd->bl.m) )
return 0;
break;
- case ITEMID_BUBBLE_GUM:
- case ITEMID_COMP_BUBBLE_GUM:
- if( sd->sc.data[SC_CASH_RECEIVEITEM] )
- return 0;
- break;
- case ITEMID_BATTLE_MANUAL:
- case ITEMID_COMP_BATTLE_MANUAL:
- case ITEMID_THICK_MANUAL50:
- case ITEMID_NOBLE_NAMEPLATE:
- case ITEMID_BATTLE_MANUAL25:
- case ITEMID_BATTLE_MANUAL100:
- case ITEMID_BATTLE_MANUAL_X3:
- if( sd->sc.data[SC_CASH_PLUSEXP] )
- return 0;
- break;
- case ITEMID_JOB_MANUAL50:
- if( sd->sc.data[SC_CASH_PLUSONLYJOBEXP] )
- return 0;
- break;
// Mercenary Items
case ITEMID_MERCENARY_RED_POTION:
@@ -5039,7 +5020,7 @@ int pc_useitem(struct map_session_data *sd,int n) {
#if PACKETVER >= 20110309
clif->msgtable(sd, MSG_NPC_WORK_IN_PROGRESS);
#else
- clif->messagecolor_self(fd, COLOR_WHITE, msg_fd(fd, 48));
+ clif->messagecolor_self(sd->fd, COLOR_WHITE, msg_sd(sd, 48));
#endif
return 0;
}
@@ -5075,10 +5056,8 @@ int pc_useitem(struct map_session_data *sd,int n) {
))
return 0;
- //Prevent mass item usage. [Skotlex]
- if( DIFF_TICK(sd->canuseitem_tick, tick) > 0 ||
- (itemdb_iscashfood(nameid) && DIFF_TICK(sd->canusecashfood_tick, tick) > 0)
- )
+ // Prevent mass item usage. [Skotlex]
+ if (DIFF_TICK(sd->canuseitem_tick, tick) > 0)
return 0;
/* Items with delayed consume are not meant to work while in mounts except reins of mount(12622) */
@@ -5171,10 +5150,8 @@ int pc_useitem(struct map_session_data *sd,int n) {
script->potion_flag = 3; //Even more effective potions.
}
- //Update item use time.
+ // Update item use time.
sd->canuseitem_tick = tick + battle_config.item_use_interval;
- if( itemdb_iscashfood(nameid) )
- sd->canusecashfood_tick = tick + battle_config.cashfood_use_interval;
script->run_use_script(sd, sd->inventory_data[n], npc->fake_nd->bl.id);
script->potion_flag = 0;
@@ -8134,6 +8111,7 @@ int pc_readparam(const struct map_session_data *sd, int type)
case SP_SKILLPOINT: val = sd->status.skill_point; break;
case SP_STATUSPOINT: val = sd->status.status_point; break;
case SP_ZENY: val = sd->status.zeny; break;
+ case SP_BANKVAULT: val = sd->status.bank_vault; break;
case SP_BASELEVEL: val = sd->status.base_level; break;
case SP_JOBLEVEL: val = sd->status.job_level; break;
case SP_CLASS: val = sd->status.class; break;
@@ -8278,6 +8256,7 @@ int pc_readparam(const struct map_session_data *sd, int type)
*------------------------------------------*/
int pc_setparam(struct map_session_data *sd,int type,int val)
{
+ int delta;
nullpo_ret(sd);
switch(type){
@@ -8328,6 +8307,19 @@ int pc_setparam(struct map_session_data *sd,int type,int val)
logs->zeny(sd, LOG_TYPE_SCRIPT, sd, -(sd->status.zeny - cap_value(val, 0, MAX_ZENY)));
sd->status.zeny = cap_value(val, 0, MAX_ZENY);
break;
+ case SP_BANKVAULT:
+ val = cap_value(val, 0, MAX_BANK_ZENY);
+ delta = (val - sd->status.bank_vault);
+ sd->status.bank_vault = val;
+ if (map->save_settings & 256) {
+ chrif->save(sd, 0); // send to char server
+ }
+ if (delta > 0) {
+ clif->bank_deposit(sd, BDA_SUCCESS);
+ } else if (delta < 0) {
+ clif->bank_withdraw(sd, BWA_SUCCESS);
+ }
+ return 1; // the vault uses a different packet
case SP_BASEEXP:
if(pc->nextbaseexp(sd) > 0) {
sd->status.base_exp = val;
diff --git a/src/map/script.c b/src/map/script.c
index 90c4c3b80..b0922e3f8 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -2384,6 +2384,7 @@ void script_load_parameters(void)
{"SkillPoint", SP_SKILLPOINT},
{"Class", SP_CLASS},
{"Zeny", SP_ZENY},
+ {"BankVault", SP_BANKVAULT},
{"Sex", SP_SEX},
{"NextBaseExp", SP_NEXTBASEEXP},
{"NextJobExp", SP_NEXTJOBEXP},
@@ -23766,6 +23767,7 @@ void script_hardcoded_constants(void)
script->set_constant("MAX_CART",MAX_INVENTORY,false, false);
script->set_constant("MAX_INVENTORY",MAX_INVENTORY,false, false);
script->set_constant("MAX_ZENY",MAX_ZENY,false, false);
+ script->set_constant("MAX_BANK_ZENY", MAX_BANK_ZENY, false, false);
script->set_constant("MAX_BG_MEMBERS",MAX_BG_MEMBERS,false, false);
script->set_constant("MAX_CHAT_USERS",MAX_CHAT_USERS,false, false);
script->set_constant("MAX_REFINE",MAX_REFINE,false, false);
@@ -23795,6 +23797,7 @@ void script_hardcoded_constants(void)
script->set_constant("Option_Dragon5",OPTION_DRAGON5,false, false);
script->set_constant("Option_Hanbok",OPTION_HANBOK,false, false);
script->set_constant("Option_Oktoberfest",OPTION_OKTOBERFEST,false, false);
+ script->set_constant("Option_Summer2", OPTION_SUMMER2, false, false);
script->constdb_comment("status option compounds");
script->set_constant("Option_Dragon",OPTION_DRAGON,false, false);
diff --git a/src/map/status.c b/src/map/status.c
index d8fb9a350..c3e5a3f40 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -1000,6 +1000,7 @@ void initChangeTables(void)
status->dbs->IconChangeTable[SC_MONSTER_TRANSFORM] = SI_MONSTER_TRANSFORM;
// Costumes
+ status->dbs->IconChangeTable[SC_DRESS_UP] = SI_DRESS_UP;
status->dbs->IconChangeTable[SC_MOONSTAR] = SI_MOONSTAR;
status->dbs->IconChangeTable[SC_SUPER_STAR] = SI_SUPER_STAR;
status->dbs->IconChangeTable[SC_STRANGELIGHTS] = SI_STRANGELIGHTS;
@@ -1178,6 +1179,7 @@ void initChangeTables(void)
status->dbs->ChangeFlagTable[SC_MVPCARD_ORCLORD] |= SCB_ALL;
// Costumes
+ status->dbs->ChangeFlagTable[SC_DRESS_UP] |= SCB_NONE;
status->dbs->ChangeFlagTable[SC_MOONSTAR] |= SCB_NONE;
status->dbs->ChangeFlagTable[SC_SUPER_STAR] |= SCB_NONE;
status->dbs->ChangeFlagTable[SC_STRANGELIGHTS] |= SCB_NONE;
@@ -6873,23 +6875,20 @@ void status_set_viewdata(struct block_list *bl, int class_)
sd->vd.sex = sd->status.sex;
if (sd->vd.cloth_color) {
- if (sd->sc.option&OPTION_WEDDING && battle_config.wedding_ignorepalette)
- sd->vd.cloth_color = 0;
- if (sd->sc.option&OPTION_XMAS && battle_config.xmas_ignorepalette)
- sd->vd.cloth_color = 0;
- if (sd->sc.option&OPTION_SUMMER && battle_config.summer_ignorepalette)
- sd->vd.cloth_color = 0;
- if (sd->sc.option&OPTION_HANBOK && battle_config.hanbok_ignorepalette)
- sd->vd.cloth_color = 0;
- if (sd->sc.option&OPTION_OKTOBERFEST /* TODO: config? */)
+ if ((sd->sc.option & OPTION_WEDDING) != 0 && battle_config.wedding_ignorepalette == true)
+ sd->vd.cloth_color = 0;
+ if ((sd->sc.option & OPTION_XMAS) != 0 && battle_config.xmas_ignorepalette == true)
+ sd->vd.cloth_color = 0;
+ if ((sd->sc.option & OPTION_SUMMER) != 0 && battle_config.summer_ignorepalette == true)
+ sd->vd.cloth_color = 0;
+ if ((sd->sc.option & OPTION_HANBOK) != 0 && battle_config.hanbok_ignorepalette == true)
+ sd->vd.cloth_color = 0;
+ if ((sd->sc.option & OPTION_OKTOBERFEST) != 0 && battle_config.oktoberfest_ignorepalette == true)
+ sd->vd.cloth_color = 0;
+ if ((sd->sc.option & OPTION_SUMMER2) != 0 && battle_config.summer2_ignorepalette == true)
sd->vd.cloth_color = 0;
}
- if (sd->vd.body_style
- && (sd->sc.option&OPTION_WEDDING
- || sd->sc.option&OPTION_XMAS
- || sd->sc.option&OPTION_SUMMER
- || sd->sc.option&OPTION_HANBOK
- || sd->sc.option&OPTION_OKTOBERFEST))
+ if (sd->vd.body_style != 0 && (sd->sc.option & OPTION_COSTUME) != 0)
sd->vd.body_style = 0;
} else if (vd != NULL) {
memcpy(&sd->vd, vd, sizeof(struct view_data));
@@ -7767,30 +7766,6 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
if (sc->data[SC_FOOD_LUK_CASH] && sc->data[SC_FOOD_LUK_CASH]->val1 > val1)
return 0;
break;
- case SC_FOOD_STR_CASH:
- if (sc->data[SC_FOOD_STR] && sc->data[SC_FOOD_STR]->val1 > val1)
- return 0;
- break;
- case SC_FOOD_AGI_CASH:
- if (sc->data[SC_FOOD_AGI] && sc->data[SC_FOOD_AGI]->val1 > val1)
- return 0;
- break;
- case SC_FOOD_VIT_CASH:
- if (sc->data[SC_FOOD_VIT] && sc->data[SC_FOOD_VIT]->val1 > val1)
- return 0;
- break;
- case SC_FOOD_INT_CASH:
- if (sc->data[SC_FOOD_INT] && sc->data[SC_FOOD_INT]->val1 > val1)
- return 0;
- break;
- case SC_FOOD_DEX_CASH:
- if (sc->data[SC_FOOD_DEX] && sc->data[SC_FOOD_DEX]->val1 > val1)
- return 0;
- break;
- case SC_FOOD_LUK_CASH:
- if (sc->data[SC_FOOD_LUK] && sc->data[SC_FOOD_LUK]->val1 > val1)
- return 0;
- break;
case SC_CAMOUFLAGE:
if( sd && pc->checkskill(sd, RA_CAMOUFLAGE) < 3 && !skill->check_camouflage(bl,NULL) )
return 0;
@@ -8009,40 +7984,46 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
status_change_end(bl, SC_INC_AGI, INVALID_TIMER);
break;
case SC_FOOD_STR:
- status_change_end(bl, SC_FOOD_STR_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_STR, INVALID_TIMER);
break;
case SC_FOOD_AGI:
- status_change_end(bl, SC_FOOD_AGI_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_AGI, INVALID_TIMER);
break;
case SC_FOOD_VIT:
- status_change_end(bl, SC_FOOD_VIT_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_VIT, INVALID_TIMER);
break;
case SC_FOOD_INT:
- status_change_end(bl, SC_FOOD_INT_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_INT, INVALID_TIMER);
break;
case SC_FOOD_DEX:
- status_change_end(bl, SC_FOOD_DEX_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_DEX, INVALID_TIMER);
break;
case SC_FOOD_LUK:
- status_change_end(bl, SC_FOOD_LUK_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_LUK, INVALID_TIMER);
break;
case SC_FOOD_STR_CASH:
status_change_end(bl, SC_FOOD_STR, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_STR_CASH, INVALID_TIMER);
break;
case SC_FOOD_AGI_CASH:
status_change_end(bl, SC_FOOD_AGI, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_AGI_CASH, INVALID_TIMER);
break;
case SC_FOOD_VIT_CASH:
status_change_end(bl, SC_FOOD_VIT, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_VIT_CASH, INVALID_TIMER);
break;
case SC_FOOD_INT_CASH:
status_change_end(bl, SC_FOOD_INT, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_INT_CASH, INVALID_TIMER);
break;
case SC_FOOD_DEX_CASH:
status_change_end(bl, SC_FOOD_DEX, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_DEX_CASH, INVALID_TIMER);
break;
case SC_FOOD_LUK_CASH:
status_change_end(bl, SC_FOOD_LUK, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_LUK_CASH, INVALID_TIMER);
break;
case SC_GM_BATTLE:
status_change_end(bl, SC_GM_BATTLE2, INVALID_TIMER);
@@ -8493,8 +8474,10 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_SUMMER:
case SC_HANBOK:
case SC_OKTOBERFEST:
- if (!vd) return 0;
- //Store previous values as they could be removed.
+ case SC_DRESS_UP:
+ if (vd == NULL)
+ return 0;
+ // Store previous values as they could be removed.
unit->stop_attack(bl);
break;
case SC_NOCHAT:
@@ -9889,19 +9872,21 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
return 0;
}
}
- } else { //Special considerations when loading SC data.
- switch( type ) {
+ } else { // Special considerations when loading SC data.
+ switch (type) {
case SC_WEDDING:
case SC_XMAS:
case SC_SUMMER:
case SC_HANBOK:
case SC_OKTOBERFEST:
- if( !vd ) break;
+ case SC_DRESS_UP:
+ if (vd == NULL)
+ break;
clif->changelook(bl, LOOK_BASE, vd->class);
- clif->changelook(bl,LOOK_WEAPON,0);
- clif->changelook(bl,LOOK_SHIELD,0);
- clif->changelook(bl,LOOK_CLOTHES_COLOR,vd->cloth_color);
- clif->changelook(bl,LOOK_BODY2,0);
+ clif->changelook(bl, LOOK_WEAPON, 0);
+ clif->changelook(bl, LOOK_SHIELD, 0);
+ clif->changelook(bl, LOOK_CLOTHES_COLOR, vd->cloth_color);
+ clif->changelook(bl, LOOK_BODY2, 0);
break;
case SC_KAAHI:
val4 = INVALID_TIMER;
@@ -10284,6 +10269,10 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
sc->option |= OPTION_OKTOBERFEST;
opt_flag |= 0x4;
break;
+ case SC_DRESS_UP:
+ sc->option |= OPTION_SUMMER2;
+ opt_flag |= 0x4;
+ break;
case SC__FEINTBOMB_MASTER:
sc->option |= OPTION_INVISIBLE;
opt_flag |= 0x4;
@@ -11092,6 +11081,10 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
sc->option &= ~OPTION_OKTOBERFEST;
opt_flag |= 0x4;
break;
+ case SC_DRESS_UP:
+ sc->option &= ~OPTION_SUMMER2;
+ opt_flag |= 0x4;
+ break;
case SC__FEINTBOMB_MASTER:
sc->option &= ~OPTION_INVISIBLE;
opt_flag |= 0x4;
diff --git a/src/map/status.h b/src/map/status.h
index 06e7e07b8..1496429a8 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -840,6 +840,8 @@ typedef enum sc_type {
SC_TUNAPARTY,
SC_SHRIMP, // 650
SC_FRESHSHRIMP,
+
+ SC_DRESS_UP,
#ifndef SC_MAX
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
#endif
@@ -1722,7 +1724,7 @@ enum si_type {
//SI_SUMMEREVENT04 = 853,
//SI_SUMMEREVENT05 = 854,
//SI_MINIGAME_ROULETTE_BONUS_ITEM = 855,
- //SI_DRESS_UP = 856,
+ SI_DRESS_UP = 856,
SI_MAPLE_FALLS = 857,
//SI_ALL_NIFLHEIM_RECALL = 858,
//SI_ = 859,