Jump to content

minx123

Members
  • Content Count

    283
  • Joined

  • Last visited

Posts posted by minx123


  1. The warper shows after it announces "enter the warp portal ..."

     

    on line 33

    announce "Poring Catcher : Enter the warp portal now if you want to join.",bc_blue;hideoffnpc "poringevent";enablenpc "poringevent";initnpctimer;end;

     

     

    If you want to make it triggered by a bindatcmd

     

    **haven't tested it** Try this one -> Click me

     

    the portal still not hide. player can come again when wrong kill poring

    for bindatcmd is perfectly work.


  2. Hi @@minx123 ~

     

    I've tried the script and runs to me smoothly.

     

    Here's the script -> Click Me

     

    You need to talk to Poring Catcher NPC after you kill the real poring.

     

    i changed the variable PORING to PORING_c

     

    the npc warp always on. cant hide?

    only show when event start.

     

    if i want put bindcmd for manual start how?

     

     

    OnInit:    bindatcmd "p.summon",strnpcinfo(3)+"80,80;    end;

  3. //= Poring Catcher - Auto Event Script//===== By: =================================================================================//= Washi - www.EarthBound-RO.com//===== Compatible With: ====================================================================//= Any eAthena Version//===== Description: ========================================================================//= Single NPC that starts automatically starts every hour.//===== Additional Comments: ================================================================//= This script is a combenation of the Dice Event by [Mahina]//= and the origonal Poring Catcher Event by [Wild Karrd]//===========================================================================================//= OnMinute - Change this to the minute you would like this script to load. [ LINE 22 ]//= getitem - Change this to the Item ID of your prize. [ LINE 118 ]//===========================================================================================-	script	poring#announcer	-1,{OnInit:	disablenpc "poringevent";	hideonnpc "poringevent";	hideonnpc "Poring Catcher#evnt2";	end;OnMinute27: // SET THE 30 TO THE MINUTE YOU WANT THE EVENT TO START EACH HOUR.	announce "Poring Catcher : It's time to play some Poring Catcher!",bc_blue;	announce "Poring Catcher : Prize will be  Credit.",bc_blue;	killmonster "poring_w01","All";	sleep2 10000;	announce "Poring Catcher : Please make your way to the centre of Event Area.",bc_blue;	sleep2 10000;	announce "Poring Catcher : After one minute the portal will close.",bc_blue;	sleep2 10000;	announce "Poring Catcher : Enter the warp portal now if you want to join.",bc_blue;	hideoffnpc "poringevent";	enablenpc "poringevent";	initnpctimer;	end;OnTimer30000:	announce "Poring Catcher : Last 30 seconds.",bc_blue;	sleep2 5000;	announce "Poring Catcher : Hurry to the upper Left of dewata if you want to join.",bc_blue;	end;	OnTimer50000:	announce "Poring Catcher : Last 10 seconds.",bc_blue;	end;	OnTimer55000:	announce "Poring Catcher : 5.",bc_blue;	end;	OnTimer56000:	announce "Poring Catcher : 4.",bc_blue;	end;	OnTimer57000:	announce "Poring Catcher : 3.",bc_blue;	end;	OnTimer58000:	announce "Poring Catcher : 2.",bc_blue;	end;	OnTimer59000:	announce "Poring Catcher : 1.",bc_blue;	end;	OnTimer60000:	announce "Poring Catcher : Time's up! Portal will open again in 1 hour.",bc_blue;	end;	OnTimer61000:	disablenpc "poringevent";	hideonnpc "poringevent";	donpcevent "Poring Catcher#evnt2::OnEnable";	stopnpctimer;	end;	}	//--------------------------------------------------	florian,95,115,0	warp	poringevent	2,2,poring_w01,106,129		//--------------------------------------------------poring_w01,100,127,4	script	Poring Catcher#evnt2	715,{//--------------------------------------------------	mes "[Poring Catcher]";	if(PORING == 1) goto L_PORING;	mes "Please tell me your name";	next;	input .@name$;	if(.@name$ != strcharinfo(0)) {		mes "[Poring Catcher]";		mes "Are you sure thats your character name?";		close;	}	mes "[Poring Catcher]";	mes "Congrats. You've won.";	close2;	announce "Poring Catcher : All laugh at, "+.@name$+". - This player tried to cheat the system. Muhahahahaha!",bc_blue;	warp "dicastes01",197,184;	end;L_PORING:	mes "Please tell me your name";	next;	input .@name$;	if(.@name$ != strcharinfo(0)) {		mes "[Poring Catcher]";		mes "Are you sure thats your character name?";		close;	}	mes "[Poring Catcher]";	mes "Congrats. You've won.";	close2;	announce "Poring Catcher : We have a winner, "+.@name$+". - Event Award Won!",0;	getitem 7227,2;	//set zeny,zeny+1000000;	set PORING,0;	warp "dicastes01",197,184;	hideonnpc "Poring Catcher#evnt2";	end;	OnEnable:	mapannounce "poring_w01","Poring Catcher : I will be summoning 100 different Porings.",0;	sleep2 10000;	mapannounce "poring_w01","Poring Catcher : Only one of these Porings is the correct Poring.",0;	sleep2 10000;	mapannounce "poring_w01","Poring Catcher : The correct Poring is called [ Poring ], all the other Porings have different names.",0;	sleep2 10000;	mapannounce "poring_w01","Poring Catcher : Take your time because if you kill the wrong Poring, your out of the game.",0;	sleep2 10000;	mapannounce "poring_w01","Poring Catcher : The first player to kill the correct Poring wins.",0;	sleep2 10000;	mapannounce "poring_w01","Poring Catcher : That's that.. Now let's play...",0;	goto L_Start;	end;	L_Start:	mapannounce "poring_w01","Poring Catcher : 5",0;	sleep2 1000;	mapannounce "poring_w01","Poring Catcher : 4",0;	sleep2 1000;	mapannounce "poring_w01","Poring Catcher : 3",0;	sleep2 1000;	mapannounce "poring_w01","Poring Catcher : 2",0;	sleep2 1000;	mapannounce "poring_w01","Poring Catcher : 1",0;	sleep2 1000;	mapannounce "poring_w01","Poring Catcher : Lets Do This!",0;	areamonster "poring_w01",84,119,121,90,"Poring",1002,1,"poringwin::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"Pouring",1002,10,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"Proing",1002,10,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"Poiring",1002,10,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"Poing",1002,10,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"I am not Poring",1002,5,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"Gniriop",1002,1,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"Porring",1113,1,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"Porinng",1062,1,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"Poriiing",1002,10,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"PoriNgg",1002,10,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"Porong",1002,10,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"P0ring",1002,10,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"Por1ng",1002,10,"poringlose::OnMobKilled";	areamonster "poring_w01",84,119,121,90,"Porng",1002,1,"poringlose::OnMobKilled";	end;}-	script	poringwin	-1,{OnMobKilled:	dispbottom "Poring : Congratulations. You've got me.";	set PORING,1;	atcommand "@doommap";	killmonster "poring_w01","All";	mapannounce "poring_w01","Poring Catcher : Come to me and tell me your name.",0;	hideoffnpc "Poring Catcher#evnt2";	end;}-	script	poringlose	-1,{OnMobKilled:	dispbottom "Poring Catcher : Wahaha, your a loser! - I wasnt the correct Poring.";	warp "florian",111,150;	end;}// -- Mapflagsporing_w01	mapflag	nowarpporing_w01	mapflag	nowarptoporing_w01	mapflag	noteleportporing_w01	mapflag	nosaveporing_w01	mapflag	nomemoporing_w01	mapflag	nobranchporing_w01	mapflag	nolootporing_w01	mapflag	noskillporing_w01	mapflag	nopenalty

    hello.. i need help to fix this script.. player cant get reward after kill the real poring.

     


  4. //===== rAthena Script =======================================//= Dungeon Party System//===== By ===================================================//= lllchrislll//===== Version ==============================================//= 1.0 - Initial Release//      - Fixxed an bug with warping to the Start Point - Thanks to Azeroth for the bug report//      - Removed "set .pt_max" and replaced it with "MAX_PARTY" in the checks//===== Compatible With ======================================//= rAthena SQL 11.06.2015 Rev+//===== Tested With ==========================================//= rAthena SQL 11.06.2015 Rev//===== Description ==========================================//= Additional EXP Bonus (in Percent) based on Dungeon's Difficulty//  - Difficulties: Easy, Medium, Hard//  - EXP Rates: 50%, 100%, 150% (changeable)//= Dungeon Warp Service//  - Warp to the Entrance only//= Party Settings dynamically changeable//  - Quantity of Parties in 1 Dungeon//= Party Join Feature//  - Requesting to join an existing Party, on accept the Leader can decide//    to which member the applicant will be warped to//= Dungeon Rewards://  - Regular Dungeon Points (On/Off Function)//    Base Points*Difficulty of Dungeon//  - MvP Dungeon Points (On/Off Function)//    Per slain MvP, you gain "x" Points (changeable)//    Different kind of Points are: Custom Character Permanent Variable for Exchanger or #CASHPOINTS//  - Dungeon Points Exchanger//===== Credits	==============================================//= To the author of the "Ultimate Warper" from the eAthena Board.//	Since no header was included and I forgot the name of him/her,//	I couldn't ask the permission to use an part of the script.//	I used the map coordinates.//===== Notes ============================================//= Aldebaran and Clock Tower Dungeon: I splitted those two apart, even though they are connected//= Glastheim: I put the NPC duplicate at the main map, because the//  dungeon is connected with each other, so it was difficult to decide//  where to put the "Exit"//===== ToDo List ============================================//= Thinking if my funtion "SyncPartyData" is useful or not about the memory usage//============================================================prontera,151,185,4	script	Dungeon Party Service	110,{mes .n$;mes "Hello, "+strcharinfo(0)+"!";mes "How can I help you?";next;switch(select("- Dungeon Menu:- Information:- "+ ( (.dg_rew == 1)?"Points Exchanger:- Nothing":"Nothing") )) {	case 1:	if(getd("$@pty_"+getcharid(1)+"_m$[0]") == "") {		set @join,0;		if(!getcharid(1)) {			mes .n$;			mes "Do you want to join a party?";			if(getarraysize(.pty_id) < 1) {				mes "But since there is no party yet you could join, you need to create one yourself.";				mes "Also you require 2 or more members to use the Dungeon Party Service.";				close;			}			next;			if(select("- Yes:- No") - 1) {				mes .n$;				mes "Then you need to create one first, also you require 2 and more members to use the Dungeon Party Service.";				close;			}			next;			mes .n$;			mes "Please choose the dungeon first, then the party you want to join in.";			set @join,1;			next;		}		if(!@join) {			if(strcharinfo(0) != getpartyleader(getcharid(1))) {				mes .n$;				mes "Only the party leader can register your party for the Dungeon Party Service.";				close;			}			getpartymember(getcharid(1),2);			for ( set .@p,0; .@p < $@partymembercount; set .@p,.@p + 1) 				if(isloggedin($@partymemberaid[.@p]) == 1)  // Member logged in?					set .@ct,.@ct + 1;								if(.@ct < 2) {				mes .n$;				mes "A party requires 2 members minimum to use the Dungeon Party Service.";				close;			}			set .@partyct,$@partymembercount;		}		set .men_dung$,"";		// =============== Creating Dungeon Menu ===============		for ( set .@du,0; .@du < getarraysize(.dungn$); set .@du,.@du + 1) {			setd(".@"+.dungpre$[.@du]+"_ct"),0;			// ========== Dungeon Party Counter =========			for( set .@i,0; .@i < getarraysize(.pty_id); set .@i,.@i + 1) {				// Checking if the current Party is in this dungeon				if(getd("$@pty_"+.pty_id[.@i]+"$") == .dungpre$[.@du])					setd(".@"+.dungpre$[.@du]+"_ct"),getd(".@"+.dungpre$[.@du]+"_ct") + 1;			}			set .men_dung$,.men_dung$ + "- "+.dungn$[.@du] +" ("+getd(".@"+.dungpre$[.@du]+"_ct")+"/"+.pt_limit+") (Min.Level - "+getd("."+.dungpre$[.@du]+"$[1]")+")"+ ( (.dungn$[.@du+1] != "")?":":"");		}		mes .n$;		mes "Now please choose the dungeon your party wants to go:";		set @d,select( .men_dung$ ) - 1;		next;		mes .n$;		mes "Dungeon: "+.dungn$[@d];		mes "Difficulty: "+( (getd("."+.dungpre$[@d]+"$[0]") == "1")?"Easy":( (getd("."+.dungpre$[@d]+"$[0]") == "2")?"Medium":"Hard") );		mes "Minimum Level: "+getd("."+.dungpre$[@d]+"$[1]");		mes "Existing Parties: "+getd(".@"+.dungpre$[@d]+"_ct");		if(@join) {			next;			mes .n$;			if(BaseLevel < atoi(getd("."+.dungpre$[@d]+"$[1]"))) {				mes "I'm sorry, but you don't meet the level requirement, which is "+getd("."+.dungpre$[@d]+"$[1]")+"!";				mes "Please try an other dungeon or level up until you reach that level.";				close;			}			mes "I will now list the available parties:";			mes " ";			for ( set .@l,0; .@l < getarraysize(.pty_id); set .@l,.@l + 1) {				getpartymember(.pty_id[.@l]);				if(getd("$@pty_"+.pty_id[.@l]+"$") == .dungpre$[@d] && $@partymembercount < MAX_PARTY) {					mes "===================";					mes "Party Name: "+getpartyname(.pty_id[.@l]);					mes "Leader: "+getpartyleader(.pty_id[.@l]);					mes "Current Members: "+$@partymembercount;					setarray .@pty_list[getarraysize(.@pty_list)],.pty_id[.@l];					set .@pty_menu$,.@pty_menu$ + "- "+getpartyname(.pty_id[.@l]) + ( (.pty_id[.@l+1] != 0)?":":"");					mes ( (.pty_id[.@l+1] != 0)?"":"===================");				}			}			if(getarraysize(.@pty_list) < 1) {				next;				mes .n$;				mes "I'm sorry, but there is no party on this map.";				close;			}			mes " ";			mes "Please choose, which party you want to send an application at:";			set .@p,select(.@pty_menu$) - 1;			if(isloggedin(getpartyleader(.@pty_list[.@p],1),getpartyleader(.@pty_list[.@p],2)) == 1) {				mes "I will send now an request to the party leader with your Level and Class.";				mes "Please wait until the leader will accept or decline your request.";				mes "If the leader doesn't respond in any way, please try to PM him/her by yourself.";				mes "The leader's name is ["+getpartyleader(.@pty_list[.@p])+"].";				close2;				set .@req_id,getcharid(0);				// Creating Applicant array for the party				setarray getd("$@req_"+.@pty_list[.@p]+"_id["+getarraysize(getd("$@req_"+.@pty_list[.@p]+"_id"))+"]"),.@req_id;				// Applicant Info				setarray getd("$@req_"+.@req_id+"$[0]"),strcharinfo(0),""+BaseLevel+"/"+JobLevel,"Class: "+jobname(Class);				detachrid;				attachrid(getpartyleader(.@pty_list[.@p],1));				announce .n$+": The player ["+getd("$@req_"+.@req_id+"$[0]")+"] with Level "+getd("$@req_"+.@req_id+"$[1]")+", "+getd("$@req_"+.@req_id+"$[2]")+" requests to join your party. You can accept/decline by sending an whisper to me via "NPC:Party_Join" and as text "List". There you gain additional information.",bc_self;				end;			} else {				mes "It seems like that the party leader of "+getpartyname(.@pty_list[@p])+" isn't online.";				mes "Please try another party.";				close;			}		}		next;		mes .n$;		if(getd(".@"+.dungpre$[@d]+"_ct") > .pt_limit) {			mes "I'm sorry, but this dungeon already reached the maximum of parties it can hold.";			mes "Please choose a different one.";			close;		}		mes "I will now check the levels of your party members. Please wait....";		getpartymember(getcharid(1),1);		for ( set .@l,0; .@l < $@partymembercount; set .@l,.@l + 1) // Checking Level of each party member			if(readparam(11,""+strcharinfo(0,$@partymembercid[.@l])) < atoi(getd("."+.dungpre$[@d]+"$[1]"))) 				set .@l_ct,.@l_ct + 1;		next;		mes .n$;		if(.@l_ct > 0) {			mes "It seems like "+.@l_ct+" of your members haven't reached the required level for this dungeon.";			mes "Please choose either a different dungeon or try to level up your members with lower level.";			mes "The minimum level for this dungeon is "+getd("."+.dungpre$[@d]+"$[1]")+"!";			close;		}		mes "Your party will recieve an bonus of "+.exp[atoi(getd("."+.dungpre$[@d]+"$[0]"))]+"%."; 		mes "I will warp you and your party now to the "+.dungn$[@d]+ ( (compare(.dungn$[@d],"Dungeon") == 1)?" ":" Dungeon ");		mes "Happy leveling!!!";		close2;				// Saving Account and Character ID about Party Members		callfunc "SyncPartyData",getcharid(1);		// Saving Array Index of the Dungeon for .dungpre$ or .dungn$		setd(".pty_"+getcharid(1)+"_ix"),@d;				// Used to save the Leveling Maps of the party		for ( set .@d,3; .@d < getarraysize(getd("."+.dungpre$[@d]+"$")); set .@d,.@d + 4)			setarray getd("$@pty_"+getcharid(1)+"_m$["+getarraysize(getd("$@pty_"+getcharid(1)+"_m$"))+"]"),""+getd("."+.dungpre$[@d]+"$["+.@d+"]"); 				// Saving Dungeon Prefix		setd("$@pty_"+getcharid(1)+"$"),""+.dungpre$[@d];				// Setting Start Point		setarray getd(".pty_"+getcharid(1)+"_st$[0]"),""+getd("."+.dungpre$[@d]+"$[3]"),""+getd("."+.dungpre$[@d]+"$[4]"),""+getd("."+.dungpre$[@d]+"$[5]");				// Setting Check Point variable to the 1st level of the dungeon, used to update the Start Point when reaching a new map		setd(".pty_"+getcharid(1)+"_cp"),1;				// Warping Party ...		warpparty getd(".pty_"+getcharid(1)+"_st$[0]")+".gat",atoi(getd(".pty_"+getcharid(1)+"_st$[1]")),atoi(getd(".pty_"+getcharid(1)+"_st$[2]")),getcharid(1);				// Debug Messages		if(.debug) {			for ( set .@b,0; .@b < getarraysize(getd("$@pty_"+getcharid(1)+"_m$")); set .@b,.@b + 1)				debugmes "Leveling Map Array - ["+.@b+"]: "+getd("$@pty_"+getcharid(1)+"_m$["+.@b+"]");			debugmes "Dungeon Prefix: "+getd("$@pty_"+getcharid(1)+"$");			debugmes "Start Point Array - [0]:"+getd(".pty_"+getcharid(1)+"_st$[0]")+", [1]: "+getd(".pty_"+getcharid(1)+"_st$[1]")+", [2]: "+getd(".pty_"+getcharid(1)+"_st$[2]");			debugmes "Check Point: "+getd(".pty_"+getcharid(1)+"_cp");			debugmes "WarpParty - Array: "+getd(".pty_"+getcharid(1)+"_st$[0]")+".gat,"+atoi(getd(".pty_"+getcharid(1)+"_st$[1]"))+","+atoi(getd(".pty_"+getcharid(1)+"_st$[2]"));		}		setarray .pty_id[getarraysize(.pty_id)],getcharid(1);				// Loading Dungeon NPC, if it is not loaded yet		if(.debug) debugmes .n$+": Loading Dungeon NPC, if it is not loaded yet";		if(getvariableofnpc(.DGN_Load,"DG Party Progress#"+getd("$@pty_"+getcharid(1)+"$")) == 0) {			donpcevent "DG Party Progress#"+getd("$@pty_"+getcharid(1)+"$")+"::OnDGLoad";			if(.debug) debugmes .n$+": Dungeon NPC - "DG Party Progress#"+getd("$@pty_"+getcharid(1)+"$")+"" - Status: "+( (getvariableofnpc(.DGN_Load,"DG Party Progress#"+getd("$@pty_"+getcharid(1)+"$")) == 1)?"Online":"Offline");		}		break;		// ============ Party is already registered ==============	} else {		mes .n$;		mes "How can I help you?";		next;		switch(select("- Remove Party from list:- Warp Options:- "+( (.dg_rew == 1)?"Dungeon Reward":"Nothing") )) {			case 1:			mes .n$;			if(strcharinfo(0) != getpartyleader(getcharid(1))) {				mes "I'm sorry, but only your party leader can can do this.";				close;			}			mes "Do you really want to delete your party from my list?";			mes "You won't be able to gain any bonus EXP until you re-register your party!";			next;			if(select("- Yes:- No") - 1) close;			if(.dg_rew == 1 && getd("$@pty_"+getcharid(1)+"_rew") == 1) {				mes .n$;				mes "I'm sorry, but you still haven't collected your reward from the completed dungeon.";				close;			}			close2;			for ( set .@p,0; .@p < getarraysize(getd("$@pt_"+getcharid(1)+"_maid")); set .@p,.@p + 1) {				set .@p_aid,getd("$@pt_"+getcharid(1)+"_maid["+.@p+"]"); // Current selected Member's Account ID				set .@p_cid,getd("$@pt_"+getcharid(1)+"_mcid["+.@p+"]"); // Current selected Member's Character ID				if(isloggedin(.@p_aid,.@p_cid) == 1 && .@p_aid != getpartyleader(getcharid(1),1)) {					dispbottom .n$+": Your party leader wants to remove your party from my list, so....",0x00FF00,.@p_cid;					dispbottom .n$+": I will warp you all in 10 seconds to your Save Points.",0x00FF00,.@p_cid;				}			}			goto OnPartyDelete;			end;					case 2:			mes .n$;			mes "Do you want to be warped to one of your party members or to the start point?";			if(select("- To my comrades:- Start Point") - 1) {				close2;				warp getd(".pty_"+getcharid(1)+"_st$[0]")+".gat",atoi(getd(".pty_"+getcharid(1)+"_st$[1]")),atoi(getd(".pty_"+getcharid(1)+"_st$[2]"));				end;			}			next;			mes .n$;			mes "Please select to which party member you want to be warped to:";			next;			set .@pty_ml$,"";			callfunc "SyncPartyData",getcharid(1);			for ( set .@p,0; .@p < getarraysize(getd("$@pt_"+getcharid(1)+"_maid")); set .@p,.@p + 1) {				set .@p_aid,getd("$@pt_"+getcharid(1)+"_maid["+.@p+"]"); // Current selected Member's Account ID				set .@p_cid,getd("$@pt_"+getcharid(1)+"_mcid["+.@p+"]"); // Current selected Member's Character ID				if(isloggedin(.@p_aid,.@p_cid) == 1) { // Member logged in?					getmapxy(@map$,@mapx,@mapy,0,strcharinfo(0,.@p_cid));					for ( set .@c,0; .@c < getarraysize(getd("$@pty_"+getcharid(1)+"_m$")); set .@c,.@c + 1)						if(@map$ == getd("$@pty_"+getcharid(1)+"_m$["+.@c+"]")) { // Member on an leveling Map as registered?							set .@pty_ml$,.@pty_ml$ + "- "+strcharinfo(0,.@p_cid) + ( (.@p_aid) == getpartyleader(getcharid(1),1)?" (Leader)":"")+":";							setarray .@pty_mlc[getarraysize(.@pty_mlc)],.@p_cid;						}				}			}			if(.@pty_ml$ == "") {				mes .n$;				mes "I'm sorry, but no member of your party has been found on the dungeon map.";				close;			}			set .@pm,select(.@pty_ml$) - 1;			mes .n$;			mes strcharinfo(0,.@pty_mlc[.@pm]) + ( (.@pty_mlc[.@pm] == getpartyleader(getcharid(1),2))?" (Leader)":"");			mes "Correct?";			if(select("- Yes:- No") - 1) close;			close2;			atcommand "@warpto "+strcharinfo(0,.@pty_mlc[.@pm]);			end;						// Dungeon Reward			case 3:			if(!.dg_rew) close;			mes .n$;			if(strcharinfo(0) != getpartyleader(getcharid(1))) {				mes "I'm sorry, but only your party leader can can do this.";				close;			}			mes "Hello!";			mes "Let me check, if you have completed an dungeon to claim an reward.";			next;			mes .n$;			if(getd("$@pty_"+getcharid(1)+"_rew") != 1) {				mes "I'm sorry, but it seems like your party didn't complete an dungeon yet.";				mes "Come again, when you did.";				close;			}			mes "Congratulation for completing the dungeon, "+.dungn$[getd(".pty_"+getcharid(1)+"_ix")]+"!";			mes "I will now reward you and your party with "+set(.@res, (.dg_pts*atoi(getd("."+.dungpre$[getd(".pty_"+getcharid(1)+"_ix")]+"$[0]") ) ))+"x Dungeon Points.";			mes "To reuse my service, please register your party again for the next dungeon.";			close2;			callfunc "SyncPartyData",getcharid(1);			for ( set .@p,0; .@p < getarraysize(getd("$@pt_"+getcharid(1)+"_maid")); set .@p,.@p + 1) {				set .@p_aid,getd("$@pt_"+getcharid(1)+"_maid["+.@p+"]"); // Current selected Member's Account ID				set .@p_cid,getd("$@pt_"+getcharid(1)+"_mcid["+.@p+"]"); // Current selected Member's Character ID				if(isloggedin(.@p_aid,.@p_cid) == 1) {					setd(""+.dg_var$),getd(""+.dg_var$) + .@res,.@p_cid;					if(.@p_aid != getpartyleader(getcharid(1),1) ) {						dispbottom .n$+": For completing the dungeon, "+.dungn$[getd(".pty_"+getcharid(1)+"_ix")]+", you will be rewarded with "+.@res+"x Dungeon Points!",0x00FF00,.@p_cid;						dispbottom .n$+": Also just in case you are still in the dungeon, I will warp you to Prontera!",0x00FF00,.@p_cid;					}				}			}			goto OnPartyDelete;			end;		}	}	break;	case 2:	mes .n$;	mes "I can offer my Dungeon Party Service to any Party, which uses my Dungeon Warp Service, which allows the party to recieve more EXP based on the dungeons difficulty.";	mes "For each Dungeon exists an party limit, how many parties can be in one Dungeon at once. Which is "+.pt_limit;	mes "Also every Dungeon has a Level Requirement, which each party member must have reached!";	next;	mes .n$;	if(.dg_rew == 1) {		mes "[====== Dungeon Rewards ======]";		mes "Depending on the Dungeon's Difficulty, you can get different amount of rewards.";		mes "Currently you can gain "+.dg_pts+" Dungeon Points multiplied by "1" for Easy, by "2" for Medium, by "3" for Hard, Dungeons.";		if(.mvp_rew == 1) {			mes " ";			mes "Also you can gain special points for each MvP your party kills:";			mes .mvp_pts +"x "+( (.mvp_rew == 1)?"MvP Points":"Cash Points")+", which also be multiplied by the difficulty of the Dungeon.";		}	}	next;	mes .n$;	mes "[=== EXP Rates per Difficulty ===]";	mes "Easy: "+.exp[1]+"%";	mes "Medium: "+.exp[2]+"%";	mes "Hard: "+.exp[3]+"%";	close;		// Dungeon Points Exchanger, if .dg_rew == 1	case 3:	if(!.dg_rew) close;	mes .n$;	mes "Which points do you want to exchange?";	mes "Your Dungeon Points: "+getd(""+.dg_var$);	mes "Your MvP Points: "+getd(""+.mvp_var$);	next;	switch(select("- Dungeon Points:- MvP Points")) {				case 1:		mes .n$;		mes "Please choose the item you want your points to exchange to:";		mes "Format: Amount x Item (Price per Exchange)";		next;		set .@b,select(.ex_m$) - 1;		mes .n$;		mes "You have selected "+.dg_ex_am+"x "+getitemname(.dg_ex[.@b])+".";		mes "Is that correct?";		if(select("- Yes:- No") - 1) close;		next;		mes .n$;		mes "Now type the how often you want to exchange:";		mes "Price per exchange: "+.dg_ex_cost[.@b];		mes "Your Dungeon Points: "+getd(""+.dg_var$);		// Setting exchange limit based on the current points you have		set .@l,(getd(""+.dg_var$)/.dg_ex_cost[.@b]);		mes "Maximum possible: "+.@l+", based on your current points.";		next;		if(input(.@buy,1,.@l) != 0) {			mes .n$;			mes "It seems like you put either a 0 or more than "+.@l+", which is the maximum you could exchange based on your points.";			close;		}		mes .n$;		getitem .dg_ex[.@b],.dg_ex_am[.@b];		setd(""+.dg_var$),getd(""+.dg_var$) - (.@buy*.dg_ex_cost[.@b]);		mes "Your exchange has been completed.";		mes "See you again for the next exchange.";		break;				case 2:		mes .n$;		if(!.mvp_rew) {			mes "I'm sorry, but this exchange service is not currently available duo the fact MvP Points not being gainable.";			mes "Please come back another time.";			close;		}		mes "Please choose the item you want your points to exchange to:";		mes "Format: Amount x Item (Price per Exchange)";		next;		set .@b,select(.ex_mvp_m$) - 1;		mes .n$;		mes "You have selected "+.mvp_ex_am+"x "+getitemname(.mvp_ex[.@b])+".";		mes "Is that correct?";		if(select("- Yes:- No") - 1) close;		next;		mes .n$;		mes "Now type the how often you want to exchange:";		mes "Price per exchange: "+.mvp_ex_cost[.@b];		mes "Your MvP Points: "+getd(""+.mvp_var$);		// Setting exchange limit base on the current points you have		set .@l,(getd(""+.mvp_var$)/.mvp_ex_cost[.@b]);		mes "Maximum possible: "+.@l+", based on your current points.";		next;		if(input(.@buy,1,.@l) != 0) {			mes .n$;			mes "It seems like you put either a 0 or more than "+.@l+", which is the maximum you could exchange based on your points.";			close;		}		mes .n$;		getitem .mvp_ex[.@b],.mvp_ex_am[.@b];		setd(""+.mvp_var$),getd(""+.mvp_var$) - (.@buy*.mvp_ex_cost[.@b]);		mes "Your exchange has been completed.";		mes "See you again for the next exchange.";		break;	}			case 4:	close;}end;OnPartyDelete:sleep2 10000;if(getd("$@pty_"+getcharid(1)+"_rew") != 1) 	warpparty "prontera.gat",156,191,getcharid(1);setd(".pty_"+getcharid(1)+"_ix"),0;setd("$@pty_"+getcharid(1)+"$"),"";setd("$@pty_"+getcharid(1)+"_rew"),0;deletearray getd(".pty_"+getcharid(1)+"_st$[0]"),128;setd(".pty_"+getcharid(1)+"_cp"),0;deletearray getd("$@pt_"+getcharid(1)+"_maid[0]"),128;deletearray getd("$@pt_"+getcharid(1)+"_mcid[0]"),128;for ( set .@m,0; .@m < getarraysize(getd("$@pty_"+getcharid(1)+"_m$")); set .@m,.@m + 1)	deletearray getd("$@pt_"+getcharid(1)+"_"+getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]")+"_mct"),128;deletearray getd("$@pty_"+getcharid(1)+"_m$"),128;for ( set .@d,0; .@d < getarraysize(.pty_id); set .@d,.@d + 1) 	if(getcharid(1) == .pty_id[.@d]) 		deletearray .pty_id[.@d],1;end;OnInit:// =============== NPC Name ===============set .n$,"["+strnpcinfo(1)+"]";// =============== Debug Mode ===============// * (Debug Messages in Map Server)// > 0: Off// > 1: On set .debug,0; // ============== Party Settings ================== //set .pt_limit,2; // x Parties per Dungeon// ============== Dungeon Settings ================== //setarray .exp[1],50,100,150; // EXP Rate in % for Difficulty: Easy/Medium/Hard// Dungeon Reward > 0 = Off, 1 = Onset .dg_rew,1; if(.dg_rew == 1) {	set .dg_var$,"DG_Pts";	set .dg_pts,10; // Base Dungeon Points, will be multiplied by Difficulty	// Dungeon Points Exchanger:	// > Item IDs 	setarray .dg_ex[0],512;	// > How many items you get per exchange?	setarray .dg_ex_am[0],10;	// > How much does one exchange cost?	setarray .dg_ex_cost[0],2;	// Creating exchange menu	for ( set .@m,0; .@m < getarraysize(.dg_ex); set .@m,.@m + 1)		set .ex_m$,.ex_m$ + "- "+.dg_ex_am[.@m]+"x "+getitemname(.dg_ex[.@m])+" ("+.dg_ex_cost[.@m]+")"+ ( (.dg_ex[.@m+1] != 0)?":":"");	// MvP Reward for each MvP > 0 = Off, 1 = Permanent Character Variable, 2 = #CASHPOINTS	set .mvp_rew,1;	if(.mvp_rew == 1) {		set .mvp_var$,"MvP_Pts";		set .mvp_pts,1; // Base MvP Points, will also be multiplied by Difficulty		// MvP Points Exchanger:		// > Item IDs 		setarray .mvp_ex[0],512;		// > How many items you get per exchange?		setarray .mvp_ex_am[0],10;		// > How much does one exchange cost?		setarray .mvp_ex_cost[0],2;		for ( set .@m,0; .@m < getarraysize(.mvp_ex); set .@m,.@m + 1)			set .ex_mvp_m$,.ex_mvp_m$ + "- "+.mvp_ex_am[.@m]+"x "+getitemname(.mvp_ex[.@m])+" ("+.mvp_ex_cost[.@m]+")"+ ( (.mvp_ex[.@m+1] != 0)?":":"");	}}// =============== Dungeon Names ===============setarray .dungn$[0],"Cursed Abbey","Aldebaran Dungeon","Abyss Lake","Amatsu Dungeon","Ayothaya Dungeon","Bylan","Clock Tower","Coal Mine","Culvert","Einbech Dungeon","Gefenia","Geffen Dungeon","Glast Heim","Gonyrun Dungeon","Ice Dungeon","Labyrinth","Juperos","Kiel Academy","Lightalzen Bio Lab","Louyang Dungeon","Magma Dungeon","Odin Temple","Orc Dungeon","Payon Dungeon","Pyramid Dungeon","Sphinx Dungeon","Sunken Ship Dungeon","Thanatos Tower","Toy Factory Dungeon","Turtle Dungeon","Thor Volcano Dungeon";// =============== Dungeon Prefixes ===============setarray .dungpre$[0],"abbey","alde","abyss","amat","ayot","bylan","c_tow","coal","culv","einb","gefia","gefd","glas","gonr","iced","maze","jupe","kiel","lhz","louy","magma","odin","orcsd","pay","pyram","sphinx","pirate","thana","toy","turtle","thor_v";// =============== Dungeon Data ===============// = Format: Difficulty ,Level Requirement, Mob Counter Level 1,Map Name Level 1, Map X, Map Y, Mob Counter Level 2,....// = Difficulty: 1 = Easy, 2 = Medium, 3 = Hard// = Level: 1 = None, 2+ = Requirement// - ToDO: Adding Renewal Checksetarray .abbey$[0],"1","1","20","abbey01","51","14","20","abbey02","150","11","20","abbey03","120","10";setarray .alde$[0],"1","1","20","alde_dun01","197","25","20","alde_dun02","262","41","20","alde_dun03","276","53","20","alde_dun04","130","130";setarray .abyss$[0],"1","1","20","abyss_01","264","271","20","abyss_02","275","270","20","abyss_03","116","27";setarray .amat$[0],"1","1","20","ama_dun01","227","10","20","ama_dun02","32","43","20","ama_dun03","119","15";setarray .ayot$[0],"1","1","20","ayo_dun01","9","149","20","ayo_dun02","230","235";setarray .bylan$[0],"1","1","20","iz_dun00","168","168","20","iz_dun01","41","37","20","iz_dun02","236","204","20","iz_dun03","32","63","20","iz_dun04","26","27";setarray .c_tow$[0],"1","1","20","c_tower1","200","163","20","c_tower2","268","26","20","c_tower3","64","148","20","c_tower4","32","63";setarray .coal$[0],"1","1","20","mjo_dun01","52","17","20","mjo_dun02","381","343","20","mjo_dun03","302","261";setarray .culv$[0],"1","1","20","prt_sewb1","132","248","20","prt_sewb2","19","19;","20","prt_sewb3","180","169","20","prt_sewb4","100","92","20";setarray .einb$[0],"1","1","20","ein_dun01","22","18","20","ein_dun02","292","290";setarray .gefia$[0],"1","1","20","gefenia01","59","167","20","gefenia02","201","35","20","gefenia03","264","236","20","gefenia04","33","270";setarray .gefd$[0],"1","1","20","gef_dun00","104","100","20","gef_dun01","115","236","20","gef_dun02","106","132","20","gef_dun03","203","200";setarray .glas$[0],"1","1","20","gl_church","156","8","20","gl_chyard","147","15","20","gl_in01","121","59","20","gl_cas01","199","29","20","gl_cas02","104","25","20","gl_knt01","150","10","20","gl_knt02","157","287","20","gl_step","117","124","20","gl_sew01","258","255","20","gl_sew01","258","255","20","gl_sew02","108","291","20","gl_sew03","171","273","20","gl_dun01","133","271","20","gl_dun02","224","274","20","gl_prison","14","70","20","gl_prison1","150","14";setarray .gonr$[0],"1","1","20","gon_dun01","143","59","20","gon_dun02","17","114","20","gon_dun03","68","9";setarray .iced$[0],"1","1","20","ice_dun01","157","14","20","ice_dun02","151","155","20","ice_dun03","149","22","20","ice_dun04","34","139";setarray .maze$[0],"1","1","20","prt_maze01","176","7","20","prt_maze02","103","18","20","prt_maze03","23","8";setarray .jupe$[0],"2","65","20","juperos_01","99","92","20","juperos_02","34","59","20","jupe_core","150","285";setarray .kiel$[0],"2","1","20","kh_dun01","28","226","20","kh_dun02","41","198";setarray .lhz$[0],"2","60","20","lhz_dun01","151","286","20","lhz_dun02","18","148","20","lhz_dun03","140","136";setarray .louy$[0],"2","50","20","lou_dun01","218","196","20","lou_dun02","282","20","20","lou_dun03","165","37";setarray .magma$[0],"2","60","20","mag_dun01","126","69","20","mag_dun02","47","32";setarray .odin$[0],"3","70","20","odin_tem01","98","144","20","odin_tem02","22","181","20","odin_tem03","121","51";setarray .orcsd$[0],"1","1","20","orcsdun01","32","169","20","orcsdun02","21","185";setarray .pay$[0],"1","1","20","pay_dun00","22","180","20","pay_dun01","19","33","20","pay_dun02","19","63","20","pay_dun03","155","159","20","pay_dun04","201","204";setarray .pyram$[0],"1","1","20","moc_pryd01","192","9","20","moc_pryd02","10","192","20","moc_pryd03","100","92","20","moc_pryd04","181","11","20","moc_pryd05","94","96","20","moc_pryd06","192","8";setarray .sphinx$[0],"1","1","20","in_sphinx1","192","9","20","in_sphinx2","149","81","20","in_sphinx3","210","54","20","in_sphinx4","10","222","Level 5","in_sphinx5","100","99";setarray .pirate$[0],"1","1","20","treasure01","69","24","20","treasure02","102","27";setarray .thana$[0],"1","1","20","tha_t01","150","36","20","tha_t02","150","36","20","tha_t03","220","158","20","tha_t04","59","143","20","tha_t05","62","11","20","tha_t06","89","221","20","tha_t07","35","166","20","tha_t08","93","148","20","tha_t09","29","107","20","tha_t10","159","138","20","tha_t11","19","20","20","tha_t12","130","52","5";setarray .toy$[0],"1","40","20","xmas_dun01","205","16","20","xmas_dun02","129","133";setarray .turtle$[0],"2","50","20","tur_dun01","161","34","20","tur_dun02","148","256","20","tur_dun03","132","190","20","tur_dun04","100","192";setarray .thor_v$[0],"3","90","20","thor_v01","21","228","20","thor_v02","75","205","20","thor_v03","34","272";// Mapflagsfor ( set .@d,0; .@d < getarraysize(.dungn$); set .@d,.@d + 1)	for ( set .@p,3; .@p < getarraysize(getd("."+.dungpre$[.@d]+"$")); set .@p,.@p + 4) {		setmapflag getd("."+.dungpre$[.@d]+"$["+.@p+"]"),mf_nowarp;	}if(.debug) debugmes "Starting Global Timer for Party Member Sync";initnpctimer; // Timer for re-copying Party Member Dataend;OnNPCKillEvent:if(!getcharid(1)) end;if(getmapflag(strcharinfo(3),mf_pvp) == 1 || getmapflag(strcharinfo(3),mf_gvg) == 1) end; // On PvP or GvG Maps = No effectif(getd("$@pty_"+getcharid(1)+"$") == "") end; // Not registered at the NPC.if(strcharinfo(3) != getd("$@pty_"+getcharid(1)+"_m$["+@map+"]"))	for ( set .@m,0; .@m < getarraysize(getd("$@pty_"+getcharid(1)+"_m$")); set .@m,.@m + 1)		if(strcharinfo(3) != getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]")) // Member is on the leveling map?			set .@f,1;		else {			set .@f,0;			set @map,.@m;		}if(.@f) end;// Checking if the Start Point Map is the same as the current one, if not update the Start Point array and Check Point variableif(getpartyleader(getcharid(1),4) != getd("$@pty_"+getcharid(1)+"_m$["+(getd(".pty_"+getcharid(1)+"_cp")-1)+"]") )	for ( set .@s,3; .@s < getarraysize(getd("."+getd("$@pty_"+getcharid(1)+"$")+"$")); set .@s,.@s + 4) 		if(getpartyleader(getcharid(1),4) == getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+.@s+"]")) {			// Checking if the current index is higher than the current _cp variable			if(set(.@cp,(.@s+1)/4) > getd(".pty_"+getcharid(1)+"_cp")) {				// Updating _cp variable to new index				setd(".pty_"+getcharid(1)+"_cp"),.@cp;				// Setting new Start Point				setarray getd("$@pty_"+getcharid(1)+"_st$[0]"),getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+.@s+"]"),getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+(.@s+1)+"]"),getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+(.@s+2)+"]");			}		}// Reading EXP values from Mob Database set .@expr,.exp[atoi(getd("."+.dungpre$[getd(".pty_"+getcharid(1)+"_ix")]+"$[0]"))];set .@bexp,(getmonsterinfo(killedrid,3)*.@expr)/100;set .@jexp,(getmonsterinfo(killedrid,4)*.@expr)/100;// Increasing Party Mob Counterif(getd("$@pt_"+getcharid(1)+"_"+strcharinfo(3)+"_mct") < atoi(getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+( (4*(.@m+1)) - 2)+"]")))	setd("$@pt_"+getcharid(1)+"_"+strcharinfo(3)+"_mct"),getd("$@pt_"+getcharid(1)+"_"+strcharinfo(3)+"_mct") + 1;// Reading party arrays and setting a temporar npc variable for better overviewfor ( set .@p,0; .@p < getarraysize(getd("$@pt_"+getcharid(1)+"_maid")); set .@p,.@p + 1) {	set .@c_aid,getd("$@pt_"+getcharid(1)+"_maid["+.@p+"]"); // Current selected Member's Account ID	set .@c_cid,getd("$@pt_"+getcharid(1)+"_mcid["+.@p+"]"); // Current selected Member's Character ID					// Check if the selected member is still in the same party as before	if(getcharid(1,strcharinfo(0,.@c_cid)) != getcharid(1))		callfunc "SyncPartyData",getcharid(1);		// Current selected Character ID is not the same as the one attached	// wouldn't make sense, since it was called by the attached player 	if(getcharid(0) != .@c_cid) {		// Member logged in? 		if(isloggedin(.@c_aid,.@c_cid) == 0) continue;			// Member is alive		if(readparam(5,strcharinfo(0,.@c_cid)) < 1) continue;				// Member is on the same Map as the one who killed something		if(strcharinfo(3,.@c_cid) != strcharinfo(3)) continue;	}	if(getd("$@pt_"+getcharid(1)+"_"+strcharinfo(3)+"_mct") < atoi(getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+( (4*(.@m+1)) - 2)+"]")))		dispbottom .n$+": Mobs Killed on "+strcharinfo(3)+": "+getd("$@pt_"+getcharid(1)+"_"+strcharinfo(3)+"_mct") +"/"+getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+( (4*(.@m+1)) - 2)+"]")+"!",0x00FF00,.@c_cid;	else 		dispbottom .n$+": You're Party has reached the required mob quantity to proceed to the next level or visit the "DG Party Progress" NPC to complete the Dungeon.",0x00FF00,.@c_cid;		getexp .@bexp,.@jexp,.@c_cid;	dispbottom .n$+": Recieved Bonus: "+.@expr+"% - Base EXP: "+.@bexp+"/Job EXP: "+.@jexp,0x00FF00,.@c_cid;	// Killed MvP > rewarding with points if .mvp_rew > 0	if(getmonsterinfo(killedrid,22) != 0 && .mvp_rew > 0) {		set .@m_res,.mvp_pts*atoi(getd("."+.dungpre$[getd(".pty_"+getcharid(1)+"_ix")]+"$[0]"));		switch(.mvp_rew) {			case 1:	setd(""+.mvp_var$),getd(""+.mvp_var$) + .@m_res,.@c_cid; break;			case 2: set #CASHPOINTS,#CASHPOINTS + .@m_res,.@c_cid; break;		}		dispbottom .n$+": Recieved MVP Points: "+.@m_res+"x "+ ( (.mvp_rew == 1)?"MvP Points":"Cash Points")+".",0x00FF00,.@c_cid;	}}end;// Re-copying Party Member Data every 5 MinutesOnTimer300000:stopnpctimer;if(.debug) debugmes "OnTimer Executed at 5 Minute:";if(getarraysize(.pty_id) > 0) {	for ( set .@t,0; .@t < getarraysize(.pty_id); set .@t,.@t + 1) {		if(.debug) debugmes "Synchronizing Member Data of Party ID"+.pty_id[.@t];		callfunc "SyncPartyData",.pty_id[.@t];		sleep 2500;	}}if(.debug) debugmes "Restarting Timer....";initnpctimer;end;OnPCLogoutEvent:if(!getcharid(1)) end; // Not in a Party > Just in Caseif(getd("$@pty_"+getcharid(1)+"_m$[0]") == "") end; // Not registered at the NPC > same as aboveif(getpartyleader(getcharid(1),1) != getcharid(3)) end; // Attached player is not party leaderif(.debug) debugmes "Party Leader logged off, changing leader:";set .@pty_id,getcharid(1);set .@pty_lead,getpartyleader(getcharid(1),1);if(.debug) debugmes "Party ID: "+.@pty_id+", Party Leader Acc ID:"+ .@pty_lead;for ( set .@p,0; .@p < getarraysize(getd("$@pt_"+.@pty_id+"_maid")); set .@p,.@p + 1) {	set .@c_aid,getd("$@pt_"+.@pty_id+"_maid["+.@p+"]"); // Current selected Member's Account ID	set .@c_cid,getd("$@pt_"+.@pty_id+"_mcid["+.@p+"]"); // Current selected Member's Character ID	if(.debug) debugmes "Current Acc and Char ID: "+.@c_aid+", "+.@c_cid;	// Member is logged in and is not the current Party Leader	if(isloggedin(.@c_aid,.@c_cid) == 1 && .@c_aid != .@pty_lead) {		if(.debug) debugmes "Changing Leader of party "+.@pty_id+" to "+.@c_cid;		party_changeleader(.@pty_id,.@c_cid);		break;	}}end;}// Function to Re-Copy the Account ID and Character ID for each Party Member in an arrayfunction	script	SyncPartyData	{// ============================================// getarg(0) = Party ID// ============================================getpartymember(getarg(0),1);getpartymember(getarg(0),2);copyarray getd("$@pt_"+getarg(0)+"_maid[0]"),$@partymemberaid[0],$@partymembercount;copyarray getd("$@pt_"+getarg(0)+"_mcid[0]"),$@partymembercid[0],$@partymembercount;if(getd("$@pt_"+getarg(0)+"_maid[0]") == 0)	debugmes .n$+": Copy Array for Party ID "+getarg(0)+" failed. Use "setarray"!!!";return;}// ======================= Party Join Feature - NPC =====================-	script	Party_Join	-,{OnInit:set .n$,getvariableofnpc(.n$,"Dungeon Party Service");end;OnWhisperGlobal:if(!getcharid(1)) end;if(getmapflag(strcharinfo(3),mf_pvp) == 1 || getmapflag(strcharinfo(3),mf_gvg) == 1) end; // On PvP or GvG Maps = No effectif(strcharinfo(0) != getpartyleader(getcharid(1))) end;// List of the requestersif(@whispervar0$ == "List" || @whispervar0$ == "list") {	if(getarraysize(getd("$@req_"+getcharid(1)+"_id")) < 1) {		dispbottom .n$+": I'm sorry, but there are no applicants to list!",0x00FFFF;		end;	}	dispbottom .n$+": I will now list the requesters, which want to join your party.",0x00FFFF;	dispbottom .n$+": Each requester gets an number, like 1.<Name>.",0x00FFFF;	dispbottom .n$+": With this number, you have to re-pm me, but instead of "List", you have to use "Join" or "Abort"."Accept" or "Decline" does also work.",0x00FFFF;	dispbottom .n$+": After "Join"/"Accept" or "Abort"/"Decline", you have to add "#<Number of requester>".",0x00FFFF;	dispbottom "===================";	dispbottom "- Number: Name, Level:, Class",0xFF2200;	for ( set .@r,0; .@r < getarraysize(getd("$@req_"+getcharid(1)+"_id")); set .@r,.@r + 1)		dispbottom "- "+(.@r+1)+": "+getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@r+"]")+"$[0]")+", "+getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@r+"]")+"$[1]")+", "+getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@r+"]")+"$[2]"),0xFF2200;		dispbottom "===================";	dispbottom .n$+": I will now list here your party members, also with a number, to warp the chosen player to that party member.",0x00FFFF;	dispbottom .n$+": To let the player warp to one of your party members add after the number of the player "#<Number of Member>".",0x00FFFF;	dispbottom .n$+": So it would look something like this: "Join#1#1", this would let the 1st requester in the list to the 1st party member, most cases you.",0x00FFFF;	dispbottom .n$+": Note: If you use "Abort"/"Decline" the number of the party member won't take effect, of course.",0x00FFFF;	dispbottom "===================";	getpartymember(getcharid(1));	set @partyct,$@partymembercount;	copyarray @partymemb$[0],$@partymembername$[0],@partyct;	dispbottom "- Number: Member Name:",0xFF2200;	for ( set .@p,0; .@p < @partyct; set .@p,.@p + 1)		if(isloggedin(getcharid(3,@partymemb$[.@p]),getcharid(0,@partymemb$[.@p])) == 1) // Member logged in?			dispbottom "- "+(.@p+1)+"."+@partymemb$[.@p] + ( (@partymemb$[.@p] == getpartyleader(getcharid(1)))?" (Leader)":""),0xFF2200;	dispbottom "===================";// Accepting requesters} else if(compare(@whispervar0$,"Accept") == 1 || compare(@whispervar0$,"Join") == 1) {	if(@whispervar1$ == "" || @whispervar2$ == "") {		dispbottom .n$+": Either you didn't put the requesters number or the number of the party member he should be warped to!";		end;	}	// In case the leader logged of, the "@" variables were deleted	if(@partymemb$[atoi(@whispervar2$)-1] == "") {		dispbottom .n$+": An bug has occured, in which I couldn't find the list for your party members.";		dispbottom .n$+": Possible Bug: You logged off or disconnected. Please repeat the previous step.";		end;	} 	set .@nr,atoi(@whispervar1$)-1;	message getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")+"$[0]"),.n$+": Your request has been accepted, you will be warped to the party member chosen from the leader.";	party_addmember(getcharid(1),getd("$@req_"+getcharid(1)+"_id["+.@nr+"]"));	sleep2 2000;	charcommand "#warpto ""+strcharinfo(0,getd("$@req_"+getcharid(1)+"_id["+.@nr+"]"))+"" "+@partymemb$[atoi(@whispervar2$)-1];		// Resync of Party Member Data	callfunc "SyncPartyData",getcharid(1);		// Deleting applicant from application list	deletearray getd("$@req_"+getcharid(1)+"_id["+.@nr+"]"),1;	deletearray getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")+"$[0]"),128;	// Declining requesters} else if(compare(@whispervar0$,"Decline") == 1 || compare(@whispervar0$,"Abort") == 1) {	if(@whispervar1$ == "") {		dispbottom .n$+": You didn't put the requesters number!";		end;	}	set .@nr,atoi(@whispervar1$)-1;	if(isloggedin(getcharid(3,strcharinfo(0,getd("$@req_"+getcharid(1)+"_id["+.@nr+"]"))),getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")) != 0)		message getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")+"$[0]"),.n$+": I'm sorry, but your request has been declined.";	dispbottom .n$+": The applicant ["+getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")+"$[0]")+"] has been deleted from the list.";	deletearray getd("$@req_"+getcharid(1)+"_id["+.@nr+"]"),1;	deletearray getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")+"$[0]"),128;} else 	dispbottom .n$+": I'm not sure, what you wanted from me, but I can't do that.";	end;}// ======================= Inside Dungeon NPC =====================-	script	Dungeon Guard#main::DG_Main	110,{if(!getcharid(1)) end;set .@n$,"["+strnpcinfo(1)+"]";mes .@n$;if(getpartyleader(getcharid(1)) != strcharinfo(0)) {	mes "Only the party leader can talk to me!";	close;}if(getd("$@pty_"+getcharid(1)+"_m$[0]") == "") {	mes "You didn't register your party for the Dungeon Party Service.";	close;}if(getarraysize(getd("."+strnpcinfo(2)+"$")) < 1) {	mes "An bug has occured, please contact an GM.";	mes "But talk to me again!!";	set .debug,1;	close2;	goto OnDGLoad;}mes "Here is your party's progress so far:";for ( set .@m,0; .@m < getarraysize(getd("$@pty_"+getcharid(1)+"_m$")); set .@m,.@m + 1) {	mes "On the "+(.@m + 1)+". Level (Map: "+getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]")+"),"; 	for ( set .@n,3; .@n < getarraysize(getd("."+strnpcinfo(2)+"$")); set .@n,.@n + 4) {		if(getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]") != getd("."+strnpcinfo(2)+"$["+.@n+"]")) continue;		mes "your party has killed "+getd("$@pt_"+getcharid(1)+"_"+getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]")+"_mct")+"/"+atoi(getd("."+strnpcinfo(2)+"$["+(.@n-1)+"]"));		if(getd("$@pt_"+getcharid(1)+"_"+getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]")+"_mct") < atoi(getd("."+strnpcinfo(2)+"$["+(.@n-1)+"]")) )			set .@kc,.@kc + 1;	}}if(.@kc) {	next;	mes .@n$;	mes "But to complete the dungeon, your party still has to kill some more monsters.";	mes "Please go back to the specific levels and kill the rest of the monsters.";	close;}next;mes .@n$;mes "Congratulation!";mes "You have completed the dungeon.";if(getvariableofnpc(.dg_rew,"Dungeon Party Service") == 1) {	mes "Please visit the "Dungeon Party Service" for your rewards.";	setd("$@pty_"+getcharid(1)+"_rew"),1;}mes "You*re party will now be warped to Prontera.";close2;warpparty "prontera",156,191,getcharid(1);end;OnDGLoad:set .DGN_Load,1;while(getvariableofnpc(getd("."+strnpcinfo(2)+"$["+.@n+"]"),"Dungeon Party Service") != "") {	setarray getd("."+strnpcinfo(2)+"$["+.@n+"]"),getvariableofnpc(getd("."+strnpcinfo(2)+"$["+.@n+"]"),"Dungeon Party Service");	if(.debug) debugmes strnpcinfo(0)+": getvariableofnpc:"+ getvariableofnpc(getd("."+strnpcinfo(2)+"$["+.@n+"]"),"Dungeon Party Service");	set .@n,.@n + 1;	sleep 100;}if(.debug) set .debug,0;end;}// ======================= Start of Dungeon Exit - NPC Duplicates =====================//dungeon_map,x,y,facing	duplicate(DG_Main)	DG Party Progress#<dungeon array prefix>	110// NOTE: Don't change the "DG Party Progress" part of the npc names unless you change it everywhere in the script,//       just search for it and exchange it with the new name.// You can add more dungeons as you like, except instance dungeons, which aren't supported by this script.// 1.: Take a look at the OnInit: above with the dungeon settings.// 2.: Add your dungeon data like the others.// 3.: Add an NPC Duplicate like below.// 4.: Restart the server/ @reloadscriptabbey03,234,216,4	duplicate(DG_Main)	DG Party Progress#abbey	110abyss_03,98,103,4	duplicate(DG_Main)	DG Party Progress#abyss	110ama_dun03,120,223,4	duplicate(DG_Main)	DG Party Progress#amat	110ayo_dun02,149,246,4	duplicate(DG_Main)	DG Party Progress#ayot	110iz_dun04,130,222,4	duplicate(DG_Main)	DG Party Progress#bylan	110	c_tower4,82,138,4	duplicate(DG_Main)	DG Party Progress#c_tow	110alde_dun04,165,268,4	duplicate(DG_Main)	DG Party Progress#alde	110mjo_dun03,34,52,4	duplicate(DG_Main)	DG Party Progress#coal	110prt_sewb4,34,52,4	duplicate(DG_Main)	DG Party Progress#culv	110ein_dun02,25,88,4	duplicate(DG_Main)	DG Party Progress#einb	110gefenia04,160,30,4	duplicate(DG_Main)	DG Party Progress#gefia	110gef_dun03,119,104,4	duplicate(DG_Main)	DG Party Progress#gefd	110glast_01,191,120,4	duplicate(DG_Main)	DG Party Progress#glas	110gon_dun03,99,183,4	duplicate(DG_Main)	DG Party Progress#gonr	110ice_dun03,149,116,4	duplicate(DG_Main)	DG Party Progress#iced	110prt_maze03,177,89,4	duplicate(DG_Main)	DG Party Progress#maze	110jupe_core,150,129,4	duplicate(DG_Main)	DG Party Progress#jupe	110kh_dun02,129,98,4	duplicate(DG_Main)	DG Party Progress#kiel	110lhz_dun02,150,145,4	duplicate(DG_Main)	DG Party Progress#lhz	110lou_dun03,170,153,4	duplicate(DG_Main)	DG Party Progress#louy	110mag_dun02,43,44,4	duplicate(DG_Main)	DG Party Progress#magma	110odin_tem03,278,236,4	duplicate(DG_Main)	DG Party Progress#odin	110orcsdun02,77,88,4	duplicate(DG_Main)	DG Party Progress#orcsd	110pay_dun04,120,116,4	duplicate(DG_Main)	DG Party Progress#pay	110moc_pryd06,97,59,4	duplicate(DG_Main)	DG Party Progress#pyram	110in_sphinx5,100,149,4	duplicate(DG_Main)	DG Party Progress#sphinx	110treasure02,101,166,4	duplicate(DG_Main)	DG Party Progress#pirate	110tha_t12,136,65,4	duplicate(DG_Main)	DG Party Progress#thana	110xmas_dun02,134,134,4	duplicate(DG_Main)	DG Party Progress#toy	110tur_dun04,92,100,4	duplicate(DG_Main)	DG Party Progress#turtle	110thor_v03,151,162,4	duplicate(DG_Main)	DG Party Progress#thor_v	110// ======================= End of NPC Duplicates =====================// ======================= End of Script =====================

    helo.. i need some help for fixing this script.

     

    2604pow.png


  5. ehehe ... ehehehehe ...... ehehehehehehehehe ......

    hehehehe .....

    ... I just kept laughing for past few hours ...

     

    1 of my customer just show me a link to the topic in my signature

    I'm going to write this for free in public ...

     

    if nothing disturb me, I can finish this in 3 days ....

     

    EDIT: I am already drooling right now ... omg ... I can't stop thinking about it ...

    wow.. thank so lot @@AnnieRuru :wub: :wub: :wub: :wub:

    cant wait the script.. hahaha


  6. ROFL, that script I wrote for fun, and you somehow dig it out LOLactually I already have a mvp ladder script which made for rathenahttp://herc.ws/board/topic/10903-mvp-ladder-game-problem/but its currently bug in herculeshttps://github.com/HerculesWS/Hercules/issues/840once Haru fixed the Hp=1 when dead bug, then that script can use in Hercules

    Thx for reply.. I dig it coz it somehow nice.. Just need some adjust on script.. I already try running in my server.. Its seem bug only but still useful. I just need change something in script. Hehehe


  7. prontera,160,178,5	script	debug	1_F_MARIA,{	$floorclear = 0;	dispbottom "reset";}prontera,156,178,5	script	SAO??NO	1_F_MARIA,{	mes "No. of stage beaten : "+( $floorclear +1 == .totalfloor ? "ALL" : $floorclear +" stage" );	mes "Which floor do you want to challenge ?";	next;	for ( .@i = 0; .@i <= $floorclear; .@i++ )		.@menu$ = .@menu$ +"Floor No. "+( .@i +1 )+":";	.@s = select( .@menu$ );	if ( has_instance2("guild_vs2") >= 0 )		instance_destroy has_instance2("guild_vs2");	if ( ( .@ins = instance_create( "Challenge Floor No."+ .@s, getcharid(3), IOT_CHAR ) ) < 0 ) {		mes "error : "+ .@ins;		close;	}	if ( !getstrlen( instance_attachmap( "guild_vs2", .@ins, 1, ( getcharid(3) - 2000000 )+"SAO"+ .@s ) ) ) {		mes "error : 5";		instance_destroy .@ins;		close;	}	instance_set_timeout 3600, 15, .@ins; // 1 hour to kill, 15 seconds to destroy	instance_attach .@ins;	'floor = .@s;	instance_init .@ins;	warp ( getcharid(3) - 2000000 )+"SAO"+ .@s, 50,50;	end;OnInit:	setarray .floor,		OSIRIS, // 1st floor		BAPHOMET, // 2nd floor		DOPPELGANGER; // 3rd floor	.totalfloor = getarraysize(.floor);	end;}guild_vs2,50,50,5	script	portal	WARPNPC,2,2,{	if ( 'floor == getvariableofnpc( .totalfloor, "SAO??NO" ) ) {		mes "no more";		close2;		warp "Save", 0,0;		instance_destroy has_instance( "guild_vs2" );		end;	}	if ( 'floor > $floorclear ) {		announce "[SAO Instance???] Floor No. "+ 'floor +" has open !", bc_all;		$floorclear = 'floor;	}	.@floor = 'floor +1;	instance_destroy has_instance( "guild_vs2" );	if ( ( .@ins = instance_create( "Challenge Floor No."+ .@floor, getcharid(3), IOT_CHAR ) ) < 0 ) {		mes "error : "+ .@ins;		close;	}	if ( !getstrlen( instance_attachmap( "guild_vs2", .@ins, 1, ( getcharid(3) - 2000000 )+"SAO"+ .@floor ) ) ) {		mes "error : 5";		warp "Save", 0,0;		instance_destroy .@ins;		close;	}	instance_set_timeout 3600, 15, .@ins; // 1 hour to kill, 15 seconds to destroy	instance_attach .@ins;	'floor = .@floor;	instance_init .@ins;	warp ( getcharid(3) - 2000000 )+"SAO"+ .@floor, 50,50;	end;OnInstanceInit:	monster strnpcinfo(4), 50,50, "--ja--", getelementofarray( getvariableofnpc( .floor, "SAO??NO" ), 'floor -1 ), 1, instance_npcname( strnpcinfo(0) )+"::OnFloorBossDead";	hideonnpc instance_npcname( strnpcinfo(0) );	end;OnFloorBossDead:	announce "Floor No. "+( 'floor )+" cleared ! Select an item from the drop list as your reward.", bc_map;	mes "Select an item for your reward";	next;	getmobdrops getelementofarray( getvariableofnpc( .floor, "SAO??NO" ), 'floor -1 );	for ( .@i = 0; .@i < $@MobDrop_count -1; .@i++ )		.@menu$ = .@menu$ + getitemname( $@MobDrop_item[.@i] ) +" - "+ $@MobDrop_rate[.@i] / 100 +"."+ $@MobDrop_rate[.@i] % 100 +"%:";	copyarray .@itemid, $@MobDrop_item, $@MobDrop_count -1;	.@s = select( .@menu$ ) -1;	getitem .@itemid[.@s], 1;	hideoffnpc instance_npcname( strnpcinfo(0) );	close;}

    hello i need some help me..

    1- how to make it has delay? player will need to wait 10 minutes before can join again this room?

    2- how to make it party only?

    3- set monster base on ID not name

    4- extra reward when finish all stage.


  8. Naori I did the same thing (not sure if you tested in-game) but it doesn't work.

     

    So I'm turning this farming script into a solo farming instance for players to join their own instance of the Farm.

     

    It'll be very configureable (having multiple random item arrays (using F_Rand, so a array in it's on way)

     

    Multiple waves and chances at obtaining items.

     

    Still thinking  about adding the item capacity where if they farm 50 items, instance destroys and they have to wait x minute to join. Or just add in a overall delay on this instance (Cooldown)

     

    Thinking of releasing or adding to my Instance Mod Package... Not sure yet =)

    can share me ur solo instance script?


  9. hello to all..

     

    i was looking script like this.

    year 2011 if i not mistake that server already have this script.

    if some have this script can share it with me?

     

    *player will need in min/max party

    *point will be same in 1 party

    *15 stage total. clear room in 10 minutes

    *monster will base on dead branch and bloody branch + custom monster.

    *normal monster will get 1 point. Bos monster will get 5 point

    *talk to npc will get 1st white belt

    *only player have belt can join this instance

    *party will collect point and change to 2nd belt.

    *total belt will be 5. white > yellow > green > blue > black

    *no drop item. only point get.


  10. prontera,106,203,5	script	Farm Zone	757,{function    RandomizeItem;while( 1 ){mes "How can i help you ?";switch( select( "Information:Farm Items" )){case 1:    mes "This is a Farm Zone.";    mes "You are able to Hunt Monster inside this Room.";    mes "Every Monster will award you random items.";    next;    mes "But there is some Condition..";    mes "You can only go in ^FF0000once every "+.RoomCleanMin+" minutes for 1 times.^000000";    mes "And Maximum of ^FF0000"+.MaxPlayers+" Players per "+.RoomCleanMin+" Minutes.^000000";    mes "Maximum Hunting Limit ^FF0000"+.MaxItemLimit+"^000000";    next;    mes "There will be a ^FF0000Room Cleaning^000000 from time to time...";    mes "All players will be kicked out, it is your bad luck if you meet this.";    mes "Delay will still apply even though you just go in for 1 Seconds..";    next;    break;case 2:    if( #HuntRoomDelay > gettimetick(2) ){        set .last,#HuntRoomDelay - gettimetick(2);        set .@min,  .last % ( 24 * 3600 ) % 3600 / (60);        mes "Wait for ^FF0000"+.@min+" Minutes^000000.";        close;    }else if( getarraysize( .Hunter ) >= .MaxPlayers ){        mes "Currently the Room is Full. Please try again later.";        close;    }else{        warp .Map$,0,0;        set .Hunter[getarraysize( .Hunter )],strcharinfo(0);        set #HuntRoomDelay,gettimetick(2) + ( .DelayMin * 60 );        set #FarmHunt,0;        end;        }    }}OnInit:// Maximum Player can join per X Minutes.set .MaxPlayers,5;// Adding X Minutes of Delay before can go in again.set .DelayMin,5;// Maximum Hunt Limit per round inside the Zone.set .MaxItemLimit,50;// Map that will be used in thos Zone.set .Map$,"ordeal_3-1";// Clear Map Every X Minutes.set .RoomCleanMin,5;// Mapflag Initializationsetmapflag .Map$,mf_nogo;setmapflag .Map$,mf_nomobloot;setmapflag .Map$,mf_nomvploot;setmapflag .Map$,mf_nowarpto;setmapflag .Map$,mf_nochat;setmapflag .Map$,mf_novending;setmapflag .Map$,mf_nocommand,60;setmapflag .Map$,mf_nogo;setmapflag .Map$,mf_nojobexp;setmapflag .Map$,mf_nobaseexp;while( 1 ){    killmonster .Map$,"All";    mapwarp .Map$,"prontera",155,181;    monster .Map$,1829,1830,1831,1833,1839,1699,1713,"[ Farm Zone ] Resident";-1,80,strnpcinfo(0)+"::OnNormalKill";    monster .Map$,1832,1511,1785,1630,1039,1272,1719,"[ Farm Zone ] Guardian",-3,5,strnpcinfo(0)+"::OnBossKill";    deletearray .Hunter,getarraysize( .Hunter );    announce "[ Farm Zone ] : Farming Zone has been Cleaned up, another 5 Players may go in now.",bc_blue;    sleep ( .RoomCleanMin * 60000 );    mapannounce .Map$,"[ Farm Zone ] : Room Clean Up now...All Users will be warped Out.",0;    killmonster .Map$,"All";    sleep 3000;    }end;OnNormalKill:RandomizeItem( 0,rand(1,5) );monster .Map$,0,0,"--ja--",-1,1,strnpcinfo(0)+"::OnNormalKill";end;OnBossKill:RandomizeItem( 1,rand(1,3) );monster .Map$,0,0,"--ja--",-3,1,strnpcinfo(0)+"::OnBossKill";end;// Function that used to Generate Random Itemsfunction    RandomizeItem    {set #FarmHunt,#FarmHunt + getarg(1);// Normal Monster in Zone Drops Listsif( getarg(0) == 0 ) setarray .ItemList[0],13989,14232,13517,7139,12016,14534;// Normal Boss in Zone Drops Listsif( getarg(0) == 1 ) setarray .ItemList[0],14536,12267,12266,14601,13830,13831,13832,13833;for( set .@i,1; .@i <= getarg(1); set .@i,.@i + 1 ){    getitem .ItemList[ rand( getarraysize( .ItemList ) ) ],1;    }deletearray .ItemList,getarraysize( .ItemList );dispbottom "[ Farm Zone ] : Farmed "+#FarmHunt+" / "+.MaxItemLimit+" Items";if( #FarmHunt >= .MaxItemLimit ){    message strcharinfo(0),"Limit Reach , you may join again later.";    sleep2 2000;    warp "invek",147,164;    }return;}    } 

    why i cant more mob normal or bos?

    if i make more than 2 mob or bos.. i will get error.

    and how add monster random based on Bloody Branch / Dead Branch

    @

     

    35d279z.png


  11. invek,106,203,5	script	Farm Zone	757,{function	RandomizeItem;while( 1 ){mes "How can i help you ?";switch( select( "Information:Farm Items" )){Case 1:	mes "This is a Farm Zone.";	mes "You are able to Hunt Monster inside this Room.";	mes "Every Monster will award you random items.";	next;	mes "But there is some Condition..";	mes "You can only go in ^FF0000once every "+.RoomCleanMin+" minutes for 1 times.^000000";	mes "And Maximum of ^FF0000"+.MaxPlayers+" Players per "+.RoomCleanMin+" Minutes.^000000";	mes "Maximum Hunting Limit ^FF0000"+.MaxItemLimit+"^000000";	next;	mes "There will be a ^FF0000Room Cleaning^000000 from time to time...";	mes "All players will be kicked out, it is your bad luck if you meet this.";	mes "Delay will still apply even though you just go in for 1 Seconds..";	next;	break;Case 2:	if( #HuntRoomDelay > gettimetick(2) ){		set .last,#HuntRoomDelay - gettimetick(2);		set .@min,  .last % ( 24 * 3600 ) % 3600 / (60);		mes "Wait for ^FF0000"+.@min+" Minutes^000000.";		close;	}else if( getarraysize( .Hunter ) >= .MaxPlayers ){		mes "Currently the Room is Full. Please try again later.";		close;	}else{		warp .Map$,0,0;		set .Hunter[getarraysize( .Hunter )],strcharinfo(0);		set #HuntRoomDelay,gettimetick(2) + ( .DelayMin * 60 );		set #FarmHunt,0;		end;		}	}}OnInit:// Maximum Player can join per X Minutes.set .MaxPlayers,5;// Adding X Minutes of Delay before can go in again.set .DelayMin,15;// Maximum Hunt Limit per round inside the Zone.set .MaxItemLimit,200;// Map that will be used in thos Zone.set .Map$,"guild_vs4";// Clear Map Every X Minutes.set .RoomCleanMin,15;// Mapflag Initializationsetmapflag .Map$,mf_nogo;setmapflag .Map$,mf_nomobloot;setmapflag .Map$,mf_nomvploot;setmapflag .Map$,mf_nowarpto;setmapflag .Map$,mf_nochat;setmapflag .Map$,mf_novending;setmapflag .Map$,mf_nocommand,60;setmapflag .Map$,mf_nogo;setmapflag .Map$,mf_nojobexp;setmapflag .Map$,mf_nobaseexp;while( 1 ){	killmonster .Map$,"All";	mapwarp .Map$,"prontera",155,181;	monster .Map$,0,0,"[ Farm Zone ] Resident",-1,80,strnpcinfo(0)+"::OnNormalKill";	monster .Map$,0,0,"[ Farm Zone ] Guardian",-3,5,strnpcinfo(0)+"::OnBossKill";	deletearray .Hunter,getarraysize( .Hunter );	announce "[ Farm Zone ] : Farming Zone has been Cleaned up, another 5 Players may go in now.",bc_blue;	sleep ( .RoomCleanMin * 60000 );	mapannounce .Map$,"[ Farm Zone ] : Room Clean Up now...All Users will be warped Out.",0;	killmonster .Map$,"All";	sleep 3000;	}end;OnNormalKill:RandomizeItem( 0,rand(1,5) );monster .Map$,0,0,"--ja--",-1,1,strnpcinfo(0)+"::OnNormalKill";end;OnBossKill:RandomizeItem( 1,rand(1,3) );monster .Map$,0,0,"--ja--",-3,1,strnpcinfo(0)+"::OnBossKill";end;// Function that used to Generate Random Itemsfunction	RandomizeItem	{set #FarmHunt,#FarmHunt + getarg(1);// Normal Monster in Zone Drops Listsif( getarg(0) == 0 ) setarray .ItemList[0],13989,14232,13517,7139,12033,12016,14534;// Normal Boss in Zone Drops Listsif( getarg(0) == 1 ) setarray .ItemList[0],14536,12912,12267,12266,14601,13830,13831,13832,13833;for( set .@i,1; .@i <= getarg(1); set .@i,.@i + 1 ){	getitem .ItemList[ rand( getarraysize( .ItemList ) ) ],1;	}deletearray .ItemList,getarraysize( .ItemList );dispbottom "[ Farm Zone ] : Farmed "+#FarmHunt+" / "+.MaxItemLimit+" Items";if( #FarmHunt >= .MaxItemLimit ){	message strcharinfo(0),"Limit Reach , you may join again later.";	sleep2 2000;	warp "invek",147,164;	}return;}	}

     

     

     

     

     

    [Error]: script error in file '(DIRECT INPUT)' line 7 column 1     parse_line: expect command, missing function name or calling undeclared function      4: while( 1 ){      5: mes "How can i help you ?";      6: switch( select( "Information:Farm Items" )){ *    7: Case 1:         ^      8:         mes "This is a Farm Zone.";      9:         mes "You are able to Hunt Monster inside this Room.";     10:         mes "Every Monster will award you random items."; 

    how to fix? i take from rathena

     

     

    and from this link most a script not compatible with Hercules emulator.

     

    https://rathena.org/board/index.php?app=core&module=search&do=user_activity&search_app=downloads&mid=241


  12. @@minx123

    it seems like you don't even know how to use SQL command

    did you actually pay someone to setup the server for you ?

    .

    .

    Suddenly I remember I did TXT style ladder years ago

    its time to dig it up and use it here

     

    http://upaste.me/c8d12185033897498

     

    1 script do all

    yes i pay to hosting. if have script include sql i will send ticket to hoster and when i ask to teach how, the hoster say let him do. the problem now is my hosting not reply my ticket.

    so i need to learn by myself.

     

    i have problem with this script.

     

    2ppke3c.png


  13.  

    you didn't indent your script properly

    invek,134,159,6	script	Custom Mall	830,{shop:	warp "sky_quest" ,45,52;OnInit:	waitingroom "Custom Mall",0;	end;}
    when the player click on the npc, the script execute the warp command, and also execute the waitingroom command

    that's why the server spam error about waitingroom already created

     

    to solve this problem, simple add an end; command before the OnInit label

    like this

    invek,134,159,6	script	Custom Mall	830,{shop:	warp "sky_quest" ,45,52;	end; // <-- ADD THISOnInit:	waitingroom "Custom Mall",0;	end;}
    .

    .

    though, I don't understand why you add shop: label in the 1st place

     

    sorry.. because i see in script warper custom. i have warp to shop. so i copy from there.

    thank you so much for helping.


  14. invek,134,159,6	script	Custom Mall	830,{    shop:    warp "sky_quest" ,45,52;	OnInit:waitingroom "Custom Mall",0;end;}invek,172,201,4	script	Vending	858,{   OnInit: waitingroom "Vending AREA",0;end;}invek,118,205,4	script	Event	858,{    OnInit:waitingroom "Event AREA",0;end;}invek,140,81,6	script	WELCOME	858,{    OnInit:waitingroom "WELCOME TO AVILLIONRO",0;end;}invek,171,177,4	script	REFINE	858,{    OnInit:waitingroom "Refine AREA",0;end;}sky_quest,46,55,6	script	Town	830,{    shop:    warp "invek" ,147,164;	OnInit:waitingroom "Town",0;end;}gonryun,159,107,6	script	Town2	830,{    shop:    warp "invek" ,147,164;	OnInit:waitingroom "Town",0;end;}

    there got error on my map server.

    room have been create, how to fix?


  15. - script Freebies -1,{

    close;

     

    OnPCLoginEvent:

    set .@npcname$,"[Freebies Giver]";

    if ( #Freebies )

    {

    mes .@npcname$;

    mes "Hello to you " + strcharinfo(0);

    mes "I can give you freebies.";

    mes "Interested?";

    if(select("Yes","No") == 1)

    {

    next;

    mes .@npcname$;

    mes "Perfect, choose a box.";

    switch(select("Valkyries Box","Diabolus Box"))

    {

    case 1:

    getitem 30233, 1; // Valkyrie Box

    break;

    case 2:

    getitem 30234, 1; // Diabolus Box

    break;

    }

    announce "Edit your Announce message here.",0;

    set Freebies, 1;

    }

    }

    close;

    end;

    }

    i got some problem.. when i reload script.. the npc still gv to player and when player relog npc will gv to player again

    how to fix?

    bump


  16.  

    -	script	Freebies	-1,{	close;OnPCLoginEvent:	set .@npcname$,"[Freebies Giver]";	if ( #Freebies )	{		mes .@npcname$;		mes "Hello to you " + strcharinfo(0);		mes "Edit your message here.";		if(select("Yes","No") == 1)		{			next;			mes .@npcname$;			mes "Perfect, choose a box.";			switch(select("Valkyries Box","Diabolus Box"))			{				case 1:					getitem 30233, 1; // Valkyrie Box					break;				case 2:					getitem 30234, 1; // Diabolus Box					break;			}			set Freebies, 1;		}	}	close;	end;} 

    thank you for the script.

    may i know this one will base on ip?

    player cant spam new id right?

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.