From 5955d81ac5360e073c66f961c2750da4645860bb Mon Sep 17 00:00:00 2001 From: Haru Date: Sun, 20 Jul 2014 01:33:48 +0200 Subject: Removed duplicate code from the Cool Event NPCs - Moved common code to a function. - Modified to use appropriate functions from function_kafras.txt. - Modernized syntax/updated function documentation in both files. - Fixed the Rachel NPC incorrectly stating it's warping you to Rachel, instead of Veins. - Special thanks to jaBote, GubA. Signed-off-by: Haru --- npc/kafras/cool_event_corp.txt | 416 ++++++----------------------------------- 1 file changed, 54 insertions(+), 362 deletions(-) (limited to 'npc/kafras/cool_event_corp.txt') diff --git a/npc/kafras/cool_event_corp.txt b/npc/kafras/cool_event_corp.txt index 4566d36f0..911f54af2 100644 --- a/npc/kafras/cool_event_corp.txt +++ b/npc/kafras/cool_event_corp.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Gepard //===== Current Version: ===================================== -//= 1.5 +//= 2.0 //===== Description: ========================================= //= Cool Event Corp. Staff (Save, Storage & Pushcart Service) //= in Arunafeltz Region. @@ -16,9 +16,15 @@ //= until we got a client/packet based password support [Lupus] //= 1.4 Added Veins Cool Event Corp. Staff. [L0ne_W0lf] //= 1.5 Cool Event Corp staff is now more iRO like. [L0ne_W0lf] +//= 2.0 Moved duplicate code to a function. Better integrated +// the rest with functions_kafra.txt. [Haru] //============================================================ -hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 4_M_ZONDAMAN,{ +//=== Main Function ======================================================== +//= arg(0): Used to determine which menu to display. +//= arg(1): Used to determine the location displayed in the save message. +//========================================================================== +function script F_ZondaStaff { cutin "zonda_01",2; mes "[Cool Event Corp. Staff]"; mes "Welcome to Cool Event Corp."; @@ -27,100 +33,44 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 4_M_ZONDAM mes "for quality service. So how"; mes "may I assist you today?"; next; - switch(select("Save:Use Storage:Rent a Pushcart:Storage Password Service:Cancel")){ - case 1: + switch (getarg(0)) { + // Save, Storage, Pushcart, Storage Password (Hugel) + case 0: setarray @Z_Menu0$, "Save", "Use Storage", "Rent a Pushcart", "Storage Password Service", "Cancel"; break; + // Save, Storage, Pushcart, Storage Password (Veins, Rachel) + default: + case 1: setarray @Z_Menu0$, "Save", "Use Storage", "Teleport Service", "Rent a Pushcart", "Storage Password Service", "Cancel"; break; + } + .@menu$ = ""; + for (.@i = 0; .@i < getarraysize(@Z_Menu0$); ++.@i) + .@menu$ += @Z_Menu0$[.@i] + ":"; + .@j = select (.@menu$) - 1; + if (@Z_Menu0$[.@j] == "Save") { mes "[Cool Event Corp. Staff]"; mes "Your Respawn Point"; mes "has been saved here"; - mes "in the village of Hugel."; + mes getarg(1); mes "Thank you for using the"; mes "Cool Event Corp. service~"; - savepoint "hugel",96,155; + return; + } else if (@Z_Menu0$[.@j] == "Use Storage") { + callfunc "F_KafStor",0,40,6,"[Cool Event Corp. Staff]"; close2; - break; - case 2: - mes "[Cool Event Corp. Staff]"; - if(basicskillcheck() && getskilllv("NV_BASIC") < 6){ - mes "I'm sorry, but you"; - mes "need the Novice's"; - mes "Basic Skill Level 6 to"; - mes "use the Storage Service."; - close2; - break; - } - if(Zeny < 40){ - mes "I'm sorry, but you don't"; - mes "have enough Zeny to use"; - mes "the Storage Service. Our"; - mes "Storage access fee is 40 Zeny."; - close2; - break; - } - Zeny -= 40; - mes "Let me open your personal"; - mes "storage for you right away."; - mes "Thanks for supporting Cool"; - mes "Event Corp. by using our"; - mes "services. Have a good day~"; - callfunc("F_CheckKafCode"); //check your storage password, if set + cutin "", 255; + end; + } else if (@Z_Menu0$[.@j] == "Teleport Service") { + callfunc "F_KafTele", 6, "[Cool Event Corp. Staff]"; close2; - openstorage; - break; - case 3: - mes "[Cool Event Corp. Staff]"; - if(BaseClass != Job_Merchant){ - mes "I'm sorry, but the"; - mes "Pushcart rental service"; - mes "is only available to Merchants,"; - mes "Blacksmiths, White Smiths,"; - mes "Alchemists and Creators."; - close2; - break; - } - if(getskilllv("MC_PUSHCART") == 0){ - mes "You can only rent a cart after"; - mes "learning the Pushcart Skill."; - close2; - break; - } - if(checkcart() == 1){ - mes "You already have"; - mes "a Pushcart equipped."; - mes "Unfortunately, we can't"; - mes "rent more than one to"; - mes "each customer at a time."; - close2; - break; - } - if(countitem(7061)){ - delitem 7061,1; - setcart; - close2; - break; - } - mes "The Pushcart rental"; - mes "fee is 800 Zeny. Would"; - mes "you like to rent a Pushcart?"; - next; - if(select("Rent a Pushcart:Cancel") == 1){ - if(Zeny < 800){ - mes "[Cool Event Corp. Staff]"; - mes "I'm sorry, but you"; - mes "don't have enough"; - mes "Zeny to pay the Pushcart"; - mes "rental fee of 800 Zeny."; - } else { - Zeny -= 800; - setcart; - } - } + cutin "", 255; + end; + } else if (@Z_Menu0$[.@j] == "Rent a Pushcart") { + callfunc "F_KafCart", 6, 800, "[Cool Event Corp. Staff]"; close2; - break; - case 4: + cutin "", 255; + end; + } else if (@Z_Menu0$[.@j] == "Storage Password Service") { callfunc("F_SetKafCode","[Cool Event Corp. Staff]","Cool Event Corp."); - //the function closes msg and remoes cutins - case 5: - default: + //the function closes msg and removes cutins + } else { mes "[Cool Event Corp. Staff]"; mes "Cool Event Corp. is always"; mes "striving to provide the best"; @@ -134,287 +84,29 @@ hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 4_M_ZONDAM end; } +hugel,88,168,4 script Cool Event Corp. Staff::CoolEventCorpStaffHugel 4_M_ZONDAMAN,{ + callfunc "F_KafSet"; + callfunc "F_ZondaStaff", 0, "in the village of Hugel."; + savepoint "hugel",96,155; + close2; + cutin "", 255; + end; +} + rachel,109,138,5 script Cool Event Corp. Staff::CoolEventCorpStaffRachel 4_M_ZONDAMAN,{ - cutin "zonda_01",2; - mes "[Cool Event Corp. Staff]"; - mes "Welcome to Cool Event Corp."; - mes "Our staff is always working"; - mes "to surpass your expactations"; - mes "for quality service. So how"; - mes "may I assist you today?"; - next; - switch(select("Save:Use Storage:Teleport Service:Rent a Pushcart:Storage Password Service:Cancel")){ - case 1: - mes "[Cool Event Corp. Staff]"; - mes "Your Respawn Point"; - mes "has been saved here"; - mes "in the town of Rachel."; - mes "Thank you for using the"; - mes "Cool Event Corp. service~"; - savepoint "rachel",113,137; - close2; - break; - case 2: - mes "[Cool Event Corp. Staff]"; - if(basicskillcheck() && getskilllv("NV_BASIC") < 6){ - mes "I'm sorry, but you"; - mes "need the Novice's"; - mes "Basic Skill Level 6 to"; - mes "use the Storage Service."; - close2; - break; - } - if(Zeny < 40){ - mes "I'm sorry, but you don't"; - mes "have enough Zeny to use"; - mes "the Storage Service. Our"; - mes "Storage access fee is 40 Zeny."; - close2; - break; - } - Zeny -= 40; - mes "Let me open your personal"; - mes "storage for you right away."; - mes "Thanks for supporting Cool"; - mes "Event Corp. by using our"; - mes "services. Have a good day~"; - callfunc("F_CheckKafCode"); //check your storage password, if set - close2; - openstorage; - break; - case 3: - mes "Please choose"; - mes "your destination."; - next; - if (select("Veins -> 2200 z:Cancel") == 1) { - if ((countitem(7060) != 0) || (Zeny >= 2200)) { - if (countitem(7060) != 0) { - delitem 7060,1; - } - else { - Zeny -= 2200; - } - warp "veins",205,101; - cutin "",255; - end; - } - else { - mes "[Cool Event Corp. Staff]"; - mes "I'm sorry, but you don't have"; - mes "enough zeny for the Teleport"; - mes "Service. The fee to teleport"; - mes "to Rachel is 2200 zeny."; - } - } - close2; - break; - case 4: - mes "[Cool Event Corp. Staff]"; - if(BaseClass != Job_Merchant){ - mes "I'm sorry, but the"; - mes "Pushcart rental service"; - mes "is only available to Merchants,"; - mes "Blacksmiths, White Smiths,"; - mes "Alchemists and Creators."; - close2; - break; - } - if(getskilllv("MC_PUSHCART") == 0){ - mes "You can only rent a cart after"; - mes "learning the Pushcart Skill."; - close2; - break; - } - if(checkcart() == 1){ - mes "You already have"; - mes "a Pushcart equipped."; - mes "Unfortunately, we can't"; - mes "rent more than one to"; - mes "each customer at a time."; - close2; - break; - } - if(countitem(7061)){ - delitem 7061,1; - setcart; - close2; - break; - } - mes "The Pushcart rental"; - mes "fee is 800 Zeny. Would"; - mes "you like to rent a Pushcart?"; - next; - if(select("Rent a Pushcart:Cancel") == 1){ - if(Zeny < 800){ - mes "[Cool Event Corp. Staff]"; - mes "I'm sorry, but you"; - mes "don't have enough"; - mes "Zeny to pay the Pushcart"; - mes "rental fee of 800 Zeny."; - } else { - Zeny -= 800; - setcart; - } - } - close2; - break; - case 5: - callfunc("F_SetKafCode","[Cool Event Corp. Staff]","Cool Event Corp."); - //the function closes msg and remoes cutins - case 6: - default: - mes "[Cool Event Corp. Staff]"; - mes "Cool Event Corp. is always"; - mes "striving to provide the best"; - mes "services for our customers."; - mes "Help us become the best by"; - mes "providing us with your opinions"; - mes "and honest feedback. Thank you."; - close2; - } + callfunc "F_KafSet"; + callfunc "F_ZondaStaff", 1, "in the town of Rachel."; + savepoint "rachel",113,137; + close2; cutin "", 255; end; } veins,208,128,5 script Cool Event Corp. Staff::CoolEventCorpStaffVeins 4_M_ZONDAMAN,{ - cutin "zonda_01",2; - mes "[Cool Event Corp. Staff]"; - mes "Welcome to Cool Event Corp."; - mes "Our staff is always working"; - mes "to surpass your expactations"; - mes "for quality service. So how"; - mes "may I assist you today?"; - next; - switch(select("Save:Use Storage:Teleport Service:Rent a Pushcart:Storage Password Service:Cancel")){ - case 1: - mes "[Cool Event Corp. Staff]"; - mes "Your Respawn Point"; - mes "has been saved here"; - mes "in the town of Veins."; - mes "Thank you for using the"; - mes "Cool Event Corp. service~"; - savepoint "veins",204,103; - close2; - break; - case 2: - mes "[Cool Event Corp. Staff]"; - if(basicskillcheck() && getskilllv("NV_BASIC") < 6){ - mes "I'm sorry, but you"; - mes "need the Novice's"; - mes "Basic Skill Level 6 to"; - mes "use the Storage Service."; - close2; - break; - } - if(Zeny < 40){ - mes "I'm sorry, but you don't"; - mes "have enough Zeny to use"; - mes "the Storage Service. Our"; - mes "Storage access fee is 40 Zeny."; - close2; - break; - } - Zeny -= 40; - mes "Let me open your personal"; - mes "storage for you right away."; - mes "Thanks for supporting Cool"; - mes "Event Corp. by using our"; - mes "services. Have a good day~"; - callfunc("F_CheckKafCode"); //check your storage password, if set - close2; - openstorage; - break; - case 3: - mes "Please choose"; - mes "your destination."; - next; - if (select("Rachel -> 2200 z:Cancel") == 1) { - if ((countitem(7060) != 0) || (Zeny >= 2200)) { - if (countitem(7060) != 0) { - delitem 7060,1; - } - else { - Zeny -= 2200; - } - warp "rachel",115,125; - cutin "",255; - end; - } - else { - mes "[Cool Event Corp. Staff]"; - mes "I'm sorry, but you don't have"; - mes "enough zeny for the Teleport"; - mes "Service. The fee to teleport"; - mes "to Rachel is 2200 zeny."; - } - } - close2; - break; - case 4: - mes "[Cool Event Corp. Staff]"; - if(BaseClass != Job_Merchant){ - mes "I'm sorry, but the"; - mes "Pushcart rental service"; - mes "is only available to Merchants,"; - mes "Blacksmiths, White Smiths,"; - mes "Alchemists and Creators."; - close2; - break; - } - if(getskilllv("MC_PUSHCART") == 0){ - mes "You can only rent a cart after"; - mes "learning the Pushcart Skill."; - close2; - break; - } - if(checkcart() == 1){ - mes "You already have"; - mes "a Pushcart equipped."; - mes "Unfortunately, we can't"; - mes "rent more than one to"; - mes "each customer at a time."; - close2; - break; - } - if(countitem(7061)){ - delitem 7061,1; - setcart; - close2; - break; - } - mes "The Pushcart rental"; - mes "fee is 800 Zeny. Would"; - mes "you like to rent a Pushcart?"; - next; - if(select("Rent a Pushcart:Cancel") == 1){ - if(Zeny < 800){ - mes "[Cool Event Corp. Staff]"; - mes "I'm sorry, but you"; - mes "don't have enough"; - mes "Zeny to pay the Pushcart"; - mes "rental fee of 800 Zeny."; - close2; - } else { - Zeny -= 800; - setcart; - } - } - close2; - break; - case 5: - callfunc("F_SetKafCode","[Cool Event Corp. Staff]","Cool Event Corp."); - //the function closes msg and remoes cutins - case 6: - default: - mes "[Cool Event Corp. Staff]"; - mes "Cool Event Corp. is always"; - mes "striving to provide the best"; - mes "services for our customers."; - mes "Help us become the best by"; - mes "providing us with your opinions"; - mes "and honest feedback. Thank you."; - close2; - } + callfunc "F_KafSet"; + callfunc "F_ZondaStaff", 1, "in the town of Veins."; + savepoint "veins",204,103; + close2; cutin "", 255; end; } -- cgit v1.2.3-70-g09d2