Jump to content
  • 0

HELP - Additional Script Only..


WhatFT

Question


  • Group:  Members
  • Topic Count:  142
  • Topics Per Day:  0.03
  • Content Count:  511
  • Reputation:   7
  • Joined:  02/15/12
  • Last Seen:  

Can anyone help me add something to this script? Sir Emistry own this script..

 

1. Make every player who entered have a 90 seconds delay before entering again.

2. Maximum of [10 players] only are allowed to enter.

3. Show how many players are inside, waitingroom (0/10 players)

 

Question : What does if( #Daily == 10 ) and set #Daily,1; mean? I wanted to remove that but I always get error.

prontera,162,185,5	script	Coin Room	491,{
if( select("Enter Coin Room:Cancel") == 1 )
	if( #Daily == 10 )
		mes "Take a rest and come back later.";
	else{
		set #Daily,1;
		addtimer 33000,strnpcinfo(0)+"::OnTimeLimit";
		announce "[Coin Room]:" + strcharinfo(0) + " has entered the Coin Room.",0;
		warp "poring_c01",100,100;
		message strcharinfo(0),"You have 30 seconds to loot.";
	}
close;

OnTimeLimit:
	message strcharinfo(0),"Time's Up.";
	sleep2 4000;
	message strcharinfo(0),"3";
	sleep2 3000;
	message strcharinfo(0),"2";
	sleep2 2000;
	message strcharinfo(0),"1";
	sleep2 1000;
	announce "[Coin Room]: " + strcharinfo(0) + "'s Time Limit is over!",0;
	warp "SavePoint",0,0;
	end;
	
OnInit:
while( 1 ){
	if( getmapusers("poring_c01") )
		makeitem 673,1,"poring_c01",rand(87,119),rand(86,115);
	sleep 300;
}
end;
}

Problem with Disguise Event NPC, the script is not clickable/working..

//===== rAthena Script =======================================
//= Disguise Event
//===== By: ==================================================
//= GmOcean
//===== Current Version: =====================================
//= 5.1
//===== Compatible With: ===================================== 
//= rAthena SVN
//===== Additional Comments: =================================  
//= Note: This script requires PCRE to run properly.
//= 5.0 Last update by GmOcean.
//= 5.1 Cleaned and standardized, mostly. [Euphy]
//============================================================

prontera,130,172,5	script	Disguise Event	795,{

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

	set .@GMLevel,99;	// 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 189 179.",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,12248;
	set .PrizeAmt,2;
	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:
OnClock0100:
OnClock0200:
OnClock0300:
OnClock0400:
OnClock0500:
OnClock0600:
OnClock0700:
OnClock0800:
OnClock0900:
OnClock1000:
OnClock1100:
OnClock1200:
OnClock1300:
OnClock1400:
OnClock1500:
OnClock1600:
OnClock1700:
OnClock1800:
OnClock1900:
OnClock2000:
OnClock2100:
OnClock2200:
OnClock2300:
	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 Prontera 189 179.",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;
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 189 179.",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 189 179.",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 189 179.",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 "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;
}

Edited by WhatFT
Link to comment
Share on other sites

3 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  142
  • Topics Per Day:  0.03
  • Content Count:  511
  • Reputation:   7
  • Joined:  02/15/12
  • Last Seen:  

Bump :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

I don't believe Emistry can make this kind of mistakes

unless this is the script made during 2011~2012 ( his 1st generation script )

Question : What does if( #Daily == 10 ) and set #Daily,1; mean? I wanted to remove that but I always get error.

I also wondering about this

that set #Daily, 1; should be set #daily, #daily +1;

means the player can only enter the gold room for a maximum of 10 times per account in that account's whole life (?? lol)

I suggest should set a better variable like gettimetick(2) to limit it everyday though

1. Make every player who entered have a 90 seconds delay before entering again.

use gettimetick(2)

http://rathena.org/wiki/Timers_%28Scripting%29#Use_Number_3:_Deny_Usage

2. Maximum of [10 players] only are allowed to enter.

if ( getmapusers( "poring_c01" ) >= 10 ) <deny them>;

3. Show how many players are inside, waitingroom (0/10 players)

http://www.eathena.ws/board/index.php?s=&showtopic=272589&view=findpost&p=1493661

for Disguise Event NPC,

check your map-server.exe for error

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  142
  • Topics Per Day:  0.03
  • Content Count:  511
  • Reputation:   7
  • Joined:  02/15/12
  • Last Seen:  

I don't believe Emistry can make this kind of mistakes

unless this is the script made during 2011~2012 ( his 1st generation script )

 

Question : What does if( #Daily == 10 ) and set #Daily,1; mean? I wanted to remove that but I always get error.

I also wondering about this

that set #Daily, 1; should be set #daily, #daily +1;

means the player can only enter the gold room for a maximum of 10 times per account in that account's whole life (?? lol)

I suggest should set a better variable like gettimetick(2) to limit it everyday though

1. Make every player who entered have a 90 seconds delay before entering again.

use gettimetick(2)

http://rathena.org/wiki/Timers_%28Scripting%29#Use_Number_3:_Deny_Usage

2. Maximum of [10 players] only are allowed to enter.

if ( getmapusers( "poring_c01" ) >= 10 ) <deny them>;

3. Show how many players are inside, waitingroom (0/10 players)

http://www.eathena.ws/board/index.php?s=&showtopic=272589&view=findpost&p=1493661

for Disguise Event NPC,

check your map-server.exe for error

 

 

I don't know why the gettimetick is not working.. The delay is not working can you check my script?


prontera,162,185,5	script	Coin Room	491,{
if( select("Enter Coin Room:Cancel") == 1 )
	if( #Daily == 1000 )
		mes "You already reached the maximum times of entering the Coin Room. Max : 1000";
	else{
		set #Daily, #Daily +1;
		addtimer 33000,strnpcinfo(0)+"::OnTimeLimit";
		announce "[Coin Room]:" + strcharinfo(0) + " has entered the Coin Room.",0;
		warp "poring_c01",100,100;
		message strcharinfo(0),"You have 30 seconds to loot.";
	}
close;

if(CoinDelay > gettimetick(2)) {
         mes "Please enter after a few seconds.";
         close;
    }

OnTimeLimit:
	message strcharinfo(0),"Time's Up.";
	sleep2 4000;
	message strcharinfo(0),"3";
	sleep2 3000;
	message strcharinfo(0),"2";
	sleep2 2000;
	message strcharinfo(0),"1";
	sleep2 1000;
	announce "[Coin Room]: " + strcharinfo(0) + "'s Time Limit is over!",0;
	warp "SavePoint",0,0;
	set CoinDelay, gettimetick(2) + 30;
    dispbottom "Coin Room : You can go back after 30 seconds.";
	end;
	
OnInit:
while( 1 ){
	if( getmapusers("poring_c01") )
		makeitem 673,1,"poring_c01",rand(87,119),rand(86,115);
	sleep 150;
	
}
end;
}

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...