From a5b1f8fa3e5ce845a5f9aaa927dc695fa6ce9c4d Mon Sep 17 00:00:00 2001 From: brianluau Date: Fri, 7 Sep 2012 09:45:39 +0000 Subject: - Custom Disguise Event: changed global variables to NPC variables. - Changed the blacklist to a string compare instead of looping through an array. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16757 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/custom/events/disguise.txt | 253 +++++++++++++++++++++-------------------- 1 file changed, 128 insertions(+), 125 deletions(-) (limited to 'npc/custom') diff --git a/npc/custom/events/disguise.txt b/npc/custom/events/disguise.txt index 354caffcf..da84f761f 100644 --- a/npc/custom/events/disguise.txt +++ b/npc/custom/events/disguise.txt @@ -25,80 +25,84 @@ prontera,160,155,4 script Disguise Event 795,{ mes "Select an option."; next; switch(select("Turn ON/OFF Event:Event Settings")) { + case 1: + mes .@n$; + if (.EventON) { + mes "The Event is currently: [^0000FFON^000000]"; + mes "Would you like to turn it OFF?"; + } else { + mes "The Event is currently: [^FF0000OFF^000000]"; + mes "Would you like to turn it ON?"; + } + if(select("Yes:No")==2) close; + if (.EventON) { + set .EventON,0; set .Timer,0; + setnpctimer 0; stopnpctimer; + announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",bc_map | bc_blue; + deletepset 1; + setnpcdisplay "Disguise Event",795; + close; + } + set .EventON,1; set .Timer,1; setnpctimer 0; initnpctimer; + set .ResetCounter,.ResetCounter+1; + announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue; + announce "The Event is being held in Prontera.",bc_all | bc_blue; + close; + case 2: + mes .@n$; + mes "Pick a setting to modify."; + next; + switch(select("Monster Display:Number of Rounds:Prize Settings")) { case 1: + setarray .@r$[0],"Disguise as all monsters.","Disguise as MVPs only."; + mes .@n$; + mes "Choose a disguise rule."; + next; + set .Rule, select(implode(.@r$,":")); mes .@n$; - if ($@EventON) { - mes "The Event is currently: [^0000FFON^000000]"; - mes "Would you like to turn it OFF?"; } - else { - mes "The Event is currently: [^FF0000OFF^000000]"; - mes "Would you like to turn it ON?"; } - if(select("Yes:No")==2) close; - if ($@EventON) { - set $@EventON,0; set $@Timer,0; - setnpctimer 0; stopnpctimer; - announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",bc_map | bc_blue; - deletepset 1; - setnpcdisplay "Disguise Event",795; - close; } - set $@EventON,1; set $@Timer,1; setnpctimer 0; initnpctimer; - set $@ResetCounter,$@ResetCounter+1; - announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue; - announce "The Event is being held in Prontera.",bc_all | bc_blue; + mes "The Disguise Rule has been set:"; + mes " > ^0055FF"+.@r$[.Rule-1]+"^000000"; close; case 2: mes .@n$; - mes "Pick a setting to modify."; + mes "Input the number of rounds you want the event to last."; + mes "Current number: [^0000FF"+.Rounds+"^000000]"; + next; + input .@Rounds; + set .Rounds,.@Rounds; + mes .@n$; + mes "The number of rounds has been changed to "+.Rounds+"."; + close; + case 3: + mes .@n$; + mes "Input the Item ID of the prize given each round."; + mes "Current item: [^0000FF"+getitemname(.Prize)+"^000000] (ID #"+.Prize+")"; + next; + input .@Prize; + mes .@n$; + if (getitemname(.@Prize)=="" || getitemname(.@Prize)=="null") { + mes "That item does not exist. Please try again."; + close; + } + set .Prize,.@Prize; + mes "Input the amount to be given."; next; - switch(select("Monster Display:Number of Rounds:Prize Settings")) { - case 1: - setarray .@r$[0],"Disguise as all monsters.","Disguise as MVPs only."; - mes .@n$; - mes "Choose a disguise rule."; - next; - set $Rule, select(implode(.@r$,":")); - mes .@n$; - mes "The Disguise Rule has been set:"; - mes " > ^0055FF"+.@r$[$Rule-1]+"^000000"; - close; - case 2: - mes .@n$; - mes "Input the number of rounds you want the event to last."; - mes "Current number: [^0000FF"+$Rounds+"^000000]"; - next; - input .@Rounds; - set $Rounds,.@Rounds; - mes .@n$; - mes "The number of rounds has been changed to "+$Rounds+"."; - close; - case 3: - mes .@n$; - mes "Input the Item ID of the prize given each round."; - mes "Current item: [^0000FF"+getitemname($Prize)+"^000000] (ID #"+$Prize+")"; - next; - input .@Prize; - mes .@n$; - if (getitemname(.@Prize)=="" || getitemname(.@Prize)=="null") { - mes "That item does not exist. Please try again."; - close; } - set $Prize,.@Prize; - mes "Input the amount to be given."; - next; - input .@amount; - mes .@n$; - if (.@amount<=0 || .@amount>=10000) { - mes "That amount is invalid. Using default ammount of 1."; - set .@amount,1; - next; - mes .@n$; } - set $PrizeAmt,.@amount; - mes "The Prize has been changed successfully."; - mes "Prize: "+$PrizeAmt+"x [^0000FF"+getitemname($Prize)+"^000000]"; - close; + input .@amount; + mes .@n$; + if (.@amount<=0 || .@amount>=10000) { + mes "That amount is invalid. Using default ammount of 1."; + set .@amount,1; + next; + mes .@n$; } + set .PrizeAmt,.@amount; + mes "The Prize has been changed successfully."; + mes "Prize: "+.PrizeAmt+"x [^0000FF"+getitemname(.Prize)+"^000000]"; + close; + } } } - if ($@EventON) end; + if (.EventON) end; mes .@n$; mes "Welcome."; mes "How may I be of assistance?"; @@ -117,31 +121,28 @@ prontera,160,155,4 script Disguise Event 795,{ close; OnInit: - set $@EventON,0; - set $@Wait,0; - set $@Winner,0; - set $@ResetCounter,0; - if (!$Rounds) set $Rounds,10; - else set $Rounds,$Rounds; - if (!$Prize) set $Prize,512; - else set $Prize,$Prize; - if (!$PrizeAmt) set $PrizeAmt,1; - else set $PrizeAmt,$PrizeAmt; - if ($Rule) set $Rule,1; - else set $Rule,$Rule; - setarray $@MVP[0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373, + set .EventON,0; + set .Wait,0; + set .Winner,0; + set .ResetCounter,0; + set .Rounds,10; + set .Prize,512; + set .PrizeAmt,1; + set .Rule,1; + setarray .MVP[0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373, 1389,1399,1418,1492,1502,1511,1583,1623,1630,1646,1647,1648,1649,1650,1651,1658,1685,1688, 1708,1719,1734,1751,1768,1779,1785,1802,1832,1871,1874,1885,1917,1980,2022,2068,2087,2131, 2156,2165; - setarray $@BlackList[0], 1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168,1171,1172,1173,1181,1210,1217,1218, - 1222,1223,1224,1225,1226,1227,1228,1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001, - 2002,2003,2004,2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035,2036, - 2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054, - 2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2075,2076,2077,2078,2079, - 2080,2081,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098, - 2099,2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116, - 2117,2118; - setarray $@BlackList2[0],2119,2120,2121,2123,2124,2125,1496; + set .BlackList$, "1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168," + + "1171,1172,1173,1181,1210,1217,1218,1222,1223,1224,1225,1226,1227,1228," + + "1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001,2002,2003,2004," + + "2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035," + + "2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049," + + "2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063," + + "2064,2065,2066,2067,2075,2076,2077,2078,2079,2080,2081,2083,2084,2085," + + "2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099," + + "2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113," + + "2114,2115,2116,2117,2118,2119,2120,2121,2123,2124,2125,1496,"; end; OnClock0000: OnClock0200: @@ -155,23 +156,23 @@ OnClock1600: OnClock1800: OnClock2000: OnClock2200: - set $@ResetCounter,$@ResetCounter+1; - set $@EventON,1; - set $@Timer,1; - set $@Wait,1; + set .ResetCounter,.ResetCounter+1; + set .EventON,1; + set .Timer,1; + set .Wait,1; announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue; announce "The Event is being held in Prontera.",bc_all | bc_blue; setnpctimer 0; initnpctimer; end; OnTimer10000: - if ($@Timer || $@Change) end; - set $@Wait,0; + if (.Timer || .Change) end; + set .Wait,0; goto iDisguise; end; OnTimer30000: - if ($@Timer) end; - set $@Change,0; + if (.Timer) end; + set .Change,0; setnpcdisplay "Disguise Event",795; npctalk "You took too long to guess what I was. Please wait 10 seconds while I disguise again."; specialeffect 725; @@ -182,61 +183,63 @@ OnTimer30000: initnpctimer; end; OnTimer60000: - if ($@Timer!=1) end; + if (.Timer!=1) end; announce "The Disguise Event will begin in 2 minutes.",bc_all | bc_blue; announce "The Event is being held in Prontera.",bc_all | bc_blue; end; OnTimer120000: - if ($@Timer!=1) end; + if (.Timer!=1) end; announce "The Disguise Event will begin 1 minute.",bc_all | bc_blue; announce "The Event is being held in Prontera.",bc_all | bc_blue; end; OnTimer180000: - if ($@Timer!=1) end; + if (.Timer!=1) end; announce "The Disguise Event has begun!",bc_all | bc_blue; announce "The Event is being held in Prontera.",bc_all | bc_blue; - set $@Timer,0; stopnpctimer; + set .Timer,0; stopnpctimer; setnpctimer 0; initnpctimer; - goto iDisguise; - end; iDisguise: - if ($Rule==1) { - set $@Winner,0; - set $@Monster,1000+rand(1,995); - for(set .@BL,0; .@BL=$Rounds) { + if (.RoundCount>=.Rounds) { setnpcdisplay "Disguise Event",795; - set $@RoundCount,0; set $@Change,0; set $@EventON,0; + set .RoundCount,0; set .Change,0; set .EventON,0; setnpctimer 0; stopnpctimer; npctalk "Thank you all for playing. That was the last round of the Disguise Event. Come play again later."; - end; } + end; + } setnpcdisplay "Disguise Event",795; - set $@Change,0; + set .Change,0; setnpctimer 0; end; } -- cgit v1.2.3-60-g2f50