diff options
-rw-r--r-- | npc/re/instances/BakonawaLake.txt | 652 | ||||
-rw-r--r-- | npc/re/instances/BuwayaCave.txt | 460 | ||||
-rw-r--r-- | npc/re/instances/EclageInterior.txt | 738 | ||||
-rw-r--r-- | npc/re/instances/HazyForest.txt | 1199 | ||||
-rw-r--r-- | npc/re/instances/MalangdoCulvert.txt | 1287 | ||||
-rw-r--r-- | src/map/atcommand.c | 1 | ||||
-rw-r--r-- | src/map/clif.c | 8 | ||||
-rw-r--r-- | src/map/packets.h | 58 | ||||
-rw-r--r-- | src/map/packets_keys.h | 1899 | ||||
-rw-r--r-- | src/map/packets_keys_main.h | 18 | ||||
-rw-r--r-- | src/map/packets_keys_zero.h | 5 | ||||
-rw-r--r-- | src/map/packets_shuffle_main.h | 145 | ||||
-rw-r--r-- | src/map/packets_shuffle_zero.h | 33 |
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 */ |