//===== Hercules Script ======================================//= Disguise Event//===== By: ==================================================//= GmOcean//===== Current Version: =====================================//= 5.1//===== Additional Comments: =================================//= Note: This script requires PCRE to run properly.//= 5.0 Last update by GmOcean.//= 5.1 Cleaned and standardized, mostly. [Euphy]//============================================================prontera,207,177,4 script Disguise Event 829,{// Currently set to run every two hours.// To change times, edit the OnClock labels below.set .@GMLevel,60; // GM level required to access NPC.set .@n$,"[^0000FFDisguise NPC^000000]";if(getgmlevel()>=.@GMLevel){mes .@n$;mes"Select an option.";next;switch(select("Turn ON/OFF Event:Event Settings")){case1: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;setnpctimer0; 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;deletepset1;setnpcdisplay"Disguise Event", 4_M_NFDEADMAN;close;}set .EventON,1; set .timer,1; setnpctimer0; 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 202,174.",bc_all | bc_blue;close;case2:mes .@n$;mes"Pick a setting to modify.";next;switch(select("Monster Display:Number of Rounds:Prize Settings")){case1: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;case2: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;case3: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;}}}if(.EventON)end;mes .@n$;mes"Welcome.";mes"How may I be of assistance?";if(select("Information:Nothing, just passing through.")==2)close;next;mes .@n$;mes"This event is quite simple.";mes"At the start of the event, I will";mes"disguise myself as a random";mes"monster. You have to shout";mes"that monter's name out loud.";next;mes"If you are correct, you will receive";mes"a prize. If not, keep trying!";mes"That's all that there is to this event.";close;OnInit:set .EventON,0;set .Wait,0;set .Winner,0;set .ResetCounter,0;set .rounds,10;set .prize,7227;set .prizeAmt,1;set .Rule,1;setarray .MVP$[0], "OSIRIS", "BAPHOMET", "DOPPELGANGER", "MISTRESS", "GOLDEN_BUG", "ORK_HERO", "DRAKE", "EDDGA", "MAYA", "MOONLIGHT", "PHARAOH", "PHREEONI", "ORC_LORD", "KNIGHT_OF_WINDSTORM", "GARM", "DARK_LORD", "TURTLE_GENERAL", "LORD_OF_DEATH", "DRACULA", "EVENT_BAPHO", "DARK_SNAKE_LORD", "INCANTATION_SAMURAI", "PORING_V", "AMON_RA", "TAO_GUNKA", "RSX_0806", "BACSOJIN_", "B_SEYREN", "B_EREMES", "B_HARWORD", "B_MAGALETA", "B_SHECIL", "B_KATRINN", "B_YGNIZEM", "APOCALIPS_H", "LADY_TANEE", "THANATOS", "DETALE", "KIEL_", "RANDGRIS", "GLOOMUNDERNIGHT", "KTULLANUX", "ATROCE", "G_MAGALETA_", "IFRIT", "FALLINGBISHOP", "BEELZEBUB_", "GOPINICH", "MOROCC_", "KUBLIN", "S_NYDHOG", "BOITATA", "QUEEN_SCARABA", "LOST_DRAGON", "LEAK", "I_QUEEN_SCARABA";set .Blacklist$, "1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168,"+"1171,1172,1173,1181,1187,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,1172";end;OnMinute11: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 202,174.",bc_all | bc_blue;setnpctimer0;initnpctimer;end;OnTimer10000:if(.timer || .Change)end;set .Wait,0;goto iDisguise;end;OnTimer20000:if(.timer)end;set .Change,0;setnpcdisplay"Disguise Event", 4_M_NFDEADMAN;npctalk"You took too long to guess what I was. Please wait 10 seconds while I disguise again.";specialeffect725;set $MonsterName$,"";deletepset1;stopnpctimer;setnpctimer0;initnpctimer;end;OnTimer60000: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 202,174.",bc_all | bc_blue;end;OnTimer120000:if(.timer!=1)end;announce"The Disguise Event will begin 1 minute.",bc_all | bc_blue;announce"The Event is being held in Prontera 202,174.",bc_all | bc_blue;end;OnTimer180000:if(.timer!=1)end;announce"The Disguise Event has begun!",bc_all | bc_blue;announce"The Event is being held in Prontera 202,174.",bc_all | bc_blue;set .timer,0; stopnpctimer;setnpctimer0; initnpctimer;iDisguise:if(.Rule==1){set .Winner,0;set .@monster, rand(SCORPION, PINGUICULA);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(getarraysize(.MVP$));set $MonsterName$,getmonsterinfo(.MVP$[.@monster],0);}deletepset1;defpattern1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect";activatepset1;if(.Rule==1)setnpcdisplay"Disguise Event",.@monster;if(.Rule==2)setnpcdisplay"Disguise Event",.MVP$[.@monster];set .Change,1;setnpctimer0;end;iCorrect:if(.Winner){dispbottom"Someone has already won this round.";end;}set .Winner,1;specialeffect573;getitem .prize,.prizeAmt;deletepset1;activatepset1;announcestrcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",bc_map | bc_blue;if(.RoundCount>=.rounds){setnpcdisplay"Disguise Event", 4_M_NFDEADMAN;set .RoundCount,0; set .Change,0; set .EventON,0;setnpctimer0; stopnpctimer;npctalk"Thank you all for playing. That was the last round of the Disguise Event. Come play again later.";end;}setnpcdisplay"Disguise Event", 4_M_NFDEADMAN;set .Change,0;setnpctimer0;end;}