Jump to content

  •  

Photo

Auto Stop Disguise Event


  • Please log in to reply
No replies to this topic

#1 Zalbahis

Zalbahis

    Member

  • Members
  • PipPip
  • 26 posts

Posted 20 July 2013 - 08:10 PM

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, 20 July 2013 - 08:12 PM.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users


This topic has been visited by 48 user(s)