c2greentea Posted October 13, 2014 Group: Members Topic Count: 68 Topics Per Day: 0.02 Content Count: 173 Reputation: 0 Joined: 06/07/14 Last Seen: December 17, 2014 Share Posted October 13, 2014 This is my Disguise Event script http://upaste.me/r/acce1547260f4811d My problem is if the player inputs a correct monster name even if the NPC hasn't disguised yet, the player wins. We wanted to have a delay, make sure the NPC gets disguised first before players could win from random guessing. Please help. Quote Link to comment Share on other sites More sharing options...
Winz Posted October 13, 2014 Group: Members Topic Count: 22 Topics Per Day: 0.00 Content Count: 1479 Reputation: 174 Joined: 12/14/11 Last Seen: November 21, 2016 Share Posted October 13, 2014 (edited) try: //===== rAthena Script ======================================= //= Disguise Event //===== By: ================================================== //= GmOcean //===== Current Version: ===================================== //= 5.1 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Guess a monster name correctly for prizes. //= //= NOTE: Requires PCRE library installed. //===== Additional Comments: ================================= //= 5.0 Last update by GmOcean. //= 5.1 Cleaned and standardized, mostly. [Euphy] //============================================================ prontera,161,188,6 script Disguise Event 795,{ // 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",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 middle 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,15; set .Prize,6153; set .PrizeAmt,75; 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; OnClock0000: OnClock0200: OnClock0400: OnClock0422: OnClock0600: OnClock0800: OnClock1000: OnClock1200: OnClock1400: OnClock1600: OnClock1800: OnClock2000: OnClock2227: setcell "prontera",163,192,159,185,cell_walkable,0; // Sets cells unwalkable set .ResetCounter,.ResetCounter+1; set .EventON,1; set .Timer,1; set .Wait,1; announce "The Disguise Event will begin in 3 minutes. The Event is being held in middle Prontera.",bc_all | bc_blue; announce "RULE: Do not flood while the event is on or you might be silenced for 30 mins by a GM.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",bc_all | bc_blue; announce "NOTE: Some cells near my area shall be unwalkable during the event.",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 EF_DETECT2; set $MonsterName$,""; deletepset 1; stopnpctimer; setnpctimer 0; initnpctimer; end; OnTimer60000: if (.Timer!=1) end; announce "2 minutes left. The Disguise Event is being held in middle Prontera.",bc_all | bc_blue; announce "RULE: Do not flood while the event is on or you might be silenced for 30 mins by a GM.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",bc_all | bc_blue; end; OnTimer120000: if (.Timer!=1) end; announce "1 minute left. The Disguise Event is being held in middle Prontera.",bc_all | bc_blue; announce "RULE: Do not flood while the event is on or you might be silenced for 30 mins by a GM.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",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 middle Prontera.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",bc_all | bc_blue; set .Timer,0; stopnpctimer; setnpctimer 0; initnpctimer; 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; sleep 1000; if (.Rule==1) setnpcdisplay "Disguise Event",.Monster; if (.Rule==2) setnpcdisplay "Disguise Event",.MVP[.Monster]; defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect"; activatepset 1; 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; announce "Thank you all for playing. That was the last round of the Disguise Event. Come play again later.",bc_all | bc_blue; setcell "prontera",163,192,159,185,cell_walkable,1; // Sets cells walkable again end; } setnpcdisplay "Disguise Event",795; set .Change,0; setnpctimer 0; end; } modified some things starting on line 225: 1. moved pset pattern and activatepset to AFTER NPC disguised2. Paused the script for 1 second after decided which monster to disguise AND before disguising Edited October 13, 2014 by Winz Quote Link to comment Share on other sites More sharing options...
c2greentea Posted October 13, 2014 Group: Members Topic Count: 68 Topics Per Day: 0.02 Content Count: 173 Reputation: 0 Joined: 06/07/14 Last Seen: December 17, 2014 Author Share Posted October 13, 2014 Thanks very much winz. How about adding a limit to max win per IP address? I hope you can still help me. Very much appreciated Quote Link to comment Share on other sites More sharing options...
Winz Posted October 14, 2014 Group: Members Topic Count: 22 Topics Per Day: 0.00 Content Count: 1479 Reputation: 174 Joined: 12/14/11 Last Seen: November 21, 2016 Share Posted October 14, 2014 Are you sure you are going to do this (checking the char's IP, not account_id)? If so, then I can win the first x rounds. Then after I'm banned from disguise event, I just restart my modem (I am using a dynamically given WAN IP from my ISP) and get the prizes again. and I'll do that again and again and again. anyway, I'll make both, making sure that the char's account_id and chars' IP is monitored. wait, I know why you want to do this. it's because you're preventing 1 player to play the disguise event and get the prize so many times by logging in different account, right? if so, that's pretty.... motorcycle.. Quote Link to comment Share on other sites More sharing options...
c2greentea Posted October 14, 2014 Group: Members Topic Count: 68 Topics Per Day: 0.02 Content Count: 173 Reputation: 0 Joined: 06/07/14 Last Seen: December 17, 2014 Author Share Posted October 14, 2014 Yes exactly that's why I want it limited Winz. What's the best thing to do here? Even per account id, or IP, or mac address, rathena users just said players will always find a way to get a loophole. I think per IP would be best though what do you think? Quote Link to comment Share on other sites More sharing options...
Winz Posted October 14, 2014 Group: Members Topic Count: 22 Topics Per Day: 0.00 Content Count: 1479 Reputation: 174 Joined: 12/14/11 Last Seen: November 21, 2016 Share Posted October 14, 2014 okay, so it will be double check: ID and IP. will continue doing this in some hours.. Quote Link to comment Share on other sites More sharing options...
Winz Posted October 15, 2014 Group: Members Topic Count: 22 Topics Per Day: 0.00 Content Count: 1479 Reputation: 174 Joined: 12/14/11 Last Seen: November 21, 2016 Share Posted October 15, 2014 @c2greentea PLEASE READ THIS COMPLETELY BEFORE USING THE SCRIPT. Modifications: 1. added some IP, SQL feature to the NPC to check it 2. added some SQL commands to remove the variables. how it works: after NPC disguised, when a player guessed, he is checked: 1. if someone else has win it or not (default) 2. how many wins have obtained (exceed max allowed win? if yes, not allowed to win anymore, IP is stored inside `restrict_disguise`) if no: 3. if the current IP was stored inside the `restrict_disguise` (if yes, not allowed to win anymore) if no: 4. set global (account variable) "#disguisewin" to be #disguisewin+1 (if had never win, then variable is added automatically) 5. when max_round has reached, game will end and will remove the variables "#disguisewin" and empty the banned ip table. note: 1. can be bypassed by players who get dynamic IP by: logout, restart modem, login with another ID 2. if someone did (no. 1) and tried to do so, and (unluckily) he got the IP that the previous player used, he will get banned from the game. 3. If there are 10 rounds and was played 7 times, NPC will disguise infinitely till GM stops it, right? therefore, even if it's been more than 3 hours (in 3 hours the game is not ended), then the ban will remain the same. 4. seems like if the event has ended, a player who already touched the max_win must re-login (at least re-select char (esc, char selection, enter)) to join the next game. it's common. 5. be careful when copying the code (white space problems) First, execute this SQL script: CREATE TABLE IF NOT EXISTS `restrict_disguise` (`ip` varchar(100) NOT NULL default '', PRIMARY KEY (ip)) ENGINE=MyISAM; Then you can load this script: //===== rAthena Script ======================================= //= Disguise Event //===== By: ================================================== //= GmOcean //===== Current Version: ===================================== //= 5.1 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Guess a monster name correctly for prizes. //= //= NOTE: Requires PCRE library installed. //===== Additional Comments: ================================= //= 5.0 Last update by GmOcean. //= 5.1 Cleaned and standardized, mostly. [Euphy] //============================================================ prontera,161,188,6 script Disguise Event 795,{ // 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",795; query_sql("delete from global_reg_value WHERE str = \"#disguisewin\";"); query_sql("delete from `restrict_disguise`;"); 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 middle 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,15; set .Prize,6153; set .PrizeAmt,75; 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; OnClock0000: OnClock0200: OnClock0400: OnClock0422: OnClock0600: OnClock0800: OnClock1000: OnClock1200: OnClock1400: OnClock1600: OnClock1800: OnClock2000: OnClock2227: setcell "prontera",163,192,159,185,cell_walkable,0; // Sets cells unwalkable set .ResetCounter,.ResetCounter+1; set .EventON,1; set .Timer,1; set .Wait,1; announce "The Disguise Event will begin in 3 minutes. The Event is being held in middle Prontera.",bc_all | bc_blue; announce "RULE: Do not flood while the event is on or you might be silenced for 30 mins by a GM.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",bc_all | bc_blue; announce "NOTE: Some cells near my area shall be unwalkable during the event.",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 EF_DETECT2; set $MonsterName$,""; deletepset 1; stopnpctimer; setnpctimer 0; initnpctimer; end; OnTimer60000: if (.Timer!=1) end; announce "2 minutes left. The Disguise Event is being held in middle Prontera.",bc_all | bc_blue; announce "RULE: Do not flood while the event is on or you might be silenced for 30 mins by a GM.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",bc_all | bc_blue; end; OnTimer120000: if (.Timer!=1) end; announce "1 minute left. The Disguise Event is being held in middle Prontera.",bc_all | bc_blue; announce "RULE: Do not flood while the event is on or you might be silenced for 30 mins by a GM.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",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 middle Prontera.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",bc_all | bc_blue; set .Timer,0; stopnpctimer; setnpctimer 0; initnpctimer; 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; sleep 1000; if (.Rule==1) setnpcdisplay "Disguise Event",.Monster; if (.Rule==2) setnpcdisplay "Disguise Event",.MVP[.Monster]; defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect"; activatepset 1; set .Change,1; setnpctimer 0; end; iCorrect: if (.Winner) { dispbottom "Someone has already won this round."; end; } set .maxwin, 5; if (#disguisewin >= .maxwin) { dispbottom "Your ID has won "+#disguisewin+" rounds of this disguise game."; dispbottom "According to GM, you are not allowed to win anymore on this game."; emotion e_sob,1; query_sql("INSERT INTO `restrict_disguise` (ip) VALUES (\""+escape_sql(getcharip())+"\");"); end; } set @ipwin, query_sql("SELECT `ip` from `restrict_disguise` WHERE `ip` = \""+escape_sql(getcharip())+"\" "); if (@ipwin > 0) { dispbottom "Your IP has won "+.maxwin+" rounds of this disguise game."; dispbottom "According to GM, you are not allowed to win anymore on this game."; emotion e_sob,1; end; } set #disguisewin, #disguisewin+1; 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; announce "Thank you all for playing. That was the last round of the Disguise Event. Come play again later.",bc_all | bc_blue; setcell "prontera",163,192,159,185,cell_walkable,1; // Sets cells walkable again query_sql("delete from global_reg_value WHERE str = \"#disguisewin\";"); query_sql("delete from `restrict_disguise`;"); end; } setnpcdisplay "Disguise Event",795; set .Change,0; setnpctimer 0; end; } oh, and something like [SQL]: DB error - Duplicate entry '127.0.0.1' for key 'PRIMARY' will appear if winning players still guessing the disguise. don't care about this. (i'm lazy to do this. try to modify it using insert into ... if does not exist) *guessing correctly Quote Link to comment Share on other sites More sharing options...
c2greentea Posted October 16, 2014 Group: Members Topic Count: 68 Topics Per Day: 0.02 Content Count: 173 Reputation: 0 Joined: 06/07/14 Last Seen: December 17, 2014 Author Share Posted October 16, 2014 Thanks Winz we shall try it ASAP. For the meantime can you check this one? http://rathena.org/board/topic/98506-modified-euphys-item-rewards-npc/ Maybe you can also help me with that I'm very willing to pay just to get it done please. Quote Link to comment Share on other sites More sharing options...
Question
c2greentea
This is my Disguise Event script http://upaste.me/r/acce1547260f4811d
My problem is if the player inputs a correct monster name even if the NPC hasn't disguised yet, the player wins. We wanted to have a delay, make sure the NPC gets disguised first before players could win from random guessing.
Please help.
Link to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.