Jump to content
  • 0
vengeance

Disguise Event Error

Question

I get this error only when a player tells the correct answer could anyone help me how to fix it..

 

 

 

 

-------------

oops sorry by mistake posted here.. supposed to be in script support

post-8495-0-70844600-1425587073_thumb.png

Edited by vengeance

Share this post


Link to post
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Seems like your disguise event npc is trying to change into monster that don't exist (ID1414). If you'd show the script it could be easier to find what is wrong and why.

Share this post


Link to post
Share on other sites
  • 0
//===== 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]//= [Mods by Happy]//= h5.2 disable winning the next round if already won//	the last round.//============================================================quiz_01,144,377,4	script	Disguise Event	4_M_NFDEADMAN,{	// 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")) {		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", 4_M_NFDEADMAN;//				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 "If you want to join us, come to Dewata and enter the warp portal.",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,10;	set .Prize,7711;	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;	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;OnStart:	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 "If you want to join us, come to Dewata and enter the warp portal.",bc_all | bc_blue;	enablenpc "guesswarp";	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", 4_M_NFDEADMAN;	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;OnTimer60000:	if (.Timer!=1) end;	announce "The Disguise Event will begin in 2 minutes.",bc_all | bc_blue;	announce "If you want to join us, come to Dewata and enter the warp portal.",bc_all | bc_blue;	end;OnTimer120000:	if (.Timer!=1) end;	announce "The Disguise Event will begin 1 minute.",bc_all | bc_blue;	announce "If you want to join us, come to Dewata and enter the warp portal.",bc_all | bc_blue;	end;OnTimer180000:	if (.Timer!=1) end;	announce "The Disguise Event has begun!",bc_all | bc_blue;	announce "The portal has been closed.",bc_all | bc_blue;	disablenpc "guesswarp";	set .Timer,0; stopnpctimer;	setnpctimer 0; 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);	}	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;	}	if (.lastwinner == strcharinfo(0)) {		dispbottom "You can't win since you already wont he last round";		end;	}	set .Winner,1;	set .RoundCount,.RoundCount+1;	deletepset 1;	activatepset 1;	getitem .Prize,.PrizeAmt;	set .lastwinner,strcharinfo(0);	announce strcharinfo(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;		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", 4_M_NFDEADMAN;	set .Change,0;	setnpctimer 0;	end;}dewata,222,208,0	warp	guesswarp	2,2,quiz_01,144,373quiz_01	mapflag	nowarptoquiz_01	mapflag	nowarpquiz_01	mapflag	nosavequiz_01	mapflag	nomemoquiz_01	mapflag	noteleportquiz_01	mapflag	noskill

 

Here is the script

Edited by vengeance

Share this post


Link to post
Share on other sites
  • 0

I think the ID of the monster stated is not available on the mob_db.txt try to look for that ID and enable it.

Share this post


Link to post
Share on other sites
  • 0

I think the ID of the monster stated is not available on the mob_db.txt try to look for that ID and enable it.

Not necessary to add mob o_O, its just script not checking if mob exist or not, so adding a condition will fix it.

Share this post


Link to post
Share on other sites
  • 0

Isn't it kind of strange that it tried to use monster 1414 even though it's in the blacklist? I can't quite figure why it'd do that...

Share this post


Link to post
Share on other sites
  • 0

Isn't it kind of strange that it tried to use monster 1414 even though it's in the blacklist? I can't quite figure why it'd do that...

Ahh, yah, that's a bit(actually, a lot) strange..

@topicstarter , maybe you miss some case sensitive warnings in console, and that cause these whole drama?

Share this post


Link to post
Share on other sites
  • 0

 

I think the ID of the monster stated is not available on the mob_db.txt try to look for that ID and enable it.

Not necessary to add mob o_O, its just script not checking if mob exist or not, so adding a condition will fix it.

 

Oh sorry xD how about in this line?

"2114,2115,2116,2117,2118,2119,2120,2121,2123,2124,2125,1496,";

should it be like this?

"2114,2115,2116,2117,2118,2119,2120,2121,2123,2124,2125,1496";

Share this post


Link to post
Share on other sites
  • 0

@Radian

Well, potentially it shouldn't even matter, it'll find 1496 nonetheless. Just there will be an extra comma inside search string. Main thing it can do is hurt someone's asthetic feelings.

 

Maybe there's some kind of limit on string variables? Like if it exceeds some length it's nulled or something? Like in SQL it cuts to 254 letters, I presume? Anyways, this .Blacklist$ string has 680 letters in current state.

Share this post


Link to post
Share on other sites

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.