Jump to content

WhatFT

Members
  • Posts

    511
  • Joined

  • Last visited

Posts posted by WhatFT

  1. 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;
    }
    
    
  2. 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;
    }
    
    
  3. Can anyone got this kind of script? Or If anyone can make some script like this?

     

     

    /*
    CREATE TABLE IF NOT EXISTS `rebirth_system` (
      `account_id` int(11) unsigned NOT NULL default '0',
      `name` varchar(255) NOT NULL DEFAULT 'NULL',
      `num_rebirth` int(11) unsigned NOT NULL default '0',
      `last_ip` varchar(100) NOT NULL default '',
      PRIMARY KEY  (`account_id`)
    ) ENGINE=MyISAM;
    */
    
    prontera,150,170,5	script	Spec	833,{
    function checkItem;			// check if player have all item required
    function colorItemrequired;	// color the text. Red : not enough item, green otherwise
    function deleteItem;		// delete all items required
    function displayItemneed;	// display all items need at start
    function getItemReward;		// give the items reward
    function weightreq;			// check if your current weight is highter than weight high novice
    
    
    	.@eac = eaclass();
    	if ( num_rebirth == .reset_max ) {
    		mes "You can only rebirth x"+ .reset_max +".";
    		emotion e_gasp;
    		close;
    	}
    	else if( NextJobExp || NextBaseExp || !( .@eac&EAJL_2 ) || !Upper ) {
    		mes "You must be rebirth max level/max job level.";
    		close;
    	}
    
    	mes "Items need :";
    	displayItemneed();
    	next;
    
    	switch( select( "^777777~ Rebirth", "~ Informations", "~ Good bye^000000" ) ) {
    		case 1:
    			weightreq();
    			checkItem();
    			deleteItem();
    			break;
    		case 2:
    			mes "You can only rebirth ^ff0000x"+ .reset_max +"^000000. You already rebirth ^ff0000x"+ num_rebirth +"^000000.";
    			mes "Each rebirth you get ^ff0000"+ .num_status +"^000000 status points and after ^ff0000"+ .change_reward +"^000000 rebirth, you get only some items.";
    			close;
    		case 3:
    			mes "Bye.";
    			close;
    	}
    	num_rebirth += 1;
    	if ( Upper ) {	// just in case the user change the setting...
    		lastJob = roclass( .@eac&EAJ_UPPERMASK );
    		jobchange Job_Novice_High;
    	}
    	else
    		jobchange Job_Novice;
    	resetlvl 1;
    	if ( num_rebirth < 30 )
    		StatusPoint = StatusPoint + .num_status * num_rebirth;
    	else
    		getItemReward();
    	query_sql "insert into `rebirth_system` values ( "+ getcharid(3) +", '"+ escape_sql( strcharinfo(0) ) +"', '"+ num_rebirth +"', '"+ getcharip() +"' ) on duplicate key update `num_rebirth` = `num_rebirth` +1";
    	announce "[ Rebirth system ] : "+ strcharinfo(0) +" rebirth for the "+ num_rebirth +" time !", 0;
    	close;
    
    
    
    function checkItem {
    	for ( ; .@i < .size_item; .@i += 2 )
    		if ( countitem( .item_req[.@i] ) < .item_req[ .@i+1 ] + num_rebirth ) {
    			mes "You don't have enought "+ getitemname( .item_req[.@i] ) +". ^ff0000["+ countitem( .item_req[.@i] ) +"/"+ ( .item_req[ .@i+1 ] + num_rebirth ) +"]^000000";
    			close;
    		}
    	if ( num_rebirth >= .change_reward )
    		if ( .add_item_req[1] + num_rebirth - .change_reward > countitem( .add_item_req[0] ) ) {
    			mes "You don't have enought "+ getitemname( .add_item_req[0] ) +". ^ff0000["+ countitem( .add_item_req[0] ) +"/"+ ( .add_item_req[1] + num_rebirth - .change_reward ) +"]^000000";
    			close;
    		}
    	return;
    }
    
    function colorItemrequired {
    	if ( countitem( .item_req[ getarg(0) ] ) < .item_req[ getarg(0)+1 ] + num_rebirth ) return "^ff0000";
    	return "^00ff00";
    }
    
    function deleteItem {
    	for ( ; .@i < .size_item; .@i += 2 )
    		delitem .item_req[.@i], ( .item_req[ .@i+1 ] + num_rebirth );
    	if ( num_rebirth >= .change_reward )
    		delitem .add_item_req[0], ( .add_item_req[1] + num_rebirth - .change_reward );
    	return;
    }
    
    function displayItemneed {
    	for ( ; .@i < .size_item; .@i += 2 )
    		mes colorItemrequired( .@i ) +" - x"+ ( .item_req[ .@i+1 ] + num_rebirth ) +" "+ getitemname( .item_req[.@i] );
    	if ( num_rebirth >= .change_reward ) {
    		if ( .add_item_req[1] + num_rebirth - .change_reward > countitem( .add_item_req[0] ) )
    			.@color$ = "^ff0000";
    		else
    			.@color$ = "^00ff00";
    		mes .@color$ +"- x"+ ( .add_item_req[1] + ( num_rebirth - .change_reward ) ) +" "+ getitemname( .add_item_req[0] );
    	}
    	return;
    }
    
    function getItemReward {
    	for ( ; .@i < .size_reward; .@i += 2 )
    		getitem .reward[.@i], .reward[ .@i+1 ];
    	return;
    }
    
    function weightreq {
    	if ( Weight > 20000 ) {
    		mes "You have too much items on you. Your weight will be too high after rebirth.";
    		close;
    	}
    	return;
    }
    
    OnInit:
    	.reset_max = 50;		// how much reset max
    	.change_reward = 30;	// after 30 rebirth, change reward
    	.num_status = 300;		// + X number of status points
    
    // item required <item ID>, <number>
    	setarray .item_req, 501, 5,
    						502, 2,
    						503, 3;
    	.size_item = getarraysize( .item_req );
    
    // additionnal items after rebirth >> .change_reward
    // <item ID>, <number>
    	setarray .add_item_req, 601, 1;
    
    // rewards <item ID>, <number>
    	setarray .reward, 504, 1;
    	.size_reward = getarraysize( .reward );
    	end;
    }
    

    Thanks Capuche ! I'll update the script if there is some errors.. THANK YOU!

    • MVP 1
  4. Can anyone got this kind of script? Or If anyone can make some script like this?

     

    What kind of Rebirth System :

     

    • Only works in rAthena.
    • Maximum Rebirth is 50.
    • Each rebirth will give 300 Stat Points until they reach 30th Rebirth.
    • Once they reach the 30th Rebirth, they will now receive Items instead of Stat Points until they reach the 50th Rebirth. 
    • The Rebirth NPC will always check their weight limit before they rebirth, If their weight is quite large then the NPC won't make them rebirth.
    • Players who got to rebirth will be Broadcasted.
    • Players that have finished their Rebirth Stages will reset their Levels back into 1 including their Stat Point (This does not affect the additional Stat Points per rebirth, It will still remain).
    • Players can only Rebirth once they have the Single Item Requirement. (Like Rebirth Ticket)
    • Optional : Saves the rebirth of each character in the logs of Account ID, Character Name, No. of Reborn and IP Address.

     

    How the Rebirth System works :

     

    • Each Rebirth will have atleast 5 Item Requirements like (Sample) 512, 513, 514, 515, 516...
    • Each Rebirth will increase the amount of the Item Requirements by 1 until it reaches the 30th Rebirth.
    • Once the player reaches 30th Rebirth, there will be an Additional Item Requirement, (Sample) Item ID 505..

     

    Hope someone will share or make some kind of this script... THANK YOU!

  5. 
    prontera,154,150,5	script	Hunter Register	87,{
    function isinlist;	//return the index of the player in the list ; -1 if not
    function newtarget;	// set a new target in the online character list
    function initArrayNumber;	// initialize an array size 128 ; each column is incremented +1 starting to 1
    function initOnlineArray;	// copy data of players register online in some array + warp players
    function PlayerGetReward;	// give a reward for each player online PO ; disabled fakename
    function dispatchAllTarget;	// give a target for each PO
    function sortPointArray;	// sort the online array order by point
    function deleteAllVar;	// delete all variables unused
    function AddPoint;	// add/remove hunters points
    
    	mes .npc_name$;
    	mes "Wanna register in the hunter event ?";
    	next;
    	if ( prompt( ( .start == 2 ? "^777777~ Warp on event map^000000" : "" ), ( .start == 1 ? "^777777~ Register ?^000000" : "" ), "^777777~ About the event^000000", ( getgmlevel() > 59 ? "^FF0000[GM] Start/Stop Event^000000" : "" ) ) == 3 ) {
    		mes .npc_name$;
    		mes "Every 4 hours.. Wait 10 mins... battle...";
    		close;
    	}
    	else if ( @menu == 4 ) {	// gm menu
    		if ( .start )
    			select ( "Stop the event ?" );
    		else
    			select ( "Start the event ?" );
    		if ( .start )
    			awake strnpcinfo(0);
    		else
    			goto OnHour20;
    		end;
    	}
    	else if ( .size_array_init > 127 && @menu == 2 ) {
    		mes .npc_name$;
    		mes "The event queue is full";
    		close;
    	}
    	else if ( isinlist( ".list_init_cid", ".size_array_init" ) != -1 ) {
    		if ( @menu == 1 ) {
    			warp .event_map$,0,0;
    			end;
    		}
    		mes .npc_name$;
    		mes "You're already on my list";
    		close;
    	}
    	else if ( @menu == 1 ) end;
    	else if ( @menu == 2 ) {
    		.list_init_cid[ .size_array_init ] = getcharid(0);
    		.list_init_aid[ .size_array_init ] = getcharid(3);
    
    		.@i = rand( .size_num );
    		.dispatch_num_init[ .size_array_init ] = .num[.@i];
    
    		deletearray .num[.@i], 1;
    		.size_array_init++;
    		.size_num--;
    		
    		message strcharinfo(0),"You're now on the list.";
    	}
    	end;
    
    OnHour00:
    OnHour04:
    OnHour08:
    OnHour12:
    OnHour16:
    OnHour20:
    	initArrayNumber();	// initialize array to dispatch number to player
    	.start = 1;
    	initnpctimer;
    	announce "[ Hunter Event ] : The event will start in 10 min !",0;
    	end;
    
    OnTimer600000:	// 10 mins
    	announce "[ Hunter Event ] : Event start.",0;
    	.start = 2;
    	stopnpctimer;
    	initOnlineArray();
    	bindatcmd "hunter",strnpcinfo(3)+"::OnAtcommand";
    
    	if ( .size_online >= .min_player ) {
    		for ( .@i = 0; .@i < .size_mapflag; .@i++ )
    			setmapflag .event_map$, .mapflag[.@i];
    		dispatchAllTarget();
    		sleep 900000;	// 15 mins
    	}
    	sortPointArray();
    	PlayerGetReward();
    	deleteAllVar();
    	unbindatcmd "hunter";
    
    	announce "[ Hunter Event ] : End of event.",0;
    	mapwarp .event_map$,"prontera",150,150;
    	for ( .@i = 0; .@i < .size_mapflag; .@i++ )
    		removemapflag .event_map$, .mapflag[.@i];
    	end;
    
    OnPCLoginEvent:
    	if ( !.start ) end;
    	.@index = isinlist( ".list_init_cid", ".size_array_init" );
    	if( .@index == -1 && strcharinfo(3) == .event_map$ ) {
    		warp "prontera",0,0;
    		end;
    	}
    	else if( .@index == -1 ) end;
    	atcommand "@fakename [ "+ .dispatch_num_init[ .@index ] +" ] "+ strcharinfo(0) ;
    	.list_cid_online[ .size_online ] = getcharid(0);
    	.list_aid_online[ .size_online ] = getcharid(3);
    	.dispatch_num_online[ .size_online ] = .dispatch_num_init[ .@index ];
    	.size_online++;
    	newtarget();
    	end;
    
    OnPCLogoutEvent:
    	if ( !.start ) end;
    	.@index = isinlist( ".list_cid_online", ".size_online" );
    	if( .@index == -1 ) end;
    	if ( .malus_logout )
    		AddPoint( getcharid(0), -1, 0, -1, .malus_logout );	// if getarg(1) == -1 or getarg(2) == -1 => add getarg(4) * getarg(3) points
    	.@num_ = .dispatch_num_online[ .@index ];
    	deletearray .list_cid_online[ .@index ], 1;
    	deletearray .list_aid_online[ .@index ], 1;
    	deletearray .dispatch_num_online[ .@index ], 1;
    	deletearray .target_online[ .@index ], 1;
    	.size_online--;
    	if( .size_online < 2 )
    		awake strnpcinfo(0);
    	for ( .@i = 0; .@i < .size_online; .@i++ )
    		if ( .target_online[.@i] == .@num_ ) newtarget( .@i );
    	end;
    
    OnPCKillEvent:
    	if ( !.start ) end;
    	.@index = isinlist( ".list_cid_online", ".size_online" );
    	if( .@index == -1 ) end;
    	.@char_id = getcharid(0);
    	attachrid( killedrid );
    	.@index2 = isinlist( ".list_cid_online", ".size_online" );
    	if( .@index2 == -1 ) end;
    	AddPoint( getcharid(0), .@index, .@index2, -1 );	// <target>, <index online killer IO>, <IO Killed>, <rate points>
    	.@main = AddPoint( .@char_id, .@index, .@index2, 1 );
    	if ( .@main == .point_main )
    		newtarget( .@index );
    	sortPointArray();
    	for ( .@i = 0; .@i < .size_online; .@i++ )
    		if ( .count_point_online[.@i] >= 30 ) {
    			.@num_winner++;
    			if ( .@num_winner == 5 ) {
    				awake strnpcinfo(0);
    				end;
    			}
    		}
    	doevent strnpcinfo(0) +"::OnRezu";
    	end;
    
    OnRezu:
    	sleep2 3000;
    	warp .event_map$,0,0;
    	percentheal 100,100;
    	end;
    
    function AddPoint {
    	.@i = isinlist( ".list_init_cid", ".size_array_init", getarg(0) );
    	if ( getarg(1) == -1 || getarg(2) == -1 )
    		.@points = getarg( 4,0 ) * getarg(3);
    	else if( .target_online[ getarg(1) ] == .dispatch_num_online[ getarg(2) ] )
    		.@points = .point_main * getarg(3);
    	else
    		.@points = .point_others * getarg(3);
    	.count_point[.@i] = .count_point[.@i] + .@points;
    	message rid2name( .list_init_aid[.@i] ), "You have "+ .@points +" Hunters points. Total : "+ .count_point[.@i] +" Hunters points";
    	return .@points;
    }
    
    function deleteAllVar {
    	.size_array_init = .start = .size_num = .size_online = 0;
    	deletearray .list_cid_online;
    	deletearray .list_aid_online;
    	deletearray .dispatch_num_online;
    	deletearray .num;
    	deletearray .list_init_cid;
    	deletearray .dispatch_num_init;
    	deletearray .count_point;
    	deletearray .count_point_online;
    	deletearray .target_online;
    	return;
    }
    
    function dispatchAllTarget {
    	for( .@i = 0; .@i < .size_online; .@i++ ) {
    		newtarget( .@i );
    		charcommand "#fakename "+ rid2name( .list_aid_online[.@i] ) +" [ "+ .dispatch_num_online[.@i] +" ] "+ rid2name( .list_aid_online[.@i] ) ;
    	}
    	return;
    }
    
    function isinlist {
    	if ( getarg( 2,0 ) )
    		.@char_id = getarg( 2,0 );
    	else
    		.@char_id = getcharid(0);
    	while( .@i < getd( getarg(1) ) && getd( getarg(0) +"[" + .@i + "]" ) != .@char_id ) .@i++;
    	if( .@i == getd( getarg(1) ) ) return -1;
    	return .@i;
    }
    
    function initArrayNumber {
    	for( .@i = 0; .@i < 128; .@i++ )
    		.num[.@i] = .@i +1;
    	.size_num = 128;
    	return;
    }
    
    function initOnlineArray {
    	for ( .@i = 0; .@i < .size_array_init; .@i++ )
    		if( isloggedin( .list_init_aid[.@i], .list_init_cid[.@i] ) ) {
    			.list_cid_online[ .size_online ] = .list_init_cid[.@i];
    			.list_aid_online[ .size_online ] = .list_init_aid[.@i];
    			.dispatch_num_online[ .size_online ] = .dispatch_num_init[.@i];
    			warpchar .event_map$,0,0,.list_cid_online[ .size_online ];
    			.size_online++;
    		}
    	return;
    }
    
    function newtarget {
    	if( getarg( 0,-1 ) == -1 )
    		.@index = isinlist( ".list_cid_online", ".size_online" );
    	else
    		.@index = getarg( 0,-1 ) ;
    
    	do
    		.@r = rand( .size_online );
    	while( .@r == .@index );
    	.target_online[ .@index ] = .dispatch_num_online[.@r];
    	message rid2name( .list_aid_online[ .@index ] ), .list_cid_online[ .@index ] +" Your main target is now number [ "+ .target_online[ .@index ] +" ]";
    	return;
    }
    
    function PlayerGetReward {
    	for ( .@i = 0; .@i < .size_online; .@i++ ) {
    		charcommand "#fakename "+ rid2name( .list_aid_online[.@i] ) ;
    		for ( .@j = 0; .@j < .size_reward; .@j += 3 ) {
    			if( .count_point_online[.@i] >= .reward[.@j] ) {
    				getitem .reward[.@j+1], .reward[.@j+2], .list_aid_online[.@i];
    				break;
    			}
    		}
    	}
    	return;
    }
    
    function sortPointArray {
    	deletearray .count_point_online;
    	for ( .@i = 0; .@i < .size_online; .@i += 1 ) {
    		.@index = isinlist( ".list_init_cid", ".size_array_init", .list_cid_online[.@i] );
    		.count_point_online[.@i] = .count_point[ .@index ];
    	}
    	.@k_size = .size_online;
    	while ( .@k_size ) {
    		.@test = .count_point_online;
    		.@index = 0;
    		for ( .@i = 1; .@i < .@k_size; .@i += 1 )
    			if ( .@test < .count_point_online[.@i] ) {
    				.@test = .count_point_online[.@i];
    				.@index = .@i;
    			}
    
    		.@save_point[.@k] = .count_point_online[ .@index ];
    		.@save_aid[.@k] = .list_aid_online[ .@index ];
    		.@save_cid[.@k] = .list_cid_online[ .@index ];
    		.@save_dispatch_num[.@k] = .dispatch_num_online[ .@index ];
    		.@save_target[.@k] = .target_online[ .@index ];
    		deletearray .count_point_online[ .@index ], 1;
    		deletearray .list_aid_online[ .@index ], 1;
    		deletearray .list_cid_online[ .@index ], 1;
    		deletearray .dispatch_num_online[ .@index ], 1;
    		deletearray .target_online[ .@index ], 1;
    		.@k_size = .@k_size -1;
    		.@k += 1;
    	}
    	copyarray .count_point_online, .@save_point, .size_online;
    	copyarray .list_aid_online, .@save_aid, .size_online;
    	copyarray .list_cid_online, .@save_cid, .size_online;
    	copyarray .dispatch_num_online, .@save_dispatch_num, .size_online;
    	copyarray .target_online, .@save_target, .size_online;
    	return;
    }
    
    OnInit:
    	.npc_name$ = "^ff0000- [ Hunter NPC ] -^000000";
    	.malus_logout = 3;			// num malus points if log out ? (0: disabled)
    	.point_main = 3;			// points when killing main target / - points for main killed
    	.point_others = 1;			// points when killing others targets
    	.event_map$ = "geffen";		// event map
    	.min_player = 10;				// number min players to start
    	setarray .reward,	30, 501, 1,	// Typo : <points min>, <item ID>, <amount items>
    						29, 502, 1,
    						19, 503, 1,
    						 9, 504, 1,
    						 1, 505, 1;
    
    // Don't touch
    // -----------
    	.size_reward = getarraysize( .reward );
    	setarray .mapflag, mf_noreturn, mf_nowarp, mf_noteleport, mf_nowarpto, mf_pvp;
    	.size_mapflag = getarraysize( .mapflag );
    	for( ; .@i < .size_mapflag; .@i++ )
    		removemapflag .event_map$, .mapflag[.@i];
    	end;
    OnAtcommand:
    	if ( !.start ) end;
    	.@index = isinlist( ".list_cid_online", ".size_online" );
    	if( .@index == -1 ) end;
    	sortPointArray();
    	.@size = .size_online > 30 ? 30 : .size_online ;
    	dispbottom "Top 30 Hunters Online - { Name : Hunters Points }";
    	for ( .@i = 0; .@i < .@size; .@i += 1 )
    		dispbottom rid2name( .list_aid_online[.@i] ) +" : "+ .count_point_online[.@i];
    	end;
    }
    
    

     

    • GM can start/stop the event
    • Start => 10 mins to register => 10 players minimum => warp on event map
    • Players register have an unique number on the name. ie. [ 10 ] Capuche
    • players have randomly a main target : 3 hunters points if the target is killed, 1 point if not main target killed
    • players have malus points if log out/ log in
    • 5 players (online or offline) with 30 points or 15 min after => end of event
    • reward by range of points
    • @hunter command to check the points of players online during the event (enabled just for players in event)

     

     

    Put your setting at the end of the script

    	.npc_name$ = "^ff0000- [ Hunter NPC ] -^000000";
    	.malus_logout = 3;			// num malus points if log out ? (0: disabled)
    	.point_main = 3;			// points when killing main target / - points for main killed
    	.point_others = 1;			// points when killing others targets
    	.event_map$ = "geffen";		// event map
    	.min_player = 10;				// number min players to start
    	setarray .reward,	30, 501, 1,	// Typo : <points min>, <item ID>, <amount items>
    						29, 502, 1,
    						19, 503, 1,
    						 9, 504, 1,
    						 1, 505, 1;
    

     

    This thread is quite old but you still got plenty of time to make this script. THANKS ! I'll update you soon after I test this script.. THANK YOU CAPUCHE

  6. quiz_02,171,343,5	duplicate(Exit#1)	Exit#02	451
    

    You made a duplicate of the npc where you put

    OnPCKillEvent:
    	if( strcharinfo(3) == "cell_game" ) {
    		#Cell_Game_Points = #Cell_Game_Points + 3;
    		dispbottom "You get 3 points. Total: "+ #Cell_Game_Points +" points.";
    		attachrid( killedrid );
    		if( #Cell_Game_Points )
    			#Cell_Game_Points = #Cell_Game_Points - 1;
    		dispbottom "You lose 1 point. Total: "+ #Cell_Game_Points +" points.";
    		warp strcharinfo(3),0,0;
    		sleep2 10;
    		percentheal 100,100;
    	}
    	end;
    

     

    So the points are duplicated too

     

    Put it in another npc

    Oh ! I forgot, my bad.. thanks Capuche !

  7. Post your current script

    //PAULINDS [Xerus RO]
    //[Simple] SUPER PVP ROOM
    
    //NPC 1
    prontera,156,169,5	script	Super Deathmatch	451,{
    
    		mes "Looks like you want to participate the Rumble huh!?";
    		mes "Before I'll let you in, Do you want to know about information about the Rumble?";
    			menu "Sure !",Q_YES,"Enter the Arena",Q_YES1;
    
    	Q_YES:
    		mes "You will need the version 3.5 so you can participate well in the Arena.";
    	next;
    		mes "First thing you'll do is you need to ^330000Survive Long^000000 this rumble";
    	next;
    		mes "You're original items will be stored instantly from your inventory";
    	next;
    		mes "You can also choose your equipments once you entered the arena.";
    	next;	
    		mes "Warping, Teleporting or any @commands are disabled inside the arena.";
    	next;
    		mes "The equipments available in the arena is only useful in that Rumble";
    	next;
    		mes "You can't even take that equipment outside the Rumble.";
    	next;
    		mes "Remember that those equipments are only available inside, you cannot keep as yours forever";
    	next;		
    		mes "Once you die, there is a chance that those equipment will be dropped and players can gather it as they want";
    	next;
    		mes "You can quit anytime you want, my partner is always inside the Arena to watch over";
    	next;
    		mes "Once you left the Arena, the equipments that you choose/gathered will be dropped and items in your inventory will be reset";
    	next;
    		mes "You can come anytime you want but you'll have to buy time when your choosing your equipments";
    	next;
    		mes "This can be hosted by a Game Master once hosted.";
    	next;
    		mes "You can earn Arena Points and can be exchanged outside for Event Tickets, Zeny Coins & More";
    	next;
    		mes "WARNING : If you caught farming Arena Points, you'll be muted and jailed for 12 hours :)";
    	next;
    		mes "This is NOT open for 24/7, It's only available once the GM Activates it.";
    	next;
    		mes "Very well, goodluck on the Arena !";
    	close;
    
    	Q_YES1:
    		mes "Looks like your really into it !";
    		mes "Goodluck then.";
    		atcommand "@storeall";
    		warp "quiz_02",167,347;
    		
    	}
    
    
    //NPC 2
    quiz_02,169,340,5	script	Arena Assistant	452,{
    
    	if(#bonus == 0){
    		mes "You can only choose 1 set that gives equal effects to every participants";
    	next;
    		mes "This set is good for all jobs so everyone will have an equal PKs";
    		getitem	30114,1;
    		getitem	20037,1;
    		getitem	25208,1;
    		getitem	30115,3;
    		getitem	30116,3;
    		getitem	30117,3;
    		getitem	30118,2;
    		getitem	2765,3;
    		getitem	7829,30;
    	set #bonus,1;
    	next;
    		mes "There you go..";
    	next;
    		mes "You can also look for MvP Cards & Weapons over there.";
    		mes "Goodluck !";
    	close;
    	}
    	if(#bonus == 1){
    		mes "Looks like you're ready to enter the Arena !";
    	next;
    		mes "Are you ready?";
    			menu "Not yet",Q_QWE,"Warp me now",Q_QWER;
    	Q_QWE:
    		mes "Okay..";
    		close;
    
    	Q_QWER:
    		mes "Goodluck !";
    		atcommand "@repairall";
    	announce strcharinfo(0)+" entered the Arena !",0;
    	warp "guild_vs1",0,0;
    		close;
    
    		}
    	}	
    
    //NPC 3
    quiz_02,166,337,5	shop	Card Seller	453,4236:90,4425:90,4372:90,4147:90,4145:90,4168:90,4386:90,4142:90,4134:90,4137:90,4123:90,4330:90,4441:90,4324:90,4408:90,4128:90,4430:90,4263:90,4403:90,4318:90,4419:90,4376:90,4276:90,4146:90,4132:90,4131:90,4143:90,4135:90,4144:90,4148:90,4121:90,4342:90,4302:90,4399:90,4305:90,4407:90,4374:90,4352:90,4169:90,4174:90,4047:90,4354:90,4271:90,4278:90,4087:90,4412:90,4311:90,4411:90,4054:90,4114:90,4119:90,4170:90,4173:90,4141:90,4005:90,4092:90,4341:90,4348:90,4349:90,4064:90,4301:90,4051:90,4022:90,4103:90,4044:90,4058:90,4133:90,4334:90,4085:90,4097:90,4160:90,4172:90,4433:90,4416:90,4318:100,4195:100
    
    //NPC 4
    quiz_02,164,337,5	shop	Weapon Seller	453,13011:50000,1231:50000,1228:50000,13034:50000,1237:50000,13017:50000,13032:50000,13016:50000,13035:50000,13027:50000,1108:50000,1133:50000,1131:50000,1175:50000,1182:50000,1408:50000,1544:50000,1505:50000,16001:50000,1538:50000,1532:50000,1622:50000,1646:50000,1624:50000,1644:50000,1705:50000,1736:50000,1745:50000,1822:50000,1802:50000,1925:50000,1906:50000,1904:50000,1902:50000,1951:50000,1550:50000,1568:50000,1570:50000,1571:50000,1569:50000,1579:50000,1266:50000,1275:50000,1278:50000,1276:50000,1277:50000,1264:50000,13304:50000,13302:50000,13150:50000,13103:50000,13152:50000,13105:50000,13107:50000
    
    //NPC 5
    quiz_02,162,337,5	shop	Usable & Misc Items	453,12257:5000,678:1000000,523:1000,606:5000,645:1000,656:3000,657:5000,1025:5000,12114:15000,12115:15000,12116:15000,12117:15000,7139:5000,7136:5000,7135:5000,7138:5000,7137:5000,717:5000,715:500,716:700
    
    //NPC 6
    quiz_02,168,337,5	shop	Ammunitions	453,1766:50,1755:20,1750:10,1754:20,1761:20,1752:20,1760:20,1759:20,1772:100,1757:30,1770:20,1769:30,1765:40,1763:30,1762:30,1767:30,1764:30,1751:20,1768:30,1753:30,1756:30,1758:30,1771:1000,13200:50,13202:100,13201:300,13206:500,13203:500,13207:500,13204:500,13205:500,13252:50,13254:500,13251:100,13253:300,13250:50,13256:50,13259:50,13258:50,13255:50,13257:50,7522:500,7521:500,7523:500,7524:500
    
    //NPC 7
    guild_vs1,53,43,5	script	Exit#1	451,{
    
    		mes "Can't handle it anymore?";
    	next;
    	menu "Later",Q_YES5,"Warp me back!",Q_YES66,"Equipment Room",Q_YES77;
    
    	Q_YES5:
    		mes "Great ! Give it a shot !";
    	close;
    
    
    	Q_YES66:
    		mes "Bye !";
    		announce strcharinfo(0)+" left the Arena !",0;
    	atcommand "@dropall";
    	atcommand "@itemreset";
    	atcommand "@cleanmap";
    	set #bonus,0;
    	dispbottom "Total: "+ #Cell_Game_Points +" Arena Points.";
    		warp "prontera",0,0;
    	
    	Q_YES77:
    		mes "Going back to Equipment Room";
    	next;
    		mes "...";
    	next;
    		mes "...";
    	next;
    		mes "...";
    	next;
    		mes "...";
    	next;
    		mes "Any minute now...";
    	next;
    		mes "...";
    	next;
    		mes "Warping..";
    	next;
    		warp "quiz_02",167,347;
    	close;
    
    	OnPCKillEvent:
    	if( strcharinfo(3) == "guild_vs1" ) {
    		#Cell_Game_Points = #Cell_Game_Points + 3;
    		dispbottom "You get 3 Arena Points. Total: "+ #Cell_Game_Points +" Arena Points.";
    		attachrid( killedrid );
    		if( #Cell_Game_Points )
    			#Cell_Game_Points = #Cell_Game_Points - 2;
    		dispbottom "You lose 2 Arena Points. Total: "+ #Cell_Game_Points +" Arena Points.";
    		sleep2 2000;
    		warp strcharinfo(3),0,0;
    		percentheal 100,100;
    			}
    	}
    
    //MAPFLAG
    quiz_02	mapflag	nocommand	99
    quiz_02	mapflag	noteleport
    quiz_02	mapflag	noreturn
    quiz_02	mapflag	nomemo
    quiz_02	mapflag	nowarp
    quiz_02	mapflag	nowarpto
    quiz_02	mapflag	nobranch
    quiz_02	mapflag	noskill
    guild_vs1	mapflag	nocommand	99
    guild_vs1	mapflag	noteleport
    guild_vs1	mapflag	noreturn
    guild_vs1	mapflag	nomemo
    guild_vs1	mapflag	nowarp
    guild_vs1	mapflag	nowarpto
    guild_vs1	mapflag	nobranch
    
    //DUPLICATE
    quiz_02,171,343,5	duplicate(Exit#1)	Exit#02	451
    
    
  8. 	atcommand "@dropall";
    	atcommand "@itemreset";
    

    If the player drop all his equipment, @itemreset is useless

     

     

     

     

     

     

    • Everytime they kill a player with 3 kills, they will get 1 point.. If they die, it will be reduced by 1. 
    • 3 Kills = 1 Point, 1 Death = -1 Point
    OnPCKillEvent:
    	if( strcharinfo(3) == "cell_game" ) {
    		#Cell_Game_Points = #Cell_Game_Points + 3;
    		dispbottom "You get 3 points. Total: "+ #Cell_Game_Points +" points.";
    		attachrid( killedrid );
    		if( #Cell_Game_Points )
    			#Cell_Game_Points = #Cell_Game_Points - 1;
    		dispbottom "You lose 1 point. Total: "+ #Cell_Game_Points +" points.";
    		warp strcharinfo(3),0,0;
    		sleep2 10;
    		percentheal 100,100;
    	}
    	end;
    

     

    >Once they clicked the Exit NPC, the Arena Points will show their total points.

    Add a dispbottom in the exit npc

    dispbottom "Total: "+ #Cell_Game_Points +" points.";
    

     

    there will be a dispbottom they Arena Points

    ~The same as previously

     

    Hey the script is working but everytime a player is killed or kills, the disp bottom is doubled so the points are also doubled why is that?

  9. I got this weird idea and looking forward for someone to help me out..

     

    I got the concept from Hunter X Hunter :))

     

    How this script works :

    • Players will register their names and it will be saved.
    • After the players registered their names, they will have a random number of them (max:128)
    • The numbers will be attached to their IGNs (ex: [30]Paulinds) or can be a fakename (ex: [30])
    • And if they got disconnected/reconnected, their names will not be back to normal (if it used as fakename)
    •  Every players that is registered will be asked once again what # will they target or can be randomized by the NPC.
    • Each of the players Target will get 3 Hunting Points while the others are 1 Hunting Point. If the player dies, their Hunting Points will be minus 3. Hunting Points can reach negative Points.
    • The first 5-?? players that will get 30 points or If the time limit ends, the most # of points will win ! (Time Limit : 15 minutes)
    • If the target/enemy dies, it will respawn in the same map after 3 seconds.
    • The mapflags are noreturn, nowarp, nosave, noteleport, nowarpto, nocommand, pvp.
    • Automated event and will only be open every 4 hours. The NPC only lasts 10 minutes. If the NPC didn't reached the minimum player count to start, it will hide again and will be open after 4 hours. (Min Player : 10)
    • Once the event end or if the first 5-?? players that earned 30 pts, they will receive a reward.. 
    • All =30 Points will receive <ITEMID><Amount>, >=29 Pts will receive <ITEMID><Amount>, >=19 Pts will receive <ITEMID><Amount>, >=9 Pts will receive <ITEMID><Amount>, >=1 Pt will receive nothing.

     

    THANK YOU

  10. Well, I meant you could use a cheap script like this one:

     

    -	script	warpback2cellgame	-1,{
    
    OnPCLogoutEvent:
    	getmapxy(.@map$,.@x,.@y,0)
    	if(.@map$ == "cell_game") 
    		setarray warpback2cellgame[0],.@x,.@y;  // Storing last player's position
    	end;
    
    OnPCLoginEvent:
    	if (warpback2cellgame[0]) {// If the player was last there this should not be 0
    		warp "cell_game",warpback2cellgame[0],warpback2cellgame[1];
    		deletearray warpback2cellgame[0],2;
    	}
    	end;
    }
    

    Haven't tested this one and haven't scripted for some time, so there may be errors on that one. The script supposedly saves the player position on logout if he's on the cell_game map and then restores his position on login.

     

    But it's a pretty tatty solution anyways.

    Will this be good? XD I'll try this and hope it will help...

  11. I don't know how to fix it, but you can always save the coordinates on disconnection in a player variable and then warping them back. You can use that as a low-end solution.

    How is that solution? Will this be helpful?

     

     

     

    did you delete your mapcache.dat?

    if no

    you need to delete mapcache.dat and save a new mapcache

    I already did that..

  12.  

    goto your map_index then place the map cell_game on top. then recache your mapcache

    I already put 'cell_game' there and even I put their map ID.. I'll try to recache.. thanks ! Does it need server restart or just @reload?

    example

     

    Celestiaj 1250
    cell_game < -- add here
    mymap1
    mymap2
    mymap3
    mymap4

    Still doesn't save its position -.-, I did everything recache, map_index, replace the grf, maps_athena.conf and mapflags.............but still it doesn't save lol, I use rAthena don't hve any idea why this can't be fixed, I use 3ceam before and I didn't got any worries lol anymore suggestions?

  13. are you able to warp to your cell_game map? if you are, you need to set mapflags on that map. if not, you may need to re cache you map data.

    I can warp there.. I already added 'cell_game' in maps_athena.conf, map_index and I already cache the map_cache.dat

     

    I already set mapflag like noreturn, nosave savepoint, nowarp, noteleport etc.. But still that error shows in my char-server.bat

  14. Got a problem with this, how to fix it? My character is always sent back to Prontera. I just wanted to make my char stay in that position in 'cell_game' map. If I DC, I was hoping to be back at same map, same position or even I log out.. Need help

     

    Unable to find map-server for 'cell_game' Sending Major City 'Prontera".
    

     

     

  15. OnPCKillEvent:
    if( strcharinfo(3) != "cell_game" ) end;
    

     

     

    @Thanna

    it's a bad habit and not suggested to use permanent global variable on this kind of settings.

    the script itself doesnt need any permanent global variable to save the data....

    Sorry but where will I put this Emistry?

  16. - script Sample -1,{
    OnInit:
    set .Delay,180;
    end;
    OnPCKillEvent:
    if( @Delay < gettimetick(2) ){
    set .@Amount,rand(1,4);
    set #CASHPOINTS,#CASHPOINTS + .@Amount;
    dispbottom "Gained "+.@Amount+" Cash Point. Total = "+#CASHPOINTS+" Cash Points.";
    if( .Delay ) set @Delay,gettimetick(2) + .Delay;
    }
    end;
    }
    

     

    Can anyone help me add something on this script?

     

    • This PvP Point Script will only work @ cell_game

     

    Thanks for Emistry for sharing this in his thread..

  17. I don't know why the map I added in my server doesn't save the character's position.. Everytime they got error or logged out, they are warped back in prontera.. However, other PvP maps doesn't have the problem, if they got error or logged out, they still stay in that position in that map... How to fix this? I just had an idea that new maps that I added doesn't have the same setup like the old ones...

×
×
  • Create New...