Jump to content
  • 0
lelouchxv

Disguise Event Not giving prize even answering the right monster

Question

IM USING THE LATEST Disguise event NPC 

https://github.com/rathena/rathena/blob/master/npc/custom/events/disguise.txt

 

Quote
//===== 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,160,155,4	script	Disguise Event	795,{

	// Currently set to run every two hours.
	// To change times, edit the OnClock labels below.

	set [email protected],60;	// GM level required to access NPC.
	set [email protected]$,"[^0000FFDisguise NPC^000000]";

	if (getgmlevel()>[email protected]) {
		mes [email protected]$;
		mes "Select an option.";
		next;
		switch(select("Turn ON/OFF Event:Event Settings")) {
		case 1:
			mes [email protected]$;
			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 [email protected]$;
			mes "Pick a setting to modify.";
			next;
			switch(select("Monster Display:Number of Rounds:Prize Settings")) {
			case 1:
				setarray [email protected]$[0],"Disguise as all monsters.","Disguise as MVPs only.";
				mes [email protected]$;
				mes "Choose a disguise rule.";
				next;
				set .Rule, select(implode([email protected]$,":"));
				mes [email protected]$;
				mes "The Disguise Rule has been set:";
				mes "  > ^0055FF"[email protected]$[.Rule-1]+"^000000";
				close;
			case 2:
				mes [email protected]$;
				mes "Input the number of rounds you want the event to last.";
				mes "Current number: [^0000FF"+.Rounds+"^000000]";
				next;
				input [email protected];
				set .Rounds,[email protected];
				mes [email protected]$;
				mes "The number of rounds has been changed to "+.Rounds+".";
				close;
			case 3:
				mes [email protected]$;
				mes "Input the Item ID of the prize given each round.";
				mes "Current item: [^0000FF"+getitemname(.Prize)+"^000000] (ID #"+.Prize+")";
				next;
				input [email protected];
				mes [email protected]$;
				if (getitemname([email protected])=="" || getitemname([email protected])=="null") {
					mes "That item does not exist. Please try again.";
					close;
				}
				set .Prize,[email protected];
				mes "Input the amount to be given.";
				next;
				input [email protected];
				mes [email protected]$;
				if ([email protected]<=0 || [email protected]>=10000) {
					mes "That amount is invalid. Using default amount of 1.";
					set [email protected],1;
					next;
					mes [email protected]$;
				}
				set .PrizeAmt,[email protected];
				mes "The Prize has been changed successfully.";
				mes "Prize: "+.PrizeAmt+"x [^0000FF"+getitemname(.Prize)+"^000000]";
				close;
			}
		}
	}
	if (.EventON) end;
	mes [email protected]$;
	mes "Welcome.";
	mes "How may I be of assistance?";
	if(select("Information:Nothing, just passing through.")==2) close;
	next;
	mes [email protected]$;
	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 monster'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,512;
	set .PrizeAmt,1;
	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:
OnClock0600:
OnClock0800:
OnClock1000:
OnClock1200:
OnClock1400:
OnClock1600:
OnClock1800:
OnClock2000:
OnClock2200:
	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 "The Event is being held in Prontera.",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 "Disguise Event : 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 "The Disguise Event will begin in 2 minutes.",bc_all | bc_blue;
	announce "The Event is being held in Prontera.",bc_all | bc_blue;
	end;
OnTimer120000:
	if (.Timer!=1) end;
	announce "The Disguise Event will begin 1 minute.",bc_all | bc_blue;
	announce "The Event is being held in Prontera.",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 Prontera.",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;
	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 "Disguise Event : 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;
}

 

screenHex RO002.jpg

screenHex RO003.jpg

1.jpg

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
On 3/14/2021 at 4:05 PM, Brynner said:

have you tried to change your langtype?

Yes i did, i change it to 0 and it won't let me open my client.

<?xml version="1.0" encoding="euc-kr" ?>
<clientinfo>
<servicetype>korea</servicetype>
<servertype>sakray</servertype>
   <connection>
      <display>Hex Ragnarok Online</display>
      <balloon>Hex Ragnarok Online</balloon>
      <desc>Hex Ragnarok Online</desc>
      <address>127.0.0.1</address>
      <port>6900</port>
      <version>24</version>
      <langtype>1</langtype>
      <registrationweb>flux.domain.com</registrationweb>
        <aid>
            <admin>2000000</admin>
        </aid>
       <loading>
    <image>loading00.jpg</image>
    </loading>
   </connection>
</clientinfo>

Bmp need help

 

Link to comment
Share on other sites

  • 0

Change 

npctalk "Disguise Event : You took too long to guess what I was. Please wait 10 seconds while I disguise again.";

to

npctalk "Disguise Event : You took too long to guess what I was "+$MonsterName$+". Please wait 10 seconds while I disguise again.";

and check correct answer

Link to comment
Share on other sites

  • 0
On 3/17/2021 at 7:02 PM, botka4aet said:

Change 

npctalk "Disguise Event : You took too long to guess what I was. Please wait 10 seconds while I disguise again.";

to

npctalk "Disguise Event : You took too long to guess what I was "+$MonsterName$+". Please wait 10 seconds while I disguise again.";

and check correct answer

if (.Timer) end;
	set .Change,0;
	setnpcdisplay "Disguise Event",795;
	npctalk "Disguise Event : You took too long to guess what I was "+$MonsterName$+". Please wait 10 seconds while I disguise again.";
	specialeffect EF_DETECT2;
	set $MonsterName$,"";
	deletepset 1;
	stopnpctimer;
	setnpctimer 0;
	initnpctimer;
	end;

its correct but still not giving any prize

qweqwe.jpg

Any fix for this?

Link to comment
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.   Paste as plain text instead

  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.



×
×
  • Create New...