diff options
author | brianluau <brianluau@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-09-07 09:45:39 +0000 |
---|---|---|
committer | brianluau <brianluau@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-09-07 09:45:39 +0000 |
commit | a5b1f8fa3e5ce845a5f9aaa927dc695fa6ce9c4d (patch) | |
tree | fd492b5fc9e7f0bc884f93b00ca37b212ff1c83c | |
parent | 79329bf9a843203e5bffba9bad141992d963abb7 (diff) | |
download | hercules-a5b1f8fa3e5ce845a5f9aaa927dc695fa6ce9c4d.tar.gz hercules-a5b1f8fa3e5ce845a5f9aaa927dc695fa6ce9c4d.tar.bz2 hercules-a5b1f8fa3e5ce845a5f9aaa927dc695fa6ce9c4d.tar.xz hercules-a5b1f8fa3e5ce845a5f9aaa927dc695fa6ce9c4d.zip |
- 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
-rw-r--r-- | npc/custom/events/disguise.txt | 253 |
1 files changed, 128 insertions, 125 deletions
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<getarraysize($@BlackList); set .@BL,.@BL+1) - if ($@Monster==$@BlackList[.@BL] || $@Monster==$@BlackList2[.@BL]) goto iDisguise; - if ($@Monster==$@LastMonster) goto iDisguise; - set $@LastMonster,$@Monster; - set $MonsterName$,getmonsterinfo($@Monster,0); } - if ($Rule==2) { - set $@Winner,0; - set $@Monster,rand(49); - set $MonsterName$,getmonsterinfo($@MVP[$@Monster],0); } + if (.Rule==1) { + set .Winner,0; + set .Monster,1000+rand(1,995); + if (compare(","+.BlackList$+"," , ","+.Monster+",")) goto iDisguise; + if (.Monster==.LastMonster) goto iDisguise; + set .LastMonster,.Monster; + set $MonsterName$,getmonsterinfo(.Monster,0); + } + if (.Rule==2) { + set .Winner,0; + set .Monster,rand(49); + set $MonsterName$,getmonsterinfo(.MVP[.Monster],0); + } deletepset 1; defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect"; activatepset 1; - if ($Rule==1) setnpcdisplay "Disguise Event",$@Monster; - if ($Rule==2) setnpcdisplay "Disguise Event",$@MVP[$@Monster]; - set $@Change,1; + if (.Rule==1) setnpcdisplay "Disguise Event",.Monster; + if (.Rule==2) setnpcdisplay "Disguise Event",.MVP[.Monster]; + set .Change,1; setnpctimer 0; end; iCorrect: - if ($@Winner) { - dispbottom "Someone has already won this round."; end; } - set $@Winner,1; - set $@RoundCount,$@RoundCount+1; + if (.Winner) { + dispbottom "Someone has already won this round."; + end; + } + set .Winner,1; + set .RoundCount,.RoundCount+1; deletepset 1; activatepset 1; - getitem $Prize,$PrizeAmt; + getitem .Prize,.PrizeAmt; announce strcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",bc_map | bc_blue; - if ($@RoundCount>=$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; } |