summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
authorbrianluau <brianluau@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-09-07 09:45:39 +0000
committerbrianluau <brianluau@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-09-07 09:45:39 +0000
commita5b1f8fa3e5ce845a5f9aaa927dc695fa6ce9c4d (patch)
treefd492b5fc9e7f0bc884f93b00ca37b212ff1c83c /npc
parent79329bf9a843203e5bffba9bad141992d963abb7 (diff)
downloadhercules-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
Diffstat (limited to 'npc')
-rw-r--r--npc/custom/events/disguise.txt253
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;
}