Jump to content
  • 0
Zalbahis

Auto Stop Disguise Event

Question

This script is really buggy during the conflict of OnClock..

 

Example: this npc starts at this time..

OnClock0000:

OnClock0010:

Rounds: 5

 

Scenario

OnClock0000: The player just answered 1 - 4 round and leaves without finishing the Event will still count on the nxt time the npc trigger..

OnClock0010: Assuming that the previous player has answered 4 rounds and there's a lacking of 1 more round.

The NPC Start time still conflicting with the previous Time it starts [ OnClock0000 ]..

so OnClock0010 will only do 1 round..

 

so I would like to ask if there's a way of this script to be at only 15-30mins per Event, so it'll stop from conflicting from the previous Time it start..

 

Here's the customized script, credits to the creator of this script :)

//===== Hercules Script ======================================//= Disguise Event//===== By: ==================================================//= GmOcean//===== Current Version: =====================================//= 5.1//===== Compatible With: ===================================== //= Hercules//===== Additional Comments: =================================  //= Note: This script requires PCRE to run properly.//= 5.0 Last update by GmOcean.//= 5.1 Cleaned and standardized, mostly. [Euphy]//============================================================-	script	Disguise#Announcer	-1,{OnInit:	disablenpc "disguise#event";	disablenpc "Disguise Event";	end;OnClock0144:OnClock0147:	announce "Dice: We are going to have a Dice Event.",0;	enablenpc "disguise#event";	sleep2 10000;	announce "Dice: For those who wants to join, Please proceed to rachel,112,99 and enter the Warp Portal.",0;	sleep2 10000;	announce "Dice: After 1 Minute the Portal will close.",0;	sleep2 10000;	announce "Dice: So please go to rachel,112,99 and enter the Warp Portal now if you want to join.",0;	enablenpc "Disguise Event";	donpcevent "Disguise Event::OnEnable";	initnpctimer;	end;}gon_test,57,95,4	script	Disguise Event	795,{	set .@GMLevel,90;	// 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")) {		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$;				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;			}		}	}	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,5;	set .Prize,6418;	set .PrizeAmt,5;	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;	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,";	end;OnEnable:	set .ResetCounter,.ResetCounter+1;	set .EventON,1;	set .Timer,1;	set .Wait,1;	announce "The Disguise Event will begin in 1 minute.",bc_all | bc_blue;	setnpctimer 0;	initnpctimer;	end;OnTimer10000:	if (.Timer || .Change) end;	set .Wait,0;	goto iDisguise;	end;OnTimer30000:	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;	set $MonsterName$,"";	deletepset 1;	stopnpctimer;	setnpctimer 0;	initnpctimer;	end;OnTimer30001:	if (.Timer!=1) end;	announce "Dice: Last 30 seconds.",bc_all | bc_blue;	end;OnTimer50000:	if (.Timer!=1) end;	announce "Dice: Last 10 seconds.",bc_all | bc_blue;	end;OnTimer55000:	if (.Timer!=1) end;	announce "Dice: 5.",bc_all | bc_blue;	end;OnTimer56000:	announce "Dice: 4.",0;	end;	OnTimer57000:	announce "Dice: 3.",0;	end;	OnTimer58000:	announce "Dice: 2.",0;	end;	OnTimer59000:	announce "Dice: 1.",0;	end;	OnTimer60000:	announce "Dice: Time's up.",0;	end;	OnTimer61000:	disablenpc "disguise#event";	set .Timer,0; stopnpctimer;	setnpctimer 0; initnpctimer;	end;	OnTimer62000:	announce "Dice: Time's up. Portal will open again in 4 hours.",0;	end;iDisguise:	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;	setnpctimer 0;	end;iCorrect:	if (.Winner) {		dispbottom "Someone has already won this round.";		end;	}	set .Winner,1;	set .RoundCount,.RoundCount+1;	deletepset 1;	activatepset 1;	getitem .Prize,.PrizeAmt;	announce strcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",bc_map | bc_blue;	if (.RoundCount>=.Rounds) {		setnpcdisplay "Disguise Event",795;		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;	}	setnpcdisplay "Disguise Event",795;	set .Change,0;	setnpctimer 0;	end;}rachel,112,99,0	warp	disguise#event	1,1,gon_test,45,86

PS: Sorry for my bad explanation :(

Thanks in advance..

Edited by Zalbahis

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.