summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/re/instances/BakonawaLake.txt652
-rw-r--r--npc/re/instances/BuwayaCave.txt460
-rw-r--r--npc/re/instances/EclageInterior.txt738
-rw-r--r--npc/re/instances/HazyForest.txt1199
-rw-r--r--npc/re/instances/MalangdoCulvert.txt1287
-rw-r--r--src/map/atcommand.c1
-rw-r--r--src/map/clif.c8
-rw-r--r--src/map/packets.h58
-rw-r--r--src/map/packets_keys.h1899
-rw-r--r--src/map/packets_keys_main.h18
-rw-r--r--src/map/packets_keys_zero.h5
-rw-r--r--src/map/packets_shuffle_main.h145
-rw-r--r--src/map/packets_shuffle_zero.h33
13 files changed, 2476 insertions, 4027 deletions
diff --git a/npc/re/instances/BakonawaLake.txt b/npc/re/instances/BakonawaLake.txt
index 2868cc589..65622171b 100644
--- a/npc/re/instances/BakonawaLake.txt
+++ b/npc/re/instances/BakonawaLake.txt
@@ -34,223 +34,234 @@
//=========================================================================
ma_scene01,174,179,4 script Taho 4_M_DEWZATIMAN,{
- disable_items;
- if (checkweight(Knife,1) == 0) {
- mes "You are carrying too many items. Come back after taking off some of them.";
- close;
+ disable_items();
+ if (checkweight(Knife, 1) == 0) {
+ mes("You are carrying too many items. Come back after taking off some of them.");
+ close();
}
if (MaxWeight - Weight < 10000) {
- mes "You are carrying too much weight. Come back after reducing the weight.";
- close;
+ mes("You are carrying too much weight. Come back after reducing the weight.");
+ close();
}
if (BaseLevel < 140) {
- mes "[Taho]";
- mes "Hey. This is too dangerous a place for you. You cannot keep yourself safe. Get out of here and go to the village right now!";
- close;
+ mes("[Taho]");
+ mes("Hey. This is too dangerous a place for you. You cannot keep yourself safe. Get out of here and go to the village right now!");
+ close();
}
if (malaya_bakona1 < 7 && malaya_bakona2 < 15) {
- mes "[Taho]";
- mes "We are gonna be killed all by that Bakonawa. Ah, we must slay him but unfortunately we are not prepared.";
- close;
+ mes("[Taho]");
+ mes("We are gonna be killed all by that Bakonawa. Ah, we must slay him but unfortunately we are not prepared.");
+ close();
}
.@party_id = getcharid(CHAR_ID_PARTY);
- .@md_name$ = "Bakonawa Lake";
+ .@md_name$ = _("Bakonawa Lake");
- .@baku_time = questprogress(12278,PLAYTIME);
+ .@baku_time = questprogress(12278, PLAYTIME);
if (!.@baku_time) {
- if (!questprogress(12279)) setquest 12279;
+ if (!questprogress(12279))
+ setquest(12279);
}
if (!.@party_id) {
- mes "[Taho]";
- mes "Isn't there any company who can go with you? Or even if you wanna go alone, come after organizing a party.";
- close;
+ mes("[Taho]");
+ mes("Isn't there any company who can go with you? Or even if you wanna go alone, come after organizing a party.");
+ close();
}
if (!.@baku_time) {
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2)) {
- mes "[Taho]";
- mes "Are you the leader of the Bakonawa slayers? The road is not well so we have to go down the cliff with a rope, is that OK?";
- next;
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
+ mes("[Taho]");
+ mes("Are you the leader of the Bakonawa slayers? The road is not well so we have to go down the cliff with a rope, is that OK?");
+ next();
.@i = select("Please weave a rope.", "Now I will go down.", "Cancel.");
} else {
- mes "[Taho]";
- mes "You came for slaying Bakonawa. The leader of your party has to help me weaving the rope for going down.";
- next;
+ mes("[Taho]");
+ mes("You came for slaying Bakonawa. The leader of your party has to help me weaving the rope for going down.");
+ next();
.@i = select("", "Now I will go down.", "Cancel.");
}
- switch(.@i) {
+ switch (.@i) {
case 1:
- .@instance = instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
- mes "[Taho]";
- mes "Oh, the rope got dropped. I have to make a new one.";
- close;
+ mes("[Taho]");
+ mes("Oh, the rope got dropped. I have to make a new one.");
+ close();
}
- if (instance_attachmap("1@ma_b",.@instance) == "") {
- mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ if (instance_attachmap("1@ma_b", .@instance) == "") {
+ mesf("^0000ff%s^000000 - Reservation Failed!", .@md_name$);
instance_destroy(.@instance);
- close;
+ close();
}
- instance_set_timeout 7200,300,.@instance;
+ instance_set_timeout(7200, 300, .@instance);
instance_init(.@instance);
- mes "[Taho]";
- mes "Now I'm weaving, so you can go down when I'm done.";
- close;
+ mes("[Taho]");
+ mes("Now I'm weaving, so you can go down when I'm done.");
+ close();
case 2:
- if( has_instance("1@ma_b") == "" ) {
- mes "The memorial dungeon "+.@md_name$+" does not exist.";
- mes "The party leader did not generate the dungeon yet.";
- close;
+ if (has_instance("1@ma_b") == "") {
+ mesf("The memorial dungeon %s does not exist.", .@md_name$);
+ mes("The party leader did not generate the dungeon yet.");
+ close();
} else {
- mapannounce "ma_scene01","A party member, "+strcharinfo(PC_NAME)+" of the party "+getpartyname(.@party_id)+" is entering the dungeon, "+.@md_name$+".",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
- setquest 12278;
- warp "1@ma_b",64,51;
+ mapannounce("ma_scene01", sprintf(_$("A party member, %s of the party %s is entering the dungeon, %s."), strcharinfo(PC_NAME), getpartyname(.@party_id), .@md_name$), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
+ setquest(12278);
+ warp("1@ma_b", 64, 51);
end;
}
case 3:
- close;
+ close();
}
} else if (.@baku_time == 1) {
- mes "[Taho]";
- mes "The rope used for getting to the Lake is already broken. We are now cleaning up the surroundings so come back after some time.";
- close;
+ mes("[Taho]");
+ mes("The rope used for getting to the Lake is already broken. We are now cleaning up the surroundings so come back after some time.");
+ close();
} else if (.@baku_time == 2) {
- mes "[Taho]";
- mes "It's all cleaned up around here. Now you can go down again after getting a rope.";
- erasequest 12278;
- close;
+ mes("[Taho]");
+ mes("It's all cleaned up around here. Now you can go down again after getting a rope.");
+ erasequest(12278);
+ close();
}
}
sec_in02,26,26,4 script Bakonawa's Rage 4_M_DEWZATIMAN,{
- callfunc "F_GM_NPC";
- mes "[Taho]";
- mes "My name is Minky.";
- if (callfunc("F_GM_NPC",1854,0) == 1) {
- erasequest 12278;
- erasequest 12279;
+ callfunc("F_GM_NPC");
+ mes("[Taho]");
+ mes("My name is Minky.");
+ if (callfunc("F_GM_NPC", 1854, 0) == 1) {
+ erasequest(12278);
+ erasequest(12279);
malaya_bakona1 = 7;
malaya_bakona2 = 15;
}
- close;
+ close();
}
1@ma_b,62,52,4 script Taho#nf 4_M_DEWZATIMAN,{
- mes "[Taho]";
- mes "Heehee, I could join the Bakonawa hunt, but I'd rather hide behind that rock and cheer you guys on.";
- next;
- mes "[Taho]";
- mes "Bakonawa becomes invincible at some point. When that time comes, listen to my guides carefully. Just trust me and all will be good.";
- next;
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY),2)) {
- mes "[Taho]";
- mes "Now I will make Bakonawa spring out from the lake.";
- next;
- switch(select("Hold on! I'm not ready yet!", "Let's do it!")) {
+ mes("[Taho]");
+ mes("Heehee, I could join the Bakonawa hunt, but I'd rather hide behind that rock and cheer you guys on.");
+ next();
+ mes("[Taho]");
+ mes("Bakonawa becomes invincible at some point. When that time comes, listen to my guides carefully. Just trust me and all will be good.");
+ next();
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY), 2)) {
+ mes("[Taho]");
+ mes("Now I will make Bakonawa spring out from the lake.");
+ next();
+ switch (select("Hold on! I'm not ready yet!", "Let's do it!")) {
case 1:
- mes "[Taho]";
- mes "Oh... alright... tell me when you are ready.";
- close;
+ mes("[Taho]");
+ mes("Oh... alright... tell me when you are ready.");
+ close();
case 2:
- mes "[Taho]";
- mes "Then I will drop a drop of Albopal to this lake.";
- next;
- mes "[Taho]";
- mes "Once Bakonawa tastes this, he will surface...";
- donpcevent instance_npcname("#Bakonawan1")+"::OnStart";
- disablenpc instance_npcname("Taho#nf");
- close;
+ mes("[Taho]");
+ mes("Then I will drop a drop of Albopal to this lake.");
+ next();
+ mes("[Taho]");
+ mes("Once Bakonawa tastes this, he will surface...");
+ donpcevent(instance_npcname("#Bakonawan1")+"::OnStart");
+ disablenpc(instance_npcname("Taho#nf"));
+ close();
}
} else {
- mes "[Taho]";
- mes "I am dropping the Alpopal to make Bakonawa mad. Bakonawa can be a good source of protein once we get him.";
- close;
+ mes("[Taho]");
+ mes("I am dropping the Alpopal to make Bakonawa mad. Bakonawa can be a good source of protein once we get him.");
+ close();
}
}
1@ma_b,36,111,4 script #Bakonawan1 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Bakonawan1");
+ disablenpc(instance_npcname("#Bakonawan1"));
end;
OnStart:
- enablenpc instance_npcname("#Bakonawan1");
+ enablenpc(instance_npcname("#Bakonawan1"));
.@map$ = instance_mapname("1@ma_b");
- mapannounce .@map$,"Taho: I can see him there on the surface! ATTACK!!!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
- monster .@map$,78,81,"Bakonawa",2320,1,instance_npcname("#Bakonawan1")+"::OnMyMobDead"; //original: (78,83)
- initnpctimer;
+ mapannounce(.@map$, _("Taho: I can see him there on the surface! ATTACK!!!"), bc_map, C_AQUA); //FW_NORMAL 15 0 0
+ monster(.@map$, 78, 81, _("Bakonawa"), BAKONAWA_1, 1, instance_npcname("#Bakonawan1")+"::OnMyMobDead"); //original: (78, 83)
+ initnpctimer();
end;
OnFail:
- killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan1")+"::OnMyMobDead";
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan1")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@ma_b");
- if (mobcount(.@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead") < 1) {
- donpcevent instance_npcname("#BakonawaDeadn1")+"::OnStart";
- killmonster .@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan1");
+ if (mobcount(.@map$, instance_npcname("#Bakonawan1")+"::OnMyMobDead") < 1) {
+ donpcevent(instance_npcname("#BakonawaDeadn1")+"::OnStart");
+ killmonster(.@map$, instance_npcname("#Bakonawan1")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan1"));
}
end;
-OnTimer1000: callsub OnAnnounce,"10 minutes";
-OnTimer60000: callsub OnAnnounce,"9 minutes";
-OnTimer120000: callsub OnAnnounce,"8 minutes";
-OnTimer180000: callsub OnAnnounce,"7 minutes";
-OnTimer240000: callsub OnAnnounce,"6 minutes";
-OnTimer300000: callsub OnAnnounce,"5 minutes";
-OnTimer360000: callsub OnAnnounce,"4 minutes";
-OnTimer420000: callsub OnAnnounce,"3 minutes";
-OnTimer480000: callsub OnAnnounce,"2 minutes";
-OnTimer540000: callsub OnAnnounce,"1 minute";
+OnTimer1000:
+ callsub(OnAnnounce, _("10 minutes"));
+OnTimer60000:
+ callsub(OnAnnounce, _("9 minutes"));
+OnTimer120000:
+ callsub(OnAnnounce, _("8 minutes"));
+OnTimer180000:
+ callsub(OnAnnounce, _("7 minutes"));
+OnTimer240000:
+ callsub(OnAnnounce, _("6 minutes"));
+OnTimer300000:
+ callsub(OnAnnounce, _("5 minutes"));
+OnTimer360000:
+ callsub(OnAnnounce, _("4 minutes"));
+OnTimer420000:
+ callsub(OnAnnounce, _("3 minutes"));
+OnTimer480000:
+ callsub(OnAnnounce, _("2 minutes"));
+OnTimer540000:
+ callsub(OnAnnounce, _("1 minute"));
OnTimer570000:
- mapannounce instance_mapname("1@ma_b"),"Time Limit: 30 seconds",bc_map,"0xff4400"; //FW_NORMAL 18 0 0
- donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ mapannounce(instance_mapname("1@ma_b"), _("Time Limit: 30 seconds"), bc_map, "0xff4400"); //FW_NORMAL 18 0 0
+ donpcevent(instance_npcname("#SummonPuppetsn1")+"::OnStart");
end;
OnTimer600000:
.@map$ = instance_mapname("1@ma_b");
- mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
- donpcevent instance_npcname("Taho#Fail")+"::OnStart";
- donpcevent instance_npcname("#Bakonawan1")+"::OnFail";
- killmonster .@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan1");
+ mapannounce(.@map$, _("Bakonawa has escaped deep into the lake."), bc_map, C_YELLOW); //FW_NORMAL 20 0 0
+ donpcevent(instance_npcname("Taho#Fail")+"::OnStart");
+ donpcevent(instance_npcname("#Bakonawan1")+"::OnFail");
+ killmonster(.@map$, instance_npcname("#Bakonawan1")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan1"));
end;
OnAnnounce:
- mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL 15 0 0
- donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ mapannounce(instance_mapname("1@ma_b"), sprintf(_$("Time Limit: %s"), getarg(0)), bc_map, "0xff4400"); //FW_NORMAL 15 0 0
+ donpcevent(instance_npcname("#SummonPuppetsn1")+"::OnStart");
end;
}
1@ma_b,78,81,0 script #SummonPuppetsn1 HIDDEN_WARP_NPC,4,5,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#SummonPuppetsn1");
+ disablenpc(instance_npcname("#SummonPuppetsn1"));
end;
OnStart:
- stopnpctimer;
- enablenpc instance_npcname("#SummonPuppetsn1");
- initnpctimer;
+ stopnpctimer();
+ enablenpc(instance_npcname("#SummonPuppetsn1"));
+ initnpctimer();
end;
OnTouch:
- stopnpctimer;
- disablenpc instance_npcname("#SummonPuppetsn1");
+ stopnpctimer();
+ disablenpc(instance_npcname("#SummonPuppetsn1"));
end;
OnTimer5000:
- setarray .@x[0],79,71,60,61,57,89,95,96,99;
- setarray .@y[0],71,72,80,90,99,73,82,90,99;
+ setarray(.@x[0], 79, 71, 60, 61, 57, 89, 95, 96, 99);
+ setarray(.@y[0], 71, 72, 80, 90, 99, 73, 82, 90, 99);
.@map$ = instance_mapname("1@ma_b");
- for(.@i = 0; .@i<9; ++.@i) {
- .@rand = rand(1,10);
+ for (.@i = 0; .@i < 9; ++.@i) {
+ .@rand = rand(1, 10);
if (.@rand > 7)
- monster .@map$,.@x[.@i],.@y[.@i],"Bakonawa's Will",2337,1,instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead";
+ monster(.@map$, .@x[.@i], .@y[.@i], _("Bakonawa's Will"), HIDDEN_MOB, 1, instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead");
else if (.@rand < 4)
- monster .@map$,.@x[.@i],.@y[.@i],"Bakonawa's Will",2343,1,instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead";
+ monster(.@map$, .@x[.@i], .@y[.@i], _("Bakonawa's Will"), HIDDEN_MOB_W, 1, instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead");
}
end;
OnTimer50000:
- killmonster instance_mapname("1@ma_b"),instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#SummonPuppetsn1");
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#SummonPuppetsn1"));
end;
OnMyMobDead:
end;
@@ -259,111 +270,126 @@ OnMyMobDead:
1@ma_b,1,5,4 script #BakonawaDeadn1 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#BakonawaDeadn1");
+ disablenpc(instance_npcname("#BakonawaDeadn1"));
end;
OnStart:
- enablenpc instance_npcname("#BakonawaDeadn1");
- initnpctimer;
+ enablenpc(instance_npcname("#BakonawaDeadn1"));
+ initnpctimer();
end;
OnTimer100:
- mapannounce instance_mapname("1@ma_b"),"Taho: Good! Bakonawa is hidden under water. He will now try to swallow the moon.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: Good! Bakonawa is hidden under water. He will now try to swallow the moon."), bc_map, C_AQUA); //FW_NORMAL 15 0 0
end;
OnTimer5000:
- mapannounce instance_mapname("1@ma_b"),"Taho: We must make loud noises with caldron and gong so he can never concentrate on the moon!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: We must make loud noises with caldron and gong so he can never concentrate on the moon!"), bc_map, C_AQUA); //FW_NORMAL 15 0 0
end;
OnTimer10000:
- mapannounce instance_mapname("1@ma_b"),"Taho: Do not engage on him even if he come above the surface. Just make loud noises!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: Do not engage on him even if he come above the surface. Just make loud noises!"), bc_map, C_AQUA); //FW_NORMAL 15 0 0
end;
OnTimer15000:
- mapannounce instance_mapname("1@ma_b"),"Mission - Destroy 2 caldrons and 2 gongs on left and right sides of the lake.",bc_map,"0xff3300"; //FW_NORMAL 15 0 0
- donpcevent instance_npcname("#Bakonawan2")+"::OnStart";
- stopnpctimer;
- disablenpc instance_npcname("#BakonawaDeadn1");
+ mapannounce(instance_mapname("1@ma_b"), _("Mission - Destroy 2 caldrons and 2 gongs on left and right sides of the lake."), bc_map, "0xff3300"); //FW_NORMAL 15 0 0
+ donpcevent(instance_npcname("#Bakonawan2")+"::OnStart");
+ stopnpctimer();
+ disablenpc(instance_npcname("#BakonawaDeadn1"));
end;
}
1@ma_b,36,111,4 script #Bakonawan2 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Bakonawan2");
+ disablenpc(instance_npcname("#Bakonawan2"));
end;
OnStart:
- enablenpc instance_npcname("#Bakonawan2");
+ enablenpc(instance_npcname("#Bakonawan2"));
.@label$ = instance_npcname("#Bakonawan2")+"::OnMyMobDead";
.@map$ = instance_mapname("1@ma_b");
- monster .@map$,95,98,"Caldron",2328,1,.@label$;
- monster .@map$,60,98,"Caldron",2328,1,.@label$;
- monster .@map$,97,104,"Gong",2328,1,.@label$;
- monster .@map$,58,104,"Gong",2328,1,.@label$;
- donpcevent instance_npcname("#Bakonawan2-1")+"::OnStart";
- initnpctimer;
+ monster(.@map$, 95, 98, _("Caldron"), MA_DRUM, 1, .@label$);
+ monster(.@map$, 60, 98, _("Caldron"), MA_DRUM, 1, .@label$);
+ monster(.@map$, 97, 104, _("Gong"), MA_DRUM, 1, .@label$);
+ monster(.@map$, 58, 104, _("Gong"), MA_DRUM, 1, .@label$);
+ donpcevent(instance_npcname("#Bakonawan2-1")+"::OnStart");
+ initnpctimer();
end;
OnMyMobDead:
.@map$ = instance_mapname("1@ma_b");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#Bakonawan2")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#Bakonawan2")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- donpcevent instance_npcname("#Bakonawan2-1")+"::OnEnd";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan2");
- } else
- mapannounce .@map$,"Taho: Good! "+.@mob_dead_num+" left to go!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
- end;
-OnTimer1000: callsub OnAnnounce,"5 minutes",15,1;
-OnTimer60000: callsub OnAnnounce,"4 minutes",15,1;
-OnTimer120000: callsub OnAnnounce,"3 minutes",15,1;
-OnTimer180000: callsub OnAnnounce,"2 minutes",15,1;
-OnTimer240000: callsub OnAnnounce,"1 minute",15,1;
-OnTimer270000: callsub OnAnnounce,"30 seconds",15,0;
-OnTimer280000: callsub OnAnnounce,"20 seconds",15,0;
-OnTimer290000: callsub OnAnnounce,"10 seconds",15,0;
-OnTimer295000: callsub OnAnnounce,"5 seconds",16,0;
-OnTimer296000: callsub OnAnnounce,"4 seconds",17,0;
-OnTimer297000: callsub OnAnnounce,"3 seconds",18,0;
-OnTimer298000: callsub OnAnnounce,"2 seconds",19,0;
-OnTimer299000: callsub OnAnnounce,"1 second",20,0;
+ donpcevent(instance_npcname("#Bakonawan2-1")+"::OnEnd");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan2"));
+ } else {
+ mapannounce(.@map$, sprintf(_$("Taho: Good! %d left to go!"), .@mob_dead_num), bc_map, C_AQUA); //FW_NORMAL 15 0 0
+ }
+ end;
+OnTimer1000:
+ callsub(OnAnnounce, _("5 minutes"), 15, 1);
+OnTimer60000:
+ callsub(OnAnnounce, _("4 minutes"), 15, 1);
+OnTimer120000:
+ callsub(OnAnnounce, _("3 minutes"), 15, 1);
+OnTimer180000:
+ callsub(OnAnnounce, _("2 minutes"), 15, 1);
+OnTimer240000:
+ callsub(OnAnnounce, _("1 minute"), 15, 1);
+OnTimer270000:
+ callsub(OnAnnounce, _("30 seconds"), 15, 0);
+OnTimer280000:
+ callsub(OnAnnounce, _("20 seconds"), 15, 0);
+OnTimer290000:
+ callsub(OnAnnounce, _("10 seconds"), 15, 0);
+OnTimer295000:
+ callsub(OnAnnounce, _("5 seconds"), 16, 0);
+OnTimer296000:
+ callsub(OnAnnounce, _("4 seconds"), 17, 0);
+OnTimer297000:
+ callsub(OnAnnounce, _("3 seconds"), 18, 0);
+OnTimer298000:
+ callsub(OnAnnounce, _("2 seconds"), 19, 0);
+OnTimer299000:
+ callsub(OnAnnounce, _("1 second"), 20, 0);
OnTimer300000:
.@map$ = instance_mapname("1@ma_b");
- mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
- donpcevent instance_npcname("Taho#Fail")+"::OnStart";
- donpcevent instance_npcname("#Bakonawan2-1")+"::OnFail";
- killmonster .@map$,instance_npcname("#Bakonawan2")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan2");
+ mapannounce(.@map$, _("Bakonawa has escaped deep into the lake."), bc_map, C_YELLOW); //FW_NORMAL 20 0 0
+ donpcevent(instance_npcname("Taho#Fail")+"::OnStart");
+ donpcevent(instance_npcname("#Bakonawan2-1")+"::OnFail");
+ killmonster(.@map$, instance_npcname("#Bakonawan2")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan2"));
end;
OnAnnounce:
- mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL getarg(1) 0 0
- if (getarg(2)) donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ mapannounce(instance_mapname("1@ma_b"), sprintf(_$("Time Limit: %s"), getarg(0)), bc_map, "0xff4400"); //FW_NORMAL getarg(1) 0 0
+ if (getarg(2))
+ donpcevent(instance_npcname("#SummonPuppetsn1")+"::OnStart");
end;
}
1@ma_b,36,111,4 script #Bakonawan2-1 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Bakonawan2-1");
+ disablenpc(instance_npcname("#Bakonawan2-1"));
end;
OnStart:
- enablenpc instance_npcname("#Bakonawan2-1");
- monster instance_mapname("1@ma_b"),78,81,"Enraged Bakonawa",2321,1,instance_npcname("#Bakonawan2-1")+"::OnMyMobDead"; //original: (78,93)
+ enablenpc(instance_npcname("#Bakonawan2-1"));
+ monster(instance_mapname("1@ma_b"), 78, 81, _("Enraged Bakonawa"), BAKONAWA_2, 1, instance_npcname("#Bakonawan2-1")+"::OnMyMobDead"); //original: (78, 93)
end;
OnFail:
- killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan2-1")+"::OnMyMobDead";
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan2-1")+"::OnMyMobDead");
end;
OnEnd:
- enablenpc instance_npcname("#Bakonawan2-1");
- killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan2-1")+"::OnMyMobDead";
- initnpctimer;
+ enablenpc(instance_npcname("#Bakonawan2-1"));
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan2-1")+"::OnMyMobDead");
+ initnpctimer();
end;
OnTimer1000:
- mapannounce instance_mapname("1@ma_b"),"Taho: He is back into the lake again. Is it over?",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: He is back into the lake again. Is it over?"), bc_map, C_AQUA); //FW_NORMAL 15 0 0
end;
OnTimer5000:
- mapannounce instance_mapname("1@ma_b"),"Taho: UHM! Something is moving up rapidly under the water! Ba... Bakonawa is coming!!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: UHM! Something is moving up rapidly under the water! Ba... Bakonawa is coming!!"), bc_map, C_AQUA); //FW_NORMAL 15 0 0
end;
OnTimer10000:
- mapannounce instance_mapname("1@ma_b"),"Mission - Eliminate Bakonawa who became more fierce.",bc_map,"0xff3300"; //FW_NORMAL 15 0 0
- donpcevent instance_npcname("#Bakonawan3")+"::OnStart";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan2-1");
+ mapannounce(instance_mapname("1@ma_b"), _("Mission - Eliminate Bakonawa who became more fierce."), bc_map, "0xff3300"); //FW_NORMAL 15 0 0
+ donpcevent(instance_npcname("#Bakonawan3")+"::OnStart");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan2-1"));
end;
OnMyMobDead:
end;
@@ -372,190 +398,212 @@ OnMyMobDead:
1@ma_b,36,111,4 script #Bakonawan3 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Bakonawan3");
+ disablenpc(instance_npcname("#Bakonawan3"));
end;
OnStart:
- enablenpc instance_npcname("#Bakonawan3");
- initnpctimer;
- monster instance_mapname("1@ma_b"),78,81,"Enraged Bakonawa",2322,1,instance_npcname("#Bakonawan3")+"::OnMyMobDead"; //original: (78,83)
- donpcevent instance_npcname("#Bakonawan3-1")+"::OnStart";
+ enablenpc(instance_npcname("#Bakonawan3"));
+ initnpctimer();
+ monster(instance_mapname("1@ma_b"), 78, 81, _("Enraged Bakonawa"), BAKONAWA_3, 1, instance_npcname("#Bakonawan3")+"::OnMyMobDead"); //original: (78, 83)
+ donpcevent(instance_npcname("#Bakonawan3-1")+"::OnStart");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@ma_b");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#Bakonawan3")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- mapannounce .@map$,"Taho: We got him! I can see he has threw up something that looks like a box.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
- donpcevent instance_npcname("Taho#Completed")+"::OnStart";
- donpcevent instance_npcname("#Bakonawan3-1")+"::OnEnd";
- killmonster .@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan3");
+ mapannounce(.@map$, _("Taho: We got him! I can see he has threw up something that looks like a box."), bc_map, C_AQUA); //FW_NORMAL 15 0 0
+ donpcevent(instance_npcname("Taho#Completed")+"::OnStart");
+ donpcevent(instance_npcname("#Bakonawan3-1")+"::OnEnd");
+ killmonster(.@map$, instance_npcname("#Bakonawan3")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan3"));
}
end;
OnTimer1000:
- callsub OnAnnounce,"10 minutes",15,1;
+ callsub(OnAnnounce, _("10 minutes"), 15, 1);
end;
OnTimer60000:
OnTimer120000:
OnTimer180000:
OnTimer240000:
- donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
- end;
-OnTimer300000: callsub OnAnnounce,"5 minutes",15,1;
-OnTimer360000: callsub OnAnnounce,"4 minutes",15,1;
-OnTimer420000: callsub OnAnnounce,"3 minutes",15,1;
-OnTimer480000: callsub OnAnnounce,"2 minutes",15,1;
-OnTimer540000: callsub OnAnnounce,"1 minute",15,1;
-OnTimer570000: callsub OnAnnounce,"30 seconds",15,0;
-OnTimer580000: callsub OnAnnounce,"20 seconds",15,0;
-OnTimer590000: callsub OnAnnounce,"10 seconds",15,0;
-OnTimer595000: callsub OnAnnounce,"5 seconds",16,0;
-OnTimer596000: callsub OnAnnounce,"4 seconds",17,0;
-OnTimer597000: callsub OnAnnounce,"3 seconds",18,0;
-OnTimer598000: callsub OnAnnounce,"2 seconds",19,0;
-OnTimer599000: callsub OnAnnounce,"1 second",20,0;
+ donpcevent(instance_npcname("#SummonPuppetsn1")+"::OnStart");
+ end;
+OnTimer300000:
+ callsub(OnAnnounce, _("5 minutes"), 15, 1);
+OnTimer360000:
+ callsub(OnAnnounce, _("4 minutes"), 15, 1);
+OnTimer420000:
+ callsub(OnAnnounce, _("3 minutes"), 15, 1);
+OnTimer480000:
+ callsub(OnAnnounce, _("2 minutes"), 15, 1);
+OnTimer540000:
+ callsub(OnAnnounce, _("1 minute"), 15, 1);
+OnTimer570000:
+ callsub(OnAnnounce, _("30 seconds"), 15, 0);
+OnTimer580000:
+ callsub(OnAnnounce, _("20 seconds"), 15, 0);
+OnTimer590000:
+ callsub(OnAnnounce, _("10 seconds"), 15, 0);
+OnTimer595000:
+ callsub(OnAnnounce, _("5 seconds"), 16, 0);
+OnTimer596000:
+ callsub(OnAnnounce, _("4 seconds"), 17, 0);
+OnTimer597000:
+ callsub(OnAnnounce, _("3 seconds"), 18, 0);
+OnTimer598000:
+ callsub(OnAnnounce, _("2 seconds"), 19, 0);
+OnTimer599000:
+ callsub(OnAnnounce, _("1 second"), 20, 0);
OnTimer600000:
.@map$ = instance_mapname("1@ma_b");
- mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
- donpcevent instance_npcname("Taho#Fail")+"::OnStart";
- killmonster .@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan3");
+ mapannounce(.@map$, _("Bakonawa has escaped deep into the lake."), bc_map, C_YELLOW); //FW_NORMAL 20 0 0
+ donpcevent(instance_npcname("Taho#Fail")+"::OnStart");
+ killmonster(.@map$, instance_npcname("#Bakonawan3")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan3"));
end;
OnAnnounce:
- mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL getarg(1) 0 0
- if (getarg(2)) donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ mapannounce(instance_mapname("1@ma_b"), sprintf(_$("Time Limit: %s"), getarg(0)), bc_map, "0xff4400"); //FW_NORMAL getarg(1) 0 0
+ if (getarg(2))
+ donpcevent(instance_npcname("#SummonPuppetsn1")+"::OnStart");
end;
}
1@ma_b,36,111,4 script #Bakonawan3-1 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Bakonawan3-1");
+ disablenpc(instance_npcname("#Bakonawan3-1"));
end;
OnStart:
- initnpctimer;
+ initnpctimer();
end;
OnEnd:
- killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead";
- //showdigit 0;
- stopnpctimer;
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan3-1")+"::OnMyMobDead");
+ //showdigit(0);
+ stopnpctimer();
end;
OnMyMobDead:
- showdigit mobcount(instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead");
- end;
-OnTimer120000: callsub OnMobSpawn,10;
-OnTimer180000: callsub OnMobSpawn,15;
-OnTimer240000: callsub OnMobSpawn,20;
-//OnTimer300000: callsub OnMobSpawn,25;
-OnTimer300000: callsub OnMobSpawn,30;
-OnTimer360000: callsub OnMobSpawn,35;
-OnTimer420000: callsub OnMobSpawn,40;
-OnTimer480000: callsub OnMobSpawn,45;
-OnTimer540000: callsub OnMobSpawn,50;
+ showdigit(mobcount(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan3-1")+"::OnMyMobDead"));
+ end;
+OnTimer120000:
+ callsub(OnMobSpawn, 10);
+OnTimer180000:
+ callsub(OnMobSpawn, 15);
+OnTimer240000:
+ callsub(OnMobSpawn, 20);
+//OnTimer300000:
+// callsub(OnMobSpawn, 25);
+OnTimer300000:
+ callsub(OnMobSpawn, 30);
+OnTimer360000:
+ callsub(OnMobSpawn, 35);
+OnTimer420000:
+ callsub(OnMobSpawn, 40);
+OnTimer480000:
+ callsub(OnMobSpawn, 45);
+OnTimer540000:
+ callsub(OnMobSpawn, 50);
OnTimer600000:
- killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead";
- stopnpctimer;
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan3-1")+"::OnMyMobDead");
+ stopnpctimer();
end;
OnMobSpawn:
.@label$ = instance_npcname("#Bakonawan3-1")+"::OnMyMobDead";
.@map$ = instance_mapname("1@ma_b");
- killmonster .@map$,.@label$;
- .@mob_dead_num = mobcount(.@map$,.@label$);
+ killmonster(.@map$, .@label$);
+ .@mob_dead_num = mobcount(.@map$, .@label$);
if (.@mob_dead_num < 50) {
.@mob_rg = 50 - .@mob_dead_num;
if (.@mob_rg > getarg(0))
.@mob_rg = getarg(0);
- while(1) {
- areamonster .@map$,74,74,82,74,"Bakonawa's Puppet",2334,1,.@label$;
- .@mob_dead_num = mobcount(.@map$,.@label$);
- if (.@mob_dead_num >= .@mob_rg) {
+ while (true) {
+ areamonster(.@map$, 74, 74, 82, 74, _("Bakonawa's Puppet"), G_WAKWAK, 1, .@label$);
+ .@mob_dead_num = mobcount(.@map$, .@label$);
+ if (.@mob_dead_num >= .@mob_rg)
break;
- }
}
}
end;
}
1@ma_b,62,52,4 script Taho#Completed 4_M_DEWZATIMAN,{
- disable_items;
- if (checkweight(Knife,1) == 0) {
- mes "It seems you are carrying too many different kinds of items. Please try again after reducing it.";
- close;
+ disable_items();
+ if (checkweight(Knife, 1) == 0) {
+ mes("It seems you are carrying too many different kinds of items. Please try again after reducing it.");
+ close();
}
if (MaxWeight - Weight < 10000) {
- mes "It seems you are already carrying items of too much weight. Please try again after reducing the weight.";
- close;
- }
- if (questprogress(12279,HUNTING) == 2) {
- erasequest 12279;
- mes "[Taho]";
- mes "This was found from Bakonawa's corpse. It would be better if you take this.";
+ mes("It seems you are already carrying items of too much weight. Please try again after reducing the weight.");
+ close();
+ }
+ if (questprogress(12279, HUNTING) == 2) {
+ erasequest(12279);
+ mes("[Taho]");
+ mes("This was found from Bakonawa's corpse. It would be better if you take this.");
// if (IsPremiumPcCafe == 10)
- getitem Ancient_Grudge,7;
+ getitem(Ancient_Grudge, 7);
// else
-// getitem Ancient_Grudge,5;
- getexp 0,100000;
- next;
+// getitem(Ancient_Grudge, 5);
+ getexp(0, 100000);
+ next();
}
- mes "[Taho]";
- mes "We better hurry and get out of this place. This place is still dangerous even without Bakonawa...";
- next;
- mes "[Taho]";
- mes "Then let's use to the rope to go up!";
- close2;
- warp "ma_scene01",175,176;
+ mes("[Taho]");
+ mes("We better hurry and get out of this place. This place is still dangerous even without Bakonawa...");
+ next();
+ mes("[Taho]");
+ mes("Then let's use to the rope to go up!");
+ close2();
+ warp("ma_scene01", 175, 176);
end;
OnInstanceInit:
- disablenpc instance_npcname("Taho#Completed");
+ disablenpc(instance_npcname("Taho#Completed"));
end;
OnStart:
- enablenpc instance_npcname("Taho#Completed");
- initnpctimer;
+ enablenpc(instance_npcname("Taho#Completed"));
+ initnpctimer();
end;
OnTimer1000:
- monster instance_mapname("1@ma_b"),78,74,"Bakonawa Treasure Box",2335,1;
+ monster(instance_mapname("1@ma_b"), 78, 74, _("Bakonawa Treasure Box"), MA_TREASURE, 1);
end;
OnTimer10000:
- mapannounce instance_mapname("1@ma_b"),"Taho: After opening the treasure box, please visit me at the top of the hill. I've got something to give to you.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
- stopnpctimer;
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: After opening the treasure box, please visit me at the top of the hill. I've got something to give to you."), bc_map, C_AQUA); //FW_NORMAL 15 0 0
+ stopnpctimer();
end;
}
1@ma_b,62,52,4 script Taho#Fail 4_M_DEWZATIMAN,{
- mes "[Taho]";
- mes "HMM. We almost got him but he is one fast creature...";
- next;
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY),2)) {
- mes "[Taho]";
- mes "Are we going to try again?";
- next;
- switch(select("Hold on a sec!", "Of course! We cannot stand back now!")) {
+ mes("[Taho]");
+ mes("HMM. We almost got him but he is one fast creature...");
+ next();
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY), 2)) {
+ mes("[Taho]");
+ mes("Are we going to try again?");
+ next();
+ switch (select("Hold on a sec!", "Of course! We cannot stand back now!")) {
case 1:
- mes "[Taho]";
- mes "AWW... I almost brought him out.";
- close;
+ mes("[Taho]");
+ mes("AWW... I almost brought him out.");
+ close();
case 2:
- mes "[Taho]";
- mes "Then I will use Albopal once again to the lake.";
- next;
- mes "[Taho]";
- mes "We are about to see Bakonawa with intenser anger...";
- disablenpc instance_npcname("Taho#Fail");
- donpcevent instance_npcname("#Bakonawan1")+"::OnStart";
- close;
+ mes("[Taho]");
+ mes("Then I will use Albopal once again to the lake.");
+ next();
+ mes("[Taho]");
+ mes("We are about to see Bakonawa with intenser anger...");
+ disablenpc(instance_npcname("Taho#Fail"));
+ donpcevent(instance_npcname("#Bakonawan1")+"::OnStart");
+ close();
}
- close;
+ close();
} else {
- mes "[Taho]";
- mes "I am dropping Albopal like I did a while ago. I hope it pisses him off...";
- close;
+ mes("[Taho]");
+ mes("I am dropping Albopal like I did a while ago. I hope it pisses him off...");
+ close();
}
OnInstanceInit:
- disablenpc instance_npcname("Taho#Fail");
+ disablenpc(instance_npcname("Taho#Fail"));
end;
OnStart:
- enablenpc instance_npcname("Taho#Fail");
+ enablenpc(instance_npcname("Taho#Fail"));
end;
}
diff --git a/npc/re/instances/BuwayaCave.txt b/npc/re/instances/BuwayaCave.txt
index 094964867..393ac5d9e 100644
--- a/npc/re/instances/BuwayaCave.txt
+++ b/npc/re/instances/BuwayaCave.txt
@@ -35,95 +35,95 @@
ma_fild02,312,317,5 script Guard#buwaya_cave 4_MAL_SOLDIER,{
if (BaseLevel < 130) {
- mes "[Guard]";
- mes "People under ^ff0000level 130^000000";
- mes "cannot enter this place.";
- mes "This place is dangerous. Please go back.";
- close;
+ mes("[Guard]");
+ mes("People under ^ff0000level 130^000000");
+ mes("cannot enter this place.");
+ mes("This place is dangerous. Please go back.");
+ close();
}
.@party_id = getcharid(CHAR_ID_PARTY);
- .@md_name$ = "Buwaya Cave";
+ .@md_name$ = _("Buwaya Cave");
if (!.@party_id) {
- mes "[Guard]";
- mes "Buwaya is dangerous.";
- mes "Please come back after you form a";
- mes "team with other people.";
- close;
+ mes("[Guard]");
+ mes("Buwaya is dangerous.");
+ mes("Please come back after you form a");
+ mes("team with other people.");
+ close();
}
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2)) {
- mes "[Guard]";
- mes "This place is dangerous. Please go back.";
- mes "If you dont have any business here, please go back.";
- next;
- while(1) {
- switch(select("Why is it so dangerous?", "I'm here to hunt down Buwaya.", "End conversation.")) {
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
+ mes("[Guard]");
+ mes("This place is dangerous. Please go back.");
+ mes("If you dont have any business here, please go back.");
+ next();
+ while (true) {
+ switch (select("Why is it so dangerous?", "I'm here to hunt down Buwaya.", "End conversation.")) {
case 1:
- mes "[Guard]";
- mes "Recently, there has been a case";
- mes "where villagers have disappeared.";
- mes "After investigating the tracks, ";
- mes "we found out the giant monster Buwaya";
- mes "was responsible.";
- next;
- mes "[Guard]";
- mes "Soldiers and mercenaries have been dispatched to ";
- mes "hunt down Buwaya, but were never";
- mes "completely successful.";
- next;
- mes "[Guard]";
- mes "Buwaya is still kidnapping";
- mes "the villagers to this day.";
- mes "Please gather some people to get rid of Buwaya.";
- next;
+ mes("[Guard]");
+ mes("Recently, there has been a case");
+ mes("where villagers have disappeared.");
+ mes("After investigating the tracks, ");
+ mes("we found out the giant monster Buwaya");
+ mes("was responsible.");
+ next();
+ mes("[Guard]");
+ mes("Soldiers and mercenaries have been dispatched to ");
+ mes("hunt down Buwaya, but were never");
+ mes("completely successful.");
+ next();
+ mes("[Guard]");
+ mes("Buwaya is still kidnapping");
+ mes("the villagers to this day.");
+ mes("Please gather some people to get rid of Buwaya.");
+ next();
break;
case 2:
- .@playtime = questprogress(4229,PLAYTIME);
+ .@playtime = questprogress(4229, PLAYTIME);
if (!.@playtime) {
// fall through
} else if (.@playtime == 1) {
- mes "[Guard]";
- mes "Buwaya is still hiding.";
- mes "Even if you enter now, Buwaya will not come out. ";
- mes "Please come back later.";
- close;
+ mes("[Guard]");
+ mes("Buwaya is still hiding.");
+ mes("Even if you enter now, Buwaya will not come out. ");
+ mes("Please come back later.");
+ close();
} else {
- erasequest 4229;
+ erasequest(4229);
// fall through
}
- .@instance = instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
- mes "[Guard]";
- mes "Party name is... "+getpartyname(.@party_id)+".";;
- mes "Party leader is... "+strcharinfo(PC_NAME);
- mes "^0000ff"+.@md_name$+"^000000 cannot be opened now.";
- mes "Please try a moment later.";
- close;
+ mes("[Guard]");
+ mesf("Party name is... %s.", getpartyname(.@party_id));
+ mesf("Party leader is... %s", strcharinfo(PC_NAME));
+ mesf("^0000ff%s^000000 cannot be opened now.", .@md_name$);
+ mes("Please try a moment later.");
+ close();
}
- if (instance_attachmap("1@ma_c",.@instance) == "") {
- mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ if (instance_attachmap("1@ma_c", .@instance) == "") {
+ mesf("^0000ff%s^000000 - Reservation Failed!", .@md_name$);
instance_destroy(.@instance);
- close;
+ close();
}
- instance_set_timeout 3600,300,.@instance;
+ instance_set_timeout(3600, 300, .@instance);
instance_init(.@instance);
- mes "[Guard]";
- mes "I will open up the tunnel to ^0000ff"+.@md_name$+"^000000.";
- mes "I wish you good luck.";
- close;
+ mes("[Guard]");
+ mesf("I will open up the tunnel to ^0000ff%s^000000.", .@md_name$);
+ mes("I wish you good luck.");
+ close();
case 3:
- mes "[Guard]";
- mes "This place is dangerous. You cannot enter.";
- close;
+ mes("[Guard]");
+ mes("This place is dangerous. You cannot enter.");
+ close();
}
}
} else {
- mes "[Guard]";
- mes "Let me talk with the party leader.";
- mes "Please call forth the leader.";
- close;
+ mes("[Guard]");
+ mes("Let me talk with the party leader.");
+ mes("Please call forth the leader.");
+ close();
}
}
@@ -131,214 +131,214 @@ ma_fild02,315,323,0 script Cave Entrance#buwaya WARPNPC,2,2,{
end;
OnTouch:
if (BaseLevel < 130) {
- mes "[Guard]";
- mes "People under ^ff0000level 130^000000";
- mes "cannot enter this place.";
- mes "This place is dangerous. Please go back.";
- close;
+ mes("[Guard]");
+ mes("People under ^ff0000level 130^000000");
+ mes("cannot enter this place.");
+ mes("This place is dangerous. Please go back.");
+ close();
}
- .@playtime = questprogress(4229,PLAYTIME);
+ .@playtime = questprogress(4229, PLAYTIME);
if (!.@playtime) {
// fall through
} else if (.@playtime == 1) {
- mes "[Guard]";
- mes "Buwaya is still hiding.";
- mes "Even if you enter now, Buwaya will not come out.";
- mes "Please come back later.";
- close;
+ mes("[Guard]");
+ mes("Buwaya is still hiding.");
+ mes("Even if you enter now, Buwaya will not come out.");
+ mes("Please come back later.");
+ close();
} else {
- erasequest 4229;
+ erasequest(4229);
// fall through
}
- switch(select("Enter.", "Turn back.")) {
+ switch (select("Enter.", "Turn back.")) {
case 1:
- if( has_instance("1@ma_c") == "" ) {
- mes "The memorial dungeon Buwaya Cave does not exist.";
- mes "The party leader did not generate the dungeon yet.";
- close;
+ if (has_instance("1@ma_c") == "") {
+ mes("The memorial dungeon Buwaya Cave does not exist.");
+ mes("The party leader did not generate the dungeon yet.");
+ close();
} else {
- mapannounce "ma_fild02",getpartyname(getcharid(CHAR_ID_PARTY))+" party's "+strcharinfo(PC_NAME)+" member began hunting Buwaya in Buwaya Cave.",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
- setquest 4229;
- warp "1@ma_c",35,57;
+ mapannounce("ma_fild02", sprintf(_$("%s party's %s member began hunting Buwaya in Buwaya Cave."), getpartyname(getcharid(CHAR_ID_PARTY)), strcharinfo(PC_NAME)), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
+ setquest(4229);
+ warp("1@ma_c", 35, 57);
end;
}
case 2:
- mes "[Guard]";
- mes "You must value your life.";
- mes "It is better to think carefully before you act.";
- close;
+ mes("[Guard]");
+ mes("You must value your life.");
+ mes("It is better to think carefully before you act.");
+ close();
}
}
1@ma_c,33,112,0 script #damage HIDDEN_WARP_NPC,7,7,{
end;
OnInstanceInit:
- initnpctimer;
- disablenpc instance_npcname("#damage");
+ initnpctimer();
+ disablenpc(instance_npcname("#damage"));
end;
OnTimer1000:
- enablenpc instance_npcname("#damage");
- specialeffect EF_POISONHIT;
+ enablenpc(instance_npcname("#damage"));
+ specialeffect(EF_POISONHIT);
end;
OnTimer2000:
- stopnpctimer;
- initnpctimer;
- disablenpc instance_npcname("#damage");
+ stopnpctimer();
+ initnpctimer();
+ disablenpc(instance_npcname("#damage"));
end;
OnTouch:
- percentheal -10,-10;
- sc_start SC_BLOODING,60000,0;
- sc_start SC_POISON,60000,0;
+ percentheal(-10, -10);
+ sc_start(SC_BLOODING, 60000, 0);
+ sc_start(SC_POISON, 60000, 0);
end;
}
1@ma_c,29,110,5 script Kidnapped People#1 4_F_BARYO_OLD,{
- mes "[Kidnapped Residents]";
- mes "Buwaya was running around,";
- mes "and new people got caught.";
- mes "We will be stuck in here for the rest of our lives.";
- next;
- switch(select("Get me outta here!!", "Ca...can't escape?")) {
+ mes("[Kidnapped Residents]");
+ mes("Buwaya was running around,");
+ mes("and new people got caught.");
+ mes("We will be stuck in here for the rest of our lives.");
+ next();
+ switch (select("Get me outta here!!", "Ca...can't escape?")) {
case 1:
- mes "[Kidnapped Residents]";
- mes "We don't have enough power to destroy it but Buwaya has a weakness.";
- mes "Look at the wall over there.";
- mes "If you knock there, Buywaya will feel pain and spit you out.";
- donpcevent instance_npcname("#box_mob_call")+"::OnEnable";
- close2;
- disablenpc instance_npcname("Kidnapped People#1");
+ mes("[Kidnapped Residents]");
+ mes("We don't have enough power to destroy it but Buwaya has a weakness.");
+ mes("Look at the wall over there.");
+ mes("If you knock there, Buywaya will feel pain and spit you out.");
+ donpcevent(instance_npcname("#box_mob_call")+"::OnEnable");
+ close2();
+ disablenpc(instance_npcname("Kidnapped People#1"));
end;
case 2:
- mes "[Kidnapped People]";
- mes "Somthing is wrong here...";
- mes "Have you experienced this before?";
- close;
+ mes("[Kidnapped People]");
+ mes("Somthing is wrong here...");
+ mes("Have you experienced this before?");
+ close();
}
end;
OnInstanceInit:
- disablenpc instance_npcname("Kidnapped People#1");
+ disablenpc(instance_npcname("Kidnapped People#1"));
end;
OnEnable:
- enablenpc instance_npcname("Kidnapped People#1");
- donpcevent instance_npcname("#box_mob_call")+"::OnDisable";
+ enablenpc(instance_npcname("Kidnapped People#1"));
+ donpcevent(instance_npcname("#box_mob_call")+"::OnDisable");
end;
}
1@ma_c,36,110,5 script Kidnapped People#2 4_M_BARYO_OLD,{
- mes "[Kidnapped Residents]";
- mes "Ahaa! I wish I had a little more power...";
- mes "I know its weakness...";
- next;
- switch(select("Tell me.", "Do you really know?")) {
+ mes("[Kidnapped Residents]");
+ mes("Ahaa! I wish I had a little more power...");
+ mes("I know its weakness...");
+ next();
+ switch (select("Tell me.", "Do you really know?")) {
case 1:
- mes "[Kidnapped Residents]";
- mes "Are you sure you can do it...?";
- mes "Ok, listen carefully,";
- mes "its weakness is...";
- next;
- mes "[Kidnapped Residents]";
- mes "...behind us on the walls.";
- sc_start SC_ATKPOTION,60000,45;
- sc_start SC_MATKPOTION,60000,45;
- disablenpc instance_npcname("Kidnapped People#2");
- close;
+ mes("[Kidnapped Residents]");
+ mes("Are you sure you can do it...?");
+ mes("Ok, listen carefully,");
+ mes("its weakness is...");
+ next();
+ mes("[Kidnapped Residents]");
+ mes("...behind us on the walls.");
+ sc_start(SC_ATKPOTION, 60000, 45);
+ sc_start(SC_MATKPOTION, 60000, 45);
+ disablenpc(instance_npcname("Kidnapped People#2"));
+ close();
case 2:
- mes "[Kidnapped Residents]";
- mes "WHAT?!";
- mes "Are you ignoring me";
- mes "because I'm captured in here?";
- close;
+ mes("[Kidnapped Residents]");
+ mes("WHAT?!");
+ mes("Are you ignoring me");
+ mes("because I'm captured in here?");
+ close();
}
end;
OnInstanceInit:
- disablenpc instance_npcname("Kidnapped People#2");
+ disablenpc(instance_npcname("Kidnapped People#2"));
end;
OnEnable:
- enablenpc instance_npcname("Kidnapped People#2");
+ enablenpc(instance_npcname("Kidnapped People#2"));
end;
}
1@ma_c,3,3,0 script #box_mob_call HIDDEN_WARP_NPC,1,1,{
end;
OnInstanceInit:
- setcell instance_mapname("1@ma_c"),30,118,35,118,cell_shootable,1; //custom
- disablenpc instance_npcname("#box_mob_call");
+ setcell(instance_mapname("1@ma_c"), 30, 118, 35, 118, cell_shootable, 1); //custom
+ disablenpc(instance_npcname("#box_mob_call"));
end;
OnEnable:
- enablenpc instance_npcname("#box_mob_call");
+ enablenpc(instance_npcname("#box_mob_call"));
.@label$ = instance_npcname("#box_mob_call")+"::OnMyMobDead";
.@map$ = instance_mapname("1@ma_c");
- monster .@map$,30,118,"Buwaya's Weakness",2333,1,.@label$;
- monster .@map$,35,118,"Buwaya's Weakness",2333,1,.@label$;
+ monster(.@map$, 30, 118, _("Buwaya's Weakness"), BUWAYA_WEAK, 1, .@label$);
+ monster(.@map$, 35, 118, _("Buwaya's Weakness"), BUWAYA_WEAK, 1, .@label$);
end;
OnDisable:
- killmonster instance_mapname("1@ma_c"),instance_npcname("#box_mob_call")+"::OnMyMobDead";
- disablenpc instance_npcname("#box_mob_call");
+ killmonster(instance_mapname("1@ma_c"), instance_npcname("#box_mob_call")+"::OnMyMobDead");
+ disablenpc(instance_npcname("#box_mob_call"));
end;
OnMyMobDead:
- if (mobcount(instance_mapname("1@ma_c"),instance_npcname("#box_mob_call")+"::OnMyMobDead") < 1)
- donpcevent instance_npcname("#box_out")+"::OnEnable";
+ if (mobcount(instance_mapname("1@ma_c"), instance_npcname("#box_mob_call")+"::OnMyMobDead") < 1)
+ donpcevent(instance_npcname("#box_out")+"::OnEnable");
end;
}
1@ma_c,38,118,0 script #box_out WARPNPC,2,2,{
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#box_out");
+ disablenpc(instance_npcname("#box_out"));
end;
OnEnable:
- enablenpc instance_npcname("#box_out");
+ enablenpc(instance_npcname("#box_out"));
end;
OnTouch:
- .@x = rand(1,20) + 97;
- .@y = rand(1,20) + 74;
- warp instance_mapname("1@ma_c"),.@x,.@y;
+ .@x = rand(1, 20) + 97;
+ .@y = rand(1, 20) + 74;
+ warp(instance_mapname("1@ma_c"), .@x, .@y);
end;
}
1@ma_c,97,74,0 script #box_call HIDDEN_WARP_NPC,50,50,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#box_call");
- initnpctimer;
+ disablenpc(instance_npcname("#box_call"));
+ initnpctimer();
end;
OnTimer30000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : I will put you in my treasure box!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : I will put you in my treasure box!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
// Should execute OnTimer33000, but client doesn't render the effect fast enough.
- for(.@i = 1; .@i<=9; ++.@i)
- donpcevent instance_npcname("#yunobi"+.@i)+"::OnEnable";
+ for(.@i = 1; .@i <= 9; ++.@i)
+ donpcevent(instance_npcname("#yunobi"+.@i)+"::OnEnable");
end;
OnTimer33000:
- donpcevent instance_npcname("#box_out")+"::OnDisable";
- donpcevent instance_npcname("#box_mob_call")+"::OnDisable";
- donpcevent instance_npcname("Kidnapped People#1")+"::OnEnable";
- donpcevent instance_npcname("Kidnapped People#2")+"::OnEnable";
+ donpcevent(instance_npcname("#box_out")+"::OnDisable");
+ donpcevent(instance_npcname("#box_mob_call")+"::OnDisable");
+ donpcevent(instance_npcname("Kidnapped People#1")+"::OnEnable");
+ donpcevent(instance_npcname("Kidnapped People#2")+"::OnEnable");
end;
OnTimer34000:
- enablenpc instance_npcname("#box_call");
+ enablenpc(instance_npcname("#box_call"));
end;
OnTimer35000:
- stopnpctimer;
- initnpctimer;
- disablenpc instance_npcname("#box_call");
+ stopnpctimer();
+ initnpctimer();
+ disablenpc(instance_npcname("#box_call"));
end;
OnTouch:
specialeffect(EF_GUIDEDATTACK, AREA, playerattached());
- warp instance_mapname("1@ma_c"),33,112;
+ warp(instance_mapname("1@ma_c"), 33, 112);
end;
OnDisable:
- stopnpctimer;
- disablenpc instance_npcname("#box_call");
+ stopnpctimer();
+ disablenpc(instance_npcname("#box_call"));
end;
}
1@ma_c,97,74,0 script #yunobi1 HIDDEN_WARP_NPC,{
end;
OnInstanceInit:
- hideonnpc instance_npcname(strnpcinfo(NPC_NAME));
+ hideonnpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- specialeffect EF_MAPPILLAR2;
+ specialeffect(EF_MAPPILLAR2);
end;
}
1@ma_c,97,94,0 duplicate(#yunobi1) #yunobi2 HIDDEN_WARP_NPC
@@ -353,65 +353,65 @@ OnEnable:
1@ma_c,1,1,0 script #bunshin HIDDEN_WARP_NPC,{
end;
OnInstanceInit:
- initnpctimer;
+ initnpctimer();
end;
OnTimer58000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : I had enough with this, let's go till the end!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : I had enough with this, let's go till the end!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer61000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : This is!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : This is!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer62000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : This is...MY!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer63000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY...Deadly!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : This is...MY...Deadly!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer64000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY...Deadly... ATTACK!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : This is...MY...Deadly... ATTACK!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer65000:
.@label$ = instance_npcname("#bunshin")+"::OnMyMobDead";
.@map$ = instance_mapname("1@ma_c");
- areamonster .@map$,112,89,122,99,"Buwaya",2332,1,.@label$;
- areamonster .@map$,112,49,122,59,"Buwaya",2332,1,.@label$;
- areamonster .@map$,72,49,82,59,"Buwaya",2332,1,.@label$;
- areamonster .@map$,72,89,82,99,"Buwaya",2332,1,.@label$;
+ areamonster(.@map$, 112, 89, 122, 99, _("Buwaya"), BUWAYA_GHOST, 1, .@label$);
+ areamonster(.@map$, 112, 49, 122, 59, _("Buwaya"), BUWAYA_GHOST, 1, .@label$);
+ areamonster(.@map$, 72, 49, 82, 59, _("Buwaya"), BUWAYA_GHOST, 1, .@label$);
+ areamonster(.@map$, 72, 89, 82, 99, _("Buwaya"), BUWAYA_GHOST, 1, .@label$);
end;
OnTimer66000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : Are you scared?",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : Are you scared?"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer105000:
- killmonster instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead";
- stopnpctimer;
- initnpctimer;
+ killmonster(instance_mapname("1@ma_c"), instance_npcname("#bunshin")+"::OnMyMobDead");
+ stopnpctimer();
+ initnpctimer();
end;
OnMyMobDead:
- if (mobcount(instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead") < 1) {
- stopnpctimer;
- initnpctimer;
+ if (mobcount(instance_mapname("1@ma_c"), instance_npcname("#bunshin")+"::OnMyMobDead") < 1) {
+ stopnpctimer();
+ initnpctimer();
}
end;
OnDisable:
- stopnpctimer;
- killmonster instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead";
- disablenpc instance_npcname("#bunshin");
+ stopnpctimer();
+ killmonster(instance_mapname("1@ma_c"), instance_npcname("#bunshin")+"::OnMyMobDead");
+ disablenpc(instance_npcname("#bunshin"));
end;
}
1@ma_c,2,2,0 script #buwaya_con HIDDEN_WARP_NPC,{
end;
OnInstanceInit:
- areamonster instance_mapname("1@ma_c"),90,67,104,81,"Buwaya",2319,1,instance_npcname("#buwaya_con")+"::OnMyMobDead";
+ areamonster(instance_mapname("1@ma_c"), 90, 67, 104, 81, _("Buwaya"), BUWAYA, 1, instance_npcname("#buwaya_con")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@ma_c");
- if (mobcount(.@map$,instance_npcname("#buwaya_con")+"::OnMyMobDead") < 1) {
- donpcevent instance_npcname("#box_call")+"::OnDisable";
- donpcevent instance_npcname("#bunshin")+"::OnDisable";
- donpcevent instance_npcname("#exit_mob")+"::OnDisable";
- donpcevent instance_npcname("#cave_out")+"::OnEnable";
- mapannounce .@map$,"Guard : You did great work. Please hurry up and escape to the way you came in!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ if (mobcount(.@map$, instance_npcname("#buwaya_con")+"::OnMyMobDead") < 1) {
+ donpcevent(instance_npcname("#box_call")+"::OnDisable");
+ donpcevent(instance_npcname("#bunshin")+"::OnDisable");
+ donpcevent(instance_npcname("#exit_mob")+"::OnDisable");
+ donpcevent(instance_npcname("#cave_out")+"::OnEnable");
+ mapannounce(.@map$, _("Guard : You did great work. Please hurry up and escape to the way you came in!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
}
end;
}
@@ -419,24 +419,24 @@ OnMyMobDead:
1@ma_c,3,3,0 script #exit_mob HIDDEN_WARP_NPC,{
end;
OnInstanceInit:
- initnpctimer;
+ initnpctimer();
end;
OnTimer60000:
.@label$ = instance_npcname("#exit_mob")+"::OnMyMobDead";
.@map$ = instance_mapname("1@ma_c");
- if (mobcount(.@map$,.@label$) < 30)
+ if (mobcount(.@map$, .@label$) < 30)
.@amount = 10;
else
.@amount = 1;
- areamonster .@map$,43,58,47,60,"Water Plant",2331,.@amount,.@label$;
- areamonster .@map$,43,58,47,60,"Egg",2329,.@amount,.@label$;
- stopnpctimer;
- initnpctimer;
+ areamonster(.@map$, 43, 58, 47, 60, _("Water Plant"), MA_SEAW, .@amount, .@label$);
+ areamonster(.@map$, 43, 58, 47, 60, _("Egg"), BUWAYA_EGG, .@amount, .@label$);
+ stopnpctimer();
+ initnpctimer();
end;
OnDisable:
- stopnpctimer;
- killmonster instance_mapname("1@ma_c"),instance_npcname("#exit_mob")+"::OnMyMobDead";
- disablenpc instance_npcname("#exit_mob");
+ stopnpctimer();
+ killmonster(instance_mapname("1@ma_c"), instance_npcname("#exit_mob")+"::OnMyMobDead");
+ disablenpc(instance_npcname("#exit_mob"));
end;
OnMyMobDead:
end;
@@ -444,35 +444,35 @@ OnMyMobDead:
1@ma_c,28,57,0 script #cave_out WARPNPC,2,2,{
OnInstanceInit:
- disablenpc instance_npcname("#cave_out");
+ disablenpc(instance_npcname("#cave_out"));
end;
OnEnable:
- enablenpc instance_npcname("#cave_out");
+ enablenpc(instance_npcname("#cave_out"));
end;
OnTouch:
- mes "Would like to go out?";
- next;
- if(select("Yes!", "No, I will stay.") == 1)
- warp "ma_fild02",315,315;
- close;
+ mes("Would like to go out?");
+ next();
+ if (select("Yes!", "No, I will stay.") == 1)
+ warp("ma_fild02", 315, 315);
+ close();
}
1@ma_c,1,1,0 script #buwaya_spawn_mobs FAKE_NPC,{
OnInstanceInit:
.@map$ = instance_mapname("1@ma_c");
- areamonster .@map$,73,81,93,101,"Seaweed",2331,18;
- areamonster .@map$,110,97,116,103,"Seaweed",2331,8;
- areamonster .@map$,59,63,63,67,"Seaweed",2331,8;
- areamonster .@map$,73,55,77,59,"Seaweed",2331,4;
- areamonster .@map$,103,69,107,73,"Seaweed",2331,4;
- areamonster .@map$,108,45,122,63,"Seaweed",2331,15;
- areamonster .@map$,73,81,93,101,"Buwaya's Egg",2329,10;
- areamonster .@map$,110,97,116,103,"Buwaya's Egg",2329,8;
- areamonster .@map$,59,63,63,67,"Buwaya's Egg",2329,4;
- areamonster .@map$,73,55,77,59,"Buwaya's Egg",2329,3;
- areamonster .@map$,103,69,107,73,"Buwaya's Egg",2329,3;
- areamonster .@map$,108,45,122,63,"Buwaya's Egg",2329,15;
- monster .@map$,0,0,"Seaweed",2331,5;
- monster .@map$,0,0,"Buwaya's Slave",2330,5;
+ areamonster(.@map$, 73, 81, 93, 101, _("Seaweed"), MA_SEAW, 18);
+ areamonster(.@map$, 110, 97, 116, 103, _("Seaweed"), MA_SEAW, 8);
+ areamonster(.@map$, 59, 63, 63, 67, _("Seaweed"), MA_SEAW, 8);
+ areamonster(.@map$, 73, 55, 77, 59, _("Seaweed"), MA_SEAW, 4);
+ areamonster(.@map$, 103, 69, 107, 73, _("Seaweed"), MA_SEAW, 4);
+ areamonster(.@map$, 108, 45, 122, 63, _("Seaweed"), MA_SEAW, 15);
+ areamonster(.@map$, 73, 81, 93, 101, _("Buwaya's Egg"), BUWAYA_EGG, 10);
+ areamonster(.@map$, 110, 97, 116, 103, _("Buwaya's Egg"), BUWAYA_EGG, 8);
+ areamonster(.@map$, 59, 63, 63, 67, _("Buwaya's Egg"), BUWAYA_EGG, 4);
+ areamonster(.@map$, 73, 55, 77, 59, _("Buwaya's Egg"), BUWAYA_EGG, 3);
+ areamonster(.@map$, 103, 69, 107, 73, _("Buwaya's Egg"), BUWAYA_EGG, 3);
+ areamonster(.@map$, 108, 45, 122, 63, _("Buwaya's Egg"), BUWAYA_EGG, 15);
+ monster(.@map$, 0, 0, _("Seaweed"), MA_SEAW, 5);
+ monster(.@map$, 0, 0, _("Buwaya's Slave"), BUWAYA_SLAVE, 5);
end;
}
diff --git a/npc/re/instances/EclageInterior.txt b/npc/re/instances/EclageInterior.txt
index b8aff0a81..6b2808e05 100644
--- a/npc/re/instances/EclageInterior.txt
+++ b/npc/re/instances/EclageInterior.txt
@@ -34,133 +34,132 @@
ecl_hub01,132,12,3 script Chief of Staff#tl01::EclInstance 4_F_FAIRY,{
.@party_id = getcharid(CHAR_ID_PARTY);
- .@md_name$ = "Eclage Interior";
- if (!.@party_id){
- mes "-! Warning !-";
- mes "This current quest will be held at Memorial dungeon.";
- mes "Only the party leader will enter. Please create your party.";
- close;
+ .@md_name$ = _("Eclage Interior");
+ if (!.@party_id) {
+ mes("-! Warning !-");
+ mes("This current quest will be held at Memorial dungeon.");
+ mes("Only the party leader will enter. Please create your party.");
+ close();
}
-
- if (getpartyleader(.@party_id,2) != getcharid(CHAR_ID_CHAR)) {
- mes "-! Warning !-";
- mes "This current quest will be held at Memorial dungeon.";
- mes "Only the party leader will enter. Please create your party.";
- close;
+ if (getpartyleader(.@party_id, 2) != getcharid(CHAR_ID_CHAR)) {
+ mes("-! Warning !-");
+ mes("This current quest will be held at Memorial dungeon.");
+ mes("Only the party leader will enter. Please create your party.");
+ close();
}
if (ep14_2_mylord == 29) {
- mes "[Shenime]";
- mes "This place is set up with lighting for Orb.";
- mes "If you favor Mayor, you should be cautious here.";
- next;
+ mes("[Shenime]");
+ mes("This place is set up with lighting for Orb.");
+ mes("If you favor Mayor, you should be cautious here.");
+ next();
switch (select("Enter it.", "Forget it.")) {
- case 1:
- .@instance = instance_create(.@md_name$,.@party_id);
- if (.@instance < 0) {
- mes "[Shenime]";
- mes "There are some soldiers dispatched by Mayor not too long ago.";
- mes "I should sure hope that you aren't the disturbance they're looking for, right?";
- close;
- }
- if (instance_attachmap("1@ecl",.@instance) == "") {
- mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
- instance_destroy(.@instance);
- close;
- }
- ecl_interior_time = gettimetick(2)+20*60;
- instance_set_timeout 1200,1200,.@instance;
- instance_init(.@instance);
- mes "[Shenime]";
- mes "Given the tight internal security, you should prepare yourself.";
- mes "Wait here for a minute.";
- close;
- case 2:
- mes "[Shenime]";
- mes "It's not an easy task.";
- close;
+ case 1:
+ .@instance = instance_create(.@md_name$, .@party_id);
+ if (.@instance < 0) {
+ mes("[Shenime]");
+ mes("There are some soldiers dispatched by Mayor not too long ago.");
+ mes("I should sure hope that you aren't the disturbance they're looking for, right?");
+ close();
+ }
+ if (instance_attachmap("1@ecl", .@instance) == "") {
+ mesf("^0000ff%s^000000 - Reservation Failed!", .@md_name$);
+ instance_destroy(.@instance);
+ close();
+ }
+ ecl_interior_time = gettimetick(2) + 20 * 60;
+ instance_set_timeout(1200, 1200, .@instance);
+ instance_init(.@instance);
+ mes("[Shenime]");
+ mes("Given the tight internal security, you should prepare yourself.");
+ mes("Wait here for a minute.");
+ close();
+ case 2:
+ mes("[Shenime]");
+ mes("It's not an easy task.");
+ close();
}
}
- mes "[High-level Laphine's]";
- mes "Hmm? This room?";
- mes "Never mind. Don't worry about it.";
- close;
+ mes("[High-level Laphine's]");
+ mes("Hmm? This room?");
+ mes("Never mind. Don't worry about it.");
+ close();
}
ecl_hub01,130,15,0 script It is closed shut. CLEAR_NPC,{
if (ep14_2_mylord == 29) {
- mes "This door connects to the plaza's ceiling.";
- mes "It's also a place where the lighting is set up to make Orb seem more beautiful.";
- next;
+ mes("This door connects to the plaza's ceiling.");
+ mes("It's also a place where the lighting is set up to make Orb seem more beautiful.");
+ next();
switch (select("Enter it.", "Forget it.")) {
- case 1:
- .@party_id = getcharid(CHAR_ID_PARTY);
+ case 1:
+ .@party_id = getcharid(CHAR_ID_PARTY);
- if (has_instance("1@ecl") == "") {
- mes "It is closed shut.";
- close;
+ if (has_instance("1@ecl") == "") {
+ mes("It is closed shut.");
+ close();
+ }
+ if (.@party_id) {
+ .@md_name$ = _("Eclage Interior");
+ if (getpartyleader(.@party_id, 2) != getcharid(CHAR_ID_CHAR)) {
+ mes("-! Warning !-");
+ mes("This current quest will be held at Memorial dungeon.");
+ mes("Only the party leader will enter. Please create your party.");
+ close();
}
- if (.@party_id) {
- .@md_name$ = "Eclage Interior";
- if (getpartyleader(.@party_id,2) != getcharid(CHAR_ID_CHAR)){
- mes "-! Warning !-";
- mes "This current quest will be held at Memorial dungeon.";
- mes "Only the party leader will enter. Please create your party.";
- close;
- }
- if (gettimetick(2) >= ecl_interior_time){
- mes "[Shenime]";
- mes "Looks like the soldiers inside are really tense.";
- mes "It is pretty difficult to guide an outsider like you.";
- close;
- }
- close2;
- mapannounce "ecl_hub01",getpartyname(.@party_id) + " Party leader " + strcharinfo(PC_NAME) + " is entering " + .@md_name$,bc_map,"0x00ff99";
- warp "1@ecl",60,50;
- end;
+ if (gettimetick(2) >= ecl_interior_time) {
+ mes("[Shenime]");
+ mes("Looks like the soldiers inside are really tense.");
+ mes("It is pretty difficult to guide an outsider like you.");
+ close();
}
- mes "-! Warning !-";
- mes "This current quest will be held at Memorial dungeon.";
- mes "Only the party leader will enter. Please create your party.";
- close;
- case 2:
- close;
+ close2();
+ mapannounce("ecl_hub01", sprintf(_$("%s Party leader %s is entering %s"), getpartyname(.@party_id), strcharinfo(PC_NAME), .@md_name$), bc_map, C_SPRINGGREEN);
+ warp("1@ecl", 60, 50);
+ end;
+ }
+ mes("-! Warning !-");
+ mes("This current quest will be held at Memorial dungeon.");
+ mes("Only the party leader will enter. Please create your party.");
+ close();
+ case 2:
+ close();
}
}
- mes "This door connects to the plaza's ceiling.";
- mes "It's also a place where the lighting is set up to make Orb seem more beautiful.";
- mes "It is closed shut.";
- close;
+ mes("This door connects to the plaza's ceiling.");
+ mes("It's also a place where the lighting is set up to make Orb seem more beautiful.");
+ mes("It is closed shut.");
+ close();
}
1@ecl,58,69,3 script Shenime#ecl01 4_F_FAIRY,{
- mes "[Shenime]";
- mes "Oh, what's going on here?";
- mes "They destroyed additional troops that Mayor sent?";
- next;
+ mes("[Shenime]");
+ mes("Oh, what's going on here?");
+ mes("They destroyed additional troops that Mayor sent?");
+ next();
select("What...?", "I fought monsters off!");
- mes "[Shenime]";
- mes "It doesn't matter.";
- mes "Your job ends here.";
- mes "Now you became a betrayer.";
- mes "Farewell, then!";
- specialeffect EF_BEGINSPELL3;
- next;
- mes "[" + strcharinfo(PC_NAME) + "]";
- mes "No...way!!!";
+ mes("[Shenime]");
+ mes("It doesn't matter.");
+ mes("Your job ends here.");
+ mes("Now you became a betrayer.");
+ mes("Farewell, then!");
+ specialeffect(EF_BEGINSPELL3);
+ next();
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("No...way!!!");
specialeffect(EF_LORD, AREA, playerattached());
- percentheal -99,0;
- soundeffect "wander_man_move.wav",1;
- sc_start SC_BLIND,60000,0;
- close2;
- warp "1@ecl",146,95;
+ percentheal(-99, 0);
+ soundeffect("wander_man_move.wav", 1);
+ sc_start(SC_BLIND, 60000, 0);
+ close2();
+ warp("1@ecl", 146, 95);
end;
OnInstanceInit:
- hideonnpc instance_npcname(strnpcinfo(NPC_NAME));
+ hideonnpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- hideoffnpc instance_npcname(strnpcinfo(NPC_NAME));
+ hideoffnpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
}
@@ -174,8 +173,9 @@ OnEnable:
1@ecl,42,80,5 script Suspicious Creature#5 MOROCC_2_142,{
end;
+
OnInstanceInit:
- hideonnpc instance_npcname(strnpcinfo(NPC_NAME));
+ hideonnpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
}
@@ -188,109 +188,113 @@ OnInstanceInit:
OnInstanceInit:
.mob_summoned = 0;
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnReset:
- killmonster instance_mapname("1@ecl"),instance_npcname("#sndmaster")+"::OnMyMobDead";
- stopnpctimer;
+ killmonster(instance_mapname("1@ecl"), instance_npcname("#sndmaster")+"::OnMyMobDead");
+ stopnpctimer();
end;
+
OnTimer1000:
- mapannounce instance_mapname("1@ecl"),"Warning: Abnormal occurrence in the lighting room. Abnormal occurrence in the lighting room.",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ecl"), _("Warning: Abnormal occurrence in the lighting room. Abnormal occurrence in the lighting room."), bc_map, C_YELLOW); //FW_NORMAL 12 0 0
end;
+
OnTimer2000:
- mapannounce instance_mapname("1@ecl"),"Suspicious Creature: Kerrrrr....krwahhhh!!",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
- hideoffnpc instance_npcname("Suspicious Creature#5");
- hideoffnpc instance_npcname("Suspicious Creature#6");
- hideoffnpc instance_npcname("Suspicious Creature#7");
- hideoffnpc instance_npcname("Suspicious Creature#8");
+ mapannounce(instance_mapname("1@ecl"), _("Suspicious Creature: Kerrrrr....krwahhhh!!"), bc_map, C_YELLOW); //FW_NORMAL 12 0 0
+ hideoffnpc(instance_npcname("Suspicious Creature#5"));
+ hideoffnpc(instance_npcname("Suspicious Creature#6"));
+ hideoffnpc(instance_npcname("Suspicious Creature#7"));
+ hideoffnpc(instance_npcname("Suspicious Creature#8"));
end;
OnTimer3000:
- hideonnpc instance_npcname("#sndmaster");
- stopnpctimer;
+ hideonnpc(instance_npcname("#sndmaster"));
+ stopnpctimer();
end;
OnMyMobDead:
- if (mobcount(instance_mapname("1@ecl"),instance_npcname("#sndmaster")+"::OnMyMobDead") == 0) {
- donpcevent instance_npcname("Shenime#ecl01")+"::OnEnable";
- mapannounce instance_mapname("1@ecl"),"Shenime: Good, I got here just in time.",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+ if (mobcount(instance_mapname("1@ecl"), instance_npcname("#sndmaster")+"::OnMyMobDead") == 0) {
+ donpcevent(instance_npcname("Shenime#ecl01")+"::OnEnable");
+ mapannounce(instance_mapname("1@ecl"), _("Shenime: Good, I got here just in time."), bc_map, C_YELLOW); //FW_NORMAL 12 0 0
}
end;
OnTouch:
- if (.mob_summoned) end;
- mes "Upon eliminating the intruders near the Orb, another strange-looking creatures appeared.";
- next;
- mes "We couldn't communicate with them either, and one of them seemed furious after looking around and finding out that its fellows are defeated.";
- next;
- mes "[" + strcharinfo(PC_NAME) + "]";
- mes "They look as if they are incarnation of Morroc.";
- mes "Is the King of Domons after the Orb?";
- mes "Or is it just a coincidence?";
- next;
- mes "[Subordinate of the King of Demons]";
- mes "Kyaarr...Keraahhh!!!";
- mes "Kkwaaa!";
- next;
- mes "A battle cannot be avoided!";
- mes "They will kill me!";
- hideonnpc instance_npcname("Suspicious Creature#5");
- hideonnpc instance_npcname("Suspicious Creature#6");
- hideonnpc instance_npcname("Suspicious Creature#7");
- hideonnpc instance_npcname("Suspicious Creature#8");
+ if (.mob_summoned)
+ end;
+ mes("Upon eliminating the intruders near the Orb, another strange-looking creatures appeared.");
+ next();
+ mes("We couldn't communicate with them either, and one of them seemed furious after looking around and finding out that its fellows are defeated.");
+ next();
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("They look as if they are incarnation of Morroc.");
+ mes("Is the King of Domons after the Orb?");
+ mes("Or is it just a coincidence?");
+ next();
+ mes("[Subordinate of the King of Demons]");
+ mes("Kyaarr...Keraahhh!!!");
+ mes("Kkwaaa!");
+ next();
+ mes("A battle cannot be avoided!");
+ mes("They will kill me!");
+ hideonnpc(instance_npcname("Suspicious Creature#5"));
+ hideonnpc(instance_npcname("Suspicious Creature#6"));
+ hideonnpc(instance_npcname("Suspicious Creature#7"));
+ hideonnpc(instance_npcname("Suspicious Creature#8"));
.@eclmap$ = instance_mapname("1@ecl");
.@sndmaster$ = instance_npcname("#sndmaster");
- monster .@eclmap$,42,80,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,48,86,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,59,82,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,56,88,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,39,72,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,42,69,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,47,64,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,50,60,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
+ monster(.@eclmap$, 42, 80, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 48, 86, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 59, 82, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 56, 88, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 39, 72, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 42, 69, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 47, 64, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 50, 60, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
.mob_summoned = 1;
- close;
+ close();
}
1@ecl,57,65,0 script #event HIDDEN_WARP_NPC,5,5,{
end;
OnTouch:
- if (.mob_summoned) end;
+ if (.mob_summoned)
+ end;
.@eclmap$ = instance_mapname("1@ecl");
.@eventname$ = instance_npcname("#event");
- mes "An empty room with nothing inside.";
- mes "a light is coming out of a circular equipment in the middle of the room.";
- next;
- mes "[Suspicious Creature]";
- mes "Keheehehehe......";
- next;
- mes "A group of unidentifiable creatures is approaching threateningly.";
- mes "They seemed surprised, and although Bifrost's will still holds, it's hard to communicate.";
- next;
- mes "[Suspicious Creature]";
- mes "Kyaarr...Ke...Keryarya!!";
- next;
- mes "It seems like they are going to start attacking any minute.";
- mes "We cannot help fighting them!";
- hideonnpc instance_npcname("Suspicious Creature#1");
- hideonnpc instance_npcname("Suspicious Creature#2");
- hideonnpc instance_npcname("Suspicious Creature#3");
- hideonnpc instance_npcname("Suspicious Creature#4");
- monster .@eclmap$,51,64,"Suspicious Creature",MOROCC_4_142,1,.@eventname$+"::OnMyMobDead";
- monster .@eclmap$,43,67,"Suspicious Creature",MOROCC_4_142,1,.@eventname$+"::OnMyMobDead";
- monster .@eclmap$,55,80,"Suspicious Creature",MOROCC_4_142,1,.@eventname$+"::OnMyMobDead";
- monster .@eclmap$,60,75,"Suspicious Creature",MOROCC_4_142,1,.@eventname$+"::OnMyMobDead";
+ mes("An empty room with nothing inside.");
+ mes("a light is coming out of a circular equipment in the middle of the room.");
+ next();
+ mes("[Suspicious Creature]");
+ mes("Keheehehehe......");
+ next();
+ mes("A group of unidentifiable creatures is approaching threateningly.");
+ mes("They seemed surprised, and although Bifrost's will still holds, it's hard to communicate.");
+ next();
+ mes("[Suspicious Creature]");
+ mes("Kyaarr...Ke...Keryarya!!");
+ next();
+ mes("It seems like they are going to start attacking any minute.");
+ mes("We cannot help fighting them!");
+ hideonnpc(instance_npcname("Suspicious Creature#1"));
+ hideonnpc(instance_npcname("Suspicious Creature#2"));
+ hideonnpc(instance_npcname("Suspicious Creature#3"));
+ hideonnpc(instance_npcname("Suspicious Creature#4"));
+ monster(.@eclmap$, 51, 64, _("Suspicious Creature"), MOROCC_4_142, 1, .@eventname$+"::OnMyMobDead");
+ monster(.@eclmap$, 43, 67, _("Suspicious Creature"), MOROCC_4_142, 1, .@eventname$+"::OnMyMobDead");
+ monster(.@eclmap$, 55, 80, _("Suspicious Creature"), MOROCC_4_142, 1, .@eventname$+"::OnMyMobDead");
+ monster(.@eclmap$, 60, 75, _("Suspicious Creature"), MOROCC_4_142, 1, .@eventname$+"::OnMyMobDead");
.mob_summoned = 1;
- close;
+ close();
OnMyMobDead:
- if (mobcount(instance_mapname("1@ecl"),instance_npcname("#event")+"::OnMyMobDead") == 0) {
- enablenpc instance_npcname("#sndmaster");
- donpcevent instance_npcname("#sndmaster")+"::OnEnable";
+ if (mobcount(instance_mapname("1@ecl"), instance_npcname("#event")+"::OnMyMobDead") == 0) {
+ enablenpc(instance_npcname("#sndmaster"));
+ donpcevent(instance_npcname("#sndmaster")+"::OnEnable");
}
end;
OnInstanceInit:
@@ -299,218 +303,218 @@ OnInstanceInit:
}
1@ecl,148,97,3 script Avant# 4_M_FAIRYAVANT,{
- mes "[Avant]";
- mes "Hey, look who's here!";
- mes "You're a friend of my son, right?";
- mes "What a strange chance it is that has brought us together here!";
- cutin "avant01",1;
- next;
- mes "[Avant]";
- mes "Did something happen to you?";
- mes "There was a subtle and magical echo to it.";
- mes "Immidiately after that, you were thrown here.";
- next;
+ mes("[Avant]");
+ mes("Hey, look who's here!");
+ mes("You're a friend of my son, right?");
+ mes("What a strange chance it is that has brought us together here!");
+ cutin("avant01", 1);
+ next();
+ mes("[Avant]");
+ mes("Did something happen to you?");
+ mes("There was a subtle and magical echo to it.");
+ mes("Immidiately after that, you were thrown here.");
+ next();
if (select("It's all because of you!", "Shenime said...") == 1) {
- mes "[Avant]";
- mes "I don't understand a word you're saying.";
- mes "Can't you organize your story? Don't you know 'five W's and one H' rule?";
- next;
+ mes("[Avant]");
+ mes("I don't understand a word you're saying.");
+ mes("Can't you organize your story? Don't you know 'five W's and one H' rule?");
+ next();
}
- mes "[Avant]";
- mes "Ooh...so that's what happened.";
- mes "So you're saying that Shenime was after the Orb?";
- next;
- mes "[Avant]";
- mes "hehehe...hahahhaha ahahahahha";
- mes "Well, well...did he get me, too?";
- mes "Me, Avant, of all the people?! Hahahaha!";
- cutin "avant02",1;
- next;
+ mes("[Avant]");
+ mes("Ooh...so that's what happened.");
+ mes("So you're saying that Shenime was after the Orb?");
+ next();
+ mes("[Avant]");
+ mes("hehehe...hahahhaha ahahahahha");
+ mes("Well, well...did he get me, too?");
+ mes("Me, Avant, of all the people?! Hahahaha!");
+ cutin("avant02", 1);
+ next();
select("What do you mean?");
- mes "[Avant]";
- mes "I was doing a research on the power of the Orb on my own.";
- mes "But Shenime just urged me persistently.";
- cutin "avant01",1;
- next;
- mes "[Avant]";
- mes "I started from thinking about the beauty of the Orb and went on to wondering what kind of power is accumulated inside the Orb...";
- mes "and I started questioning the principle of the Orb's power since we all benefit from it.";
- next;
- mes "[Avant]";
- mes "All Laphines think of the Orb as something natural as air and water, but he was the first one to make me perceive it differently and investigate its origin.";
- mes "Right...Shenime. He excited my curiosity on purpose.";
- next;
- mes "[Avant]";
- mes "Stimulate a person who wasn't aware of air and water, and make him recognize and carry on investigating!";
- mes "Well, well...isn't that interesting!";
- cutin "avant02",1;
- next;
- mes "[Avant]";
- mes "Ha...hahaha...";
- mes "...I'm so angry about the fact that I just realized how he used me, but what's even worse is that I've done something horrible to our people.";
- mes "I think I'm pretty irritated now.";
- next;
+ mes("[Avant]");
+ mes("I was doing a research on the power of the Orb on my own.");
+ mes("But Shenime just urged me persistently.");
+ cutin("avant01", 1);
+ next();
+ mes("[Avant]");
+ mes("I started from thinking about the beauty of the Orb and went on to wondering what kind of power is accumulated inside the Orb...");
+ mes("and I started questioning the principle of the Orb's power since we all benefit from it.");
+ next();
+ mes("[Avant]");
+ mes("All Laphines think of the Orb as something natural as air and water, but he was the first one to make me perceive it differently and investigate its origin.");
+ mes("Right...Shenime. He excited my curiosity on purpose.");
+ next();
+ mes("[Avant]");
+ mes("Stimulate a person who wasn't aware of air and water, and make him recognize and carry on investigating!");
+ mes("Well, well...isn't that interesting!");
+ cutin("avant02", 1);
+ next();
+ mes("[Avant]");
+ mes("Ha...hahaha...");
+ mes("...I'm so angry about the fact that I just realized how he used me, but what's even worse is that I've done something horrible to our people.");
+ mes("I think I'm pretty irritated now.");
+ next();
select("You had a conscience?");
- mes "[Avant]";
- mes "What kind of a person do you think I am, seriously!";
- mes "Is it because of my sons?";
- mes "Well, then, I can't blame you too much.";
- cutin "avant01",1;
- next;
- mes "[Avant]";
- mes "...Bah.";
- mes "It's no fun.";
- mes "It's not fun anymore. I'm no longer interested in you.";
- next;
- mes "[Avant]";
- mes "......";
- mes "Seems like there's a visitor.";
- next;
- cutin "minuel01",4;
- mes "[Minuel]";
- mes "" + strcharinfo(PC_NAME) + "Sir,";
- mes "Although you're detained on suspicion of being responsible for the recent incident in the lighting room,";
- mes "there are some witnesses to prove your innocence.";
- next;
- mes "[Minuel]";
- mes "I don't know the details,";
- mes "but I also believe you're not guilty.";
- mes "I'll move you to the treatment room since this seems like a severe wound.";
- next;
- mes "[Minuel]";
- mes "I don't think it's a big deal.";
- mes "...hopefully.";
- mes "Let's go. I'll guide you.";
- close2;
- cutin "",255;
- warp "1@ecl",146,29;
+ mes("[Avant]");
+ mes("What kind of a person do you think I am, seriously!");
+ mes("Is it because of my sons?");
+ mes("Well, then, I can't blame you too much.");
+ cutin("avant01", 1);
+ next();
+ mes("[Avant]");
+ mes("...Bah.");
+ mes("It's no fun.");
+ mes("It's not fun anymore. I'm no longer interested in you.");
+ next();
+ mes("[Avant]");
+ mes("......");
+ mes("Seems like there's a visitor.");
+ next();
+ cutin("minuel01", 4);
+ mes("[Minuel]");
+ mesf("%s Sir,", strcharinfo(PC_NAME));
+ mes("Although you're detained on suspicion of being responsible for the recent incident in the lighting room,");
+ mes("there are some witnesses to prove your innocence.");
+ next();
+ mes("[Minuel]");
+ mes("I don't know the details,");
+ mes("but I also believe you're not guilty.");
+ mes("I'll move you to the treatment room since this seems like a severe wound.");
+ next();
+ mes("[Minuel]");
+ mes("I don't think it's a big deal.");
+ mes("...hopefully.");
+ mes("Let's go. I'll guide you.");
+ close2();
+ cutin("", 255);
+ warp("1@ecl", 146, 29);
end;
}
1@ecl,148,29,3 script Loki#ecl01 4_M_ROKI2,{
- mes "[Loki]";
- mes "It seems like this guy next to me has a lot more to say than I do.";
- mes "Why don't you explain to him first?";
- close;
+ mes("[Loki]");
+ mes("It seems like this guy next to me has a lot more to say than I do.");
+ mes("Why don't you explain to him first?");
+ close();
}
1@ecl,147,30,3 script Nydhog#ecl01 4_F_NYDHOG,{
- mes "[Guardian Nydhog]";
- mes "I think you should talk to Hisie first.";
- close;
+ mes("[Guardian Nydhog]");
+ mes("I think you should talk to Hisie first.");
+ close();
}
1@ecl,144,27,5 script Hisie#ecl01 4_M_FARIY_HISIE,{
- cutin "hisie01",0;
- mes "[Hisie]";
- mes "Can you tell me exactly what happened?";
- next;
+ cutin("hisie01", 0);
+ mes("[Hisie]");
+ mes("Can you tell me exactly what happened?");
+ next();
select("I fought with monsters.");
- cutin "hisie03",0;
- mes "[Hisie]";
- mes "Monsters? Subordinates of Morroc?";
- mes "What you were trying to kill were our soldiers, the Laphines!!";
- mes "What on earth happened there?";
- npcskill AL_HEAL,9,99,80;
- next;
- cutin "",255;
- mes "[Loki]";
- mes "It's because of this.";
- mes "" + strcharinfo(PC_NAME) + "It was inside the body of -";
- mes "This is how powerful Shenime is.";
- next;
- mes "On Loki's palm, there rested a small, thin, and dried piece of thorn.";
- next;
- cutin "hisie03",0;
- mes "[Hisie]";
- mes "Shenime, the Chief of Staff?";
- mes "Why is he related to this?";
- npcskill AL_HEAL,9,99,80;
- next;
- cutin "",255;
- mes "[Loki]";
- mes "Shenime is one of the subordinates of Morroc.";
- mes "His power enbales him to control another person directly or mentally influence that person indirectly through a part of his body.";
- next;
+ cutin("hisie03", 0);
+ mes("[Hisie]");
+ mes("Monsters? Subordinates of Morroc?");
+ mes("What you were trying to kill were our soldiers, the Laphines!!");
+ mes("What on earth happened there?");
+ npcskill(AL_HEAL, 9, 99, 80);
+ next();
+ cutin("", 255);
+ mes("[Loki]");
+ mes("It's because of this.");
+ mesf("%s It was inside the body of -", strcharinfo(PC_NAME));
+ mes("This is how powerful Shenime is.");
+ next();
+ mes("On Loki's palm, there rested a small, thin, and dried piece of thorn.");
+ next();
+ cutin("hisie03", 0);
+ mes("[Hisie]");
+ mes("Shenime, the Chief of Staff?");
+ mes("Why is he related to this?");
+ npcskill(AL_HEAL, 9, 99, 80);
+ next();
+ cutin("", 255);
+ mes("[Loki]");
+ mes("Shenime is one of the subordinates of Morroc.");
+ mes("His power enbales him to control another person directly or mentally influence that person indirectly through a part of his body.");
+ next();
select("Now that I think about it...");
- mes "[" + strcharinfo(PC_NAME) + "]";
- mes "Right before coming here, Shenime reached his hand out to me and I felt a spark when I held his hand.";
- mes "I thought it was just my imagination and ignored it...maybe that's when he...";
- next;
- mes "[Nydhog]";
- mes "You're probably right.";
- mes "They use wicked tricks.";
- mes "This thorn here probably has clouded your judgement.";
- next;
- cutin "hisie03",0;
- mes "[Hisie]";
- mes "So you're saying that he deceived us all?";
- mes "The Chief of Staff is a Laphine who stayed with us for a long time! He can't be...";
- npcskill AL_HEAL,9,99,80;
- next;
- cutin "",255;
- mes "[Loki]";
- mes "He might have been under the influence for a good while.";
- mes "Anyway, this guy is not guilty.";
- mes "I can prove it.";
- next;
- mes "[Nydhog]";
- mes "I swear by the name of the guardian of Yggdrasil, too.";
- mes "" + strcharinfo(PC_NAME) + "- will by no means do such a thing.";
- next;
- cutin "hisie02",0;
- mes "[Hisie]";
- mes "Hah...";
- mes "But things got out of control.";
- mes "I didn't expect this.";
- next;
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("Right before coming here, Shenime reached his hand out to me and I felt a spark when I held his hand.");
+ mes("I thought it was just my imagination and ignored it...maybe that's when he...");
+ next();
+ mes("[Nydhog]");
+ mes("You're probably right.");
+ mes("They use wicked tricks.");
+ mes("This thorn here probably has clouded your judgement.");
+ next();
+ cutin("hisie03", 0);
+ mes("[Hisie]");
+ mes("So you're saying that he deceived us all?");
+ mes("The Chief of Staff is a Laphine who stayed with us for a long time! He can't be...");
+ npcskill(AL_HEAL, 9, 99, 80);
+ next();
+ cutin("", 255);
+ mes("[Loki]");
+ mes("He might have been under the influence for a good while.");
+ mes("Anyway, this guy is not guilty.");
+ mes("I can prove it.");
+ next();
+ mes("[Nydhog]");
+ mes("I swear by the name of the guardian of Yggdrasil, too.");
+ mesf("%s - will by no means do such a thing.", strcharinfo(PC_NAME));
+ next();
+ cutin("hisie02", 0);
+ mes("[Hisie]");
+ mes("Hah...");
+ mes("But things got out of control.");
+ mes("I didn't expect this.");
+ next();
select("What happened to the Orb?");
- mes "[Hisie]";
- mes "The inner core is stolen.";
- mes "Nobody knows that the Orb's inner core is gone,";
- mes "and that's why Karr didn't make it here.";
- npcskill AL_HEAL,9,99,80;
- next;
- mes "[Hisie]";
- mes "And what's more, several soldiers are injured because of you.";
- mes "None of them died fortunately, but most of them are wounded severely.";
- mes "The situation is not very good right now.";
- next;
- cutin "",255;
- mes "[Loki]";
- mes "Someone has to take the responsibility here then.";
- mes "In all probablility," + strcharinfo(PC_NAME) + "it will be you.";
- next;
- cutin "hisie02",0;
- mes "[Hisie]";
- mes "......these two gentlemen here cleared up all charges related to the Orb,";
- mes "but both you and Karr won't be able to avoid your responsibility.";
- mes "you'll have to catch Shenime.";
- npcskill AL_HEAL,9,99,80;
- next;
- cutin "hisie01",0;
- mes "[Hisie]";
- mes "It seems like you've rested enough. Let's get going.";
- mes "Karr is waiting for you.";
- mes "What will you two do?";
- next;
- cutin "",255;
- mes "[Loki]";
- mes "Don't worry about us.";
- mes "Our target is Morroc, the King of Demons.";
- mes "It's good enough that we found an evidence here.";
- next;
- cutin "hisie01",0;
- mes "[Hisie]";
- mes "Thank you for your help.";
- mes "We will take off now.";
- mes "Let's go." + strcharinfo(PC_NAME) + ".";
+ mes("[Hisie]");
+ mes("The inner core is stolen.");
+ mes("Nobody knows that the Orb's inner core is gone,");
+ mes("and that's why Karr didn't make it here.");
+ npcskill(AL_HEAL, 9, 99, 80);
+ next();
+ mes("[Hisie]");
+ mes("And what's more, several soldiers are injured because of you.");
+ mes("None of them died fortunately, but most of them are wounded severely.");
+ mes("The situation is not very good right now.");
+ next();
+ cutin("", 255);
+ mes("[Loki]");
+ mes("Someone has to take the responsibility here then.");
+ mesf("In all probablility, %s it will be you.", strcharinfo(PC_NAME));
+ next();
+ cutin("hisie02", 0);
+ mes("[Hisie]");
+ mes("......these two gentlemen here cleared up all charges related to the Orb,");
+ mes("but both you and Karr won't be able to avoid your responsibility.");
+ mes("you'll have to catch Shenime.");
+ npcskill(AL_HEAL, 9, 99, 80);
+ next();
+ cutin("hisie01", 0);
+ mes("[Hisie]");
+ mes("It seems like you've rested enough. Let's get going.");
+ mes("Karr is waiting for you.");
+ mes("What will you two do?");
+ next();
+ cutin("", 255);
+ mes("[Loki]");
+ mes("Don't worry about us.");
+ mes("Our target is Morroc, the King of Demons.");
+ mes("It's good enough that we found an evidence here.");
+ next();
+ cutin("hisie01", 0);
+ mes("[Hisie]");
+ mes("Thank you for your help.");
+ mes("We will take off now.");
+ mesf("Let's go. %s.", strcharinfo(PC_NAME));
ep14_2_mylord = 30;
- changequest 7450,7451;
- erasequest 7450;
- setquest 7451;
- close2;
- cutin "",255;
- warp "ecl_in03",57,76;
+ changequest(7450, 7451);
+ erasequest(7450);
+ setquest(7451);
+ close2();
+ cutin("", 255);
+ warp("ecl_in03", 57, 76);
end;
}
diff --git a/npc/re/instances/HazyForest.txt b/npc/re/instances/HazyForest.txt
index c649171f8..291ce54db 100644
--- a/npc/re/instances/HazyForest.txt
+++ b/npc/re/instances/HazyForest.txt
@@ -37,147 +37,149 @@
bif_fild01,158,340,5 script Laphine Soldier#mist 4_M_FAIRYSOLDIER,{
.@party_id = getcharid(CHAR_ID_PARTY);
- .@md_name$ = "Mistwood Maze";
+ .@md_name$ = _("Mistwood Maze");
- mes "[Laphine Soldier]";
- mes "Are you going into the forest?";
- next;
+ mes("[Laphine Soldier]");
+ mes("Are you going into the forest?");
+ next();
if (!.@party_id) {
- mes "[Laphine Soldier]";
- mes "Well, well, well, aren't you being too rash?";
- mes "Why don't you at least organize a party?";
- close;
+ mes("[Laphine Soldier]");
+ mes("Well, well, well, aren't you being too rash?");
+ mes("Why don't you at least organize a party?");
+ close();
}
- .@playtime = questprogress(7211,PLAYTIME);
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2)) {
+ .@playtime = questprogress(7211, PLAYTIME);
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
if (.@playtime == 1) {
- mes "[Laphine Soldier]";
- mes "...Are you sure you're not doing too much?";
- mes "I think you'd better get some rest.";
- mes "You'll only wear yourself out by trying to do too much";
- next;
- mes "[Laphine Soldier]";
- mes "I don't think the authority will give you permission, either.";
- mes "...Even a Sapha would be stopped from entering the forest.";
- next;
+ mes("[Laphine Soldier]");
+ mes("...Are you sure you're not doing too much?");
+ mes("I think you'd better get some rest.");
+ mes("You'll only wear yourself out by trying to do too much");
+ next();
+ mes("[Laphine Soldier]");
+ mes("I don't think the authority will give you permission, either.");
+ mes("...Even a Sapha would be stopped from entering the forest.");
+ next();
select("You speak our language quite well, don't you?");
- mes "[Laphine Soldier]";
- mes "...Do I?";
- mes "Actually I'm not speaking your language.";
- mes "I'm speaking Laphine language.";
- next;
- mes "[Laphine Soldier]";
- mes "But it's one of the mysteries of Bifrost.";
- mes "That we can understand each other even if we speak different languages.";
- next;
- mes "[Laphine Soldier]";
- mes "To be able to talk with everybody...";
- mes "Perhaps that's the power of Bifrost.";
- close;
+ mes("[Laphine Soldier]");
+ mes("...Do I?");
+ mes("Actually I'm not speaking your language.");
+ mes("I'm speaking Laphine language.");
+ next();
+ mes("[Laphine Soldier]");
+ mes("But it's one of the mysteries of Bifrost.");
+ mes("That we can understand each other even if we speak different languages.");
+ next();
+ mes("[Laphine Soldier]");
+ mes("To be able to talk with everybody...");
+ mes("Perhaps that's the power of Bifrost.");
+ close();
} else if (.@playtime == 2) {
- mes "[Laphine Soldier]";
- mes "Great, great.";
- mes "Now the forest won't reject you.";
- mes "What are you going to do now?";
- erasequest 7211;
+ mes("[Laphine Soldier]");
+ mes("Great, great.");
+ mes("Now the forest won't reject you.");
+ mes("What are you going to do now?");
+ erasequest(7211);
} else {
- mes "[Laphine Soldier]";
- mes "You human adventurers are incredible.";
- mes "You're always going into the forest, where no one else dares to go.";
- next;
- mes "[Laphine Soldier]";
- mes "Phew. But I have to report to the authority";
- mes "everyone who goes into the forest, just in case.";
- next;
- mes "[Laphine Soldier]";
- mes "You'll get permission";
- mes "after you register.";
- mes "Are you going to venture into the Hazy Forest?";
+ mes("[Laphine Soldier]");
+ mes("You human adventurers are incredible.");
+ mes("You're always going into the forest, where no one else dares to go.");
+ next();
+ mes("[Laphine Soldier]");
+ mes("Phew. But I have to report to the authority");
+ mes("everyone who goes into the forest, just in case.");
+ next();
+ mes("[Laphine Soldier]");
+ mes("You'll get permission");
+ mes("after you register.");
+ mes("Are you going to venture into the Hazy Forest?");
}
- next;
+ next();
switch(select("Venture into the Hazy Forest.", "Give up.")) {
case 1:
- mes "[Laphine Soldier]";
- mes "Party Name "+getpartyname(.@party_id)+"...";
- mes "Party Leader "+strcharinfo(PC_NAME)+"...";
+ mes("[Laphine Soldier]");
+ mesf("Party Name %s...", getpartyname(.@party_id));
+ mesf("Party Leader %s...", strcharinfo(PC_NAME));
.@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
- mes "Hmm...";
- next;
- mes "[Laphine Soldier]";
+ mes("Hmm...");
+ next();
+ mes("[Laphine Soldier]");
if (!.@playtime)
- mes "It's dangerous in the forest.";
+ mes("It's dangerous in the forest.");
else
- mes "The atmosphere is somewhat tense in the forest.";
- mes "...Why don't you just go back today?";
- close;
+ mes("The atmosphere is somewhat tense in the forest.");
+ mes("...Why don't you just go back today?");
+ close();
}
- if (instance_attachmap("1@mist",.@instance) != "") {
- instance_set_timeout 7200,300,.@instance;
+ if (instance_attachmap("1@mist", .@instance) != "") {
+ instance_set_timeout(7200, 300, .@instance);
instance_init(.@instance);
- mes "I've got it. I've written them down on the report here.";
- next;
- mes "[Laphine Soldier]";
- mes "You'll get permission soon.";
- mes "Now go to the log tunnel, the only way to get into the Hazy Forest.";
- mes "You understand?";
- next;
- mes "[Laphine Soldier]";
- mes "We can't go against the forest,";
- mes "but maybe you humans can.";
- mes "Good luck!";
- close;
+ mes("I've got it. I've written them down on the report here.");
+ next();
+ mes("[Laphine Soldier]");
+ mes("You'll get permission soon.");
+ mes("Now go to the log tunnel, the only way to get into the Hazy Forest.");
+ mes("You understand?");
+ next();
+ mes("[Laphine Soldier]");
+ mes("We can't go against the forest,");
+ mes("but maybe you humans can.");
+ mes("Good luck!");
+ close();
} else {
instance_destroy(.@instance);
}
case 2:
- mes "[Laphine Soldier]";
- mes "Well, you've made the right decision.";
+ mes("[Laphine Soldier]");
+ mes("Well, you've made the right decision.");
if (!.@playtime)
- mes "That's what's good for you.";
- close;
+ mes("That's what's good for you.");
+ close();
}
} else {
- mes "[Laphine Soldier]";
- mes "Where's your party leader?";
- mes "It's dangerous in there.";
- next;
+ mes("[Laphine Soldier]");
+ mes("Where's your party leader?");
+ mes("It's dangerous in there.");
+ next();
if (.@playtime == 2) {
- mes "[Laphine Soldier]";
- mes "I see you've been into the forest before.";
- mes "Okay, at least the forest won't reject you.";
- mes "However...";
- erasequest 7211;
- next;
+ mes("[Laphine Soldier]");
+ mes("I see you've been into the forest before.");
+ mes("Okay, at least the forest won't reject you.");
+ mes("However...");
+ erasequest(7211);
+ next();
}
- mes "[Laphine Soldier]";
- mes "Put yourself in my shoes, the entrance guard, and let me meet the representative of your party.";
- mes "I have to discuss some things with him/her.";
- close;
+ mes("[Laphine Soldier]");
+ mes("Put yourself in my shoes, the entrance guard, and let me meet the representative of your party.");
+ mes("I have to discuss some things with him/her.");
+ close();
}
}
bif_fild01,161,355,0 script Log Tunnel CLEAR_NPC,{
- mes "I see the forest through the log tunnel.";
- mes "It looks like I can enter the forest through the log tunnel.";
- next;
- if(select("Enter the tunnel.", "Give up.") == 2)
- close;
+ mes("I see the forest through the log tunnel.");
+ mes("It looks like I can enter the forest through the log tunnel.");
+ next();
+ if (select("Enter the tunnel.", "Give up.") == 2)
+ close();
if (has_instance("1@mist") == "") {
- if (questprogress(7211,PLAYTIME) == 1) {
- mes "You try to crawl into the log, but some mysterious power pushes you back with a gush of wind.";
- mes "It seems like you can't force your way into the forest.";
- close;
+ if (questprogress(7211, PLAYTIME) == 1) {
+ mes("You try to crawl into the log, but some mysterious power pushes you back with a gush of wind.");
+ mes("It seems like you can't force your way into the forest.");
+ close();
}
- mes "The world beyond the log tunnel looks dark and suffocating.";
- mes "Your instinct is screaming that this forest is dangerous.";
- close;
+ mes("The world beyond the log tunnel looks dark and suffocating.");
+ mes("Your instinct is screaming that this forest is dangerous.");
+ close();
} else {
- if (questprogress(7211,PLAYTIME) == 2) erasequest 7211;
- if (!questprogress(7211,PLAYTIME)) setquest 7211;
- mapannounce "bif_fild01",getpartyname(getcharid(CHAR_ID_PARTY))+" party's "+strcharinfo(PC_NAME)+" member is entering the Mistwood Maze.",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
- warp "1@mist",89,29;
- close;
+ if (questprogress(7211, PLAYTIME) == 2)
+ erasequest(7211);
+ if (!questprogress(7211, PLAYTIME))
+ setquest(7211);
+ mapannounce("bif_fild01", sprintf(_$("%s party's %s member is entering the Mistwood Maze."), getpartyname(getcharid(CHAR_ID_PARTY)), strcharinfo(PC_NAME)), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
+ warp("1@mist", 89, 29);
+ close();
}
}
@@ -185,284 +187,325 @@ bif_fild01,161,355,0 script Log Tunnel CLEAR_NPC,{
1@mist,89,29,0 script #Whisper_mist CLEAR_NPC,1,1,{
end;
OnInstanceInit:
- enablenpc instance_npcname("#Whisper_mist");
+ enablenpc(instance_npcname("#Whisper_mist"));
end;
OnTouch:
- disablenpc instance_npcname("#Whisper_mist");
- initnpctimer;
+ disablenpc(instance_npcname("#Whisper_mist"));
+ initnpctimer();
end;
OnTimer10000:
OnTimer20000:
- mapannounce instance_mapname("1@mist"),"Whisper: Who's this? Who's this!? The forest is open! Tom, Tomba, Tired Rem, Remi! Wake up!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Whisper: Who's this? Who's this!? The forest is open! Tom, Tomba, Tired Rem, Remi! Wake up!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer60000:
- mapannounce instance_mapname("1@mist"),"Loud Whisper: What are the forest keepers doing? What are the gardeners doing??",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Loud Whisper: What are the forest keepers doing? What are the gardeners doing??"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer120000:
- mapannounce instance_mapname("1@mist"),"Loud Whisper: Don't go out, wander around forever, and play with us!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Loud Whisper: Don't go out, wander around forever, and play with us!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer180000:
- mapannounce instance_mapname("1@mist"),"Loud Whisper: Useless, useless. Wandering around and around, you'll meet your end!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
- stopnpctimer;
+ mapannounce(instance_mapname("1@mist"), _("Loud Whisper: Useless, useless. Wandering around and around, you'll meet your end!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
+ stopnpctimer();
end;
}
-// callfunc "F_Mora_Mist",<warp to enable>,<success message>,<fail message>{,<end flag>}
+// callfunc("F_Mora_Mist", <warp to enable>, <success message>, <fail message>{, <end flag>})
function script F_Mora_Mist {
.@map$ = instance_mapname("1@mist");
- if (mobcount(.@map$,instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead") == 0) {
- mes "Obviously no one is taking care of it.";
- mes "It seems like you can chop down the garden tree.";
- next;
- if(select("Chop down the garden tree.", "Give up.") == 2)
- close;
- mes "You chop down the tree, which was blocking the path of the maze, "+((getarg(3,0))?"clearing the way out of the forest.":"so now you can continue.");
- mapannounce .@map$,getarg(1),bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
- enablenpc instance_npcname(getarg(0));
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
- close;
- } else
- mapannounce .@map$,((getarg(3,0))?getarg(2):getarg(2)+"'s Cry: Huh? Who's doing bad things to my tree?!"),bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ if (mobcount(.@map$, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead") == 0) {
+ mes("Obviously no one is taking care of it.");
+ mes("It seems like you can chop down the garden tree.");
+ next();
+ if (select("Chop down the garden tree.", "Give up.") == 2)
+ close();
+ mesf("You chop down the tree, which was blocking the path of the maze, %s", ((getarg(3, 0))?"clearing the way out of the forest.":"so now you can continue."));
+ mapannounce(.@map$, getarg(1), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
+ enablenpc(instance_npcname(getarg(0)));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ close();
+ } else {
+ mapannounce(.@map$, (getarg(3, 0) ? getarg(2) : sprintf(_$("%s's Cry: Huh? Who's doing bad things to my tree?!"), getarg(2))), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
+ }
+ end;
+}
+
+1@mist,251,121,3 script Tom's Garden 4_BULLETIN_BOARD2,{
end;
}
-1@mist,251,121,3 script Tom's Garden 4_BULLETIN_BOARD2,{ end; }
1@mist,247,123,0 script Tom's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"a25_a18-1",
"Roaring Cry: Tom's bolt is broken! Watch out, Tomba! Watch out, Tomba!",
- "Tom";
+ "Tom");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),249,120,"Tom",2136,1,instance_npcname("Tom's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 249, 120, _("Tom"), LITTLE_FATUM, 1, instance_npcname("Tom's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,226,95,3 script Tomba's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,226,95,3 script Tomba's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,225,98,0 script Tomba's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"a27-2_af1-2",
"Roaring Cry: Tomba's Garden Tree is gone with Tomba. Remi, what are you going to do now?",
- "Tomba";
+ "Tomba");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),200,64,"Tomba",2136,1,instance_npcname("Tomba's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 200, 64, _("Tomba"), LITTLE_FATUM, 1, instance_npcname("Tomba's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,157,183,3 script Remi's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,157,183,3 script Remi's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,159,184,0 script Remi's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"a15-2_a4-1",
"Roaring Cry: Remi, Remi's Garden Tree was chopped down- Rem, it's your turn next. Poor Rem!",
- "Remi";
+ "Remi");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),154,184,"Remi the Tired",2137,1,instance_npcname("Remi's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 154, 184, _("Remi the Tired"), MIMING, 1, instance_npcname("Remi's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,58,39,3 script Tired Rem's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,58,39,3 script Tired Rem's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,61,39,0 script Tired Rem's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"a4-2_a11",
"Rem's Desperate Cry: Argh... Rem will sleep. Rem will sleep now, and won't wake up forever!",
- "Rem";
+ "Rem");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),101,107,"Rem the Gardener",2136,1,instance_npcname("Tired Rem's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 101, 107, _("Rem the Gardener"), LITTLE_FATUM, 1, instance_npcname("Tired Rem's Garden Tree")+"::OnMyMobDead");
end;
OnTimer10000:
- mapannounce instance_mapname("1@mist"),"Whisper of the Forest: So Tom's, Tomba's, Remi's, and Rem's garden trees were all chopped down?",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Whisper of the Forest: So Tom's, Tomba's, Remi's, and Rem's garden trees were all chopped down?"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer15000:
- mapannounce instance_mapname("1@mist"),"Whisper of the Forest: Trouble, trouble, we're in big trouble.",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Whisper of the Forest: Trouble, trouble, we're in big trouble."), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer20000:
- mapannounce instance_mapname("1@mist"),"Loud Whisper: They've come to the second deepest forest. Gardeners of the deep forest, watch out!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
- stopnpctimer;
+ mapannounce(instance_mapname("1@mist"), _("Loud Whisper: They've come to the second deepest forest. Gardeners of the deep forest, watch out!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
+ stopnpctimer();
end;
OnMyMobDead:
end;
}
-1@mist,227,179,3 script Ron's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,227,179,3 script Ron's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,230,179,0 script Ron's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b4-2_b2",
"Ron the Gardener's Cry: I'm getting off work! Don't look for Ron, the second gardener, any more!!",
- "Ron";
+ "Ron");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),227,178,"Ron the Gardener",2134,1,instance_npcname("Ron's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 227, 178, _("Ron the Gardener"), PARUS, 1, instance_npcname("Ron's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,288,226,3 script Rover's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,288,226,3 script Rover's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,285,225,0 script Rover's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b7_bf1-2",
"Roaring Whisper: Ron's, and Rover's trees were chopped down as well. Who is forcing his way into the forest? Who is it?",
- "Rover";
+ "Rover");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),304,237,"Rover the Strutter",2134,1,instance_npcname("Rover's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 304, 237, _("Rover the Strutter"), PARUS, 1, instance_npcname("Rover's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,159,318,3 script Mona's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,159,318,3 script Mona's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,161,316,0 script Mona's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b31_b16",
"Clamoring Whisper: Mona the Seedseeker's garden tree is gone! Mona is gone too! Namon will be okay, because he is brave, right? Namon, are you okay?",
- "Mona";
+ "Mona");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),239,253,"Mona the Seedseeker",2133,1,instance_npcname("Mona's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 239, 253, _("Mona the Seedseeker"), ANGRA_MANTIS, 1, instance_npcname("Mona's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,205,300,3 script Namon's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,205,300,3 script Namon's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,204,299,0 script Namon's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b27-3_bN-1",
"Clamoring Whisper: Brave Namon met his fate not so bravely... *giggle*",
- "Namon";
+ "Namon");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),89,173,"Brave Namon",2134,1,instance_npcname("Namon's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 89, 173, _("Brave Namon"), PARUS, 1, instance_npcname("Namon's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,219,232,3 script Sad Neoron's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,219,232,3 script Sad Neoron's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,221,236,0 script Sad Neoron's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b6-1_b33",
"Lamenting Whisper: Sad Neoron has become cheerful! Spyder the Superior Spider, what are you going to do? What are you going to do now?",
- "Neoron";
+ "Neoron");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),143,265,"Sad Neoron",2137,1,instance_npcname("Sad Neoron's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 143, 265, _("Sad Neoron"), MIMING, 1, instance_npcname("Sad Neoron's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,206,202,3 script Spyder's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,206,202,3 script Spyder's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,206,200,0 script Spyder's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b5_b14",
"Depressed Whisper: Now it's all over with the second deepest forest. Gardeners are dying out-",
- "Spyder";
+ "Spyder");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),209,200,"Spyder the Eight-Legged",2132,1,instance_npcname("Spyder's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 209, 200, _("Spyder the Eight-Legged"), POM_SPIDER, 1, instance_npcname("Spyder's Garden Tree")+"::OnMyMobDead");
end;
OnTimer5000:
- mapannounce instance_mapname("1@mist"),"Roaring Whisper: The path is about to open. The tight bolts have been removed!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Roaring Whisper: The path is about to open. The tight bolts have been removed!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer9000:
- mapannounce instance_mapname("1@mist"),"Roaring Whisper: A forest opened, another opened, and the other is going to open as well. Tito and Pumba, they are heading your way!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Roaring Whisper: A forest opened, another opened, and the other is going to open as well. Tito and Pumba, they are heading your way!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer13000:
- mapannounce instance_mapname("1@mist"),"Roaring Whisper: Where you get after wandering around, around and around, everybody you've met while wandering around, around and around,",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Roaring Whisper: Where you get after wandering around, around and around, everybody you've met while wandering around, around and around,"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer17000:
- mapannounce instance_mapname("1@mist"),"Roaring Whisper: all the gardeners will be waiting for you, with their clippers in their hands-!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
- stopnpctimer;
+ mapannounce(instance_mapname("1@mist"), _("Roaring Whisper: all the gardeners will be waiting for you, with their clippers in their hands-!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
+ stopnpctimer();
end;
OnMyMobDead:
end;
}
-1@mist,96,288,3 script Tito's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,96,288,3 script Tito's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,95,287,0 script Tito's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"c1_c13-1",
"Tito's Cry: *sob* *sob* Tito's gone now! Tito's done for! Boo hoo!!",
- "Tito";
+ "Tito");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),264,291,"Tito the Flipper",2133,1,instance_npcname("Tito's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 264, 291, _("Tito the Flipper"), ANGRA_MANTIS, 1, instance_npcname("Tito's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,326,325,3 script Pumba's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,326,325,3 script Pumba's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,324,325,0 script Pumba's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"c13-3_c4",
"Roaring Whisper: Tito the Hard Worker was defeated! Stop playing and go to work, Tete! Start working!",
- "Pumba";
+ "Pumba");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),309,165,"Diligent Pumba",2134,1,instance_npcname("Pumba's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 309, 165, _("Diligent Pumba"), PARUS, 1, instance_npcname("Pumba's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,278,345,3 script Tete's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,278,345,3 script Tete's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,280,344,0 script Tete's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"c19_c4",
"Whisper: They are strong, strong indeed. What are we going to do now? Are there any gardeners left? Are there any?",
- "Tete";
+ "Tete");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),277,343,"Carefree Tete",2136,1,instance_npcname("Tete's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 277, 343, _("Carefree Tete"), LITTLE_FATUM, 1, instance_npcname("Tete's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
1@mist,345,186,0 script The Gardeners' Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"#to_bif02",
"Roaring Whisper: The forest will remember you! It will remember you, the one who broke the clippers of all the gardeners!",
- "Gardeners: We're not dead, yet!!!!",1;
+ "Gardeners: We're not dead, yet!!!!", 1);
end;
OnInstanceInit:
.@map$ = instance_mapname("1@mist");
- monster .@map$,318,137,"Baby Tom",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,321,137,"Tomba the Baby",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,324,137,"Exhausted Remi",2137,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,319,135,"Rem the Exhausted",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,323,135,"Ron the Ex-Gardener",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,320,133,"Rover the Strutter",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,323,133,"Mona the Seedpicker",2133,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,317,132,"Timid Namon",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,326,132,"Indifferent Neoron",2137,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,317,129,"Spyder the Seven-Legged",2132,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,320,129,"Tito the Flapper",2133,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,324,129,"Lazy Pumba",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,327,129,"Careless Tete",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster(.@map$, 318, 137, _("Baby Tom"), LITTLE_FATUM, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 321, 137, _("Tomba the Baby"), LITTLE_FATUM, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 324, 137, _("Exhausted Remi"), MIMING, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 319, 135, _("Rem the Exhausted"), LITTLE_FATUM, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 323, 135, _("Ron the Ex-Gardener"), PARUS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 320, 133, _("Rover the Strutter"), PARUS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 323, 133, _("Mona the Seedpicker"), ANGRA_MANTIS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 317, 132, _("Timid Namon"), PARUS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 326, 132, _("Indifferent Neoron"), MIMING, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 317, 129, _("Spyder the Seven-Legged"), POM_SPIDER, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 320, 129, _("Tito the Flapper"), ANGRA_MANTIS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 324, 129, _("Lazy Pumba"), PARUS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 327, 129, _("Careless Tete"), LITTLE_FATUM, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
1@mist,73,290,0 script Mysterious Flower#1 CLEAR_NPC,{
- specialeffect EF_LEVEL99_4;
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
- getitem Mysterious_Seed,1;
+ specialeffect(EF_LEVEL99_4);
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ getitem(Mysterious_Seed, 1);
end;
}
+
1@mist,69,295,0 duplicate(Mysterious Flower#1) Mysterious Flower#2 CLEAR_NPC
1@mist,62,291,0 duplicate(Mysterious Flower#1) Mysterious Flower#3 CLEAR_NPC
1@mist,54,293,0 duplicate(Mysterious Flower#1) Mysterious Flower#4 CLEAR_NPC
@@ -516,420 +559,432 @@ OnMyMobDead:
1@mist,2,2,0 script #Dragon Herder CLEAR_NPC,{
end;
OnInstanceInit:
- switch(rand(1,6)) {
- case 1: setarray .@c[0],77,240; break;
- case 2: setarray .@c[0],147,261; break;
- case 3: setarray .@c[0],182,263; break;
- case 4: setarray .@c[0],194,350; break;
- case 5: setarray .@c[0],268,183; break;
- case 6: setarray .@c[0],65,278; break;
+ switch (rand(1, 6)) {
+ case 1:
+ setarray .@c[0], 77, 240;
+ break;
+ case 2:
+ setarray .@c[0], 147, 261;
+ break;
+ case 3:
+ setarray .@c[0], 182, 263;
+ break;
+ case 4:
+ setarray .@c[0], 194, 350;
+ break;
+ case 5:
+ setarray .@c[0], 268, 183;
+ break;
+ case 6:
+ setarray .@c[0], 65, 278;
+ break;
}
- monster instance_mapname("1@mist"),.@c[0],.@c[1],"Wandering Purple Dragon",2131,1,instance_npcname("#Dragon Herder")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), .@c[0], .@c[1], _("Wandering Purple Dragon"), LOST_DRAGON, 1, instance_npcname("#Dragon Herder")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- if (mobcount(.@map$,instance_npcname("#Dragon Herder")+"::OnMyMobDead") == 0) {
- donpcevent instance_npcname("Collapsed Girl#mist")+"::OnEnable";
- donpcevent instance_npcname("Mysterious Young Man#mis")+"::OnEnable";
- donpcevent instance_npcname("Loki#mist")+"::OnEnable";
- mapannounce .@map$,"The Dragon's Cry: Am I being punished... for abandoning the way... of the guardian...?",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
- disablenpc instance_npcname("#Dragon Herder");
- initnpctimer;
+ if (mobcount(.@map$, instance_npcname("#Dragon Herder")+"::OnMyMobDead") == 0) {
+ donpcevent(instance_npcname("Collapsed Girl#mist")+"::OnEnable");
+ donpcevent(instance_npcname("Mysterious Young Man#mis")+"::OnEnable");
+ donpcevent(instance_npcname("Loki#mist")+"::OnEnable");
+ mapannounce(.@map$, _("The Dragon's Cry: Am I being punished... for abandoning the way... of the guardian...?"), bc_map, C_YELLOW); //FW_NORMAL 12 0 0
+ disablenpc(instance_npcname("#Dragon Herder"));
+ initnpctimer();
}
end;
OnTimer3000:
- stopnpctimer;
- mapannounce instance_mapname("1@mist"),"Voice in your head: ...Will you... save... me... please......?",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+ stopnpctimer();
+ mapannounce(instance_mapname("1@mist"), _("Voice in your head: ...Will you... save... me... please......?"), bc_map, C_YELLOW); //FW_NORMAL 12 0 0
end;
}
1@mist,97,30,3 script Mysterious Young Man#mis 4_M_ROKI2,{
if (BaseLevel < 98) {
- mes "[Mysterious Young Man]";
- mes "Huh? Do you plan to pass through here?";
- mes ".....I'm afraid it's beyond your ability, but I won't meddle in your affairs.";
- mes "We'll meet again, if you survive.";
- close;
+ mes("[Mysterious Young Man]");
+ mes("Huh? Do you plan to pass through here?");
+ mes(".....I'm afraid it's beyond your ability, but I won't meddle in your affairs.");
+ mes("We'll meet again, if you survive.");
+ close();
}
if (ep14_1_mistwoods == 0) {
if (ep13_3_secret > 23) {
- mes "[Mysterious Young Man]";
- mes "You... I remember seeing you at the camp.";
- mes "The information you gave on Ahat was useful.";
- mes "Thanks!";
- next;
- mes "[Mysterious Young Man]";
- mes "But do you plan to pass through here?";
- mes "What good is it to go across Bifrost?";
- next;
+ mes("[Mysterious Young Man]");
+ mes("You... I remember seeing you at the camp.");
+ mes("The information you gave on Ahat was useful.");
+ mes("Thanks!");
+ next();
+ mes("[Mysterious Young Man]");
+ mes("But do you plan to pass through here?");
+ mes("What good is it to go across Bifrost?");
+ next();
} else {
- mes "[Mysterious Young Man]";
- mes "Do you plan to pass through here?";
- mes "I will advise against it if you're just curious.";
- mes "It will only bring about your untimely death...";
- next;
+ mes("[Mysterious Young Man]");
+ mes("Do you plan to pass through here?");
+ mes("I will advise against it if you're just curious.");
+ mes("It will only bring about your untimely death...");
+ next();
}
- mes "[Mysterious Young Man]";
- mes "If you are determined to pass through here,";
- mes "I will ask for your help with something.";
- next;
+ mes("[Mysterious Young Man]");
+ mes("If you are determined to pass through here,");
+ mes("I will ask for your help with something.");
+ next();
select("Who are you?");
- mes "[Loki]";
- mes "Loki... from the Assassin's Guild.";
- mes "That's my name.";
- mes "And yours?";
- next;
- mes "["+strcharinfo(PC_NAME)+"]";
- mes "....";
- mes "...."+strcharinfo(PC_NAME)+" sir.";
- next;
- mes "[Loki]";
- mes "I see. "+strcharinfo(PC_NAME)+".";
- mes "I'm asking you again.";
- mes "Do you plan to pass through this forest?";
- next;
+ mes("[Loki]");
+ mes("Loki... from the Assassin's Guild.");
+ mes("That's my name.");
+ mes("And yours?");
+ next();
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("....");
+ mesf("....%s sir.", strcharinfo(PC_NAME));
+ next();
+ mes("[Loki]");
+ mesf("I see. %s.", strcharinfo(PC_NAME));
+ mes("I'm asking you again.");
+ mes("Do you plan to pass through this forest?");
+ next();
switch(select("Yes, I do.", "No, I don't.")) {
case 1:
- mes "[Loki]";
- mes "Then I'll ask you a question.";
- mes "Have you ever seen a guard... a girl with purple hair?";
- next;
+ mes("[Loki]");
+ mes("Then I'll ask you a question.");
+ mes("Have you ever seen a guard... a girl with purple hair?");
+ next();
switch(select("No, I haven't.", "Yes, I might have...")) {
case 1:
- mes "[Loki]";
- mes "So you haven't.";
- mes "You're telling the truth.";
- next;
+ mes("[Loki]");
+ mes("So you haven't.");
+ mes("You're telling the truth.");
+ next();
break;
case 2:
- mes "[Loki]";
- mes "Wait.";
- mes "(Loki comes closer.)";
- mes "... No.";
- mes "You're telling the truth.";
- next;
+ mes("[Loki]");
+ mes("Wait.");
+ mes("(Loki comes closer.)");
+ mes("... No.");
+ mes("You're telling the truth.");
+ next();
break;
}
- mes "[Loki]";
- mes "Now we have to say goodbye here.";
- mes "If you survive this forest, of course.";
+ mes("[Loki]");
+ mes("Now we have to say goodbye here.");
+ mes("If you survive this forest, of course.");
ep14_1_mistwoods = 2;
- setquest 7212;
- close;
+ setquest(7212);
+ close();
case 2:
- mes "[Loki]";
- mes "I understand.";
- mes "Step back if you aren't ready.";
- mes "This forest doesn't like strangers.";
+ mes("[Loki]");
+ mes("I understand.");
+ mes("Step back if you aren't ready.");
+ mes("This forest doesn't like strangers.");
ep14_1_mistwoods = 1;
- close;
+ close();
}
} else if (ep14_1_mistwoods == 1) {
- mes "[Loki]";
- mes "I told you - step back if you don't want to die.";
- mes "It's not easy going through the forest.";
- mes "It may cost you your life.";
- next;
+ mes("[Loki]");
+ mes("I told you - step back if you don't want to die.");
+ mes("It's not easy going through the forest.");
+ mes("It may cost you your life.");
+ next();
switch(select("Okay.", "What do you want?")) {
case 1:
- mes "- When you step back,";
- mes "Loki nods slightly and then looks away. -";
- close;
+ mes("- When you step back,");
+ mes("Loki nods slightly and then looks away. -");
+ close();
case 2:
- mes "[Loki]";
- mes "I'm looking for somebody.";
- mes "Have you ever seen a guard... a girl with purple hair?";
- next;
+ mes("[Loki]");
+ mes("I'm looking for somebody.");
+ mes("Have you ever seen a guard... a girl with purple hair?");
+ next();
switch(select("No, I haven't.", "Yes, I might have...")) {
case 1:
- mes "[Loki]";
- mes "So you haven't.";
- mes "You're telling the truth.";
- next;
+ mes("[Loki]");
+ mes("So you haven't.");
+ mes("You're telling the truth.");
+ next();
break;
case 2:
- mes "[Loki]";
- mes "Wait.";
- mes "(Loki comes closer.)";
- mes "... No.";
- mes "You're telling the truth.";
- next;
+ mes("[Loki]");
+ mes("Wait.");
+ mes("(Loki comes closer.)");
+ mes("... No.");
+ mes("You're telling the truth.");
+ next();
break;
}
- mes "[Loki]";
- mes "Now we have to say goodbye here.";
- mes "Hopefully, we will see each other again in Mora.";
+ mes("[Loki]");
+ mes("Now we have to say goodbye here.");
+ mes("Hopefully, we will see each other again in Mora.");
ep14_1_mistwoods = 2;
- setquest 7212;
- close;
+ setquest(7212);
+ close();
}
} else if (ep14_1_mistwoods == 2) {
- mes "[Loki]";
- mes "I don't want to go with you.";
- mes "Hopefully, we will see each other again in Mora.";
- close;
+ mes("[Loki]");
+ mes("I don't want to go with you.");
+ mes("Hopefully, we will see each other again in Mora.");
+ close();
} else if (ep14_1_mistwoods == 3) {
- mes "[Loki]";
- mes "So we meet again.";
- mes "Are you used to this place?";
- mes "Come to the inn in Mora.";
- mes "I have something to give to you.";
- close;
+ mes("[Loki]");
+ mes("So we meet again.");
+ mes("Are you used to this place?");
+ mes("Come to the inn in Mora.");
+ mes("I have something to give to you.");
+ close();
} else {
- mes "[Loki]";
- mes "We're seeing a lot of each other these days.";
- mes "It seems you are completely comfortable with the place.";
- mes "You'd better not be too proud of yourself.";
- close;
+ mes("[Loki]");
+ mes("We're seeing a lot of each other these days.");
+ mes("It seems you are completely comfortable with the place.");
+ mes("You'd better not be too proud of yourself.");
+ close();
}
end;
OnEnable:
- enablenpc instance_npcname("Mysterious Young Man#mis");
+ enablenpc(instance_npcname("Mysterious Young Man#mis"));
end;
OnDisable:
- disablenpc instance_npcname("Mysterious Young Man#mis");
+ disablenpc(instance_npcname("Mysterious Young Man#mis"));
end;
}
1@mist,183,304,3 script Loki#mist 4_M_ROKI2,{
if (ep14_1_mistwoods < 2) {
- mes "[Loki]";
- mes "An adventurer in the forest.";
- mes ".....";
- mes "You can go to Mora through this forest.";
- close;
+ mes("[Loki]");
+ mes("An adventurer in the forest.");
+ mes(".....");
+ mes("You can go to Mora through this forest.");
+ close();
} else if (ep14_1_mistwoods == 2) {
- mes "[Loki]";
- mes "Is it you that took care of this unruly girl?";
- mes "I guess I have to thank you.";
- mes "You've calmed her down.";
- next;
+ mes("[Loki]");
+ mes("Is it you that took care of this unruly girl?");
+ mes("I guess I have to thank you.");
+ mes("You've calmed her down.");
+ next();
select("What's happening?", "This girl...?");
- mes "[Loki]";
- mes "You might be able to change your appearance, but you cannot change your unique, innate light.";
- mes "A scent strong enough to burn your nose.";
- next;
- mes "[Loki]";
- mes "This is Nydhogg, the Guardian of Yggdrasil,";
- mes "whom I was looking for.";
- mes "Now she won't wander around crazy any more.";
- next;
+ mes("[Loki]");
+ mes("You might be able to change your appearance, but you cannot change your unique, innate light.");
+ mes("A scent strong enough to burn your nose.");
+ next();
+ mes("[Loki]");
+ mes("This is Nydhogg, the Guardian of Yggdrasil,");
+ mes("whom I was looking for.");
+ mes("Now she won't wander around crazy any more.");
+ next();
select("What are you going to do now?");
- mes "[Loki]";
- mes "I'll wait for her to wake up and get out of this forest.";
- mes "I can manage it on my own.";
- mes "I'll see you in Mora.";
+ mes("[Loki]");
+ mes("I'll wait for her to wake up and get out of this forest.");
+ mes("I can manage it on my own.");
+ mes("I'll see you in Mora.");
ep14_1_mistwoods = 3;
- erasequest 7212;
- setquest 7213;
- close;
+ erasequest(7212);
+ setquest(7213);
+ close();
} else if (ep14_1_mistwoods == 3) {
- mes "[Loki]";
- mes "I don't want to go with you.";
- mes "I can manage her on my own.";
- mes "If you have something to say, say it after we get out of the forest.";
- close;
+ mes("[Loki]");
+ mes("I don't want to go with you.");
+ mes("I can manage her on my own.");
+ mes("If you have something to say, say it after we get out of the forest.");
+ close();
} else {
- mes "[Loki]";
- mes "I don't want to go with you.";
- mes "If you have something to say, say it after we get out of the forest.";
- close;
+ mes("[Loki]");
+ mes("I don't want to go with you.");
+ mes("If you have something to say, say it after we get out of the forest.");
+ close();
}
end;
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Loki#mist");
+ disablenpc(instance_npcname("Loki#mist"));
end;
OnEnable:
- enablenpc instance_npcname("Loki#mist");
+ enablenpc(instance_npcname("Loki#mist"));
end;
}
1@mist,181,303,3 script Collapsed Girl#mist 4_F_NYDHOG2,{
- mes "You see a girl with mysterious hair collapsed on the ground.";
- mes "As you approach her, you smell the scent of flowers so strong that it makes you dizzy.";
- close;
+ mes("You see a girl with mysterious hair collapsed on the ground.");
+ mes("As you approach her, you smell the scent of flowers so strong that it makes you dizzy.");
+ close();
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Collapsed Girl#mist");
+ disablenpc(instance_npcname("Collapsed Girl#mist"));
end;
OnEnable:
- enablenpc instance_npcname("Collapsed Girl#mist");
+ enablenpc(instance_npcname("Collapsed Girl#mist"));
end;
}
mora,46,152,5 script Flower Smelling Lady 4_F_NYDHOG,{
if (ep14_1_mistwoods < 3) {
- mes "[Flower Smell Lady]";
- mes "I need rest.";
- mes "I'm too tired to talk to you.";
- mes "I'm sorry.";
- close;
+ mes("[Flower Smell Lady]");
+ mes("I need rest.");
+ mes("I'm too tired to talk to you.");
+ mes("I'm sorry.");
+ close();
} else if (ep14_1_mistwoods == 3) {
- mes "[Nydhogg the Guardian]";
- mes "I've been waiting for you.";
- mes "I'm still confused, but I know what I did wrong.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "If it weren't for you, I would still be wandering in the abyssal darkness.";
- mes "I thank you, from the bottom of my heart.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "I'm ashamed of myself, falling for the sweet but empty words that came to me in my loneliness.";
- mes "....";
- next;
- mes "[Nydhogg the Guardian]";
- mes "I don't deserve to be a guardian any more.";
- mes "A dragon gone crazy is not a guardian any more.";
- next;
- mes "[Loki]";
- mes "Yggdrasil doesn't think so.";
- mes "Nidi, don't forget your duties.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "Are you...?";
- mes "I see...";
- mes "I thought I was forsaken...";
- next;
- mes "The Guardian slowly looked away as if deep in thought.";
+ mes("[Nydhogg the Guardian]");
+ mes("I've been waiting for you.");
+ mes("I'm still confused, but I know what I did wrong.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("If it weren't for you, I would still be wandering in the abyssal darkness.");
+ mes("I thank you, from the bottom of my heart.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("I'm ashamed of myself, falling for the sweet but empty words that came to me in my loneliness.");
+ mes("....");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("I don't deserve to be a guardian any more.");
+ mes("A dragon gone crazy is not a guardian any more.");
+ next();
+ mes("[Loki]");
+ mes("Yggdrasil doesn't think so.");
+ mes("Nidi, don't forget your duties.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("Are you...?");
+ mes("I see...");
+ mes("I thought I was forsaken...");
+ next();
+ mes("The Guardian slowly looked away as if deep in thought.");
ep14_1_mistwoods = 4;
- close2;
+ close2();
} else if (ep14_1_mistwoods == 4) {
- mes "- He seems to be deep in thought. -";
- close;
+ mes("- He seems to be deep in thought. -");
+ close();
} else {
- mes "[Nydhogg the Guardian]";
- mes "I haven't gotten all of my powers back.";
- mes "I'm sorry I can't protect you.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "Loki said...";
- mes "that I won't cry from loneliness again,";
- mes "that I will always have new friends like you...";
- next;
- mes "[Nydhogg the Guardian]";
- mes "...I've lost everything, but I'm happy now.";
- close;
+ mes("[Nydhogg the Guardian]");
+ mes("I haven't gotten all of my powers back.");
+ mes("I'm sorry I can't protect you.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("Loki said...");
+ mes("that I won't cry from loneliness again,");
+ mes("that I will always have new friends like you...");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("...I've lost everything, but I'm happy now.");
+ close();
}
}
mora,48,152,3 script Sharp Eyed Man 4_M_ROKI2,{
- if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 1000) {
- mes "- You have too many items to do this quest. -";
- close;
+ if (checkweight(Knife, 1) == 0 || MaxWeight - Weight < 1000) {
+ mes("- You have too many items to do this quest. -");
+ close();
}
if (ep14_1_mistwoods < 3) {
- mes "He won't look at you. It's like he's not interested at all.";
- close;
+ mes("He won't look at you. It's like he's not interested at all.");
+ close();
} else if (ep14_1_mistwoods == 3) {
- mes "[Loki]";
- mes "So you've passed through the forest.";
- mes "It seems Niddy has something to say to you.";
- close;
+ mes("[Loki]");
+ mes("So you've passed through the forest.");
+ mes("It seems Niddy has something to say to you.");
+ close();
} else if (ep14_1_mistwoods == 4) {
- mes "[Loki]";
- mes "Nydhogg was one of the guardians of the World Tree.";
- mes "But he abandoned his duties as a guardian when he gave in to Morroc's temptation.";
- next;
- mes "[Loki]";
- mes "Some fools performed a ritual to break the seal that held Morroc.";
- mes "But the ritual didn't work right. The servant of Morroc failed to break the seal.";
- next;
- mes "[Loki]";
- mes "But the seal is so weak that it can break open any time.";
- mes "It's Yggdrasil the World Tree's will that has kept the seal from breaking.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "That's right. The power of the World Tree is linked to the whole world.";
- mes "When the bond between the guardians and Yggdrasil broke, Yggdrasil became unstable.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "That's why all those disasters happened to Yggdrasil.";
- mes "As the World Tree became unstable, the influence it had on the seal grew weak.";
- next;
- mes "[Loki]";
- mes "And Morroc broke himself free from the seal.";
- mes "Although it seems like he used most of his powers just to break the seal...";
- next;
- mes "[Nydhogg the Guardian]";
- mes "It's all my fault.";
- mes "I couldn't break free from Morroc's temptation.";
- mes "For too... too long...";
- next;
- mes "[Nydhogg the Guardian]";
- mes "...I wanted to be relieved of my thousands of years of loneliness.";
- mes "I wasn't in my right mind then.";
- mes "It was none other than I that broke my bond with Yggdrasil.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "I lost control of myself, and did what I shouldn't have done.";
- mes "The other side of me became a shadow and a reckless tyrant.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "Facing the world, I realized...";
- mes "I felt too great a sense of loss... it was much more painful than the loneliness I had endured for thousands of years.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "That's how I was left alone.";
- mes "I felt too great a sense of loss... it was much more painful than the loneliness I had endured for thousands of years.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "So I became a sinner, forgotten to the world.";
- next;
- mes "[Loki]";
- mes "It's not too late.";
- mes "You're still a guardian.";
- mes "You still have things to do.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "...Oh, yes. It's late, but I have to fulfill my duties as a guardian.";
- mes "Now I know. I'll destroy Morroc with my own hands.";
- mes "I will fulfill my duties as a guardian.";
- next;
+ mes("[Loki]");
+ mes("Nydhogg was one of the guardians of the World Tree.");
+ mes("But he abandoned his duties as a guardian when he gave in to Morroc's temptation.");
+ next();
+ mes("[Loki]");
+ mes("Some fools performed a ritual to break the seal that held Morroc.");
+ mes("But the ritual didn't work right. The servant of Morroc failed to break the seal.");
+ next();
+ mes("[Loki]");
+ mes("But the seal is so weak that it can break open any time.");
+ mes("It's Yggdrasil the World Tree's will that has kept the seal from breaking.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("That's right. The power of the World Tree is linked to the whole world.");
+ mes("When the bond between the guardians and Yggdrasil broke, Yggdrasil became unstable.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("That's why all those disasters happened to Yggdrasil.");
+ mes("As the World Tree became unstable, the influence it had on the seal grew weak.");
+ next();
+ mes("[Loki]");
+ mes("And Morroc broke himself free from the seal.");
+ mes("Although it seems like he used most of his powers just to break the seal...");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("It's all my fault.");
+ mes("I couldn't break free from Morroc's temptation.");
+ mes("For too... too long...");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("...I wanted to be relieved of my thousands of years of loneliness.");
+ mes("I wasn't in my right mind then.");
+ mes("It was none other than I that broke my bond with Yggdrasil.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("I lost control of myself, and did what I shouldn't have done.");
+ mes("The other side of me became a shadow and a reckless tyrant.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("Facing the world, I realized...");
+ mes("I felt too great a sense of loss... it was much more painful than the loneliness I had endured for thousands of years.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("That's how I was left alone.");
+ mes("I felt too great a sense of loss... it was much more painful than the loneliness I had endured for thousands of years.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("So I became a sinner, forgotten to the world.");
+ next();
+ mes("[Loki]");
+ mes("It's not too late.");
+ mes("You're still a guardian.");
+ mes("You still have things to do.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("...Oh, yes. It's late, but I have to fulfill my duties as a guardian.");
+ mes("Now I know. I'll destroy Morroc with my own hands.");
+ mes("I will fulfill my duties as a guardian.");
+ next();
switch(select("You're not alone.", "Those are very important duties.")) {
case 1:
- mes "[Nydhogg the Guardian]";
- mes "You're right.";
- mes "It may be why I haven't been forsaken - to realize that I'm not alone.";
- mes "You are a kind soul.";
- next;
+ mes("[Nydhogg the Guardian]");
+ mes("You're right.");
+ mes("It may be why I haven't been forsaken - to realize that I'm not alone.");
+ mes("You are a kind soul.");
+ next();
break;
case 2:
- mes "[Nydhogg the Guardian]";
- mes "But this is my atonement.";
- mes "I'm happy, though.";
- mes "I don't have to fight the loneliness any more.";
- next;
+ mes("[Nydhogg the Guardian]");
+ mes("But this is my atonement.");
+ mes("I'm happy, though.");
+ mes("I don't have to fight the loneliness any more.");
+ next();
break;
}
- mes "[Nydhogg the Guardian]";
- mes strcharinfo(PC_NAME)+"...";
- mes "Thanks for listening to my long story.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "It's what I always have with me.";
- mes "I'm sure it will protect you someday.";
- next;
- mes "[Loki]";
- mes "(Removes his scarf from around his neck and hands it to you.)";
- next;
- mes "[Nydhogg the Guardian]";
- mes "May the blessing of Mother Yggdrasil be with you...";
+ mes("[Nydhogg the Guardian]");
+ mesf("%s...", strcharinfo(PC_NAME));
+ mes("Thanks for listening to my long story.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("It's what I always have with me.");
+ mes("I'm sure it will protect you someday.");
+ next();
+ mes("[Loki]");
+ mes("(Removes his scarf from around his neck and hands it to you.)");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("May the blessing of Mother Yggdrasil be with you...");
ep14_1_mistwoods = 10;
- completequest 7213;
- getitem Muffler_Of_Roki,1;
- getitem Pendant_Of_Guardian,1;
- getexp 400000,400000;
- close;
+ completequest(7213);
+ getitem(Muffler_Of_Roki, 1);
+ getitem(Pendant_Of_Guardian, 1);
+ getexp(400000, 400000);
+ close();
} else {
- mes "[Loki]";
- mes "I'll be staying here for a while.";
- mes "We may meet again.";
- next;
- mes "[Loki]";
- mes "The day when Morroc reveals his despicable nature...";
- mes "I will be waiting for him.";
- close;
+ mes("[Loki]");
+ mes("I'll be staying here for a while.");
+ mes("We may meet again.");
+ next();
+ mes("[Loki]");
+ mes("The day when Morroc reveals his despicable nature...");
+ mes("I will be waiting for him.");
+ close();
}
}
@@ -937,98 +992,98 @@ mora,48,152,3 script Sharp Eyed Man 4_M_ROKI2,{
1@mist,1,1,0 script #Mist Mobs Respawn1 CLEAR_NPC,{
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),0,0,"Miming",2137,15,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 0, 0, _("Miming"), MIMING, 15, instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- .@num_mobs = 15 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead");
+ .@num_mobs = 15 - mobcount(.@map$, instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster .@map$,0,0,"Miming",2137,.@num_mobs,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead";
+ monster(.@map$, 0, 0, _("Miming"), MIMING, .@num_mobs, instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead");
end;
}
1@mist,1,2,0 script #Mist Mobs Respawn2 CLEAR_NPC,{
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),0,0,"Pom Spider",2132,35,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 0, 0, _("Pom Spider"), POM_SPIDER, 35, instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- .@num_mobs = 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead");
+ .@num_mobs = 35 - mobcount(.@map$, instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster .@map$,0,0,"Pom Spider",2132,.@num_mobs,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead";
+ monster(.@map$, 0, 0, _("Pom Spider"), POM_SPIDER, .@num_mobs, instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead");
end;
}
1@mist,1,3,0 script #Mist Mobs Respawn3 CLEAR_NPC,{
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),0,0,"Angra Mantis",2133,35,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 0, 0, _("Angra Mantis"), ANGRA_MANTIS, 35, instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- .@num_mobs = 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead");
+ .@num_mobs = 35 - mobcount(.@map$, instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster .@map$,0,0,"Angra Mantis",2133,.@num_mobs,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead";
+ monster(.@map$, 0, 0, _("Angra Mantis"), ANGRA_MANTIS, .@num_mobs, instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead");
end;
}
1@mist,1,4,0 script #Mist Mobs Respawn4 CLEAR_NPC,{
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),0,0,"Parus",2134,35,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 0, 0, _("Parus"), PARUS, 35, instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- .@num_mobs = 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead");
+ .@num_mobs = 35 - mobcount(.@map$, instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster .@map$,0,0,"Parus",2134,.@num_mobs,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead";
+ monster(.@map$, 0, 0, _("Parus"), PARUS, .@num_mobs, instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead");
end;
}
1@mist,1,5,0 script #Mist Mobs Respawn5 CLEAR_NPC,{
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),0,0,"Little Fatum",2136,15,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 0, 0, _("Little Fatum"), LITTLE_FATUM, 15, instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- .@num_mobs = 15 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead");
+ .@num_mobs = 15 - mobcount(.@map$, instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster .@map$,0,0,"Little Fatum",2136,.@num_mobs,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead";
+ monster(.@map$, 0, 0, _("Little Fatum"), LITTLE_FATUM, .@num_mobs, instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead");
end;
}
1@mist,1,6,0 script #Fragments of Memory CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Fragments of Memory");
- monster instance_mapname("1@mist"),0,0,"Guardian's Fragments of Memory",2138,15;
+ disablenpc(instance_npcname("#Fragments of Memory"));
+ monster(instance_mapname("1@mist"), 0, 0, _("Guardian's Fragments of Memory"), NYDHOG_MEMORY1_1, 15);
end;
}
//== Warp Portals ==========================================
bif_fild01,38,374,0 script Mysterious Flower#ep14_1 CLEAR_NPC,{
- mes "It's a giant flower with mysterious energy.";
+ mes("It's a giant flower with mysterious energy.");
if (countitem(Mysterious_Seed)) {
- mes "It's reacting to the Mysterious Flower Seeds you have with you.";
- next;
+ mes("It's reacting to the Mysterious Flower Seeds you have with you.");
+ next();
switch(select("Observe the reaction.", "Stop the reaction.")) {
case 1:
- mes "The flower started to shake violently";
- mes "and swing forward as if trying to send the seeds as far away as possible!!!";
- close2;
- delitem Mysterious_Seed,1;
- warp "bif_fild02",160,230;
+ mes("The flower started to shake violently");
+ mes("and swing forward as if trying to send the seeds as far away as possible!!!");
+ close2();
+ delitem(Mysterious_Seed, 1);
+ warp("bif_fild02", 160, 230);
end;
case 2:
- mes "As you hold onto the Mysterious Flower Seeds tightly,";
- mes "the flower shook violently and then became calm again.";
- close;
+ mes("As you hold onto the Mysterious Flower Seeds tightly,");
+ mes("the flower shook violently and then became calm again.");
+ close();
}
}
- mes "It looks like it has some special use, but you're not sure what.";
- close;
+ mes("It looks like it has some special use, but you're not sure what.");
+ close();
}
1@mist,104,23,0 warp #to_bif01 1,1,bif_fild01,160,352
@@ -1036,9 +1091,9 @@ bif_fild01,38,374,0 script Mysterious Flower#ep14_1 CLEAR_NPC,{
1@mist,109,70,0 script a1_a2 WARPNPC,1,1,{
end;
OnTouch:
- if (!questprogress(7211,PLAYTIME))
- setquest 7211;
- warp instance_mapname("1@mist"),116,40;
+ if (!questprogress(7211, PLAYTIME))
+ setquest(7211);
+ warp(instance_mapname("1@mist"), 116, 40);
end;
}
@@ -1140,21 +1195,21 @@ OnTouch:
1@mist,1,1,0 script #mist_warp_init CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("a25_a18-1");
- disablenpc instance_npcname("a27-2_af1-2");
- disablenpc instance_npcname("a15-2_a4-1");
- disablenpc instance_npcname("a4-2_a11");
- disablenpc instance_npcname("b4-2_b2");
- disablenpc instance_npcname("b7_bf1-2");
- disablenpc instance_npcname("b31_b16");
- disablenpc instance_npcname("b27-3_bN-1");
- disablenpc instance_npcname("b6-1_b33");
- disablenpc instance_npcname("b5_b14");
- disablenpc instance_npcname("c1_c13-1");
- disablenpc instance_npcname("c13-3_c4");
- disablenpc instance_npcname("c19_c4");
- disablenpc instance_npcname("#to_bif02");
- disablenpc instance_npcname("#mist_warp_init");
+ disablenpc(instance_npcname("a25_a18-1"));
+ disablenpc(instance_npcname("a27-2_af1-2"));
+ disablenpc(instance_npcname("a15-2_a4-1"));
+ disablenpc(instance_npcname("a4-2_a11"));
+ disablenpc(instance_npcname("b4-2_b2"));
+ disablenpc(instance_npcname("b7_bf1-2"));
+ disablenpc(instance_npcname("b31_b16"));
+ disablenpc(instance_npcname("b27-3_bN-1"));
+ disablenpc(instance_npcname("b6-1_b33"));
+ disablenpc(instance_npcname("b5_b14"));
+ disablenpc(instance_npcname("c1_c13-1"));
+ disablenpc(instance_npcname("c13-3_c4"));
+ disablenpc(instance_npcname("c19_c4"));
+ disablenpc(instance_npcname("#to_bif02"));
+ disablenpc(instance_npcname("#mist_warp_init"));
end;
}
1@mist,247,123,0 warp a25_a18-1 1,1,1@mist,164,66 //Tom
diff --git a/npc/re/instances/MalangdoCulvert.txt b/npc/re/instances/MalangdoCulvert.txt
index e954c9b15..2e51f0fd5 100644
--- a/npc/re/instances/MalangdoCulvert.txt
+++ b/npc/re/instances/MalangdoCulvert.txt
@@ -37,245 +37,261 @@
//== Quest NPCs ============================================
mal_in01,172,28,2 script Albo#mal 4_CAT_SAILOR5,{
- if (checkweight(Knife,1) == 0) {
- mes "You have too many kinds of objects. Try to continue after reducing those objects.";
- close;
+ if (checkweight(Knife, 1) == 0) {
+ mes("You have too many kinds of objects. Try to continue after reducing those objects.");
+ close();
}
if (MaxWeight - Weight < 1000) {
- mes "You have too many heavy objects. Try to continue after reducing your weight.";
- close;
+ mes("You have too many heavy objects. Try to continue after reducing your weight.");
+ close();
}
if (BaseLevel < 90) {
- mes "[Albo]";
- mes "Who are you?";
- mes "We don't need a weaking!!";
- close;
+ mes("[Albo]");
+ mes("Who are you?");
+ mes("We don't need a weaking!!");
+ close();
}
- setarray .@quests[0],12271,12272,12273,12274;
- setarray .@names$[0],
- "General Culvert Daily Service","^990000Hard Culvert Daily Service^000000",
- "General Culvert Weekly Service","^990000Hard Culvert Weekly Service^000000";
- .@menu$ = "Why are doing this job?:";
+ setarray(.@quests[0], 12271, 12272, 12273, 12274);
+ setarray(.@names$[0],
+ _("General Culvert Daily Service"), _("^990000Hard Culvert Daily Service^000000"),
+ _("General Culvert Weekly Service"), _("^990000Hard Culvert Weekly Service^000000"));
+ .@menu$ = _("Why are doing this job?:");
for(.@i = 0; .@i<4; ++.@i) {
- if (questprogress(.@quests[.@i],PLAYTIME)) {
+ if (questprogress(.@quests[.@i], PLAYTIME)) {
.@status[.@i] = 2;
- .@menu$ += "^aaaaaa- There is no new task -^000000:";
+ .@menu$ += _("^aaaaaa- There is no new task -^000000:");
} else if (.@i%2 && BaseLevel < 140) {
.@status[.@i] = 0;
- .@menu$ += "^aaaaaaCan't take this job because level is too low^000000:";
+ .@menu$ += _("^aaaaaaCan't take this job because level is too low^000000:");
} else {
.@status[.@i] = 1;
.@menu$ += .@names$[.@i]+":";
}
}
- mes "[Albo]";
- mes "We crossed the sea!";
- mes "We are great heroes of Culvert! We do not forgive the seafood that aims at Culvert!";
- next;
- .@i = select(.@menu$)-1;
+ mes("[Albo]");
+ mes("We crossed the sea!");
+ mes("We are great heroes of Culvert! We do not forgive the seafood that aims at Culvert!");
+ next();
+ .@i = select(.@menu$) - 1;
if (.@i == 0) {
- mes "[Albo]";
- mes "We used to be the henchmen of Mr. Missing! We almost became guards of such a historic site.";
- next;
- mes "[Albo]";
- mes "However, when sea water flooded all precious the resources, my dream... all my dreams melted away...";
- next;
- mes "[Albo]";
- mes "We do not forgive the seafood that invaded our territory. I'll eat them with spicy paste!!!";
- next;
- mes "^0000ffAlbo's voice shakes with anger. He smacked his lips when he mentioned spicy paste.^000000";
- close;
+ mes("[Albo]");
+ mes("We used to be the henchmen of Mr. Missing! We almost became guards of such a historic site.");
+ next();
+ mes("[Albo]");
+ mes("However, when sea water flooded all precious the resources, my dream... all my dreams melted away...");
+ next();
+ mes("[Albo]");
+ mes("We do not forgive the seafood that invaded our territory. I'll eat them with spicy paste!!!");
+ next();
+ mes("^0000ffAlbo's voice shakes with anger. He smacked his lips when he mentioned spicy paste.^000000");
+ close();
}
- switch(.@status[.@i-1]) {
+ switch (.@status[.@i - 1]) {
case 0:
- mes "[Albo]";
- mes "That task is really hard for you, so I can't tell you about it. Why don't you find another one?";
- close;
+ mes("[Albo]");
+ mes("That task is really hard for you, so I can't tell you about it. Why don't you find another one?");
+ close();
case 1:
break;
case 2:
- mes "[Albo]";
- mes "I'm sorry. There is no new task yet! If I find any work, I'll tell you so!";
- close;
+ mes("[Albo]");
+ mes("I'm sorry. There is no new task yet! If I find any work, I'll tell you so!");
+ close();
}
- switch(.@i) {
+ switch (.@i) {
case 1: // General Culvert Daily Service
- switch(rand(1,6)) {
- case 1: callsub L_GiveQuest,.@i,12255,12271,"Deep Sea Crab";
- case 2: callsub L_GiveQuest,.@i,12256,12271,"Deep Sea Marse";
- case 3: callsub L_GiveQuest,.@i,12257,12271,"Deep Sea Vadon";
- case 4: callsub L_GiveQuest,.@i,12258,12271,"Deep Sea Shellfish";
- case 5: callsub L_GiveQuest,.@i,12259,12271,"Deep Sea Kukre";
- case 6: callsub L_GiveQuest,.@i,12260,12271,"Deep Sea Cornutus";
+ switch (rand(1, 6)) {
+ case 1:
+ callsub(L_GiveQuest, .@i, 12255, 12271, _("Deep Sea Crab"));
+ case 2:
+ callsub(L_GiveQuest, .@i, 12256, 12271, _("Deep Sea Marse"));
+ case 3:
+ callsub(L_GiveQuest, .@i, 12257, 12271, _("Deep Sea Vadon"));
+ case 4:
+ callsub(L_GiveQuest, .@i, 12258, 12271, _("Deep Sea Shellfish"));
+ case 5:
+ callsub(L_GiveQuest, .@i, 12259, 12271, _("Deep Sea Kukre"));
+ case 6:
+ callsub(L_GiveQuest, .@i, 12260, 12271, _("Deep Sea Cornutus"));
}
case 2: // Hard Culvert Daily Service
- switch(rand(1,6)) {
- case 1: callsub L_GiveQuest,.@i,12261,12272,"Deep Sea Marc";
- case 2: callsub L_GiveQuest,.@i,12262,12272,"Deep Sea Sword Fish";
- case 3: callsub L_GiveQuest,.@i,12263,12272,"Deep Sea Strouf";
- case 4: callsub L_GiveQuest,.@i,12264,12272,"Deep Sea Anolian";
- case 5: callsub L_GiveQuest,.@i,12265,12272,"Deep Sea Obeanue";
- case 6: callsub L_GiveQuest,.@i,12266,12272,"Deep Sea Kapha";
+ switch (rand(1, 6)) {
+ case 1:
+ callsub(L_GiveQuest, .@i, 12261, 12272, _("Deep Sea Marc"));
+ case 2:
+ callsub(L_GiveQuest, .@i, 12262, 12272, _("Deep Sea Sword Fish"));
+ case 3:
+ callsub(L_GiveQuest, .@i, 12263, 12272, _("Deep Sea Strouf"));
+ case 4:
+ callsub(L_GiveQuest, .@i, 12264, 12272, _("Deep Sea Anolian"));
+ case 5:
+ callsub(L_GiveQuest, .@i, 12265, 12272, _("Deep Sea Obeanue"));
+ case 6:
+ callsub(L_GiveQuest, .@i, 12266, 12272, _("Deep Sea Kapha"));
}
case 3: // General Culvert Weekly Service
- switch(rand(1,2)) {
- case 1: callsub L_GiveQuest,.@i,12267,12273,"Weird Coelacanth";
- case 2: callsub L_GiveQuest,.@i,12268,12273,"Gloomy Coelacanth";
+ switch (rand(1, 2)) {
+ case 1:
+ callsub(L_GiveQuest, .@i, 12267, 12273, _("Weird Coelacanth"));
+ case 2:
+ callsub(L_GiveQuest, .@i, 12268, 12273, _("Gloomy Coelacanth"));
}
case 4: // Hard Culvert Weekly Service
- switch(rand(1,2)) {
- case 1: callsub L_GiveQuest,.@i,12269,12274,"Violent Coelacanth";
- case 2: callsub L_GiveQuest,.@i,12270,12274,"Mutant Coelacanth";
+ switch (rand(1, 2)) {
+ case 1:
+ callsub(L_GiveQuest, .@i, 12269, 12274, _("Violent Coelacanth"));
+ case 2:
+ callsub(L_GiveQuest, .@i, 12270, 12274, _("Mutant Coelacanth"));
}
default:
- mes "[Albo]";
- mes "Uh!? Where is the task? Let me find that quickly. You must speak with Madeca!";
- close;
+ mes("[Albo]");
+ mes("Uh!? Where is the task? Let me find that quickly. You must speak with Madeca!");
+ close();
}
end;
-// callsub L_GiveQuest,.@i,<quest 1>,<quest 2>,<monster>;
+// callsub(L_GiveQuest, .@i, <quest 1>, <quest 2>, <monster>);
L_GiveQuest:
- setquest getarg(1);
- setquest getarg(2);
- mes "[Albo]";
- mes "Today, the heroes of Culvert!";
- mes "We raise our voices and set a date for the extermination of ^0000ff"+getarg(3)+"^000000!";
- next;
- mes "[Albo]";
- switch(getarg(0)) {
+ setquest(getarg(1));
+ setquest(getarg(2));
+ mes("[Albo]");
+ mes("Today, the heroes of Culvert!");
+ mesf("We raise our voices and set a date for the extermination of ^0000ff%s^000000!", getarg(3));
+ next();
+ mes("[Albo]");
+ switch (getarg(0)) {
case 1:
case 2:
- mes "Come on, heroes! Don't be afraid of them! Just go on, since it's a one-day mission!";
+ mes("Come on, heroes! Don't be afraid of them! Just go on, since it's a one-day mission!");
break;
case 3:
- mes "I'll give you one week to finish this job! Terminate all of them in Culvert Dungeon, Normal Mode!";
+ mes("I'll give you one week to finish this job! Terminate all of them in Culvert Dungeon, Normal Mode!");
break;
case 4:
- mes "I'll give you one week to finish this job! Terminate all of them in Culvert Dungeon, Hard Mode!";
+ mes("I'll give you one week to finish this job! Terminate all of them in Culvert Dungeon, Hard Mode!");
break;
}
- next;
- mes "You received a request for the Extermination of ^005500"+getarg(3)+"^000000. If you need more details, please check the quest window.";
- close;
+ next();
+ mesf("You received a request for the Extermination of ^005500%s^000000. If you need more details, please check the quest window.", getarg(3));
+ close();
}
mal_in01,172,26,2 script Madeca#mal 4_CAT_SAILOR1,{
- if (checkweight(Knife,1) == 0) {
- mes "You have too many kinds of objects. Try to continue after reducing those objects.";
- close;
+ if (checkweight(Knife, 1) == 0) {
+ mes("You have too many kinds of objects. Try to continue after reducing those objects.");
+ close();
}
if (MaxWeight - Weight < 1000) {
- mes "You have too many heavy objects. Try to continue after reducing your weight.";
- close;
+ mes("You have too many heavy objects. Try to continue after reducing your weight.");
+ close();
}
if (BaseLevel < 90) {
- mes "[Madeca]";
- mes "Karrrrrrr!!";
- mes "Let's have some bad seafood that can be boiled or grilled!";
- next;
- mes "[Madeca]";
- mes "Who are you? You are such a totterer. Even seaweed could kill you!";
- close;
+ mes("[Madeca]");
+ mes("Karrrrrrr!!");
+ mes("Let's have some bad seafood that can be boiled or grilled!");
+ next();
+ mes("[Madeca]");
+ mes("Who are you? You are such a totterer. Even seaweed could kill you!");
+ close();
}
- mes "[Madeca]";
- mes "Oh?";
- mes "You're the one who took care of my big brother Albo's request. It was a hard job!";
- next;
- .@i = select("What are you doing here?", "General Culvert Daily Service Compensation", "Hard Culvert Daily Service Compensation", "General Culvert Weekly Service Compensation", "Hard Culvert Weekly Service Compensation")-1;
+ mes("[Madeca]");
+ mes("Oh?");
+ mes("You're the one who took care of my big brother Albo's request. It was a hard job!");
+ next();
+ .@i = select("What are you doing here?", "General Culvert Daily Service Compensation", "Hard Culvert Daily Service Compensation", "General Culvert Weekly Service Compensation", "Hard Culvert Weekly Service Compensation") - 1;
if (.@i == 0) {
- mes "[Madeca]";
- mes "I'm here to help my big brother Albo!";
- next;
- mes "[Madeca]";
- mes "We provide precious materials to humans who make sludge out of the bad seafood in the Culverts!";
- next;
- mes "[Madeca]";
- mes "We provide A~B Grade Coins as compensation for daily service, and the precious Sea God's Wrath as compensation for weekly service.";
- next;
- mes "[Madeca]";
- mes "If you take care of big brother Albo's request, I will see you very often. So, let's stay close!";
- close;
+ mes("[Madeca]");
+ mes("I'm here to help my big brother Albo!");
+ next();
+ mes("[Madeca]");
+ mes("We provide precious materials to humans who make sludge out of the bad seafood in the Culverts!");
+ next();
+ mes("[Madeca]");
+ mes("We provide A~B Grade Coins as compensation for daily service, and the precious Sea God's Wrath as compensation for weekly service.");
+ next();
+ mes("[Madeca]");
+ mes("If you take care of big brother Albo's request, I will see you very often. So, let's stay close!");
+ close();
}
- mes "[Madeca]";
- mes "I can't give you compensation for an expired request, so let me check if any of yours have expired.";
- next;
+ mes("[Madeca]");
+ mes("I can't give you compensation for an expired request, so let me check if any of yours have expired.");
+ next();
specialeffect(EF_SPHERE, AREA, playerattached());
- progressbar "0xFFFF00",3;
+ progressbar(sprintf("0x%x", C_YELLOW), 3);
specialeffect(EF_STEAL, AREA, playerattached());
- switch(.@i) {
+ switch (.@i) {
case 1: // General Culvert Daily Service
- if (questprogress(12271,PLAYTIME) == 2)
- callsub L_EraseQuest,12255,12256,12257,12258,12259,12260,12271;
- else {
+ if (questprogress(12271, PLAYTIME) == 2) {
+ callsub(L_EraseQuest, 12255, 12256, 12257, 12258, 12259, 12260, 12271);
+ } else {
// Reward: 2x B Grade Coin
- callsub L_CheckQuest,12255,"Deep Sea Crab",6419,2;
- callsub L_CheckQuest,12256,"Deep Sea Marse",6419,2;
- callsub L_CheckQuest,12257,"Deep Sea Vadon",6419,2;
- callsub L_CheckQuest,12258,"Deep Sea Shellfish",6419,2;
- callsub L_CheckQuest,12259,"Deep Sea Kukre",6419,2;
- callsub L_CheckQuest,12260,"Deep Sea Cornutus",6419,2;
+ callsub(L_CheckQuest, 12255, _("Deep Sea Crab"), Bgrade_Coin, 2);
+ callsub(L_CheckQuest, 12256, _("Deep Sea Marse"), Bgrade_Coin, 2);
+ callsub(L_CheckQuest, 12257, _("Deep Sea Vadon"), Bgrade_Coin, 2);
+ callsub(L_CheckQuest, 12258, _("Deep Sea Shellfish"), Bgrade_Coin, 2);
+ callsub(L_CheckQuest, 12259, _("Deep Sea Kukre"), Bgrade_Coin, 2);
+ callsub(L_CheckQuest, 12260, _("Deep Sea Cornutus"), Bgrade_Coin, 2);
}
break;
case 2: // Hard Culvert Daily Service
- if (questprogress(12272,PLAYTIME) == 2)
- callsub L_EraseQuest,12261,12262,12263,12264,12265,12266,12272;
- else {
+ if (questprogress(12272, PLAYTIME) == 2) {
+ callsub(L_EraseQuest, 12261, 12262, 12263, 12264, 12265, 12266, 12272);
+ } else {
// Reward: 1x A Grade Coin
- callsub L_CheckQuest,12261,"Deep Sea Marc",6418,1;
- callsub L_CheckQuest,12262,"Deep Sea Sword Fish",6418,1;
- callsub L_CheckQuest,12263,"Deep Sea Strouf",6418,1;
- callsub L_CheckQuest,12264,"Deep Sea Anolian",6418,1;
- callsub L_CheckQuest,12265,"Deep Sea Obeaune",6418,1;
- callsub L_CheckQuest,12266,"Deep Sea Kapha",6418,1;
+ callsub(L_CheckQuest, 12261, _("Deep Sea Marc"), Agrade_Coin, 1);
+ callsub(L_CheckQuest, 12262, _("Deep Sea Sword Fish"), Agrade_Coin, 1);
+ callsub(L_CheckQuest, 12263, _("Deep Sea Strouf"), Agrade_Coin, 1);
+ callsub(L_CheckQuest, 12264, _("Deep Sea Anolian"), Agrade_Coin, 1);
+ callsub(L_CheckQuest, 12265, _("Deep Sea Obeaune"), Agrade_Coin, 1);
+ callsub(L_CheckQuest, 12266, _("Deep Sea Kapha"), Agrade_Coin, 1);
}
break;
case 3: // General Culvert Weekly Service
- if (questprogress(12273,PLAYTIME) == 2)
- callsub L_EraseQuest,12267,12268,12273;
- else {
+ if (questprogress(12273, PLAYTIME) == 2) {
+ callsub(L_EraseQuest, 12267, 12268, 12273);
+ } else {
// Reward: 1x Sea God's Wrath
- callsub L_CheckQuest,12267,"Weird Coelacanth",6423,1;
- callsub L_CheckQuest,12268,"Gloomy Coelacanth",6423,1;
+ callsub(L_CheckQuest, 12267, _("Weird Coelacanth"), Anger_Seagod, 1);
+ callsub(L_CheckQuest, 12268, _("Gloomy Coelacanth"), Anger_Seagod, 1);
}
break;
case 4: // Hard Culvert Weekly Service
- if (questprogress(12274,PLAYTIME) == 2)
- callsub L_EraseQuest,12269,12270,12274;
- else {
+ if (questprogress(12274, PLAYTIME) == 2) {
+ callsub(L_EraseQuest, 12269, 12270, 12274);
+ } else {
// Reward: 5x Sea God's Wrath
- callsub L_CheckQuest,12269,"Violent Coelacanth",6423,5;
- callsub L_CheckQuest,12270,"Mutant Coelacanth",6423,5;
+ callsub(L_CheckQuest, 12269, _("Violent Coelacanth"), Anger_Seagod, 5);
+ callsub(L_CheckQuest, 12270, _("Mutant Coelacanth"), Anger_Seagod, 5);
}
break;
default:
- mes "[Madeca]";
- mes "Something is wrong. Please check this again!";
- close;
+ mes("[Madeca]");
+ mes("Something is wrong. Please check this again!");
+ close();
}
- mes "[Madeca]";
- mes "I don't see any completed mission!";
- close;
+ mes("[Madeca]");
+ mes("I don't see any completed mission!");
+ close();
L_EraseQuest:
for(.@j = 0; .@j<getargcount(); ++.@j) {
if (questprogress(getarg(.@j)))
- erasequest getarg(.@j);
+ erasequest(getarg(.@j));
}
- mes "[Madeca]";
- mes "Um, I'm sorry. You exceeded the time limit, so I can't give you any payment.";
- close;
+ mes("[Madeca]");
+ mes("Um, I'm sorry. You exceeded the time limit, so I can't give you any payment.");
+ close();
-// callsub L_CheckQuest,<quest ID>,<monster>,<reward item ID>,<reward item amount>;
+// callsub(L_CheckQuest, <quest ID>, <monster>, <reward item ID>, <reward item amount>);
L_CheckQuest:
- if (questprogress(getarg(0),HUNTING) == 2) {
- mes "[Madeca]";
- mes "You've punished ^0000ff"+getarg(1)+"^000000!";
- mes "Here's your pay!";
- erasequest getarg(0);
+ if (questprogress(getarg(0), HUNTING) == 2) {
+ mes("[Madeca]");
+ mesf("You've punished ^0000ff%s^000000!", getarg(1));
+ mes("Here's your pay!");
+ erasequest(getarg(0));
specialeffect(EF_STEAL, AREA, playerattached());
- getitem getarg(2),getarg(3);
- close;
+ getitem(getarg(2), getarg(3));
+ close();
}
return;
}
@@ -283,248 +299,249 @@ L_CheckQuest:
//== Instance Creation =====================================
mal_in01,160,34,4 script Missing, the Cleaner 4_CAT_SAILOR2,{
if (BaseLevel < 90) {
- mes "[Missing, the Cleaner]";
- mes "Are you talking to me?!";
- next;
- mes "[Missing, the Cleaner]";
- mes "I'm not sure what made you come here but you can't enter!";
- mes "Tomas' orders...";
- next;
- mes "^770099You must be Base level 90 to enter.^000000";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("Are you talking to me?!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("I'm not sure what made you come here but you can't enter!");
+ mes("Tomas' orders...");
+ next();
+ mes("^770099You must be Base level 90 to enter.^000000");
+ close();
}
if (in_canal_n == 0) {
- mes "[Missing, the Cleaner]";
- mes "(trembling)";
- next;
- mes "^660066This cat looks like it's in bad shape. It is slightly trembling.^000000";
- next;
- if(select("Pet the cat", "Are you ok?") == 1) {
- mes "[Missing, the Cleaner]";
- mes "Are you talking to me?!";
- next;
- mes "^660066A trembling cat is looking up at you.^000000";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("(trembling)");
+ next();
+ mes("^660066This cat looks like it's in bad shape. It is slightly trembling.^000000");
+ next();
+ if (select("Pet the cat", "Are you ok?") == 1) {
+ mes("[Missing, the Cleaner]");
+ mes("Are you talking to me?!");
+ next();
+ mes("^660066A trembling cat is looking up at you.^000000");
+ close();
}
- mes "[Missing, the Cleaner]";
- mes "Achoo!";
- next;
- mes "[Missing, the Cleaner]";
- mes "We have had many issues during the";
- mes "cleaning of the culverts. But a";
- mes "cat's gotta do it...";
- next;
+ mes("[Missing, the Cleaner]");
+ mes("Achoo!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("We have had many issues during the");
+ mes("cleaning of the culverts. But a");
+ mes("cat's gotta do it...");
+ next();
select("What culvert are you cleaning?");
- mes "[Missing, the Cleaner]";
- mes "It might look unfamiliar for an";
- mes "outsider, but actually this place";
- mes "is made to keep souvenirs and";
- mes "luxurious things.";
- next;
- mes "[Missing, the Cleaner]";
- mes "After there was a big trembling on";
- mes "this island, things started leaking";
- mes "around here. So that's why I became";
- mes "a cleaner here, though I used";
- mes "to be a manager.";
- next;
- mes "^660066The cat looks like it's been crying...^000000";
- next;
- mes "[Missing, the Cleaner]";
- mes "There is a culvert along this way";
- mes "to the basement. There are many bad";
- mes "guys who hurt me. I am tired of";
- mes "fighting with them so many times a";
- mes "day!";
- next;
- mes "[Missing, the Cleaner]";
- mes "Ohh! You touched my fur!";
- mes "My fur is falling out... it's all";
- mes "those guys' fault~";
- next;
- mes "^660066You just now notice that the cat's fur is missing in some places.^000000";
- next;
+ mes("[Missing, the Cleaner]");
+ mes("It might look unfamiliar for an");
+ mes("outsider, but actually this place");
+ mes("is made to keep souvenirs and");
+ mes("luxurious things.");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("After there was a big trembling on");
+ mes("this island, things started leaking");
+ mes("around here. So that's why I became");
+ mes("a cleaner here, though I used");
+ mes("to be a manager.");
+ next();
+ mes("^660066The cat looks like it's been crying...^000000");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("There is a culvert along this way");
+ mes("to the basement. There are many bad");
+ mes("guys who hurt me. I am tired of");
+ mes("fighting with them so many times a");
+ mes("day!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("Ohh! You touched my fur!");
+ mes("My fur is falling out... it's all");
+ mes("those guys' fault~");
+ next();
+ mes("^660066You just now notice that the cat's fur is missing in some places.^000000");
+ next();
select("Why don't you just quit!");
- mes "[Missing, the Cleaner]";
- mes "I still have to make a living, don't I?";
- next;
- mes "[Missing, the Cleaner]";
- mes "Sometimes I can get a lucky box,";
- mes "or even better, I can get cans...";
- next;
- if(select("Okay, cheers!", "I will help if possible...") == 1) {
- mes "[Missing, the Cleaner]";
- mes "Thank you. I am going back to pour the water!";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("I still have to make a living, don't I?");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("Sometimes I can get a lucky box,");
+ mes("or even better, I can get cans...");
+ next();
+ if (select("Okay, cheers!", "I will help if possible...") == 1) {
+ mes("[Missing, the Cleaner]");
+ mes("Thank you. I am going back to pour the water!");
+ close();
}
- mes "[Missing, the Cleaner]";
- mes "(turns down his voice)";
- mes "If you really want to help, come closer!";
- next;
+ mes("[Missing, the Cleaner]");
+ mes("(turns down his voice)");
+ mes("If you really want to help, come closer!");
+ next();
select("(get in closer)");
- mes "[Missing, the Cleaner]";
- mes "Not everyone can be an assistant";
- mes "here. But I can't help choosing";
- mes "anyone at the moment...";
- next;
- mes "[Missing, the Cleaner]";
- mes "If you want to go down here, let me get this code.";
- next;
- mes "^660066The cat scribbles a memo for code to you.^000000";
- next;
+ mes("[Missing, the Cleaner]");
+ mes("Not everyone can be an assistant");
+ mes("here. But I can't help choosing");
+ mes("anyone at the moment...");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("If you want to go down here, let me get this code.");
+ next();
+ mes("^660066The cat scribbles a memo for code to you.^000000");
+ next();
select("Open the memo.");
- mes "^660000Aragam insulted me.^000000";
- next;
- mes "[Missing, the Cleaner]";
- mes "You must be here with friends";
- mes "because you can't go in alone! And";
- mes "the password code will be from the";
- mes "party leader!";
- next;
- mes "[Missing, the Cleaner]";
- mes "What is also important is you must";
- mes "have a Seagod Protection with you.";
- next;
- mes "[Missing, the Cleaner]";
- mes "Don't forget! I will not open the";
- mes "door if you do not have Seagod Protection!";
+ mes("^660000Aragam insulted me.^000000");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("You must be here with friends");
+ mes("because you can't go in alone! And");
+ mes("the password code will be from the");
+ mes("party leader!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("What is also important is you must");
+ mes("have a Seagod Protection with you.");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("Don't forget! I will not open the");
+ mes("door if you do not have Seagod Protection!");
in_canal_n = 1;
- close;
+ close();
}
if (countitem(Ptotection_Seagod) == 0) {
- mes "[Missing, the Cleaner]";
- mes "You don't look like you have Seagod Protection. I can't open door at the moment!";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("You don't look like you have Seagod Protection. I can't open door at the moment!");
+ close();
}
.@party_id = getcharid(CHAR_ID_PARTY);
- .@md_name$ = "Culvert";
+ .@md_name$ = _("Culvert");
if (!.@party_id) {
- mes "^0000ffYou have to organize a party of";
- mes "more than 1 member or be a member";
- mes "of the party and come back.^000000";
- close;
+ mes("^0000ffYou have to organize a party of");
+ mes("more than 1 member or be a member");
+ mes("of the party and come back.^000000");
+ close();
}
- .@playtime = questprogress(12254,PLAYTIME);
+ .@playtime = questprogress(12254, PLAYTIME);
if (!.@playtime) {
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2)) {
- mes "[Missing, the Cleaner]";
- mes "Ummm? What's up? Tell me the password if you're the leader!";
- next;
- switch(select("No... nothing.", "Aragam insulted me.", "Enter the Culvert.")) {
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
+ mes("[Missing, the Cleaner]");
+ mes("Ummm? What's up? Tell me the password if you're the leader!");
+ next();
+ switch (select("No... nothing.", "Aragam insulted me.", "Enter the Culvert.")) {
case 1:
- mes "[Missing, the Cleaner]";
- mes "What a rookie.";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("What a rookie.");
+ close();
case 2:
- .@instance = instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
- mes "Party name: "+getpartyname(.@party_id);
- mes "Party leader: "+strcharinfo(PC_NAME);
- mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
- close;
+ mesf("Party name: %s", getpartyname(.@party_id));
+ mesf("Party leader: %s", strcharinfo(PC_NAME));
+ mesf("^0000ff%s^000000 - Reservation Failed!", .@md_name$);
+ close();
}
- if (instance_attachmap("1@pump",.@instance) == "" || instance_attachmap("2@pump",.@instance) == "") {
- mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ if (instance_attachmap("1@pump", .@instance) == "" || instance_attachmap("2@pump", .@instance) == "") {
+ mesf("^0000ff%s^000000 - Reservation Failed!", .@md_name$);
instance_destroy(.@instance);
- close;
+ close();
}
- instance_set_timeout 3600,300,.@instance;
+ instance_set_timeout(3600, 300, .@instance);
instance_init(.@instance);
- mes "^3333FF"+.@md_name$+"^000000 - Reserving";
- mes "After making the reservation, you";
- mes "have to select Enter the Culvert.";
- close;
+ mesf("^3333FF%s^000000 - Reserving", .@md_name$);
+ mes("After making the reservation, you");
+ mes("have to select Enter the Culvert.");
+ close();
case 3:
- callsub L_Enter,0;
+ callsub(L_Enter, 0);
}
}
- if(select("Enter Culvert", "Cancel") == 2)
+ if (select("Enter Culvert", "Cancel") == 2)
end;
- callsub L_Enter,1;
+ callsub(L_Enter, 1);
} else if (.@playtime == 1) {
- mes "You can enter the Culvert if the gate is open.";
- next;
- if(select("Enter Culvert", "Cancel") == 2)
- close;
- callsub L_Enter,0;
+ mes("You can enter the Culvert if the gate is open.");
+ next();
+ if (select("Enter Culvert", "Cancel") == 2)
+ close();
+ callsub(L_Enter, 0);
} else if (.@playtime == 2) {
- mes "^0000ffThe gate to the Culvert is open again.^000000";
- erasequest 12254;
- close;
+ mes("^0000ffThe gate to the Culvert is open again.^000000");
+ erasequest(12254);
+ close();
}
end;
L_Enter:
if (has_instance("1@pump") == "") {
- if (questprogress(12254,PLAYTIME) == 1) {
- mes "The gate to the Culvert is still closed.";
- mes "You must wait until you are able to enter or find a party leader who can create the instance.";
- close;
+ if (questprogress(12254, PLAYTIME) == 1) {
+ mes("The gate to the Culvert is still closed.");
+ mes("You must wait until you are able to enter or find a party leader who can create the instance.");
+ close();
}
- mes "The memorial dungeon Culvert does not exist.";
- mes "The party leader has not reserved entrance to the dungeon yet.";
- close;
+ mes("The memorial dungeon Culvert does not exist.");
+ mes("The party leader has not reserved entrance to the dungeon yet.");
+ close();
}
- mapannounce "mal_in01", strcharinfo(PC_NAME)+" of the party "+getpartyname(.@party_id)+" is entering the Culvert.",bc_map,"0x00ff99";
- if (!questprogress(12254)) setquest 12254;
- warp "1@pump",63,98;
+ mapannounce("mal_in01", sprintf(_$("%s of the party %s is entering the Culvert."), strcharinfo(PC_NAME), getpartyname(.@party_id)), bc_map, C_SPRINGGREEN);
+ if (!questprogress(12254))
+ setquest(12254);
+ warp("1@pump", 63, 98);
end;
}
//== Instance: Common Scripts ==============================
1@pump,63,100,4 script Missing, the Cleaner#0 4_CAT_SAILOR2,{
- if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY),2)) {
- mes "[Missing, the Cleaner]";
- mes "I am trying to have a conversation with your leader now. Please don't disturb and wait!";
- close;
+ if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY), 2)) {
+ mes("[Missing, the Cleaner]");
+ mes("I am trying to have a conversation with your leader now. Please don't disturb and wait!");
+ close();
}
- mes "[Missing, the Cleaner]";
- mes "This is the underground culvert where you will clean with your friends!";
- next;
- mes "[Missing, the Cleaner]";
- mes "I'll open the door first. By the way, do you know how to fight?";
- next;
- switch(select("I'm pretty good at delivering bread.", "I know how to fight.", "^ffffffGive me the diamond.^000000")) {
+ mes("[Missing, the Cleaner]");
+ mes("This is the underground culvert where you will clean with your friends!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("I'll open the door first. By the way, do you know how to fight?");
+ next();
+ switch (select("I'm pretty good at delivering bread.", "I know how to fight.", "^ffffffGive me the diamond.^000000")) {
case 1:
- mes "[Missing, the Cleaner]";
- mes "Ok then, I'll let you clean the culverts here as usual! I will prepare at the right-hand corner, please follow me!";
- next;
- if(select("Wait! I changed my mind!", "As you wish~") == 1) {
- mes "[Missing, the Cleaner]";
- mes "Huh? Not ready yet? Talk to me again when you're ready.";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("Ok then, I'll let you clean the culverts here as usual! I will prepare at the right-hand corner, please follow me!");
+ next();
+ if (select("Wait! I changed my mind!", "As you wish~") == 1) {
+ mes("[Missing, the Cleaner]");
+ mes("Huh? Not ready yet? Talk to me again when you're ready.");
+ close();
}
'party_id = getcharid(CHAR_ID_PARTY);
- mapannounce instance_mapname("1@pump"),"Missing: Move toward the 3 o'clock direction and wait for my next order!",bc_map,"0xff88ff",FW_NORMAL,15;
- disablenpc instance_npcname("Missing, the Cleaner#0");
- enablenpc instance_npcname("Missing, the Cleaner#n");
- close;
+ mapannounce(instance_mapname("1@pump"), _("Missing: Move toward the 3 o'clock direction and wait for my next order!"), bc_map, "0xff88ff", FW_NORMAL, 15);
+ disablenpc(instance_npcname("Missing, the Cleaner#0"));
+ enablenpc(instance_npcname("Missing, the Cleaner#n"));
+ close();
case 2:
if (BaseLevel < 140) {
- mes "[Missing, the Cleaner]";
- mes "Hmmm... Missing thinks you're weak! Tell me the truth!!";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("Hmmm... Missing thinks you're weak! Tell me the truth!!");
+ close();
}
- mes "[Missing, the Cleaner]";
- mes "Huh? You have some fighting skills? Well, then, there is one place I wasn't able to clean... why don't you go there?!";
- next;
- mes "[Missing, the Cleaner]";
- mes "I must tell you that it's been such a long~~ time since we've cleaned that place, so anyone under level 140 cannot even enter! Are you sure you still want to go?";
- next;
- if(select("Wait! I changed my mind!", "Sure, I'm prepared already~") == 1) {
- mes "[Missing, the Cleaner]";
- mes "Hmm? Talk to me again when you're ready.";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("Huh? You have some fighting skills? Well, then, there is one place I wasn't able to clean... why don't you go there?!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("I must tell you that it's been such a long~~ time since we've cleaned that place, so anyone under level 140 cannot even enter! Are you sure you still want to go?");
+ next();
+ if (select("Wait! I changed my mind!", "Sure, I'm prepared already~") == 1) {
+ mes("[Missing, the Cleaner]");
+ mes("Hmm? Talk to me again when you're ready.");
+ close();
}
'party_id = getcharid(CHAR_ID_PARTY);
- mapannounce instance_mapname("1@pump"),"Missing: I'll go in first, so follow me! I'll open up a gate at the 3 o'clock direction!",bc_map,"0xff88ff",FW_NORMAL,15;
- disablenpc instance_npcname("Missing, the Cleaner#0");
- enablenpc instance_npcname("Culvert Entrance#i");
- close;
+ mapannounce(instance_mapname("1@pump"), _("Missing: I'll go in first, so follow me! I'll open up a gate at the 3 o'clock direction!"), bc_map, "0xff88ff", FW_NORMAL, 15);
+ disablenpc(instance_npcname("Missing, the Cleaner#0"));
+ enablenpc(instance_npcname("Culvert Entrance#i"));
+ close();
case 3:
- mes "[Missing, the Cleaner]";
- mes "I told you not to play with me~!";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("I told you not to play with me~!");
+ close();
}
end;
}
@@ -532,134 +549,134 @@ L_Enter:
1@pump,84,105,0 script Culvert Entrance#i WARPNPC,3,3,{
end;
OnInstanceInit:
- disablenpc instance_npcname("Culvert Entrance#i");
+ disablenpc(instance_npcname("Culvert Entrance#i"));
end;
OnTouch:
if (BaseLevel >= 140)
- warp instance_mapname("2@pump"),38,88;
+ warp(instance_mapname("2@pump"), 38, 88);
else
- warp instance_mapname("1@pump"),74,105;
+ warp(instance_mapname("1@pump"), 74, 105);
end;
}
function script F_mal_missing {
- mes "[Missing, the Cleaner]";
- mes "I will tell you how to clean shortly. Can you see the culverts around you?";
- next;
- if(select("What culverts??", "Yes, I see them.") == 1) {
- mes "[Missing, the Cleaner]";
- mes "Huh? Is this your first time seeing culverts? You'll see many buried machines in the ground. You may look around and come back!";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("I will tell you how to clean shortly. Can you see the culverts around you?");
+ next();
+ if (select("What culverts??", "Yes, I see them.") == 1) {
+ mes("[Missing, the Cleaner]");
+ mes("Huh? Is this your first time seeing culverts? You'll see many buried machines in the ground. You may look around and come back!");
+ close();
}
- mes "[Missing, the Cleaner]";
- mes "That's right! Those culverts are very important! We must clean the culverts to prevent seaweed from blocking them. This is what we, cleaners, do!";
- next;
- mes "[Missing, the Cleaner]";
- mes "Watch out! Some monsters will be after you while you're cleaning the culverts! But do not yield to them!";
- next;
- mes "[Missing, the Cleaner]";
- mes "And... NEVER let 6 seaweeds stack! Up to 5 is acceptable! If there are 6, I'll drag you out of here!!";
- next;
- mes "[Missing, the Cleaner]";
- mes "I don't care if you get help from your friends or not. I want you to clean up all culverts! Don't forget! I will watch you and give you instructions. Just do what I said!!";
- next;
- if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY),2)) {
- mes "[Missing, the Cleaner]";
- mes "Once your leader finishes preparing, it will begin, so get your hearts ready for it!!";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("That's right! Those culverts are very important! We must clean the culverts to prevent seaweed from blocking them. This is what we, cleaners, do!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("Watch out! Some monsters will be after you while you're cleaning the culverts! But do not yield to them!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("And... NEVER let 6 seaweeds stack! Up to 5 is acceptable! If there are 6, I'll drag you out of here!!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("I don't care if you get help from your friends or not. I want you to clean up all culverts! Don't forget! I will watch you and give you instructions. Just do what I said!!");
+ next();
+ if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY), 2)) {
+ mes("[Missing, the Cleaner]");
+ mes("Once your leader finishes preparing, it will begin, so get your hearts ready for it!!");
+ close();
}
- mes "[Missing, the Cleaner]";
- mes "So, are you ready to clean now?";
- next;
- switch(select("Wait! Not yet!", "Let's start!")) {
+ mes("[Missing, the Cleaner]");
+ mes("So, are you ready to clean now?");
+ next();
+ switch (select("Wait! Not yet!", "Let's start!")) {
case 1:
- mes "[Missing, the Cleaner]";
- mes "Huh? Not ready yet? Then talk to me when you're ready.";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("Huh? Not ready yet? Then talk to me when you're ready.");
+ close();
case 2:
- mes "[Missing, the Cleaner]";
- mes "OK! Now it begins!";
+ mes("[Missing, the Cleaner]");
+ mes("OK! Now it begins!");
return;
}
}
//== Instance: Normal Mode =================================
1@pump,84,105,4 script Missing, the Cleaner#nf 4_CAT_SAILOR2,{
- mes "[Missing, the Cleaner]";
- mes "I have the cleaning job for 40 years and I've never seen such a terrible team!!";
- next;
- mes "[Missing, the Cleaner]";
- mes "I see seaweed everywhere because you're wiggling! All the culverts will be blocked with seaweed!";
- next;
- if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY),2)) {
- mes "[Missing, the Cleaner]";
- mes "Once your leader finishes preparing, settlement will be decided so get your hearts ready for it!!";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("I have the cleaning job for 40 years and I've never seen such a terrible team!!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("I see seaweed everywhere because you're wiggling! All the culverts will be blocked with seaweed!");
+ next();
+ if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY), 2)) {
+ mes("[Missing, the Cleaner]");
+ mes("Once your leader finishes preparing, settlement will be decided so get your hearts ready for it!!");
+ close();
}
- mes "[Missing, the Cleaner]";
- mes "If you got some guts to challenge again, I'll give you another chance! What's your choice going to be!?";
- next;
- switch(select("Wait! Not yet!", "Okay, let's start again!")) {
+ mes("[Missing, the Cleaner]");
+ mes("If you got some guts to challenge again, I'll give you another chance! What's your choice going to be!?");
+ next();
+ switch (select("Wait! Not yet!", "Okay, let's start again!")) {
case 1:
- mes "[Missing, the Cleaner]";
- mes "You're still slow! Talk to me again whenever your're ready.";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("You're still slow! Talk to me again whenever your're ready.");
+ close();
case 2:
- mes "[Missing, the Cleaner]";
- mes "Ok! Let's start now!";
- .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN),0);
- enablenpc instance_npcname("Missing, the Cleaner#"+.@i$);
- donpcevent instance_npcname("Missing, the Cleaner#"+.@i$)+"::OnStart";
- disablenpc instance_npcname("Culvert Entrance#"+.@i$);
- disablenpc instance_npcname("Missing, the Cleaner#"+.@i$+"o");
- donpcevent instance_npcname("Monster Hole#"+.@i$)+"::OnClear";
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
- close;
+ mes("[Missing, the Cleaner]");
+ mes("Ok! Let's start now!");
+ .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN), 0);
+ enablenpc(instance_npcname("Missing, the Cleaner#"+.@i$));
+ donpcevent(instance_npcname("Missing, the Cleaner#"+.@i$)+"::OnStart");
+ disablenpc(instance_npcname("Culvert Entrance#"+.@i$));
+ disablenpc(instance_npcname("Missing, the Cleaner#"+.@i$+"o"));
+ donpcevent(instance_npcname("Monster Hole#"+.@i$)+"::OnClear");
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ close();
}
- close;
+ close();
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
}
1@pump,84,105,4 script Missing, the Cleaner#n 4_CAT_SAILOR2,{
- callfunc "F_mal_missing";
- donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnStart";
- close;
+ callfunc("F_mal_missing");
+ donpcevent(instance_npcname("Missing, the Cleaner#n")+"::OnStart");
+ close();
OnInstanceInit:
- disablenpc instance_npcname("Missing, the Cleaner#n");
+ disablenpc(instance_npcname("Missing, the Cleaner#n"));
end;
OnStart:
- killmonster instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead";
- disablenpc instance_npcname("Missing, the Cleaner#n");
- initnpctimer;
+ killmonster(instance_mapname("1@pump"), instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ disablenpc(instance_npcname("Missing, the Cleaner#n"));
+ initnpctimer();
end;
OnAddSeaweed:
.@map$ = instance_mapname("1@pump");
- areamonster .@map$,55,99,61,105,"Contaminated Seaweed",2191,1,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead";
- .@mob_dead_num = mobcount(.@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ areamonster(.@map$, 55, 99, 61, 105, _("Contaminated Seaweed"), MD_SEAWEED, 1, instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
- donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
+ donpcevent(instance_npcname("Missing, the Cleaner#n")+"::OnFail");
else
- mapannounce .@map$,"Contaminated Seaweed: "+.@mob_dead_num+" stem",bc_map,"0xff3333",FW_NORMAL,20;
+ mapannounce(.@map$, sprintf(_$("Contaminated Seaweed: %s stem"), .@mob_dead_num), bc_map, "0xff3333", FW_NORMAL, 20);
end;
OnMyMobDead:
end;
OnFail:
- stopnpctimer;
- donpcevent instance_npcname("Monster Hole#n")+"::OnClear";
+ stopnpctimer();
+ donpcevent(instance_npcname("Monster Hole#n")+"::OnClear");
.@map$ = instance_mapname("1@pump");
- killmonster .@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead";
- enablenpc instance_npcname("Missing, the Cleaner#nf");
- mapannounce .@map$,"What is this!! Seaweed is all over the culverts! You're done with cleaning! Get out!!",bc_map,"0xff88ff",FW_NORMAL,15;
- disablenpc instance_npcname("Missing, the Cleaner#n");
+ killmonster(.@map$, instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ enablenpc(instance_npcname("Missing, the Cleaner#nf"));
+ mapannounce(.@map$, _("What is this!! Seaweed is all over the culverts! You're done with cleaning! Get out!!"), bc_map, "0xff88ff", FW_NORMAL, 15);
+ disablenpc(instance_npcname("Missing, the Cleaner#n"));
end;
OnTimer100:
- mapannounce instance_mapname("1@pump"),"First culvert will be opened in 5 sec. Cleaner can find the opened drain and click to start cleaning.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ mapannounce(instance_mapname("1@pump"), _("First culvert will be opened in 5 sec. Cleaner can find the opened drain and click to start cleaning."), bc_map, "0x00ffcc", FW_NORMAL, 15);
end;
OnTimer5500:
- mapannounce instance_mapname("1@pump"),"The one who's in charge of cleaning the culvert cannot move or be attacked until the casting is over.",bc_map,"0x00ffcc",FW_NORMAL,15;
- donpcevent instance_npcname("Monster Hole#n")+"::OnSpawn";
+ mapannounce(instance_mapname("1@pump"), _("The one who's in charge of cleaning the culvert cannot move or be attacked until the casting is over."), bc_map, "0x00ffcc", FW_NORMAL, 15);
+ donpcevent(instance_npcname("Monster Hole#n")+"::OnSpawn");
end;
OnTimer45000:
OnTimer95000:
@@ -670,12 +687,12 @@ OnTimer295000:
OnTimer345000:
OnTimer395000:
OnTimer445000:
- mapannounce instance_mapname("1@pump"),"Next culvert will be opened in 5 sec. Please hurry up and find the position of the next culvert.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ mapannounce(instance_mapname("1@pump"), _("Next culvert will be opened in 5 sec. Please hurry up and find the position of the next culvert."), bc_map, "0x00ffcc", FW_NORMAL, 15);
end;
OnTimer50000:
OnTimer100000:
OnTimer150000:
- donpcevent instance_npcname("Monster Hole#n")+"::OnSpawn";
+ donpcevent(instance_npcname("Monster Hole#n")+"::OnSpawn");
end;
OnTimer200000:
OnTimer250000:
@@ -683,103 +700,116 @@ OnTimer300000:
OnTimer350000:
OnTimer400000:
OnTimer450000:
- .@mob_dead_num = mobcount(instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(instance_mapname("1@pump"), instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
- donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
+ donpcevent(instance_npcname("Missing, the Cleaner#n")+"::OnFail");
else
- donpcevent instance_npcname("Monster Hole#n")+"::OnSpawn";
+ donpcevent(instance_npcname("Monster Hole#n")+"::OnSpawn");
end;
OnTimer515000:
.@map$ = instance_mapname("1@pump");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
- mapannounce .@map$,"Contaminated Seaweed: "+.@mob_dead_num+" stem. Missing will come and inspect the results of the cleaning soon.",bc_map,"0xff3333",FW_NORMAL,20;
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ mapannounce(.@map$, sprintf(_$("Contaminated Seaweed: %s stem. Missing will come and inspect the results of the cleaning soon."), .@mob_dead_num), bc_map, "0xff3333", FW_NORMAL, 20);
end;
OnTimer520000:
- stopnpctimer;
- .@mob_dead_num = mobcount(instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ stopnpctimer();
+ .@mob_dead_num = mobcount(instance_mapname("1@pump"), instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
- donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
+ donpcevent(instance_npcname("Missing, the Cleaner#n")+"::OnFail");
else
- donpcevent instance_npcname("Boss Creation#n")+"::OnEnable";
+ donpcevent(instance_npcname("Boss Creation#n")+"::OnEnable");
end;
}
1@pump,1,1,4 script Monster Hole#n FAKE_NPC,{
end;
OnSpawn:
- .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN),0);
+ .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN), 0);
if (.@i$ == "n")
.@n = 6;
else if (.@i$ == "h")
.@n = 10;
- donpcevent instance_npcname("#Culvert_"+.@i$+rand(1,.@n))+"::OnEnable";
+ donpcevent(instance_npcname("#Culvert_"+.@i$+rand(1, .@n))+"::OnEnable");
end;
OnClear:
- .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN),0);
+ .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN), 0);
if (.@i$ == "n")
.@n = 6;
else if (.@i$ == "h")
.@n = 10;
- for(.@i = 1; .@i<=.@n; ++.@i)
- donpcevent instance_npcname("#Culvert_"+.@i$+.@n)+"::OnClear";
+ for(.@i = 1; .@i <= .@n; ++.@i)
+ donpcevent(instance_npcname("#Culvert_"+.@i$+.@n)+"::OnClear");
end;
}
1@pump,36,111,4 script #Culvert_n1 CLEAR_NPC,14,14,{ //temporary workaround for ALL_SAMEMAP
- progressbar "0xFFFF00",10;
- stopnpctimer;
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ progressbar(sprintf("0x%x", C_YELLOW), 10);
+ stopnpctimer();
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
.@label$ = instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
.@map$ = instance_mapname("1@pump");
- .@index = atoi(charat(strnpcinfo(NPC_NAME_HIDDEN),9));
- switch(.@index) {
- case 1: setarray .@c[0],32,107,40,115; break;
- case 2: setarray .@c[0],64,120,72,128; break;
- case 3: setarray .@c[0],76,110,84,118; break;
- case 4: setarray .@c[0],36,76,44,84; break;
- case 5: setarray .@c[0],71,76,79,84; break;
- case 6: setarray .@c[0],54,97,62,105; break;
+ .@index = atoi(charat(strnpcinfo(NPC_NAME_HIDDEN), 9));
+ switch (.@index) {
+ case 1:
+ setarray(.@c[0], 32, 107, 40, 115);
+ break;
+ case 2:
+ setarray(.@c[0], 64, 120, 72, 128);
+ break;
+ case 3:
+ setarray(.@c[0], 76, 110, 84, 118);
+ break;
+ case 4:
+ setarray(.@c[0], 36, 76, 44, 84);
+ break;
+ case 5:
+ setarray(.@c[0], 71, 76, 79, 84);
+ break;
+ case 6:
+ setarray(.@c[0], 54, 97, 62, 105);
+ break;
}
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Crab",2176,rand(1,3),.@label$;
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Marse",2175,rand(1,3),.@label$;
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Vadon",2174,rand(1,3),.@label$;
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Shellfish",2178,rand(1,3),.@label$;
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Kukre",2179,rand(1,3),.@label$;
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Cornutus",2177,rand(1,3),.@label$;
- specialeffect EF_MAPPILLAR2,ALL_SAMEMAP; //currently broken
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Abysmal Crab"), MD_CRAB, rand(1, 3), .@label$);
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Abysmal Marse"), MD_MARSE, rand(1, 3), .@label$);
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Ancient Vadon"), MD_VADON, rand(1, 3), .@label$);
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Abysmal Shellfish"), MD_SHELLFISH, rand(1, 3), .@label$);
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Ancient Kukre"), MD_KUKRE, rand(1, 3), .@label$);
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Abysmal Cornutus"), MD_CORNUTUS, rand(1, 3), .@label$);
+ specialeffect(EF_MAPPILLAR2, ALL_SAMEMAP); //currently broken
getmapxy(.@map$, .@x, .@y, UNITTYPE_NPC);
- getpartymember 'party_id,2;
- copyarray .@partymemberaid[0],$@partymemberaid[0],$@partymembercount;
+ getpartymember('party_id, 2);
+ copyarray(.@partymemberaid[0], $@partymemberaid[0], $@partymembercount);
for(.@i = 0; .@i<$@partymembercount; ++.@i) {
if (attachrid(.@partymemberaid[.@i])) {
if (strcharinfo(PC_MAP) == .@map$)
- viewpoint 0,.@x,.@y,.@index,0xFFFF00;
- detachrid;
+ viewpoint(0, .@x, .@y, .@index, C_YELLOW);
+ detachrid();
}
}
- initnpctimer;
+ initnpctimer();
end;
OnMyMobDead:
end;
OnClear:
- stopnpctimer;
- killmonster instance_mapname("1@pump"),instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
+ stopnpctimer();
+ killmonster(instance_mapname("1@pump"), instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
end;
OnTimer49500: //OnTimer50000 clashes with the timer in "Missing, the Cleaner#h".
- donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnAddSeaweed";
- donpcevent instance_npcname(strnpcinfo(NPC_NAME))+"::OnClear";
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ donpcevent(instance_npcname("Missing, the Cleaner#n")+"::OnAddSeaweed");
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME))+"::OnClear");
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnTouch:
- specialeffect EF_MAPPILLAR2;
+ specialeffect(EF_MAPPILLAR2);
end;
}
+
1@pump,68,124,4 duplicate(#Culvert_n1) #Culvert_n2 CLEAR_NPC,14,14
1@pump,80,114,4 duplicate(#Culvert_n1) #Culvert_n3 CLEAR_NPC,14,14
1@pump,40,80,4 duplicate(#Culvert_n1) #Culvert_n4 CLEAR_NPC,14,14
@@ -789,126 +819,139 @@ OnTouch:
1@pump,1,1,4 script Boss Creation#n FAKE_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
- initnpctimer;
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ initnpctimer();
end;
OnTimer100:
- .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN),0);
+ .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN), 0);
if (.@i$ == "n")
- mapannounce instance_mapname("1@pump"),"Hmm! That wasn't so bad!",bc_map,"0xff88ff",FW_NORMAL,15;
+ mapannounce(instance_mapname("1@pump"), _("Hmm! That wasn't so bad!"), bc_map, "0xff88ff", FW_NORMAL, 15);
else if (.@i$ == "h")
- mapannounce instance_mapname("2@pump"),"Hmm! You guys are pretty good!!",bc_map,"0xff88ff",FW_NORMAL,15;
+ mapannounce(instance_mapname("2@pump"), _("Hmm! You guys are pretty good!!"), bc_map, "0xff88ff", FW_NORMAL, 15);
end;
OnTimer5000:
- mapannounce strnpcinfo(NPC_MAP),"Let's pack up and go... WHAT!!?",bc_map,"0xff88ff",FW_NORMAL,15;
+ mapannounce(strnpcinfo(NPC_MAP), _("Let's pack up and go... WHAT!!?"), bc_map, "0xff88ff", FW_NORMAL, 15);
end;
OnTimer10000:
- mapannounce strnpcinfo(NPC_MAP),"I sense something strange!! Don't loosen up-- prepare for a fight!!",bc_map,"0xff88ff",FW_NORMAL,15;
+ mapannounce(strnpcinfo(NPC_MAP), _("I sense something strange!! Don't loosen up-- prepare for a fight!!"), bc_map, "0xff88ff", FW_NORMAL, 15);
end;
OnTimer20000:
- stopnpctimer;
- .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN),0);
+ stopnpctimer();
+ .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN), 0);
.@label$ = instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
- if (rand(1,100) > 50) {
+ if (rand(1, 100) > 50) {
if (.@i$ == "n")
- monster instance_mapname("1@pump"),0,0,"Weird Coelacanth",2188,1,.@label$;
+ monster(instance_mapname("1@pump"), 0, 0, _("Weird Coelacanth"), COELACANTH_N_M, 1, .@label$);
else if (.@i$ == "h")
- monster instance_mapname("2@pump"),0,0,"Mutant Coelacanth",2189,1,.@label$;
- mapannounce strnpcinfo(NPC_MAP),"Something big inside the abyss appears with a huge noise.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ monster(instance_mapname("2@pump"), 0, 0, _("Mutant Coelacanth"), COELACANTH_H_M, 1, .@label$);
+ mapannounce(strnpcinfo(NPC_MAP), _("Something big inside the abyss appears with a huge noise."), bc_map, "0x00ffcc", FW_NORMAL, 15);
} else {
if (.@i$ == "n")
- monster instance_mapname("1@pump"),0,0,"Gloomy Coelacanth",2187,1,.@label$;
+ monster(instance_mapname("1@pump"), 0, 0, _("Gloomy Coelacanth"), COELACANTH_N_A, 1, .@label$);
else if (.@i$ == "h")
- monster instance_mapname("2@pump"),0,0,"Violent Coelacanth",2190,1,.@label$;
- mapannounce strnpcinfo(NPC_MAP),"Something savage inside the abyss appears with a huge noise.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ monster(instance_mapname("2@pump"), 0, 0, _("Violent Coelacanth"), COELACANTH_H_A, 1, .@label$);
+ mapannounce(strnpcinfo(NPC_MAP), _("Something savage inside the abyss appears with a huge noise."), bc_map, "0x00ffcc", FW_NORMAL, 15);
}
end;
OnMyMobDead:
- if (mobcount(strnpcinfo(NPC_MAP),instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead") < 1) {
- mapannounce strnpcinfo(NPC_MAP),"You've destroyed all monsters in the culverts. There are trophies lying on the ground, please look for them.",bc_map,"0xffff00",FW_NORMAL,15;
- .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN),0);
+ if (mobcount(strnpcinfo(NPC_MAP), instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead") < 1) {
+ mapannounce(strnpcinfo(NPC_MAP), _("You've destroyed all monsters in the culverts. There are trophies lying on the ground, please look for them."), bc_map, C_YELLOW, FW_NORMAL, 15);
+ .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN), 0);
.@map$ = strnpcinfo(NPC_MAP);
- enablenpc instance_npcname("Culvert Entrance#"+.@i$);
- enablenpc instance_npcname("Missing, the Cleaner#"+.@i$+"o");
+ enablenpc(instance_npcname("Culvert Entrance#"+.@i$));
+ enablenpc(instance_npcname("Missing, the Cleaner#"+.@i$+"o"));
if (.@i$ == "n") {
- for(.@i = 0; .@i<10; ++.@i) {
- .@j = rand(1,6401);
- if (.@j < 5001) .@item = 12636; //Malang_Sp_Can
- else if (.@j < 5501) .@item = 12615; //Low_Coin_Pocket
- else if (.@j < 6001) .@item = 12621; //Egrade_Pocket
- else if (.@j < 6201) .@item = 12620; //Dgrade_Pocket
- else if (.@j < 6401) .@item = 12623; //High_Weapon_Box
- else continue;
- makeitem .@item,1,.@map$,rand(40,77),rand(87,120);
+ for(.@i = 0; .@i < 10; ++.@i) {
+ .@j = rand(1, 6401);
+ if (.@j < 5001)
+ .@item = Malang_Sp_Can;
+ else if (.@j < 5501)
+ .@item = Low_Coin_Pocket;
+ else if (.@j < 6001)
+ .@item = Egrade_Pocket;
+ else if (.@j < 6201)
+ .@item = Dgrade_Pocket;
+ else if (.@j < 6401)
+ .@item = High_Weapon_Box;
+ else
+ continue;
+ makeitem(.@item, 1, .@map$, rand(40, 77), rand(87, 120));
}
} else if (.@i$ == "h") {
- for(.@i = 0; .@i<10; ++.@i) {
- .@j = rand(1,5001);
- if (.@j < 2001) .@item = 12615; //Low_Coin_Pocket
- else if (.@j < 3001) .@item = 12621; //Egrade_Pocket
- else if (.@j < 4001) .@item = 12620; //Dgrade_Pocket
- else if (.@j < 4501) .@item = 12619; //Cgrade_Pocket
- else if (.@j < 5001) .@item = 12623; //High_Weapon_Box
- else continue;
- makeitem .@item,1,.@map$,rand(40,77),rand(87,120);
+ for(.@i = 0; .@i < 10; ++.@i) {
+ .@j = rand(1, 5001);
+ if (.@j < 2001)
+ .@item = Low_Coin_Pocket;
+ else if (.@j < 3001)
+ .@item = Egrade_Pocket;
+ else if (.@j < 4001)
+ .@item = Dgrade_Pocket;
+ else if (.@j < 4501)
+ .@item = Cgrade_Pocket;
+ else if (.@j < 5001)
+ .@item = High_Weapon_Box;
+ else
+ continue;
+ makeitem(.@item, 1, .@map$, rand(40, 77), rand(87, 120));
}
}
- } else
- mapannounce strnpcinfo(NPC_MAP),"There are still monsters alive.",bc_map,"0x00ff99",FW_NORMAL,20;
+ } else {
+ mapannounce(strnpcinfo(NPC_MAP), _("There are still monsters alive."), bc_map, C_SPRINGGREEN, FW_NORMAL, 20);
+ }
end;
}
1@pump,84,105,4 script Missing, the Cleaner#no 4_CAT_SAILOR2,{
- .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN),0);
+ .@i$ = charat(strnpcinfo(NPC_NAME_HIDDEN), 0);
if (.@i$ == "n") {
- mes "[Missing, the Cleaner]";
- mes "I was very surprised!!";
- next;
- mes "[Missing, the Cleaner]";
- mes "That funny-looking fish seems to be one of Coelacanths living around here. This is my first time seeing one coming here alone!";
- next;
- mes "[Missing, the Cleaner]";
- mes "I'll clean up the remains. Go pack and leave! Enterance is located on the other side, look for it!";
- next;
+ mes("[Missing, the Cleaner]");
+ mes("I was very surprised!!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("That funny-looking fish seems to be one of Coelacanths living around here. This is my first time seeing one coming here alone!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("I'll clean up the remains. Go pack and leave! Enterance is located on the other side, look for it!");
+ next();
} else if (.@i$ == "h") {
- mes "[Missing, the Cleaner]";
- mes "You've destroyed an immense monster!";
- next;
- mes "[Missing, the Cleaner]";
- mes "The one you destroyed was among the variety of Coelacanths. Others have tried to destroy them but failed.";
- next;
- mes "[Missing, the Cleaner]";
- mes "I'll clean up the remains. You go ahead to get trophies and leave!";
- next;
+ mes("[Missing, the Cleaner]");
+ mes("You've destroyed an immense monster!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("The one you destroyed was among the variety of Coelacanths. Others have tried to destroy them but failed.");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("I'll clean up the remains. You go ahead to get trophies and leave!");
+ next();
}
- mes "[Missing, the Cleaner]";
- mes "One more thing! DO NOT TALK to ANYONE about what you've seen here today!!";
- next;
- mes "[Missing, the Cleaner]";
- mes "If Tomas closes this down, we will lose our jobs!";
- close;
+ mes("[Missing, the Cleaner]");
+ mes("One more thing! DO NOT TALK to ANYONE about what you've seen here today!!");
+ next();
+ mes("[Missing, the Cleaner]");
+ mes("If Tomas closes this down, we will lose our jobs!");
+ close();
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
}
1@pump,32,100,0 script Culvert Entrance#n WARPNPC,3,3,{
end;
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnTouch:
- warp "mal_in01",161,32;
+ warp("mal_in01", 161, 32);
end;
}
//MD_Putmob "1@pump" 0 0 0 0 20 HYDRA 0 0 2
1@pump,1,1,4 script Hydra#n FAKE_NPC,{
OnInstanceInit:
- monster strnpcinfo(NPC_MAP),0,0,"Hydra",1068,20;
+ monster(strnpcinfo(NPC_MAP), 0, 0, _("Hydra"), HYDRA, 20);
end;
}
@@ -916,40 +959,40 @@ OnInstanceInit:
2@pump,39,88,4 duplicate(Missing, the Cleaner#nf) Missing, the Cleaner#hf 4_CAT_SAILOR2
2@pump,39,88,4 script Missing, the Cleaner#h 4_CAT_SAILOR2,{
- callfunc "F_mal_missing";
- donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnStart";
- close;
+ callfunc("F_mal_missing");
+ donpcevent(instance_npcname("Missing, the Cleaner#h")+"::OnStart");
+ close();
OnStart:
- killmonster instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead";
- disablenpc instance_npcname("Missing, the Cleaner#h");
- initnpctimer;
+ killmonster(instance_mapname("2@pump"), instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ disablenpc(instance_npcname("Missing, the Cleaner#h"));
+ initnpctimer();
end;
OnAddSeaweed:
.@map$ = instance_mapname("2@pump");
- areamonster .@map$,75,78,85,88,"Contaminated Seaweed",2191,1,instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead";
- .@mob_dead_num = mobcount(.@map$,instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ areamonster(.@map$, 75, 78, 85, 88, _("Contaminated Seaweed"), MD_SEAWEED, 1, instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
- donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
+ donpcevent(instance_npcname("Missing, the Cleaner#h")+"::OnFail");
else
- mapannounce .@map$,"Proliferous Contaminated Seaweed: "+.@mob_dead_num+" stem",bc_map,"0xff3333",FW_NORMAL,20;
+ mapannounce(.@map$, sprintf(_$("Proliferous Contaminated Seaweed: %s stem"), .@mob_dead_num), bc_map, "0xff3333", FW_NORMAL, 20);
end;
OnMyMobDead:
end;
OnFail:
- stopnpctimer;
- donpcevent instance_npcname("Monster Hole#h")+"::OnClear";
+ stopnpctimer();
+ donpcevent(instance_npcname("Monster Hole#h")+"::OnClear");
.@map$ = instance_mapname("2@pump");
- killmonster .@map$, instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead";
- enablenpc instance_npcname("Missing, the Cleaner#hf");
- mapannounce .@map$,"What is this!! Seaweed is all over the culverts! You're done with cleaning! Get out!!",bc_map,"0xff88ff",FW_NORMAL,15;
- disablenpc instance_npcname("Missing, the Cleaner#h");
+ killmonster(.@map$, instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ enablenpc(instance_npcname("Missing, the Cleaner#hf"));
+ mapannounce(.@map$, _("What is this!! Seaweed is all over the culverts! You're done with cleaning! Get out!!"), bc_map, "0xff88ff", FW_NORMAL, 15);
+ disablenpc(instance_npcname("Missing, the Cleaner#h"));
end;
OnTimer100:
- mapannounce instance_mapname("2@pump"),"First culvert will be opened in 5 sec. Cleaner can find the opened drain and click to start cleaning.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ mapannounce(instance_mapname("2@pump"), _("First culvert will be opened in 5 sec. Cleaner can find the opened drain and click to start cleaning."), bc_map, "0x00ffcc", FW_NORMAL, 15);
end;
OnTimer5500:
- mapannounce instance_mapname("2@pump"),"The one who's in charge of cleaning the culvert cannot move or be attacked until the casting is over.",bc_map,"0x00ffcc",FW_NORMAL,15;
- donpcevent instance_npcname("Monster Hole#h")+"::OnSpawn";
+ mapannounce(instance_mapname("2@pump"), _("The one who's in charge of cleaning the culvert cannot move or be attacked until the casting is over."), bc_map, "0x00ffcc", FW_NORMAL, 15);
+ donpcevent(instance_npcname("Monster Hole#h")+"::OnSpawn");
end;
OnTimer35000:
OnTimer75000:
@@ -960,12 +1003,12 @@ OnTimer235000:
OnTimer275000:
OnTimer315000:
OnTimer355000:
- mapannounce instance_mapname("2@pump"),"Next culvert will be opened in 5 sec. Please hurry up and find the position of the next culvert.",bc_map,"0x00ffcc",FW_NORMAL,15;
+ mapannounce(instance_mapname("2@pump"), _("Next culvert will be opened in 5 sec. Please hurry up and find the position of the next culvert."), bc_map, "0x00ffcc", FW_NORMAL, 15);
end;
OnTimer40000:
OnTimer80000:
OnTimer120000:
- donpcevent instance_npcname("Monster Hole#h")+"::OnSpawn";
+ donpcevent(instance_npcname("Monster Hole#h")+"::OnSpawn");
end;
OnTimer160000:
OnTimer200000:
@@ -973,72 +1016,92 @@ OnTimer240000:
OnTimer280000:
OnTimer320000:
OnTimer360000:
- .@mob_dead_num = mobcount(instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(instance_mapname("2@pump"), instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
- donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
+ donpcevent(instance_npcname("Missing, the Cleaner#h")+"::OnFail");
else
- donpcevent instance_npcname("Monster Hole#h")+"::OnSpawn";
+ donpcevent(instance_npcname("Monster Hole#h")+"::OnSpawn");
end;
OnTimer420000:
- mapannounce instance_mapname("2@pump"),"It seems Missing will come and inspect the results of the cleaning soon. Shall we clean up the mess around here?",bc_map,"0xff3333",FW_NORMAL,20;
+ mapannounce(instance_mapname("2@pump"), _("It seems Missing will come and inspect the results of the cleaning soon. Shall we clean up the mess around here?"), bc_map, "0xff3333", FW_NORMAL, 20);
end;
OnTimer425000:
- stopnpctimer;
- .@mob_dead_num = mobcount(instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ stopnpctimer();
+ .@mob_dead_num = mobcount(instance_mapname("2@pump"), instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
- donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
+ donpcevent(instance_npcname("Missing, the Cleaner#h")+"::OnFail");
else
- donpcevent instance_npcname("Boss Creation#h")+"::OnEnable";
+ donpcevent(instance_npcname("Boss Creation#h")+"::OnEnable");
end;
}
2@pump,53,114,4 script #Culvert_h1 CLEAR_NPC,14,14,{ //temporary workaround for ALL_SAMEMAP
- progressbar "0xFFFF00",15;
- stopnpctimer;
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ progressbar(sprintf("0x%x", C_YELLOW), 15);
+ stopnpctimer();
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
.@label$ = instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
.@map$ = instance_mapname("2@pump");
- .@index = atoi(substr(strnpcinfo(NPC_NAME_HIDDEN),9,getstrlen(strnpcinfo(NPC_NAME_HIDDEN))-1));
- switch(.@index) {
- case 1: setarray .@c[0],49,110,57,118; break;
- case 2: setarray .@c[0],75,105,83,113; break;
- case 3: setarray .@c[0],110,110,118,118; break;
- case 4: setarray .@c[0],94,94,102,102; break;
- case 5: setarray .@c[0],58,92,66,100; break;
- case 6: setarray .@c[0],53,66,61,74; break;
- case 7: setarray .@c[0],43,45,51,53; break;
- case 8: setarray .@c[0],77,59,85,67; break;
- case 9: setarray .@c[0],96,70,104,78; break;
- case 10: setarray .@c[0],111,46,119,54; break;
+ .@index = atoi(substr(strnpcinfo(NPC_NAME_HIDDEN), 9, getstrlen(strnpcinfo(NPC_NAME_HIDDEN))-1));
+ switch (.@index) {
+ case 1:
+ setarray(.@c[0], 49, 110, 57, 118);
+ break;
+ case 2:
+ setarray(.@c[0], 75, 105, 83, 113);
+ break;
+ case 3:
+ setarray(.@c[0], 110, 110, 118, 118);
+ break;
+ case 4:
+ setarray(.@c[0], 94, 94, 102, 102);
+ break;
+ case 5:
+ setarray(.@c[0], 58, 92, 66, 100);
+ break;
+ case 6:
+ setarray(.@c[0], 53, 66, 61, 74);
+ break;
+ case 7:
+ setarray(.@c[0], 43, 45, 51, 53);
+ break;
+ case 8:
+ setarray(.@c[0], 77, 59, 85, 67);
+ break;
+ case 9:
+ setarray(.@c[0], 96, 70, 104, 78);
+ break;
+ case 10:
+ setarray(.@c[0], 111, 46, 119, 54);
+ break;
}
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Marc",2182,rand(2,3),.@label$;
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Sword Fish",2181,rand(2,3),.@label$;
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Strouf",2180,rand(2,3),.@label$;
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Mutant Anolian",2183,rand(2,3),.@label$;
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Obeaune",2184,rand(2,3),.@label$;
- areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Metamorphous Kapha",2185,rand(2,3),.@label$;
- specialeffect EF_MAPPILLAR2,ALL_SAMEMAP; //currently broken
- initnpctimer;
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Ancient Marc"), MD_MARC, rand(2, 3), .@label$);
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Ancient Sword Fish"), MD_SWORD_FISH, rand(2, 3), .@label$);
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Ancient Strouf"), MD_STROUF, rand(2, 3), .@label$);
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Mutant Anolian"), MD_ANOLIAN, rand(2, 3), .@label$);
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Abysmal Obeaune"), MD_OBEAUNE, rand(2, 3), .@label$);
+ areamonster(.@map$, .@c[0], .@c[1], .@c[2], .@c[3], _("Metamorphous Kapha"), MD_KAPHA, rand(2, 3), .@label$);
+ specialeffect(EF_MAPPILLAR2, ALL_SAMEMAP); //currently broken
+ initnpctimer();
end;
OnMyMobDead:
end;
OnClear:
- stopnpctimer;
- killmonster instance_mapname("2@pump"),instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
+ stopnpctimer();
+ killmonster(instance_mapname("2@pump"), instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
end;
OnTimer39500: //OnTimer40000 clashes with the timer in "Missing, the Cleaner#h".
- donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnAddSeaweed";
- donpcevent instance_npcname(strnpcinfo(NPC_NAME))+"::OnClear";
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ donpcevent(instance_npcname("Missing, the Cleaner#h")+"::OnAddSeaweed");
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME))+"::OnClear");
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnTouch:
- specialeffect EF_MAPPILLAR2;
+ specialeffect(EF_MAPPILLAR2);
end;
}
2@pump,79,109,4 duplicate(#Culvert_h1) #Culvert_h2 CLEAR_NPC,14,14
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index d0a9bb10e..29e8bf4f8 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -951,6 +951,7 @@ ACMD(hide) {
//bugreport:2266
map->foreachinmovearea(clif->insight, &sd->bl, AREA_SIZE, sd->bl.x, sd->bl.y, BL_ALL, &sd->bl);
} else {
+ clif->clearunit_area(&sd->bl, CLR_OUTSIGHT);
sd->sc.option |= OPTION_INVISIBLE;
sd->vd.class = INVISIBLE_CLASS;
clif->message(fd, msg_fd(fd,11)); // Invisible: On
diff --git a/src/map/clif.c b/src/map/clif.c
index dc279f7ed..8adb1ae58 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -420,8 +420,14 @@ bool clif_send(const void* buf, int len, struct block_list* bl, enum send_target
sd = BL_CAST(BL_PC, bl);
- switch(type) {
+ if (sd != NULL && pc_isinvisible(sd)) {
+ if (type == AREA || type == BG || type == BG_AREA)
+ type = SELF;
+ else if (type == AREA_WOS || type == BG_WOS || type == BG_AREA_WOS)
+ return true;
+ }
+ switch(type) {
case ALL_CLIENT: //All player clients.
iter = mapit_getallusers();
while ((tsd = BL_UCAST(BL_PC, mapit->next(iter))) != NULL) {
diff --git a/src/map/packets.h b/src/map/packets.h
index b90413793..ad677728a 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -3929,4 +3929,62 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
#endif // PACKETVER_ZERO
+// 2017-12-13bRagexe
+#if PACKETVER >= 20171213
+// new packets
+ packet(0x0ae3,-1); // AC_LOGIN_OTP
+ packet(0x0ae6,30);
+ packet(0x0ae7,30);
+// changed packet sizes
+#endif
+
+// 2017-12-20aRagexe
+#if PACKETVER >= 20171220
+// new packets
+ packet(0x0ae8,2);
+ packet(0x0ae9,64);
+ packet(0x0aea,11);
+// changed packet sizes
+#endif
+
+// 2017-12-27aRagexe
+#if PACKETVER >= 20171227
+// new packets
+ packet(0x0aeb,11);
+ packet(0x0aec,2);
+// changed packet sizes
+ packet(0x0aea,2);
+#endif
+
+// 2018-01-03aRagexe
+#if PACKETVER >= 20180103
+// new packets
+ packet(0x0aed,2);
+ packet(0x0aee,2);
+// changed packet sizes
+#ifdef PACKETVER_RE
+ packet(0x09a0,6); // HC_CHARLIST_NOTIFY
+#endif
+// changed packet sizes
+#endif
+
+#if PACKETVER >= 20180117
+// new packets
+ packet(0x0aef,2);
+ packet(0x0af0,10);
+// changed packet sizes
+ packet(0x0ae9,13);
+#endif
+
+// 2018-01-24bRagexeRE
+#if PACKETVER >= 20180124
+// new packets
+ packet(0x0af2,40,clif->pDull/*,XXX*/);
+ packet(0x0af3,-1,clif->pDull/*,XXX*/);
+// changed packet sizes
+#ifndef PACKETVER_RE
+ packet(0x0821,102,clif->pDull/*,XXX*/); // AC_OTP_USER
+#endif
+#endif
+
#endif /* MAP_PACKETS_H */
diff --git a/src/map/packets_keys.h b/src/map/packets_keys.h
deleted file mode 100644
index feb0a76ec..000000000
--- a/src/map/packets_keys.h
+++ /dev/null
@@ -1,1899 +0,0 @@
-/**
- * This file is part of Hercules.
- * http://herc.ws - http://github.com/HerculesWS/Hercules
- *
- * Copyright (C) 2013-2017 Hercules Dev Team
- *
- * Hercules is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef MAP_PACKETS_KEYS_H
-#define MAP_PACKETS_KEYS_H
-
-#ifndef packetKeys
- #define packetKeys(a,b,c)
-#endif
-
-/* PacketKeys: http://herc.ws/board/topic/1105-hercules-wpe-free-june-14th-patch/ */
-
-// 2010-11-23aRagexe, 2010-11-24aRagexe, 2010-11-24dRagexe, 2010-11-24eRagexe, 2010-11-24fRagexe, 2010-11-26aRagexe
-#if PACKETVER == 20101123 || PACKETVER == 20101124 || PACKETVER == 20101126
- packetKeys(0x49357D72,0x22C370A1,0x5F836591);
-#endif
-
-// 2010-11-30aRagexe
-#if PACKETVER == 20101130
- packetKeys(0x3726593C,0x0EFD5EE8,0x79036DF9);
-#endif
-
-// 2010-12-07bRagexe
-#if PACKETVER == 20101207
- packetKeys(0x66111112,0x2B7B53AA,0x04E76DF8);
-#endif
-
-// 2010-12-14aRagexe
-#if PACKETVER == 20101214
- packetKeys(0x5E535D06,0x4E297F0E,0x400B6AD8);
-#endif
-
-// 2010-12-21aRagexe
-#if PACKETVER == 20101221
- packetKeys(0x0448466A,0x41554AC9,0x5B4710B2);
-#endif
-
-// 2010-12-28aRagexe
-#if PACKETVER == 20101228
- packetKeys(0x50C638A5,0x4BF86B20,0x480C3746);
-#endif
-
-// 2011-01-04aRagexe
-#if PACKETVER == 20110104
- packetKeys(0x55DB401F,0x047D4E02,0x6D8F2EA3);
-#endif
-
-// 2011-01-11aRagexe
-#if PACKETVER == 20110111
- packetKeys(0x2D5F6302,0x2A361CD6,0x39D661D6);
-#endif
-
-// 2011-01-18aRagexe
-#if PACKETVER == 20110118
- packetKeys(0x3C777D2D,0x00541A1D,0x5E0053A2);
-#endif
-
-// 2011-01-25aRagexe, 2011-01-26aRagexe, 2011-01-26bRagexe, 2011-01-31aRagexe
-#if PACKETVER == 20110125 || PACKETVER == 20110126 || PACKETVER == 20110131
- packetKeys(0x6BB84BB0,0x4C004382,0x10AE3260);
-#endif
-
-// 2011-01-31bRagexe, 2011-02-01aRagexe
-#if PACKETVER == 20110131 || PACKETVER == 20110201
- packetKeys(0x68871E62,0x60D17266,0x74726DAA);
-#endif
-
-// 2011-02-08aRagexe, 2011-02-10aRagexe, 2011-02-10bRagexe
-#if PACKETVER == 20110208 || PACKETVER == 20110210
- packetKeys(0x72BA4E9D,0x281E1DF1,0x208255AA);
-#endif
-
-// 2011-02-15aRagexe
-#if PACKETVER == 20110215
- packetKeys(0x1B174D76,0x32005014,0x7B8B72D5);
-#endif
-
-// 2011-02-22aRagexe, 2011-02-23aRagexe, 2011-02-23bRagexe, 2011-02-24aRagexe, 2011-02-25aRagexe, 2011-02-25bRagexe
-#if PACKETVER == 20110222 || PACKETVER == 20110223 || PACKETVER == 20110224 || PACKETVER == 20110225
- packetKeys(0x48F73B56,0x155F7D66,0x44AB57CE);
-#endif
-
-// 2011-02-28aRagexe
-#if PACKETVER == 20110228
- packetKeys(0x26385EBF,0x7A8C7534,0x60AE2C34);
-#endif
-
-// 2011-03-08aRagexe, 2011-03-09aRagexe, 2011-03-09bRagexe, 2011-03-09cRagexe, 2011-03-09dRagexe
-#if PACKETVER == 20110308 || PACKETVER == 20110309
- packetKeys(0x003F1B20,0x7A1E12A3,0x34994AAD);
-#endif
-
-// 2011-03-15aRagexe, 2011-03-16aRagexe
-#if PACKETVER == 20110315 || PACKETVER == 20110316
- packetKeys(0x62967D7D,0x34833D1A,0x26D45ECA);
-#endif
-
-// 2011-03-22aRagexe
-#if PACKETVER == 20110322
- packetKeys(0x5870617C,0x638D5376,0x739F4817);
-#endif
-
-// 2011-03-29aRagexe, 2011-03-30aRagexe
-#if PACKETVER == 20110329 || PACKETVER == 20110330
- packetKeys(0x06900BB7,0x45DB687B,0x197B017B);
-#endif
-
-// 2011-04-05aRagexe
-#if PACKETVER == 20110405
- packetKeys(0x248D5C37,0x1C6A1B37,0x1F644FDB);
-#endif
-
-// 2011-04-12bRagexe
-#if PACKETVER == 20110412
- packetKeys(0x3DE86BFC,0x0DD47F80,0x42481C9B);
-#endif
-
-// 2011-04-19aRagexe
-#if PACKETVER == 20110419
- packetKeys(0x26073204,0x62013A51,0x22AC58E0);
-#endif
-
-// 2011-04-26aRagexe
-#if PACKETVER == 20110426
- packetKeys(0x392813F9,0x09905054,0x40DB732E);
-#endif
-
-// 2011-05-03aRagexe
-#if PACKETVER == 20110503
- packetKeys(0x28BE32EE,0x1D506FCB,0x63832421);
-#endif
-
-// 2011-05-11aRagexe
-#if PACKETVER == 20110511
- packetKeys(0x6A715733,0x3C5C0D74,0x408A48EC);
-#endif
-
-// 2011-05-17aRagexe
-#if PACKETVER == 20110517
- packetKeys(0x07FE0C72,0x46766BAD,0x5EB5126A);
-#endif
-
-// 2011-05-23aRagexe, 2011-05-26bRagexe
-#if PACKETVER == 20110523 || PACKETVER == 20110526
- packetKeys(0x69166916,0x69166916,0x69166916);
-#endif
-
-// 2011-05-31aRagexe
-#if PACKETVER == 20110531
- packetKeys(0x5ABA2C7C,0x3CD22073,0x78953988);
-#endif
-
-// 2011-06-07aRagexe, 2011-06-08aRagexe, 2011-06-08bRagexe, 2011-06-08cRagexe, 2011-06-09aRagexe
-#if PACKETVER == 20110607 || PACKETVER == 20110608 || PACKETVER == 20110609
- packetKeys(0x76B0426C,0x0DD74DEB,0x1F92228E);
-#endif
-
-// 2011-06-14aRagexe
-#if PACKETVER == 20110614
- packetKeys(0x5749027B,0x71710972,0x5B096475);
-#endif
-
-// 2011-06-20aRagexe
-#if PACKETVER == 20110620
- packetKeys(0x3A1760D4,0x254E0DF9,0x440E2357);
-#endif
-
-// 2011-06-27aRagexe
-#if PACKETVER == 20110627
- packetKeys(0x3EFC29BD,0x699E4B11,0x7B900A13);
-#endif
-
-// 2011-07-05aRagexe
-#if PACKETVER == 20110705
- packetKeys(0x48801A5E,0x68FC7726,0x081D7F6E);
-#endif
-
-// 2011-07-11bRagexe, 2011-07-13aRagexe, 2011-07-13bRagexe
-#if PACKETVER == 20110711 || PACKETVER == 20110713
- packetKeys(0x489C544B,0x33BA1C25,0x2DE66E4E);
-#endif
-
-// 2011-07-18aRagexe
-#if PACKETVER == 20110718
- packetKeys(0x08464674,0x1EEB3BD5,0x33395199);
-#endif
-
-// 2011-07-26aRagexe
-#if PACKETVER == 20110726
- packetKeys(0x41E5730B,0x119C6C11,0x5356524A);
-#endif
-
-// 2011-08-02aRagexe
-#if PACKETVER == 20110802
- packetKeys(0x607C08A1,0x65B20528,0x360571E9);
-#endif
-
-// 2011-08-09aRagexe
-#if PACKETVER == 20110809
- packetKeys(0x742A559A,0x047F425D,0x5C8C2CA0);
-#endif
-
-// 2011-08-16aRagexe, 2011-08-16aRagexeRE, 2011-08-17aRagexe, 2011-08-17aRagexeRE, 2011-08-17bRagexe, 2011-08-17bRagexeRE
-#if PACKETVER == 20110816 || PACKETVER == 20110817
- packetKeys(0x053D5CED,0x3DED6DED,0x6DED6DED);
-#endif
-
-// 2011-08-23aRagexe, 2011-08-23aRagexeRE, 2011-08-24aRagexe, 2011-08-24aRagexeRE, 2011-08-24bRagexeRE
-#if PACKETVER == 20110823 || PACKETVER == 20110824
- packetKeys(0x35C91401,0x262A5556,0x28FA03AA);
-#endif
-
-// 2011-08-31aRagexe, 2011-08-31aRagexeRE, 2011-08-31bRagexe, 2011-08-31bRagexeRE, 2011-08-31cRagexe, 2011-08-31cRagexeRE, 2011-08-31dRagexeRE, 2011-08-31eRagexeRE
-#if PACKETVER == 20110831
- packetKeys(0x3AD67ED0,0x44703C69,0x6F876809);
-#endif
-
-// 2011-09-06aRagexe, 2011-09-06aRagexeRE, 2011-09-14aRagexe, 2011-09-14aRagexeRE
-#if PACKETVER == 20110906 || PACKETVER == 20110914
- packetKeys(0x350124EC,0x39A14595,0x0DE56125);
-#endif
-
-// 2011-09-20aRagexe, 2011-09-20aRagexeRE, 2011-09-20aRagexeRE2
-#if PACKETVER == 20110920
- packetKeys(0x79C91A12,0x20450CC0,0x584B2A38);
-#endif
-
-// 2011-09-28aRagexe, 2011-09-28aRagexe-retry, 2011-09-28aRagexeRE, 2011-09-29aRagexe, 2011-09-29aRagexeRE
-#if PACKETVER == 20110928 || PACKETVER == 20110929
- packetKeys(0x26567512,0x4B0732DF,0x57D266C6);
-#endif
-
-// 2011-10-04aRagexe, 2011-10-04aRagexeRE, 2011-10-05aRagexe, 2011-10-05aRagexeRE
-#if PACKETVER == 20111004 || PACKETVER == 20111005
- packetKeys(0x291E6762,0x77CD391A,0x60AC2F16);
-#endif
-
-// 2011-10-10aRagexe, 2011-10-10bRagexeRE, 2011-10-12aRagexeRE, 2011-10-12bRagexe
-#if PACKETVER == 20111010 || PACKETVER == 20111012
- packetKeys(0x7F3C2D29,0x59B01DE6,0x1DBB44CA);
-#endif
-
-// 2011-10-17aRagexe, 2011-10-17aRagexeRE, 2011-10-19aRagexeRE, 2011-10-19bRagexeRE, 2011-10-21aRagexe, 2011-10-21aRagexeRE, 2011-10-21cRagexe
-#if PACKETVER == 20111017 || PACKETVER == 20111019 || PACKETVER == 20111021
- packetKeys(0x357D55DC,0x5A8D759F,0x245C30F5);
-#endif
-
-// 2011-10-25aRagexe, 2011-10-25aRagexeRE
-#if PACKETVER == 20111025
- packetKeys(0x50AE1A63,0x3CE579B5,0x29C10406);
-#endif
-
-// 2011-11-01cRagexe, 2011-11-01cRagexeRE, 2011-11-02aRagexe, 2011-11-02aRagexeRE
-#if PACKETVER == 20111101 || PACKETVER == 20111102
- packetKeys(0x5324329D,0x5D545D52,0x06137269);
-#endif
-
-// 2011-11-08aRagexe, 2011-11-08aRagexeRE, 2011-11-09aRagexe, 2011-11-09aRagexeRE, 2011-11-09bRagexe, 2011-11-09cRagexe, 2011-11-09dRagexe, 2011-11-09eRagexe
-#if PACKETVER == 20111108 || PACKETVER == 20111109
- packetKeys(0x0B642BDA,0x6ECB1D1C,0x61C7454B);
-#endif
-
-// 2011-11-14aRagexe, 2011-11-14aRagexeRE, 2011-11-16aRagexe, 2011-11-16aRagexeRE
-#if PACKETVER == 20111114 || PACKETVER == 20111116
- packetKeys(0x419D0DB0,0x74916BF4,0x027371B4);
-#endif
-
-// 2011-11-22aRagexe, 2011-11-22aRagexeRE, 2011-11-23aRagexe
-#if PACKETVER == 20111122 || PACKETVER == 20111123
- packetKeys(0x3B550F07,0x1F666C7C,0x60304EF5);
-#endif
-
-// 2011-12-07aRagexe, 2011-12-07aRagexeRE
-#if PACKETVER == 20111207
- packetKeys(0x2A610886,0x3E09165E,0x57C11888);
-#endif
-
-// 2011-12-13aRagexe, 2011-12-13aRagexeRE, 2011-12-14aRagexe, 2011-12-14aRagexeRE, 2011-12-14bRagexeRE, 2011-12-14cRagexeRE
-#if PACKETVER == 20111213 || PACKETVER == 20111214
- packetKeys(0x5151306B,0x7AE32886,0x53060628);
-#endif
-
-// 2011-12-20bRagexe, 2011-12-20bRagexeRE
-#if PACKETVER == 20111220
- packetKeys(0x05D53871,0x7D0027B4,0x29975333);
-#endif
-
-// 2011-12-27aRagexe, 2011-12-27aRagexeRE, 2011-12-28aRagexe, 2011-12-28aRagexeRE
-#if PACKETVER == 20111227 || PACKETVER == 20111228
- packetKeys(0x0FF87E93,0x6CFF7860,0x3A3D1DEC);
-#endif
-
-// 2012-01-03aRagexe, 2012-01-03bRagexeRE, 2012-01-04aRagexe, 2012-01-04aRagexeRE, 2012-01-04bRagexe
-#if PACKETVER == 20120103 || PACKETVER == 20120104
- packetKeys(0x262034A1,0x674542A5,0x73A50BA5);
-#endif
-
-// 2012-01-10aRagexeRE, 2012-01-10bRagexe
-#if PACKETVER == 20120110
- packetKeys(0x2B412AFC,0x4FF94487,0x6705339D);
-#endif
-
-// 2012-01-17aRagexe, 2012-01-17aRagexeRE, 2012-01-18aRagexe
-#if PACKETVER == 20120117 || PACKETVER == 20120118
- packetKeys(0x24E32C2E,0x48DD17A5,0x64F8771A);
-#endif
-
-// 2012-01-20aRagexe, 2012-01-20aRagexeRE
-#if PACKETVER == 20120120
- packetKeys(0x504345D0,0x3D427B1B,0x794C2DCC);
-#endif
-
-// 2012-01-31aRagexe, 2012-01-31cRagexeRE, 2012-02-01aRagexeRE, 2012-02-02aRagexe, 2012-02-02aRagexeRE, 2012-02-02bRagexe, 2012-02-02bRagexeRE
-#if PACKETVER == 20120131 || PACKETVER == 20120201 || PACKETVER == 20120202
- packetKeys(0x2CFC0A71,0x2BA91D8D,0x087E39E0);
-#endif
-
-// 2012-02-07bRagexe, 2012-02-07bRagexeRE, 2012-02-08aRagexe, 2012-02-09aRagexe
-#if PACKETVER == 20120207 || PACKETVER == 20120208 || PACKETVER == 20120209
- packetKeys(0x1D373F5D,0x5ACD604D,0x1C4D7C4D);
-#endif
-
-// 2012-02-14bRagexe, 2012-02-14bRagexeRE, 2012-02-15aRagexe
-#if PACKETVER == 20120214 || PACKETVER == 20120215
- packetKeys(0x7A255EFA,0x30977276,0x2D4A0448);
-#endif
-
-// 2012-02-21aRagexe, 2012-02-21aRagexeRE, 2012-02-22aRagexe, 2012-02-22aRagexeRE
-#if PACKETVER == 20120221 || PACKETVER == 20120222
- packetKeys(0x1CA5130F,0x43ED240A,0x7FEA3BE0);
-#endif
-
-// 2012-02-28bRagexe, 2012-02-28bRagexeRE, 2012-02-29aRagexe, 2012-02-29aRagexeRE
-#if PACKETVER == 20120228 || PACKETVER == 20120229
- packetKeys(0x520B4C64,0x2800407D,0x47651458);
-#endif
-
-// 2012-03-07aRagexe, 2012-03-07aRagexeRE, 2012-03-07bRagexe, 2012-03-07bRagexeRE, 2012-03-07cRagexe, 2012-03-07cRagexeRE, 2012-03-07dRagexe, 2012-03-07dRagexeRE, 2012-03-07eRagexeRE, 2012-03-07fRagexeRE
-#if PACKETVER == 20120307
- packetKeys(0x382A6DEF,0x5CBE7202,0x61F46637);
-#endif
-
-// 2012-03-14aRagexe, 2012-03-14aRagexeRE, 2012-03-14bRagexe, 2012-03-14bRagexeRE, 2012-03-14cRagexe, 2012-03-14cRagexeRE
-#if PACKETVER == 20120314
- packetKeys(0x689C1729,0x11812639,0x60F82967);
-#endif
-
-// 2012-03-20aRagexe, 2012-03-20aRagexeRE, 2012-03-21aRagexeRE
-#if PACKETVER == 20120320 || PACKETVER == 20120321
- packetKeys(0x21F9683F,0x710C5CA5,0x1FD910E9);
-#endif
-
-// 2012-03-28aRagexe, 2012-03-28aRagexeRE, 2012-03-28bRagexe, 2012-03-28bRagexeRE, 2012-03-28cRagexe, 2012-03-28cRagexeRE, 2012-03-28dRagexe, 2012-03-28dRagexeRE, 2012-03-28eRagexeRE, 2012-03-28fRagexeRE, 2012-03-28gRagexeRE
-#if PACKETVER == 20120328
- packetKeys(0x75B8553B,0x37F20B12,0x385C2B40);
-#endif
-
-// 2012-04-04aRagexe, 2012-04-04aRagexeRE
-#if PACKETVER == 20120404
- packetKeys(0x0036310C,0x2DCD0BED,0x1EE62A78);
-#endif
-
-// 2012-04-10aRagexe, 2012-04-10aRagexeRE
-#if PACKETVER == 20120410
- packetKeys(0x01581359,0x452D6FFA,0x6AFB6E2E);
-#endif
-
-// 2012-04-17aRagexe, 2012-04-17aRagexeRE, 2012-04-18aRagexeRE
-#if PACKETVER == 20120417 || PACKETVER == 20120418
- packetKeys(0x01540E48,0x13041224,0x31247924);
-#endif
-
-// 2012-04-24aRagexe, 2012-04-24aRagexeRE
-#if PACKETVER == 20120424
- packetKeys(0x411D1DBB,0x4CBA4848,0x1A432FC4);
-#endif
-
-// 2012-05-02aRagexeRE, 2012-05-03aRagexe, 2012-05-03aRagexeRE, 2012-05-03bRagexe
-#if PACKETVER == 20120502 || PACKETVER == 20120503
- packetKeys(0x37A91D19,0x10190019,0x00190019);
-#endif
-
-// 2012-05-08aRagexe, 2012-05-08aRagexeRE, 2012-05-09aRagexeRE, 2012-05-09bRagexeRE
-#if PACKETVER == 20120508 || PACKETVER == 20120509
- packetKeys(0x16CF3301,0x1F472B9B,0x0B4A3CD2);
-#endif
-
-// 2012-05-15aRagexe, 2012-05-15aRagexeRE
-#if PACKETVER == 20120515
- packetKeys(0x4A715EF9,0x79103E4F,0x405C1238);
-#endif
-
-// 2012-05-22aRagexe, 2012-05-23aRagexe, 2012-05-23aRagexeRE, 2012-05-23bRagexeRE, 2012-05-25aRagexeRE
-#if PACKETVER == 20120522 || PACKETVER == 20120523 || PACKETVER == 20120525
- packetKeys(0x70EB4CCB,0x0487713C,0x398D4B08);
-#endif
-
-// 2012-05-29bRagexe, 2012-05-29bRagexeRE
-#if PACKETVER == 20120529
- packetKeys(0x53415DDE,0x34953E16,0x27623DF2);
-#endif
-
-// 2012-06-01aRagexeRE, 2012-06-04aRagexe, 2012-06-05aRagexeRE
-#if PACKETVER == 20120601 || PACKETVER == 20120604 || PACKETVER == 20120605
- packetKeys(0x68CA3080,0x31B74BDD,0x505208F1);
-#endif
-
-// 2012-06-12aRagexe, 2012-06-12aRagexeRE
-#if PACKETVER == 20120612
- packetKeys(0x32E45D64,0x35643564,0x35643564);
-#endif
-
-// 2012-06-18aRagexe, 2012-06-18aRagexeRE
-#if PACKETVER == 20120618
- packetKeys(0x261F261F,0x261F261F,0x261F261F);
-#endif
-
-// 2012-06-26aRagexe, 2012-06-26aRagexeRE, 2012-06-27aRagexe, 2012-06-27aRagexeRE
-#if PACKETVER == 20120626 || PACKETVER == 20120627
- packetKeys(0x02277E66,0x045723F1,0x7107392C);
-#endif
-
-// 2012-07-02aRagexe, 2012-07-02aRagexeRE
-#if PACKETVER == 20120702
- packetKeys(0x25733B31,0x53486CFD,0x398649BD);
-#endif
-
-// 2012-07-10aRagexe, 2012-07-10aRagexeRE, 2012-07-12aRagexe, 2012-07-12aRagexeRE
-#if PACKETVER == 20120710 || PACKETVER == 20120712
- packetKeys(0x0E8B7AFB,0x6930362D,0x42D33A57);
-#endif
-
-// 2012-07-16aRagexe, 2012-07-16aRagexeRE
-#if PACKETVER == 20120716
- packetKeys(0x76052205,0x22052205,0x22052205);
-#endif
-
-// 2012-07-24aRagexe, 2012-07-24aRagexeRE
-#if PACKETVER == 20120724
- packetKeys(0x783D5BC6,0x3AAC2176,0x66616F02);
-#endif
-
-// 2012-08-01aRagexe, 2012-08-01aRagexeRE, 2012-08-01bRagexe, 2012-08-01bRagexeRE
-#if PACKETVER == 20120801
- packetKeys(0x71FB6768,0x5843166B,0x6CB445C6);
-#endif
-
-// 2012-08-08aRagexe, 2012-08-08aRagexeRE, 2012-08-08bRagexe, 2012-08-08bRagexeRE, 2012-08-08cRagexe, 2012-08-08cRagexeRE, 2012-08-08dRagexeRE
-#if PACKETVER == 20120808
- packetKeys(0x5D5068BB,0x36732065,0x47CF7367);
-#endif
-
-// 2012-08-14aRagexe, 2012-08-14aRagexeRE, 2012-08-14bRagexe, 2012-08-14bRagexeRE
-#if PACKETVER == 20120814
- packetKeys(0x203E21BD,0x047459FB,0x56AF5A97);
-#endif
-
-// 2012-08-22aRagexe, 2012-08-22aRagexeRE, 2012-08-22bRagexe, 2012-08-22bRagexeRE, 2012-08-22cRagexe, 2012-08-22cRagexeRE
-#if PACKETVER == 20120822
- packetKeys(0x06A92E7B,0x3D324F29,0x5FD63004);
-#endif
-
-// 2012-08-30aRagexe, 2012-08-30aRagexeRE, 2012-08-30bRagexeRE
-#if PACKETVER == 20120830
- packetKeys(0x0AF1363D,0x4AB33E3B,0x48421DBE);
-#endif
-
-// 2012-09-05aRagexe, 2012-09-05aRagexeRE
-#if PACKETVER == 20120905
- packetKeys(0x04F50D80,0x092F5C4D,0x29BF3DCF);
-#endif
-
-// 2012-09-11aRagexe, 2012-09-11aRagexeRE
-#if PACKETVER == 20120911
- packetKeys(0x1F3D1145,0x02DB3C32,0x4BE34C49);
-#endif
-
-// 2012-09-19aRagexe, 2012-09-19aRagexeRE
-#if PACKETVER == 20120919
- packetKeys(0x72E00F24,0x4EA02D80,0x7C803480);
-#endif
-
-// 2012-09-25aRagexe, 2012-09-25aRagexeRE, 2012-09-26aRagexe, 2012-09-26aRagexeRE
-#if PACKETVER == 20120925 || PACKETVER == 20120926
- packetKeys(0x43A66E22,0x36C2229F,0x08172ECE);
-#endif
-
-// 2012-10-10aRagexe, 2012-10-10aRagexeRE, 2012-10-10bRagexe, 2012-10-10bRagexeRE, 2012-10-11aRagexeRE
-#if PACKETVER == 20121010 || PACKETVER == 20121011
- packetKeys(0x169733E2,0x4C4640DC,0x31636531);
-#endif
-
-// 2012-10-17aRagexe, 2012-10-17aRagexeRE, 2012-10-17bRagexe, 2012-10-17bRagexeRE
-#if PACKETVER == 20121017
- packetKeys(0x340C0C31,0x33205EA8,0x55964BFF);
-#endif
-
-// 2012-10-24aRagexe, 2012-10-24aRagexeRE
-#if PACKETVER == 20121024
- packetKeys(0x6166335C,0x45393483,0x7EDC5478);
-#endif
-
-// 2012-10-31aRagexe, 2012-10-31aRagexeRE
-#if PACKETVER == 20121031
- packetKeys(0x66EB7ADB,0x242864BB,0x354A4CDE);
-#endif
-
-// 2012-11-07aRagexe, 2012-11-07aRagexeRE
-#if PACKETVER == 20121107
- packetKeys(0x49967892,0x48025276,0x1E192CA3);
-#endif
-
-// 2012-11-14aRagexe, 2012-11-14aRagexeRE
-#if PACKETVER == 20121114
- packetKeys(0x3473545C,0x2706445C,0x79647616);
-#endif
-
-// 2012-11-21aRagexe, 2012-11-21aRagexeRE
-#if PACKETVER == 20121121
- packetKeys(0x6EB54B0B,0x3F2A6BE5,0x0B2866E6);
-#endif
-
-// 2012-11-28aRagexe, 2012-11-28aRagexeRE
-#if PACKETVER == 20121128
- packetKeys(0x146D4D5E,0x5C3D161B,0x759250B8);
-#endif
-
-// 2012-12-05aRagexe, 2012-12-05aRagexeRE, 2012-12-05bRagexe, 2012-12-05bRagexeRE
-#if PACKETVER == 20121205
- packetKeys(0x218C64B6,0x4EFE17AE,0x27EA5E74);
-#endif
-
-// 2012-12-12aRagexe, 2012-12-12aRagexeRE, 2012-12-12bRagexe, 2012-12-12bRagexeRE, 2012-12-12cRagexeRE
-#if PACKETVER == 20121212
- packetKeys(0x7F8026F0,0x32EE2A4B,0x73746C0E);
-#endif
-
-// 2012-12-18aRagexe, 2012-12-18aRagexeRE, 2012-12-18bRagexe, 2012-12-18bRagexeRE
-#if PACKETVER == 20121218
- packetKeys(0x6A5450A2,0x4322498A,0x2C6574FB);
-#endif
-
-// 2012-12-27aRagexe, 2012-12-27aRagexeRE
-#if PACKETVER == 20121227
- packetKeys(0x71773018,0x36A14EEB,0x28CD5A20);
-#endif
-
-// 2013-01-03aRagexe, 2013-01-03aRagexeRE, 2013-01-07aRagexe
-#if PACKETVER == 20130103 || PACKETVER == 20130107
- packetKeys(0x1E1A559A,0x199A799A,0x799A799A);
-#endif
-
-// 2013-01-09aRagexe, 2013-01-09aRagexeRE
-#if PACKETVER == 20130109
- packetKeys(0x6435360F,0x0A283678,0x64A04AC7);
-#endif
-
-// 2013-01-15aRagexeRE, 2013-01-15bRagexe, 2013-01-16aRagexe, 2013-01-16aRagexeRE, 2013-01-16bRagexe
-#if PACKETVER == 20130115 || PACKETVER == 20130116
- packetKeys(0x273C25CD,0x06AA48AF,0x45A01BD4);
-#endif
-
-// 2013-01-21aRagexe, 2013-01-21aRagexeRE
-#if PACKETVER == 20130121
- packetKeys(0x5DD874B0,0x7D98233F,0x28FF5566);
-#endif
-
-// 2013-01-30aRagexe, 2013-01-30aRagexeRE
-#if PACKETVER == 20130130
- packetKeys(0x1EA57961,0x27786856,0x30301FA0);
-#endif
-
-// 2013-02-06aRagexe, 2013-02-06aRagexeRE
-#if PACKETVER == 20130206
- packetKeys(0x1D8F4227,0x675812AA,0x29132929);
-#endif
-
-// 2013-02-15aRagexe, 2013-02-15aRagexeRE, 2013-02-15bRagexe
-#if PACKETVER == 20130215
- packetKeys(0x69FB1C38,0x7D386860,0x62805311);
-#endif
-
-// 2013-02-20aRagexe, 2013-02-20bRagexeRE
-#if PACKETVER == 20130220
- packetKeys(0x0D555256,0x28C26722,0x72220A22);
-#endif
-
-// 2013-02-27aRagexe, 2013-02-27aRagexeRE
-#if PACKETVER == 20130227
- packetKeys(0x44F86842,0x43786A7A,0x71654528);
-#endif
-
-// 2013-03-06aRagexe, 2013-03-06aRagexeRE, 2013-03-06bRagexeRE
-#if PACKETVER == 20130306
- packetKeys(0x7E274326,0x7D182DF2,0x4FC27DFA);
-#endif
-
-// 2013-03-13aRagexe, 2013-03-13aRagexeRE, 2013-03-13bRagexeRE, 2013-03-13cRagexeRE
-#if PACKETVER == 20130313
- packetKeys(0x560021C3,0x6A5D110F,0x52BD40A5);
-#endif
-
-// 2013-03-20bRagexeRE, 2013-03-20cRagexeRE, 2013-03-20dRagexe, 2013-03-20eRagexe
-#if PACKETVER == 20130320
- packetKeys(0x3F094C49,0x55F86C1E,0x58AA359A);
-#endif
-
-// 2013-03-27bRagexe, 2013-03-27bRagexeRE
-#if PACKETVER == 20130327
- packetKeys(0x114B1BA0,0x2C4F0AE2,0x5FA1183F);
-#endif
-
-// 2013-04-03aRagexe, 2013-04-03aRagexeRE
-#if PACKETVER == 20130403
- packetKeys(0x424A43AE,0x4A9D5EBE,0x4B3518A9);
-#endif
-
-// 2013-04-10aRagexe, 2013-04-10aRagexeRE
-#if PACKETVER == 20130410
- packetKeys(0x3AD52ACA,0x314D1AED,0x086E415E);
-#endif
-
-// 2013-04-17aRagexe, 2013-04-17aRagexeRE
-#if PACKETVER == 20130417
- packetKeys(0x7FB13B83,0x6E003749,0x07A02B94);
-#endif
-
-// 2013-04-24aRagexe, 2013-04-24aRagexeRE
-#if PACKETVER == 20130424
- packetKeys(0x79F679F6,0x79F679F6,0x79F679F6);
-#endif
-
-// 2013-05-02aRagexe, 2013-05-02aRagexeRE, 2013-05-02bRagexe
-#if PACKETVER == 20130502
- packetKeys(0x62E733B9,0x62204281,0x7F044DCA);
-#endif
-
-// 2013-05-08bRagexe, 2013-05-08bRagexeRE, 2013-05-08cRagexe, 2013-05-08dRagexe, 2013-05-08eRagexe, 2013-05-08fRagexe
-#if PACKETVER == 20130508
- packetKeys(0x25421E49,0x175200BA,0x6C0B5239);
-#endif
-
-// 2013-05-15aRagexe, 2013-05-15aRagexeRE
-#if PACKETVER == 20130515
- packetKeys(0x75794A38,0x58A96BC1,0x296E6FB8);
-#endif
-
-// 2013-05-22Ragexe, 2013-05-22aRagexe, 2013-05-22aRagexeRE
-#if PACKETVER == 20130522
- packetKeys(0x6948050B,0x06511D9D,0x725D4DF1);
-#endif
-
-// 2013-05-29Ragexe, 2013-05-29aRagexe, 2013-05-29aRagexeRE
-#if PACKETVER == 20130529
- packetKeys(0x023A6C87,0x14BF1F1E,0x5CC70CC9);
-#endif
-
-// 2013-06-05Ragexe, 2013-06-05aRagexe, 2013-06-05bRagexe, 2013-06-05cRagexeRE
-#if PACKETVER == 20130605
- packetKeys(0x646E08D9,0x5F153AB5,0x61B509B5);
-#endif
-
-// 2013-06-12aRagexe, 2013-06-12bRagexe, 2013-06-12bRagexeRE, 2013-06-12cRagexe, 2013-06-12dRagexe, 2013-06-12eRagexe
-#if PACKETVER == 20130612
- packetKeys(0x6D166F66,0x3C000FCF,0x295B0FCB);
-#endif
-
-// 2013-06-18aRagexe, 2013-06-18aRagexeRE
-#if PACKETVER == 20130618
- packetKeys(0x434115DE,0x34A10FE9,0x6791428E);
-#endif
-
-// 2013-06-26aRagexeRE, 2013-06-26bRagexe, 2013-06-26bRagexeRE, 2013-06-26cRagexe
-#if PACKETVER == 20130626
- packetKeys(0x38F453EF,0x6A040FD8,0x65BD6668);
-#endif
-
-// 2013-07-03aRagexe, 2013-07-03bRagexeRE
-#if PACKETVER == 20130703
- packetKeys(0x4FF90E23,0x0F1432F2,0x4CFA1EDA);
-#endif
-
-// 2013-07-10aRagexeRE, 2013-07-10bRagexe, 2013-07-10bRagexeRE, 2013-07-10cRagexeRE, 2013-07-10dRagexeRE, 2013-07-10eRagexeRE
-#if PACKETVER == 20130710
- packetKeys(0x4A9C4237,0x4CCF3F8F,0x458F758F);
-#endif
-
-// 2013-07-17cRagexe, 2013-07-17cRagexeRE, 2013-07-17dRagexeRE, 2013-07-17eRagexeRE
-#if PACKETVER == 20130717
- packetKeys(0x5EE5520C,0x5F9E00CF,0x2BED4F91);
-#endif
-
-// 2013-07-24eRagexe, 2013-07-24eRagexeRE, 2013-07-24fRagexeRE
-#if PACKETVER == 20130724
- packetKeys(0x3C243BF5,0x42CC4E2F,0x02106EC6);
-#endif
-
-// 2013-07-31cRagexe, 2013-07-31cRagexeRE
-#if PACKETVER == 20130731
- packetKeys(0x1E9D11A6,0x21A232B8,0x6A9E02B7);
-#endif
-
-// 2013-08-07aRagexe, 2013-08-07aRagexeRE
-#if PACKETVER == 20130807
- packetKeys(0x7E241DE0,0x5E805580,0x3D807D80);
-#endif
-
-// 2013-08-14aRagexe, 2013-08-14aRagexeRE
-#if PACKETVER == 20130814
- packetKeys(0x23A23148,0x0C41420E,0x53785AD7);
-#endif
-
-// 2013-08-21bRagexe, 2013-08-21dRagexeRE
-#if PACKETVER == 20130821
- packetKeys(0x51673F38,0x01663512,0x5CFF0B3D);
-#endif
-
-// 2013-08-28bRagexe, 2013-08-28bRagexeRE, 2013-08-28cRagexe, 2013-08-28cRagexeRE
-#if PACKETVER == 20130828
- packetKeys(0x02EF7A9A,0x4882042F,0x76796678);
-#endif
-
-// 2013-09-04aRagexe, 2013-09-04bRagexeRE
-#if PACKETVER == 20130904
- packetKeys(0x41AF20C5,0x0997799E,0x4AE803A0);
-#endif
-
-// 2013-09-11aRagexe, 2013-09-11aRagexeRE, 2013-09-11bRagexe, 2013-09-11bRagexeRE
-#if PACKETVER == 20130911
- packetKeys(0x232B3F47,0x0AD0515F,0x1CA31828);
-#endif
-
-// 2013-09-17aRagexe, 2013-09-17aRagexeRE
-#if PACKETVER == 20130917
- packetKeys(0x5C9164C5,0x32B62F83,0x52864548);
-#endif
-
-// 2013-09-25aRagexe, 2013-09-25aRagexeRE, 2013-09-25bRagexe, 2013-09-25bRagexeRE, 2013-09-25cRagexe
-#if PACKETVER == 20130925
- packetKeys(0x4B9C279A,0x0C7849C4,0x72A77646);
-#endif
-
-// 2013-10-02aRagexe, 2013-10-02aRagexeRE
-#if PACKETVER == 20131002
- packetKeys(0x63A466F7,0x635362F3,0x41F369F3);
-#endif
-
-// 2013-10-08aRagexe, 2013-10-08bRagexeRE
-#if PACKETVER == 20131008
- packetKeys(0x64924AAD,0x08CA0445,0x1CBC36DE);
-#endif
-
-// 2013-10-16aRagexe, 2013-10-16aRagexeRE, 2013-10-16bRagexe, 2013-10-16bRagexeRE
-#if PACKETVER == 20131016
- packetKeys(0x33AD7A93,0x720C7C49,0x12C4205A);
-#endif
-
-// 2013-10-23aRagexe, 2013-10-23aRagexeRE
-#if PACKETVER == 20131023
- packetKeys(0x02EF6163,0x2B774814,0x58EC3036);
-#endif
-
-// 2013-10-30aRagexe, 2013-10-30aRagexeRE
-#if PACKETVER == 20131030
- packetKeys(0x4A6A3EFF,0x7E2D5237,0x01CA019E);
-#endif
-
-// 2013-11-06aRagexe, 2013-11-06aRagexeRE, 2013-11-07aRagexe, 2013-11-07cRagexe, 2013-11-08aRagexe
-#if PACKETVER == 20131106 || PACKETVER == 20131107 || PACKETVER == 20131108
- packetKeys(0x143E528F,0x5CA05899,0x44B85B23);
-#endif
-
-// 2013-11-13aRagexeRE, 2013-11-13bRagexe
-#if PACKETVER == 20131113
- packetKeys(0x44EA14CD,0x49311C88,0x40C86C31);
-#endif
-
-// 2013-11-20dRagexe, 2013-11-20eRagexeRE
-#if PACKETVER == 20131120
- packetKeys(0x541E5172,0x1B1D30A0,0x28AA7CE5);
-#endif
-
-// 2013-11-27aRagexeRE, 2013-11-27bRagexe, 2013-11-27bRagexeRE
-#if PACKETVER == 20131127
- packetKeys(0x21426A48,0x5C505D6A,0x046D06AD);
-#endif
-
-// 2013-12-04dRagexeRE, 2013-12-04eRagexe, 2013-12-04eRagexeRE
-#if PACKETVER == 20131204
- packetKeys(0x792760B2,0x5AF45387,0x36165603);
-#endif
-
-// 2013-12-11cRagexeRE, 2013-12-11dRagexe, 2013-12-11eRagexeRE
-#if PACKETVER == 20131211
- packetKeys(0x55B0394E,0x4D341FF2,0x60BC1DC3);
-#endif
-
-// 2013-12-18aRagexeRE, 2013-12-18bRagexe
-#if PACKETVER == 20131218
- packetKeys(0x6A596301,0x76866D0E,0x32294A45);
-#endif
-
-// 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-06-11eRagexe, 2015-02-25hRagexe
-#if PACKETVER == 20131223 || PACKETVER == 20140508 || PACKETVER == 20140611 || PACKETVER == 20150225
- packetKeys(0x00000000,0x00000000,0x00000000);
-#endif
-
-// 2013-12-23bRagexe, 2013-12-23bRagexeRE, 2013-12-23cRagexe, 2013-12-23xRagexeRE
-#if PACKETVER == 20131223
- packetKeys(0x631C511C,0x111C111C,0x111C111C);
-#endif
-
-// 2013-12-30aRagexe, 2013-12-30aRagexeRE
-#if PACKETVER == 20131230
- packetKeys(0x611B7097,0x01F957A1,0x768A0FCB);
-#endif
-
-// 2014-01-08bRagexeRE, 2014-01-08cRagexe, 2014-01-08cRagexeRE, 2014-01-08dRagexe
-#if PACKETVER == 20140108
- packetKeys(0x4A1E26F2,0x231E7EFE,0x61FE19FE);
-#endif
-
-// 2014-01-15aRagexe, 2014-01-15bRagexe, 2014-01-15cRagexeRE, 2014-01-15dRagexeRE, 2014-01-15eRagexe, 2014-01-15eRagexeRE
-#if PACKETVER == 20140115
- packetKeys(0x63224335,0x0F3A1F27,0x6D217B24);
-#endif
-
-// 2014-01-22aRagexe, 2014-01-22aRagexeRE
-#if PACKETVER == 20140122
- packetKeys(0x6123177B,0x05B42C99,0x71702594);
-#endif
-
-// 2014-01-29aRagexe, 2014-01-29bRagexeRE, 2014-01-29cRagexe
-#if PACKETVER == 20140129
- packetKeys(0x2E52163C,0x605E518B,0x3C7A62CB);
-#endif
-
-// 2014-02-05bRagexe, 2014-02-05bRagexeRE
-#if PACKETVER == 20140205
- packetKeys(0x63DC7BDC,0x7BDC7BDC,0x7BDC7BDC);
-#endif
-
-// 2014-02-12aRagexe, 2014-02-12aRagexeRE
-#if PACKETVER == 20140212
- packetKeys(0x46837074,0x65292E89,0x77237F9C);
-#endif
-
-// 2014-02-19aRagexe, 2014-02-19aRagexeRE, 2014-02-19bRagexeRE
-#if PACKETVER == 20140219
- packetKeys(0x4E3C5327,0x3A6B5469,0x2CE36AED);
-#endif
-
-// 2014-02-26aRagexe, 2014-02-26aRagexeRE, 2014-02-26bRagexeRE
-#if PACKETVER == 20140226
- packetKeys(0x36D71056,0x52122F5E,0x6FF76E99);
-#endif
-
-// 2014-03-05aRagexe, 2014-03-05aRagexeRE, 2014-03-05bRagexe, 2014-03-05bRagexeRE
-#if PACKETVER == 20140305
- packetKeys(0x116763F2,0x41117DAC,0x7FD13C45);
-#endif
-
-// 2014-03-12bRagexeRE, 2014-03-12dRagexe
-#if PACKETVER == 20140312
- packetKeys(0x48911E4E,0x58CB2EB3,0x05232619);
-#endif
-
-// 2014-03-19aRagexeRE
-#if PACKETVER == 20140319
- packetKeys(0x3DA44383,0x1ABB165F,0x5B6846B9);
-#endif
-
-// 2014-03-26aRagexe, 2014-03-26cRagexeRE
-#if PACKETVER == 20140326
- packetKeys(0x68E72AF6,0x27DB4C3D,0x348F2677);
-#endif
-
-// 2014-04-02eRagexeRE, 2014-04-02fRagexe, 2014-04-02fRagexeRE, 2014-04-02gRagexe
-#if PACKETVER == 20140402
- packetKeys(0x15D3271C,0x004D725B,0x111A3A37);
-#endif
-
-// 2014-04-09aRagexe, 2014-04-09aRagexeRE, 2014-04-09bRagexe
-#if PACKETVER == 20140409
- packetKeys(0x7F6C390F,0x139C254C,0x7F25708C);
-#endif
-
-// 2014-04-16aRagexe, 2014-04-16aRagexeRE, 2014-04-16bRagexe
-#if PACKETVER == 20140416
- packetKeys(0x04810281,0x42814281,0x42814281);
-#endif
-
-// 2014-04-23aRagexe, 2014-04-23aRagexeRE
-#if PACKETVER == 20140423
- packetKeys(0x7E0D6B56,0x74673CD3,0x2EBA4940);
-#endif
-
-// 2014-04-30aRagexeRE
-#if PACKETVER == 20140430
- packetKeys(0x400145D8,0x3FE50155,0x11624F70);
-#endif
-
-// 2014-05-08bRagexe, 2014-05-08bRagexeRE
-#if PACKETVER == 20140508
- packetKeys(0x087E57EC,0x25224F4A,0x024F12C6);
-#endif
-
-// 2014-05-14bRagexe, 2014-05-14bRagexeRE, 2014-05-14cRagexeRE
-#if PACKETVER == 20140514
- packetKeys(0x4BE46730,0x047926E0,0x37773BBB);
-#endif
-
-// 2014-05-21aRagexeRE, 2014-05-21bRagexe
-#if PACKETVER == 20140521
- packetKeys(0x14ED2D86,0x17371C33,0x2D0473C8);
-#endif
-
-// 2014-05-28aRagexe, 2014-05-28aRagexeRE
-#if PACKETVER == 20140528
- packetKeys(0x579445EB,0x26734878,0x7C861628);
-#endif
-
-// 2014-06-05aRagexe, 2014-06-05aRagexeRE, 2014-06-05bRagexe
-#if PACKETVER == 20140605
- packetKeys(0x5ABC4223,0x04DD2636,0x0D5850E0);
-#endif
-
-// 2014-06-11bRagexeRE, 2014-06-11cRagexe, 2014-06-11dRagexe, 2014-06-11hRagexe, 2014-06-12aRagexe, 2014-06-13aRagexe
-#if PACKETVER == 20140611 || PACKETVER == 20140612 || PACKETVER == 20140613
- packetKeys(0x4FC83479,0x3AB04D1F,0x477B4010);
-#endif
-
-// 2014-06-18aRagexe, 2014-06-18cRagexeRE
-#if PACKETVER == 20140618
- packetKeys(0x2DB507BB,0x11BA12E7,0x7F447760);
-#endif
-
-// 2014-06-25aRagexe, 2014-06-25aRagexeRE, 2014-06-25bRagexe
-#if PACKETVER == 20140625
- packetKeys(0x09987045,0x644B1051,0x1A091CB8);
-#endif
-
-// 2014-07-02aRagexe, 2014-07-02aRagexeRE
-#if PACKETVER == 20140702
- packetKeys(0x5C4574F4,0x5D446386,0x48BD24C9);
-#endif
-
-// 2014-07-09aRagexe, 2014-07-09aRagexeRE
-#if PACKETVER == 20140709
- packetKeys(0x2C7A6E92,0x324F1B85,0x29916FC2);
-#endif
-
-// 2014-07-16aRagexe, 2014-07-16aRagexeRE, 2014-07-16bRagexe, 2014-07-16cRagexe
-#if PACKETVER == 20140716
- packetKeys(0x0EB20408,0x6D6C4292,0x4F6E4CF3);
-#endif
-
-// 2014-07-23aRagexe, 2014-07-23aRagexeRE, 2014-07-23bRagexe, 2014-07-23bRagexeRE
-#if PACKETVER == 20140723
- packetKeys(0x42A21713,0x51CE6EAD,0x102F7B0B);
-#endif
-
-// 2014-07-30aRagexe, 2014-07-30bRagexeRE
-#if PACKETVER == 20140730
- packetKeys(0x63CE4E53,0x04F969A3,0x690954DB);
-#endif
-
-// 2014-08-06aRagexe, 2014-08-06aRagexeRE, 2014-08-06bRagexe
-#if PACKETVER == 20140806
- packetKeys(0x0D5B69AC,0x3C001F20,0x0C201420);
-#endif
-
-// 2014-08-13aRagexe, 2014-08-13aRagexeRE, 2014-08-13bRagexe, 2014-08-14aRagexe
-#if PACKETVER == 20140813 || PACKETVER == 20140814
- packetKeys(0x7AD51E0A,0x28C72C46,0x210205BD);
-#endif
-
-// 2014-08-20aRagexe, 2014-08-20aRagexeRE
-#if PACKETVER == 20140820
- packetKeys(0x374F15D0,0x64C87DEC,0x65CE2A41);
-#endif
-
-// 2014-08-27aRagexe
-#if PACKETVER == 20140827
- packetKeys(0x53814CA2,0x27DE193E,0x503E683E);
-#endif
-
-// 2014-09-03aRagexe, 2014-09-03aRagexeRE
-#if PACKETVER == 20140903
- packetKeys(0x2F386F34,0x0F935365,0x76A43888);
-#endif
-
-// 2014-09-17aRagexe
-#if PACKETVER == 20140917
- packetKeys(0x180118EA,0x440134CF,0x3A99179D);
-#endif
-
-// 2014-09-24bRagexeRE, 2014-09-24cRagexe, 2014-09-24cRagexeRE
-#if PACKETVER == 20140924
- packetKeys(0x6F5222D8,0x593B798C,0x4CBD655E);
-#endif
-
-// 2014-10-01aRagexe, 2014-10-01bRagexeRE, 2014-10-01cRagexeRE
-#if PACKETVER == 20141001
- packetKeys(0x6D882C11,0x7DF959E2,0x4F3F60E8);
-#endif
-
-// 2014-10-08aRagexe, 2014-10-08bRagexe, 2014-10-08bRagexeRE, 2014-10-08cRagexe, 2014-10-08cRagexeRE, 2014-10-08dRagexe
-#if PACKETVER == 20141008
- packetKeys(0x754365B3,0x36B326B3,0x26B326B3);
-#endif
-
-// 2014-10-15bRagexe, 2014-10-15bRagexeRE, 2014-10-15cRagexe, 2014-10-15dRagexe, 2014-10-16aRagexe, 2014-10-16aRagexeRE
-#if PACKETVER == 20141015 || PACKETVER == 20141016
- packetKeys(0x2DFF467C,0x444B37EE,0x2C1B634F);
-#endif
-
-// 2014-10-22aRagexeRE, 2014-10-22bRagexe
-#if PACKETVER == 20141022
- packetKeys(0x290551EA,0x2B952C75,0x2D67669B);
-#endif
-
-// 2014-10-29aRagexe, 2014-10-29aRagexeRE
-#if PACKETVER == 20141029
- packetKeys(0x1AFD581D,0x2E1D4E1D,0x4E1D4E1D);
-#endif
-
-// 2014-11-05aRagexe, 2014-11-05aRagexeRE, 2014-11-05bRagexe, 2014-11-05bRagexeRE
-#if PACKETVER == 20141105
- packetKeys(0x7F310819,0x5FF45401,0x2D303DD9);
-#endif
-
-// 2014-11-12aRagexeRE, 2014-11-12cRagexe, 2014-11-12dRagexe
-#if PACKETVER == 20141112
- packetKeys(0x430C0C27,0x067153CF,0x5E5439A9);
-#endif
-
-// 2014-11-19bRagexeRE, 2014-11-19dRagexe
-#if PACKETVER == 20141119
- packetKeys(0x7A7E7EDE,0x24EB02E3,0x71603607);
-#endif
-
-// 2014-11-26aRagexe, 2014-11-26aRagexeRE, 2014-11-26bRagexe, 2014-11-26bRagexeRE, 2014-11-26cRagexe, 2014-11-26cRagexeRE, 2014-11-26dRagexe, 2014-11-26dRagexeRE, 2014-11-26eRagexeRE
-#if PACKETVER == 20141126
- packetKeys(0x01E14C42,0x56D73044,0x4B3278DF);
-#endif
-
-// 2014-12-03aRagexe, 2014-12-03aRagexeRE
-#if PACKETVER == 20141203
- packetKeys(0x66CB52E4,0x1EB84093,0x33563E18);
-#endif
-
-// 2014-12-10bRagexe, 2014-12-10cRagexe, 2014-12-10cRagexeRE
-#if PACKETVER == 20141210
- packetKeys(0x0B0B1DD3,0x26EF1797,0x4F40370B);
-#endif
-
-// 2014-12-17aRagexeRE
-#if PACKETVER == 20141217
- packetKeys(0x01AB478C,0x0FDE58F2,0x1DAC7303);
-#endif
-
-// 2014-12-23cRagexeRE, 2014-12-24aRagexe
-#if PACKETVER == 20141223 || PACKETVER == 20141224
- packetKeys(0x2E8936E6,0x34463C46,0x67CD3885);
-#endif
-
-// 2014-12-31aRagexe, 2014-12-31aRagexeRE
-#if PACKETVER == 20141231
- packetKeys(0x154C347E,0x54B26512,0x52126A12);
-#endif
-
-// 2015-01-07aRagexe, 2015-01-07aRagexeRE
-#if PACKETVER == 20150107
- packetKeys(0x6C494A14,0x4DDB6427,0x3E6D7B65);
-#endif
-
-// 2015-01-14aRagexe, 2015-01-14aRagexeRE, 2015-01-14bRagexe, 2015-01-14cRagexe, 2015-01-14dRagexe
-#if PACKETVER == 20150114
- packetKeys(0x21C96102,0x13142934,0x1ABF4EA3);
-#endif
-
-// 2015-01-21aRagexe, 2015-01-21aRagexeRE, 2015-01-21bRagexeRE
-#if PACKETVER == 20150121
- packetKeys(0x0B9D2AF5,0x658A3346,0x379E3654);
-#endif
-
-// 2015-01-28aRagexe, 2015-01-28aRagexeRE, 2015-01-29aRagexe, 2015-01-30aRagexe
-#if PACKETVER == 20150128 || PACKETVER == 20150129 || PACKETVER == 20150130
- packetKeys(0x77CA2D55,0x28B608F0,0x75B47957);
-#endif
-
-// 2015-02-04aRagexe, 2015-02-04cRagexeRE
-#if PACKETVER == 20150204
- packetKeys(0x134529DB,0x5B4F6CEF,0x29EF11EF);
-#endif
-
-// 2015-02-11aRagexe, 2015-02-11aRagexeRE
-#if PACKETVER == 20150211
- packetKeys(0x33911A25,0x1E6945FD,0x7385623A);
-#endif
-
-// 2015-02-17aRagexe, 2015-02-17aRagexeRE
-#if PACKETVER == 20150217
- packetKeys(0x731B731B,0x731B731B,0x731B731B);
-#endif
-
-// 2015-02-25aRagexeRE, 2015-02-25bRagexeRE, 2015-02-25cRagexeRE, 2015-02-25dRagexeRE, 2015-02-25eRagexe, 2015-02-25eRagexeRE, 2015-02-25fRagexe, 2015-02-25gRagexe, 2015-02-25iRagexe, 2015-02-25jRagexe, 2015-02-26aRagexe, 2015-02-26aRagexeRE
-#if PACKETVER == 20150225 || PACKETVER == 20150226
- packetKeys(0x57FD4B7B,0x19CC16FB,0x0D255D72);
-#endif
-
-// 2015-03-04aRagexe, 2015-03-04aRagexeRE, 2015-03-04bRagexeRE
-#if PACKETVER == 20150304
- packetKeys(0x1A657B1C,0x7E1806E7,0x55396A5C);
-#endif
-
-// 2015-03-11aRagexe, 2015-03-11aRagexeRE, 2015-03-11bRagexe, 2015-03-11bRagexeRE
-#if PACKETVER == 20150311
- packetKeys(0x48C45D97,0x06CE09B0,0x5836642F);
-#endif
-
-// 2015-03-18aRagexe, 2015-03-18aRagexeRE, 2015-03-18bRagexe, 2015-03-18bRagexeRE, 2015-03-18cRagexeRE
-#if PACKETVER == 20150318
- packetKeys(0x1B3738E7,0x0AD4238F,0x7D252A1F);
-#endif
-
-// 2015-03-25aRagexe, 2015-03-25bRagexeRE, 2015-03-25cRagexeRE
-#if PACKETVER == 20150325
- packetKeys(0x68F62B8C,0x337C3468,0x38FC0AC7);
-#endif
-
-// 2015-04-01aRagexe, 2015-04-01bRagexeRE
-#if PACKETVER == 20150401
- packetKeys(0x207F3A08,0x57E6160C,0x02A60382);
-#endif
-
-// 2015-04-08aRagexe, 2015-04-08aRagexeRE
-#if PACKETVER == 20150408
- packetKeys(0x39812C9D,0x23DA516E,0x59A33DD2);
-#endif
-
-// 2015-04-15aRagexe, 2015-04-15aRagexeRE
-#if PACKETVER == 20150415
- packetKeys(0x7EC44F6A,0x7DE57139,0x60DA5436);
-#endif
-
-// 2015-04-22aRagexe, 2015-04-22aRagexeRE
-#if PACKETVER == 20150422
- packetKeys(0x10D22CE2,0x69E279E2,0x79E279E2);
-#endif
-
-// 2015-04-29aRagexe, 2015-04-29aRagexeRE
-#if PACKETVER == 20150429
- packetKeys(0x2BF61A71,0x565D5DDF,0x0FB90019);
-#endif
-
-// 2015-05-07bRagexe, 2015-05-07bRagexeRE, 2015-05-07cRagexe
-#if PACKETVER == 20150507
- packetKeys(0x55B54373,0x58967821,0x67F41832);
-#endif
-
-// 2015-05-13aRagexe, 2015-05-13aRagexeRE
-#if PACKETVER == 20150513
- packetKeys(0x62C86D09,0x75944F17,0x112C133D);
-#endif
-
-// 2015-05-20aRagexe, 2015-05-20aRagexeRE
-#if PACKETVER == 20150520
- packetKeys(0x17430238,0x44DE585F,0x56A40616);
-#endif
-
-// 2015-05-27aRagexe, 2015-05-27aRagexeRE
-#if PACKETVER == 20150527
- packetKeys(0x35AE7BAE,0x3BAE3BAE,0x3BAE3BAE);
-#endif
-
-// 2015-06-03aRagexe, 2015-06-03bRagexeRE
-#if PACKETVER == 20150603
- packetKeys(0x1DDD245D,0x309446E0,0x58E53F1F);
-#endif
-
-// 2015-06-10aRagexe, 2015-06-10aRagexeRE
-#if PACKETVER == 20150610
- packetKeys(0x2FC406D3,0x7B3E32F5,0x02B80B47);
-#endif
-
-// 2015-06-17aRagexe, 2015-06-17aRagexeRE, 2015-06-18aRagexe, 2015-06-18aRagexeRE
-#if PACKETVER == 20150617 || PACKETVER == 20150618
- packetKeys(0x250F7E09,0x25416076,0x029A780E);
-#endif
-
-// 2015-06-24aRagexe, 2015-06-24aRagexeRE
-#if PACKETVER == 20150624
- packetKeys(0x440B0E24,0x1BEA7A4C,0x2C646784);
-#endif
-
-// 2015-07-01bRagexeRE, 2015-07-02aRagexe
-#if PACKETVER == 20150701 || PACKETVER == 20150702
- packetKeys(0x4DD55F9B,0x70C67B03,0x78C60DB6);
-#endif
-
-// 2015-07-08bRagexeRE, 2015-07-08cRagexe, 2015-07-08cRagexeRE, 2015-07-08dRagexeRE
-#if PACKETVER == 20150708
- packetKeys(0x451C5E19,0x5661750B,0x2F4644AC);
-#endif
-
-// 2015-07-15aRagexe, 2015-07-15aRagexeRE
-#if PACKETVER == 20150715
- packetKeys(0x1F805483,0x67745585,0x7FCE189C);
-#endif
-
-// 2015-07-22bRagexeRE
-#if PACKETVER == 20150722
- packetKeys(0x41FA53D4,0x2CF044E2,0x663A3F1D);
-#endif
-
-// 2015-07-29aRagexe, 2015-07-29aRagexeRE
-#if PACKETVER == 20150729
- packetKeys(0x08EE40A9,0x206F3D7F,0x0AE37339);
-#endif
-
-// 2015-08-05aRagexe, 2015-08-05dRagexeRE
-#if PACKETVER == 20150805
- packetKeys(0x1C3F243F,0x243F243F,0x243F243F);
-#endif
-
-// 2015-08-12aRagexe, 2015-08-12aRagexeRE
-#if PACKETVER == 20150812
- packetKeys(0x0B6F64A8,0x5BCC47EC,0x00EC08EC);
-#endif
-
-// 2015-08-19aRagexe, 2015-08-19aRagexeRE, 2015-08-19bRagexeRE
-#if PACKETVER == 20150819
- packetKeys(0x1A2400E0,0x736E5686,0x10F315D5);
-#endif
-
-// 2015-08-26aRagexe, 2015-08-26aRagexeRE, 2015-08-26bRagexe, 2015-08-26bRagexeRE
-#if PACKETVER == 20150826
- packetKeys(0x77883C56,0x1829359F,0x0DE635B6);
-#endif
-
-// 2015-09-02aRagexe, 2015-09-02aRagexeRE
-#if PACKETVER == 20150902
- packetKeys(0x4EDB18C1,0x6B9355BA,0x38AA6239);
-#endif
-
-// 2015-09-09aRagexe, 2015-09-09aRagexeRE
-#if PACKETVER == 20150909
- packetKeys(0x19AB2BF0,0x04754299,0x48770736);
-#endif
-
-// 2015-09-16aRagexe, 2015-09-16aRagexeRE, 2015-09-16cRagexe, 2015-09-16cRagexeRE
-#if PACKETVER == 20150916
- packetKeys(0x17F83A19,0x116944F4,0x1CC541E9);
-#endif
-
-// 2015-09-23bRagexe, 2015-09-23bRagexeRE, 2015-09-23cRagexe, 2015-09-23eRagexe, 2015-09-23eRagexeRE, 2015-09-23fRagexe, 2015-09-23fRagexeRE
-#if PACKETVER == 20150923
- packetKeys(0x765742B9,0x22D61C2F,0x7DA94FB2);
-#endif
-
-// 2015-10-01aRagexe, 2015-10-01bRagexeRE
-#if PACKETVER == 20151001
- packetKeys(0x5CFF4561,0x32514AD1,0x06D126D1);
-#endif
-
-// 2015-10-07aRagexe, 2015-10-07aRagexeRE
-#if PACKETVER == 20151007
- packetKeys(0x3C6447A8,0x032170D7,0x6490476C);
-#endif
-
-// 2015-10-14bRagexe, 2015-10-14bRagexeRE
-#if PACKETVER == 20151014
- packetKeys(0x402728A8,0x5D0E309F,0x240018FD);
-#endif
-
-// 2015-10-21aRagexe, 2015-10-22aRagexe, 2015-10-22aRagexeRE
-#if PACKETVER == 20151021 || PACKETVER == 20151022
- packetKeys(0x0311104D,0x46C326D6,0x00E82720);
-#endif
-
-// 2015-10-28cRagexe, 2015-10-28cRagexeRE, 2015-10-28dRagexe, 2015-10-28dRagexeRE, 2015-10-29aRagexe, 2015-10-29aRagexeRE
-#if PACKETVER == 20151028 || PACKETVER == 20151029
- packetKeys(0x45B945B9,0x45B945B9,0x45B945B9);
-#endif
-
-// 2015-11-04aRagexe, 2015-11-04aRagexeRE
-#if PACKETVER == 20151104
- packetKeys(0x4C17382A,0x7ED174C9,0x29961E4F);
-#endif
-
-// 2015-11-11aRagexe, 2015-11-11aRagexeRE, 2015-11-11bRagexe
-#if PACKETVER == 20151111
- packetKeys(0x46097C77,0x5F193871,0x29140A21);
-#endif
-
-// 2015-11-18aRagexe, 2015-11-18aRagexeRE
-#if PACKETVER == 20151118
- packetKeys(0x734C3241,0x6E846F34,0x731C06D6);
-#endif
-
-// 2015-11-25bRagexe, 2015-11-25bRagexeRE, 2015-11-25cRagexeRE, 2015-11-25dRagexe, 2015-11-25dRagexeRE
-#if PACKETVER == 20151125
- packetKeys(0x237446C0,0x5EFB343A,0x0EDF06C5);
-#endif
-
-// 2015-12-02aRagexe, 2015-12-02bRagexeRE
-#if PACKETVER == 20151202
- packetKeys(0x4EDE52DE,0x52DE52DE,0x52DE52DE);
-#endif
-
-// 2015-12-09aRagexe, 2015-12-09aRagexeRE
-#if PACKETVER == 20151209
- packetKeys(0x652C5898,0x7A351FB3,0x67EA2886);
-#endif
-
-// 2015-12-16aRagexe, 2015-12-16aRagexeRE
-#if PACKETVER == 20151216
- packetKeys(0x25DD643D,0x61AC39DE,0x77A8206D);
-#endif
-
-// 2015-12-23bRagexe, 2015-12-23bRagexeRE
-#if PACKETVER == 20151223
- packetKeys(0x347D68D0,0x2C705320,0x7B4A199D);
-#endif
-
-// 2015-12-30aRagexe
-#if PACKETVER == 20151230
- packetKeys(0x54C51241,0x33883499,0x3CDA35F0);
-#endif
-
-// 2016-01-06aRagexe, 2016-01-06aRagexeRE
-#if PACKETVER == 20160106
- packetKeys(0x40520265,0x33FE26FC,0x7136294F);
-#endif
-
-// 2016-01-13aRagexe, 2016-01-13aRagexeRE, 2016-01-13bRagexe, 2016-01-13bRagexeRE, 2016-01-13cRagexeRE
-#if PACKETVER == 20160113
- packetKeys(0x18005C4B,0x19A94A72,0x73F678EC);
-#endif
-
-// 2016-01-20aRagexe, 2016-01-20aRagexeRE
-#if PACKETVER == 20160120
- packetKeys(0x51495149,0x51495149,0x51495149);
-#endif
-
-// 2016-01-27aRagexeRE, 2016-01-27bRagexeRE, 2016-01-27cRagexe, 2016-01-27dRagexe
-#if PACKETVER == 20160127
- packetKeys(0x6B1E7146,0x612C47E6,0x274E56EE);
-#endif
-
-// 2016-02-03aRagexe, 2016-02-03aRagexeRE
-#if PACKETVER == 20160203
- packetKeys(0x3E1411AF,0x6C744497,0x7CFA1BDE);
-#endif
-
-// 2016-02-11aRagexe, 2016-02-11aRagexeRE
-#if PACKETVER == 20160211
- packetKeys(0x613813EA,0x05251DAB,0x1FD35E33);
-#endif
-
-// 2016-02-17aRagexe, 2016-02-17aRagexeRE, 2016-02-17bRagexeRE, 2016-02-17cRagexeRE
-#if PACKETVER == 20160217
- packetKeys(0x25895A8E,0x09421C19,0x763A2D7A);
-#endif
-
-// 2016-02-24aRagexe, 2016-02-24aRagexeRE, 2016-02-24bRagexeRE
-#if PACKETVER == 20160224
- packetKeys(0x7088019A,0x13471F02,0x42356A7D);
-#endif
-
-// 2016-03-02bRagexe, 2016-03-02bRagexeRE
-#if PACKETVER == 20160302
- packetKeys(0x7B4441B9,0x5BBC63AF,0x45DA0E71);
-#endif
-
-// 2016-03-09aRagexeRE, 2016-03-09cRagexe
-#if PACKETVER == 20160309
- packetKeys(0x21587520,0x353A7706,0x1B722B25);
-#endif
-
-// 2016-03-16aRagexe, 2016-03-16aRagexeRE, 2016-03-18aRagexe
-#if PACKETVER == 20160316 || PACKETVER == 20160318
- packetKeys(0x62363E36,0x3E363E36,0x3E363E36);
-#endif
-
-// 2016-03-23aRagexe, 2016-03-23aRagexeRE, 2016-03-23bRagexe
-#if PACKETVER == 20160323
- packetKeys(0x73E35A83,0x62142FA8,0x12BA36BD);
-#endif
-
-// 2016-03-30aRagexe, 2016-03-30aRagexeRE, 2016-03-30bRagexe
-#if PACKETVER == 20160330
- packetKeys(0x02050940,0x545336FF,0x7E7D4902);
-#endif
-
-// 2016-04-06aRagexe, 2016-04-06aRagexeRE, 2016-04-06bRagexe
-#if PACKETVER == 20160406
- packetKeys(0x568611EA,0x32457D8D,0x2B020477);
-#endif
-
-// 2016-04-14aRagexe, 2016-04-14aRagexeRE, 2016-04-14bRagexe, 2016-04-14bRagexeRE, 2016-04-14cRagexe
-#if PACKETVER == 20160414
- packetKeys(0x31BD479A,0x40C61398,0x397C1A80);
-#endif
-
-// 2016-04-20aRagexeRE, 2016-04-20cRagexe
-#if PACKETVER == 20160420
- packetKeys(0x67D2163A,0x3068215B,0x4835474D);
-#endif
-
-// 2016-04-27aRagexeRE
-#if PACKETVER == 20160427
- packetKeys(0x12DC378E,0x4E3E7EBE,0x0ABE2ABE);
-#endif
-
-// 2016-05-04aRagexe, 2016-05-04aRagexeRE
-#if PACKETVER == 20160504
- packetKeys(0x09E0544C,0x0231251D,0x2F4E195F);
-#endif
-
-// 2016-05-11aRagexe, 2016-05-11aRagexeRE, 2016-05-11bRagexeRE
-#if PACKETVER == 20160511
- packetKeys(0x3C666FE2,0x27E84E3E,0x53E11BA5);
-#endif
-
-// 2016-05-18aRagexe, 2016-05-18aRagexeRE
-#if PACKETVER == 20160518
- packetKeys(0x57DB7CA1,0x1FEA1629,0x26DD244D);
-#endif
-
-// 2016-05-25aRagexe, 2016-05-25aRagexeRE, 2016-05-26aRagexe
-#if PACKETVER == 20160525 || PACKETVER == 20160526
- packetKeys(0x485C45B6,0x47DC6192,0x76B34A36);
-#endif
-
-// 2016-06-01aRagexe, 2016-06-01aRagexeRE
-#if PACKETVER == 20160601
- packetKeys(0x3DAD32C4,0x59F001BE,0x73F65E56);
-#endif
-
-// 2016-06-08aRagexe, 2016-06-08aRagexeRE, 2016-06-08bRagexe, 2016-06-08bRagexeRE, 2016-06-09aRagexe
-#if PACKETVER == 20160608 || PACKETVER == 20160609
- packetKeys(0x11D74609,0x77C43E8A,0x44290F53);
-#endif
-
-// 2016-06-15aRagexe, 2016-06-15aRagexeRE
-#if PACKETVER == 20160615
- packetKeys(0x062C5C26,0x6CF47E82,0x4DD53480);
-#endif
-
-// 2016-06-22aRagexe, 2016-06-22aRagexeRE
-#if PACKETVER == 20160622
- packetKeys(0x426548AB,0x5C0F5DD4,0x03022710);
-#endif
-
-// 2016-06-29aRagexe, 2016-06-29aRagexeRE, 2016-06-30aRagexe, 2016-06-30aRagexeRE
-#if PACKETVER == 20160629 || PACKETVER == 20160630
- packetKeys(0x0DF31CCC,0x54281606,0x5C4C6855);
-#endif
-
-// 2016-07-06bRagexe, 2016-07-06cRagexeRE
-#if PACKETVER == 20160706
- packetKeys(0x33A766D0,0x743F04F8,0x0FA0276C);
-#endif
-
-// 2016-07-13aRagexeRE, 2016-07-13bRagexeRE, 2016-07-13dRagexe
-#if PACKETVER == 20160713
- packetKeys(0x714F2495,0x7DDC6F32,0x3FD8533D);
-#endif
-
-// 2016-07-20aRagexe, 2016-07-20aRagexeRE, 2016-07-20bRagexeRE
-#if PACKETVER == 20160720
- packetKeys(0x4F8A19C0,0x2D8E085C,0x37BB67D6);
-#endif
-
-// 2016-07-27aRagexeRE, 2016-07-27bRagexeRE
-#if PACKETVER == 20160727
- packetKeys(0x3C6952AB,0x26E4077F,0x37E25DF7);
-#endif
-
-// 2016-08-03bRagexeRE
-#if PACKETVER == 20160803
- packetKeys(0x67F438C2,0x512A4EB7,0x2D353182);
-#endif
-
-// 2016-08-10aRagexeRE
-#if PACKETVER == 20160810
- packetKeys(0x2F252886,0x242234A2,0x48BC5032);
-#endif
-
-// 2016-08-17aRagexe
-#if PACKETVER == 20160817
- packetKeys(0x675E6900,0x3F8E1D16,0x58D650E5);
-#endif
-
-// 2016-08-31aRagexeRE, 2016-08-31bRagexeRE
-#if PACKETVER == 20160831
- packetKeys(0x564E13B0,0x7F680549,0x382D273B);
-#endif
-
-// 2016-09-07aRagexe, 2016-09-07aRagexeRE
-#if PACKETVER == 20160907
- packetKeys(0x32E5237D,0x57BD4DBD,0x5DBD5DBD);
-#endif
-
-// 2016-09-13aRagexe, 2016-09-13aRagexeRE
-#if PACKETVER == 20160913
- packetKeys(0x7C79748F,0x1AA03B1D,0x6EAC4747);
-#endif
-
-// 2016-09-21bRagexeRE
-#if PACKETVER == 20160921
- packetKeys(0x11CD15CD,0x15CD15CD,0x15CD15CD);
-#endif
-
-// 2016-09-28cRagexeRE, 2016-09-28dRagexeRE
-#if PACKETVER == 20160928
- packetKeys(0x2F8C67F5,0x22D42C38,0x57513774);
-#endif
-
-// 2016-10-05aRagexeRE
-#if PACKETVER == 20161005
- packetKeys(0x5BAE21F8,0x021E2FFC,0x3BEB7C31);
-#endif
-
-// 2016-10-12aRagexeRE
-#if PACKETVER == 20161012
- packetKeys(0x5E2311F2,0x14FD012C,0x76EB64F6);
-#endif
-
-// 2016-10-19aRagexeRE
-#if PACKETVER == 20161019
- packetKeys(0x34882F11,0x7C870E70,0x7E61350D);
-#endif
-
-// 2016-10-26bRagexeRE, 2016-10-26cRagexeRE
-#if PACKETVER == 20161026
- packetKeys(0x2CB86AE6,0x7D12660E,0x1B004DEB);
-#endif
-
-// 2016-11-02aRagexe, 2016-11-02aRagexeRE, 2016-11-03aRagexeRE
-#if PACKETVER == 20161102 || PACKETVER == 20161103
- packetKeys(0x76725C17,0x72FE4EC1,0x07A91BFD);
-#endif
-
-// 2016-11-09aRagexe, 2016-11-09aRagexeRE, 2016-11-09bRagexeRE, 2016-11-09cRagexeRE, 2016-11-09dRagexeRE
-#if PACKETVER == 20161109
- packetKeys(0x0A5277C0,0x2DB17506,0x0E8F26DA);
-#endif
-
-// 2016-11-16aRagexe, 2016-11-16bRagexeRE, 2016-11-16cRagexeRE
-#if PACKETVER == 20161116
- packetKeys(0x780C5C3F,0x15E92272,0x2BA770C5);
-#endif
-
-// 2016-11-23aRagexe, 2016-11-23aRagexeRE
-#if PACKETVER == 20161123
- packetKeys(0x66FF559F,0x00D3535B,0x236246F7);
-#endif
-
-// 2016-11-30aRagexeRE, 2016-11-30bRagexeRE
-#if PACKETVER == 20161130
- packetKeys(0x2ED80296,0x0D837373,0x20266F9A);
-#endif
-
-// 2016-12-07cRagexeRE, 2016-12-07dRagexeRE, 2016-12-07eRagexeRE
-#if PACKETVER == 20161207
- packetKeys(0x52D267AA,0x4FE42156,0x1292153E);
-#endif
-
-// 2016-12-14bRagexeRE, 2016-12-14cRagexe, 2016-12-14cRagexeRE
-#if PACKETVER == 20161214
- packetKeys(0x4DDE217B,0x07863AE0,0x5B591656);
-#endif
-
-// 2016-12-21aRagexeRE, 2016-12-21bRagexeRE, 2016-12-21cRagexeRE, 2016-12-21dRagexeRE
-#if PACKETVER == 20161221
- packetKeys(0x69CB4F56,0x793C165E,0x673A2354);
-#endif
-
-// 2016-12-28aRagexe, 2016-12-28aRagexeRE
-#if PACKETVER == 20161228
- packetKeys(0x09366971,0x005672F1,0x6F3712AE);
-#endif
-
-// 2017-01-04bRagexeRE
-#if PACKETVER == 20170104
- packetKeys(0x44416BC3,0x6C8D1817,0x072D75D5);
-#endif
-
-// 2017-01-11aRagexeRE
-#if PACKETVER == 20170111
- packetKeys(0x19B637F9,0x0E9C378A,0x41673186);
-#endif
-
-// 2017-01-18aRagexe, 2017-01-18aRagexeRE
-#if PACKETVER == 20170118
- packetKeys(0x456B36EB,0x15EB34B0,0x18C42E43);
-#endif
-
-// 2017-01-25aRagexe, 2017-01-25aRagexeRE
-#if PACKETVER == 20170125
- packetKeys(0x066E04FE,0x3004224A,0x04FF0458);
-#endif
-
-// 2017-02-01aRagexe, 2017-02-01aRagexeRE
-#if PACKETVER == 20170201
- packetKeys(0x2011228E,0x00453005,0x628E7F0A);
-#endif
-
-// 2017-02-08aRagexeRE, 2017-02-08bRagexeRE
-#if PACKETVER == 20170208
- packetKeys(0x6A764E5F,0x0609570D,0x28AE07FA);
-#endif
-
-// 2017-02-15aRagexeRE
-#if PACKETVER == 20170215
- packetKeys(0x50C01315,0x51012A42,0x679E16C3);
-#endif
-
-// 2017-02-22aRagexe, 2017-02-22aRagexeRE
-#if PACKETVER == 20170222
- packetKeys(0x5A242F2F,0x6C556187,0x73C022CB);
-#endif
-
-// 2017-02-28aRagexe, 2017-02-28aRagexeRE, 2017-02-28bRagexe
-#if PACKETVER == 20170228
- packetKeys(0x771D4F2B,0x20EF1F4C,0x0D5135C8);
-#endif
-
-// 2017-03-08bRagexeRE
-#if PACKETVER == 20170308
- packetKeys(0x653470A9,0x6B316A71,0x5C712C71);
-#endif
-
-// 2017-03-15cRagexe, 2017-03-15cRagexeRE
-#if PACKETVER == 20170315
- packetKeys(0x399A0856,0x56642A94,0x7F77157D);
-#endif
-
-// 2017-03-22aRagexeRE, 2017-03-22bRagexeRE
-#if PACKETVER == 20170322
- packetKeys(0x2050167B,0x01731233,0x40337033);
-#endif
-
-// 2017-03-29cRagexe, 2017-03-29cRagexeRE, 2017-03-29dRagexeRE
-#if PACKETVER == 20170329
- packetKeys(0x18B31A80,0x1B0B1D56,0x16857D6A);
-#endif
-
-// 2017-04-05bRagexe, 2017-04-05bRagexeRE, 2017-04-05cRagexe, 2017-04-05cRagexeRE
-#if PACKETVER == 20170405
- packetKeys(0x1FDE7DAC,0x2F9F5B63,0x3F2062AF);
-#endif
-
-// 2017-04-12aRagexe, 2017-04-12aRagexeRE
-#if PACKETVER == 20170412
- packetKeys(0x39223393,0x5C847779,0x10217985);
-#endif
-
-// 2017-04-19bRagexeRE
-#if PACKETVER == 20170419
- packetKeys(0x1F8F4B3F,0x2E481F03,0x39ED4178);
-#endif
-
-// 2017-04-26dRagexeRE
-#if PACKETVER == 20170426
- packetKeys(0x167642A7,0x1DEC3D26,0x6D046D4C);
-#endif
-
-// 2017-05-02dRagexeRE
-#if PACKETVER == 20170502
- packetKeys(0x05224194,0x466D4204,0x31F02EE0);
-#endif
-
-// 2017-05-17aRagexeRE, 2017-05-17bRagexeRE
-#if PACKETVER == 20170517
- packetKeys(0x2CC4749A,0x1FA954DC,0x72276857);
-#endif
-
-// 2017-05-24aRagexeRE
-#if PACKETVER == 20170524
- packetKeys(0x0B4E03A6,0x2B93427C,0x583D4477);
-#endif
-
-// 2017-05-31aRagexeRE
-#if PACKETVER == 20170531
- packetKeys(0x03FA5A97,0x20B802D5,0x339F1977);
-#endif
-
-// 2017-06-07bRagexeRE, 2017-06-07cRagexeRE
-#if PACKETVER == 20170607
- packetKeys(0x50564ACD,0x79CA4E15,0x405F4894);
-#endif
-
-// 2017-06-14bRagexeRE
-#if PACKETVER == 20170614
- packetKeys(0x5ED10A48,0x667F4301,0x2E5D761F);
-#endif
-
-// 2017-06-21aRagexeRE
-#if PACKETVER == 20170621
- packetKeys(0x155F34EC,0x2D943FA9,0x3D9170EB);
-#endif
-
-// 2017-06-28bRagexeRE
-#if PACKETVER == 20170628
- packetKeys(0x04691C86,0x43C210E2,0x2FE277E2);
-#endif
-
-// 2017-07-05aRagexeRE
-#if PACKETVER == 20170705
- packetKeys(0x7EB000AE,0x02FB1DBC,0x5CB131E6);
-#endif
-
-// 2017-07-12bRagexeRE
-#if PACKETVER == 20170712
- packetKeys(0x2C3C202C,0x3F2C2F2C,0x2F2C2F2C);
-#endif
-
-// 2017-07-19aRagexeRE
-#if PACKETVER == 20170719
- packetKeys(0x46465C88,0x10116F66,0x200866F9);
-#endif
-
-// 2017-07-26cRagexeRE
-#if PACKETVER == 20170726
- packetKeys(0x102F23DB,0x7E767751,0x3BC172EF);
-#endif
-
-// 2017-08-01aRagexeRE
-#if PACKETVER == 20170801
- packetKeys(0x26B52A7F,0x5377619D,0x4F580AC4);
-#endif
-
-// 2017-08-09cRagexeRE
-#if PACKETVER == 20170809
- packetKeys(0x452156CB,0x71442624,0x2EE66D1C);
-#endif
-
-// 2017-08-16cRagexeRE, 2017-08-16dRagexeRE
-#if PACKETVER == 20170816
- packetKeys(0x78914673,0x3F8B7634,0x55B814BC);
-#endif
-
-// 2017-08-23aRagexeRE
-#if PACKETVER == 20170823
- packetKeys(0x22677205,0x393D1002,0x58DC6BB4);
-#endif
-
-// 2017-08-30aRagexeRE, 2017-08-30bRagexeRE
-#if PACKETVER == 20170830
- packetKeys(0x1D49592B,0x00970C17,0x1E640103);
-#endif
-
-// 2017-09-06cRagexeRE
-#if PACKETVER == 20170906
- packetKeys(0x7DEF7677,0x351F36E6,0x52303485);
-#endif
-
-// 2017-09-13bRagexeRE
-#if PACKETVER == 20170913
- packetKeys(0x7A645935,0x1DA05062,0x5A7A4C43);
-#endif
-
-// 2017-09-20bRagexeRE
-#if PACKETVER == 20170920
- packetKeys(0x53024DA5,0x04EC212D,0x0BF87CD4);
-#endif
-
-// 2017-09-27bRagexeRE, 2017-09-27dRagexeRE
-#if PACKETVER == 20170927
- packetKeys(0x15624100,0x0CE1463E,0x0E5D6534);
-#endif
-
-// 2017-10-02cRagexeRE
-#if PACKETVER == 20171002
- packetKeys(0x15E1716C,0x4E765B63,0x357D2370);
-#endif
-
-// 2017-10-11aRagexeRE, 2017-10-11bRagexeRE
-#if PACKETVER == 20171011
- packetKeys(0x4F121B3E,0x12670E17,0x19896C11);
-#endif
-
-// 2017-10-18aRagexeRE
-#if PACKETVER == 20171018
- packetKeys(0x2CAA109C,0x158C1EC2,0x7A5E58F3);
-#endif
-
-// 2017-10-25bRagexeRE, 2017-10-25cRagexeRE, 2017-10-25dRagexeRE, 2017-10-25eRagexeRE
-#if PACKETVER == 20171025
- packetKeys(0x165C565C,0x565C565C,0x565C565C);
-#endif
-
-// 2017-11-01bRagexeRE
-#if PACKETVER == 20171101
- packetKeys(0x7056317F,0x7EEE0589,0x02672373);
-#endif
-
-// 2017-11-08bRagexeRE
-#if PACKETVER == 20171108
- packetKeys(0x03695685,0x7FAC12CE,0x182F7A7B);
-#endif
-
-// 2017-11-15aRagexeRE
-#if PACKETVER == 20171115
- packetKeys(0x23B97A3B,0x34610993,0x2892070E);
-#endif
-
-// 2017-11-22bRagexeRE
-#if PACKETVER == 20171122
- packetKeys(0x03221B0E,0x73AB7A5F,0x0DD80FD4);
-#endif
-
-// 2017-11-29aRagexeRE
-#if PACKETVER == 20171129
- packetKeys(0x581B77A7,0x62F74D7A,0x4F102173);
-#endif
-
-// 2017-12-06aRagexeRE, 2017-12-06cRagexe
-#if PACKETVER == 20171206
- packetKeys(0x39D54BD3,0x577A0C21,0x4C1C316E);
-#endif
-
-// 2017-12-13bRagexe, 2017-12-13bRagexeRE
-#if PACKETVER == 20171213
- packetKeys(0x44E41107,0x3B126921,0x00E06AAC);
-#endif
-
-// keys for zero clients
-#ifdef PACKETVER_ZERO
-// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero
-#if PACKETVER == 20171018 || PACKETVER == 20171019 || PACKETVER == 20171023 || PACKETVER == 20171024 || PACKETVER == 20171025 || PACKETVER == 20171027 || PACKETVER == 20171030 || PACKETVER == 20171031 || PACKETVER == 20171109 || PACKETVER == 20171113
- packetKeys(0x00000000,0x00000000,0x00000000);
-#endif
-
-// 2017-11-15aRagexe_zero, 2017-11-15bRagexe_zero, 2017-11-16aRagexe_zero, 2017-11-17aRagexe_zero
-#if PACKETVER == 20171115 || PACKETVER == 20171116 || PACKETVER == 20171117
- packetKeys(0x3B93061D,0x3CB50DCD,0x410A197E);
-#endif
-
-// 2017-11-21aRagexe_zero, 2017-11-22aRagexe_zero
-#if PACKETVER == 20171121 || PACKETVER == 20171122
- packetKeys(0x195B4DA8,0x6E3A473B,0x126F4B61);
-#endif
-
-// 2017-11-23dRagexe_zero
-#if PACKETVER == 20171123
- packetKeys(0x6087733A,0x5C5C4AEE,0x0F10408F);
-#endif
-
-// 2017-11-27aRagexe_zero, 2017-11-27cRagexe_zero, 2017-11-28aRagexe_zero
-#if PACKETVER == 20171127 || PACKETVER == 20171128
- packetKeys(0x141C135C,0x675C275C,0x275C275C);
-#endif
-
-// 2017-11-30bRagexe_zero
-#if PACKETVER == 20171130
- packetKeys(0x31A04B32,0x3AC96B76,0x1742085D);
-#endif
-
-// 2017-12-04bRagexe_zero
-#if PACKETVER == 20171204
- packetKeys(0x06A109F1,0x6A953256,0x0A6040A3);
-#endif
-
-// 2017-12-06aRagexe_zero, 2017-12-06bRagexe_zero, 2017-12-06cRagexe_zero, 2017-12-06dRagexe_zero, 2017-12-08aRagexe_zero, 2017-12-08cRagexe_zero, 2017-12-08dRagexe_zero, 2017-12-09bRagexe_zero, 2017-12-09cRagexe_zero, 2017-12-10aRagexe_zero, 2017-12-11bRagexe_zero, 2017-12-12aRagexe_zero, 2017-12-13aRagexe_zero, 2017-12-13bRagexe_zero, 2017-12-13cRagexe_zero
-#if PACKETVER == 20171206 || PACKETVER == 20171208 || PACKETVER == 20171209 || PACKETVER == 20171210 || PACKETVER == 20171211 || PACKETVER == 20171212 || PACKETVER == 20171213
- packetKeys(0x718D0388,0x56A11525,0x20042F67);
-#endif
-
-// 2017-12-14cRagexe_zero
-#if PACKETVER == 20171214
- packetKeys(0x6CE1021D,0x77703B04,0x4E722232);
-#endif
-
-#endif // PACKETVER_ZERO
-
-#endif /* MAP_PACKETS_KEYS_H */
diff --git a/src/map/packets_keys_main.h b/src/map/packets_keys_main.h
index 0e8f72cb3..afaf62e2d 100644
--- a/src/map/packets_keys_main.h
+++ b/src/map/packets_keys_main.h
@@ -717,17 +717,17 @@
packetKeys(0x75794A38,0x58A96BC1,0x296E6FB8);
#endif
-// 2013-05-22Ragexe, 2013-05-22aRagexe, 2013-05-22aRagexeRE
+// 2013-05-22aRagexe, 2013-05-22aRagexeRE
#if PACKETVER == 20130522
packetKeys(0x6948050B,0x06511D9D,0x725D4DF1);
#endif
-// 2013-05-29Ragexe, 2013-05-29aRagexe, 2013-05-29aRagexeRE
+// 2013-05-29aRagexe, 2013-05-29aRagexeRE
#if PACKETVER == 20130529
packetKeys(0x023A6C87,0x14BF1F1E,0x5CC70CC9);
#endif
-// 2013-06-05Ragexe, 2013-06-05aRagexe, 2013-06-05bRagexe, 2013-06-05cRagexeRE
+// 2013-06-05aRagexe, 2013-06-05bRagexe, 2013-06-05cRagexeRE
#if PACKETVER == 20130605
packetKeys(0x646E08D9,0x5F153AB5,0x61B509B5);
#endif
@@ -1337,7 +1337,7 @@
packetKeys(0x19AB2BF0,0x04754299,0x48770736);
#endif
-// 2015-09-16aRagexe, 2015-09-16aRagexeRE, 2015-09-16cRagexe, 2015-09-16cRagexeRE
+// 2015-09-16aRagexe, 2015-09-16cRagexe, 2015-09-16cRagexeRE
#if PACKETVER == 20150916
packetKeys(0x17F83A19,0x116944F4,0x1CC541E9);
#endif
@@ -1944,5 +1944,15 @@
packetKeys(0x348F4BD7,0x7A425A54,0x628F589A);
#endif
+// 2018-01-17aRagexe, 2018-01-17aRagexeRE
+#if PACKETVER == 20180117
+ packetKeys(0x21F477F4,0x37F437F4,0x37F437F4);
+#endif
+
+// 2018-01-24bRagexe, 2018-01-24bRagexeRE
+#if PACKETVER == 20180124
+ packetKeys(0x7EAA1CE0,0x415D1CFD,0x4C8F19FA);
+#endif
+
#endif /* MAP_PACKETS_MAIN_KEYS_H */
diff --git a/src/map/packets_keys_zero.h b/src/map/packets_keys_zero.h
index 06c799c3c..93c917559 100644
--- a/src/map/packets_keys_zero.h
+++ b/src/map/packets_keys_zero.h
@@ -109,5 +109,10 @@
packetKeys(0x2A3D4E64,0x7008690C,0x69FF066F);
#endif
+// 2018-01-17aRagexe_zero
+#if PACKETVER == 20180117
+ packetKeys(0x230959EB,0x1CCB0182,0x1FFA2B30);
+#endif
+
#endif /* MAP_PACKETS_ZERO_KEYS_H */
diff --git a/src/map/packets_shuffle_main.h b/src/map/packets_shuffle_main.h
index 64041ba89..c30f4296b 100644
--- a/src/map/packets_shuffle_main.h
+++ b/src/map/packets_shuffle_main.h
@@ -1493,7 +1493,7 @@
packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
#endif
-// 2013-05-22Ragexe, 2013-05-22aRagexe, 2013-05-22aRagexeRE
+// 2013-05-22aRagexe, 2013-05-22aRagexeRE
#if PACKETVER == 20130522
packet(0x0360,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
packet(0x0362,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
@@ -1526,7 +1526,7 @@
packet(0x0965,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
#endif
-// 2013-05-29Ragexe, 2013-05-29aRagexe, 2013-05-29aRagexeRE
+// 2013-05-29aRagexe, 2013-05-29aRagexeRE
#if PACKETVER == 20130529
packet(0x023b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
packet(0x0438,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
@@ -1559,7 +1559,7 @@
packet(0x0964,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
#endif
-// 2013-06-05Ragexe, 2013-06-05aRagexe, 2013-06-05bRagexe, 2013-06-05cRagexeRE
+// 2013-06-05aRagexe, 2013-06-05bRagexe, 2013-06-05cRagexeRE
#if PACKETVER == 20130605
packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
@@ -2551,42 +2551,6 @@
packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
#endif
-// 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe
-#if PACKETVER == 20131223 || \
- PACKETVER == 20140508 || \
- PACKETVER == 20140611 || \
- PACKETVER == 20150225
- packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0281,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x02c4,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x035f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0360,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0361,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0362,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0363,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0365,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0366,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0367,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0438,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x07e4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x07ec,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0811,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0815,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0817,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0835,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0838,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x083c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
-#endif
-
// 2013-12-30aRagexe, 2013-12-30aRagexeRE
#if PACKETVER == 20131230
packet(0x022d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
@@ -3214,6 +3178,41 @@
packet(0x096a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
#endif
+// 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe
+#if PACKETVER == 20140508 || \
+ PACKETVER == 20140611 || \
+ PACKETVER == 20150225
+ packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0281,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x02c4,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x035f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0360,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0361,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0362,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0363,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0365,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0366,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0367,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0438,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x07e4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x07ec,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0811,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0815,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0817,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0835,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0838,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x083c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+#endif
+
// 2014-05-14bRagexe, 2014-05-14bRagexeRE, 2014-05-14cRagexeRE
#if PACKETVER == 20140514
packet(0x0437,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
@@ -5501,7 +5500,7 @@
packet(0x096a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
#endif
-// 2015-09-16aRagexe, 2015-09-16aRagexeRE, 2015-09-16cRagexe, 2015-09-16cRagexeRE
+// 2015-09-16aRagexe, 2015-09-16cRagexe, 2015-09-16cRagexeRE
#if PACKETVER == 20150916
packet(0x022d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
packet(0x0817,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
@@ -9468,5 +9467,71 @@
packet(0x0960,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
#endif
+// 2018-01-17aRagexe, 2018-01-17aRagexeRE
+#if PACKETVER == 20180117
+ 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(0x0875,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2018-01-24bRagexe, 2018-01-24bRagexeRE
+#if PACKETVER == 20180124
+ 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(0x0436,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0802,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ 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,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(0x085f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0868,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x086a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x086f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0890,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0919,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0940,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0946,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x094d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0958,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0961,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
#endif /* MAP_PACKETS_SHUFFLE_MAIN_H */
diff --git a/src/map/packets_shuffle_zero.h b/src/map/packets_shuffle_zero.h
index 4cb0c2c5b..01facb96b 100644
--- a/src/map/packets_shuffle_zero.h
+++ b/src/map/packets_shuffle_zero.h
@@ -452,5 +452,38 @@
packet(0x096a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
#endif
+// 2018-01-17aRagexe_zero
+#if PACKETVER == 20180117
+ packet(0x0361,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0364,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0438,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x07e4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x083c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0866,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x086e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x086f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0881,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0884,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0886,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0890,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0891,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0893,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0899,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x089d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0919,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x091c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0921,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0928,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0929,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x092d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0933,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0946,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x095e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0963,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+#endif
+
#endif /* MAP_PACKETS_SHUFFLE_ZERO_H */