vengeance 0 Posted March 5, 2015 (edited) 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 Edited March 5, 2015 by vengeance Quote Share this post Link to post Share on other sites
0 Garr 117 Posted March 5, 2015 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. Quote Share this post Link to post Share on other sites
0 exchisu 3 Posted March 6, 2015 Yea, that's why, 1414 is not a mob.. and the npc is trying to disguise in id: 1414 Quote Share this post Link to post Share on other sites
0 vengeance 0 Posted March 6, 2015 (edited) //===== 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 March 6, 2015 by vengeance Quote Share this post Link to post Share on other sites
0 Dastgir 1246 Posted March 6, 2015 Add if (getmonsterinfo(.@monster,1)==-1) goto iDisguise; Before deletepset 1; Quote Share this post Link to post Share on other sites
0 Radian 9 Posted March 6, 2015 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. Quote Share this post Link to post Share on other sites
0 Dastgir 1246 Posted March 6, 2015 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. Quote Share this post Link to post Share on other sites
0 Garr 117 Posted March 6, 2015 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... Quote Share this post Link to post Share on other sites
0 Dastgir 1246 Posted March 6, 2015 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? Quote Share this post Link to post Share on other sites
0 Radian 9 Posted March 7, 2015 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"; Quote Share this post Link to post Share on other sites
0 Garr 117 Posted March 7, 2015 @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. Quote Share this post Link to post Share on other sites
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
Edited by vengeance
Share this post
Link to post
Share on other sites