Jump to content

celeron0134

Members
  • Posts

    194
  • Joined

  • Last visited

Posts posted by celeron0134

  1. 11 hours ago, AnnieRuru said:

    @celeron0134

    hola ~ its done ~

    report any bug you can find ~

    http://upaste.me/7e7849543c8aa9db2

    Thanks annie.. tested and here's the error

    annieer.thumb.png.b95d58629bb1fd1a12971e5cefdec055.png

    Walls don't disappear, no Emp/crystal 

     

    //    ** New ** Now players can join an ongoing battleground ~

    maybe it can be like this?

     

    .minplayer2start = 5 // for 5v5

    .maxplayer2join = 10 // max players that can join bg_emp .. so if full it will be 10vs10,needs a feature that will make the late commers to alternately join red and blue side

     

    everything else look so fantastic ..

  2. this is what i did didnt test it yet @AnnieRuru

    //===== rAthena Script =======================================
    //= Battleground: PVP
    //===== By: ==================================================
    //= AnnieRuru
    //===== Current Version: =====================================
    //= 1.0
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= A simple battleground script:
    //= Kill players from the other team.
    //===== Additional Comments: =================================
    //= 1.0 First version, edited. [Euphy]
    //============================================================
    
    -	script	bg_pvp#control	-1,{
    OnInit:
    	.minplayer2start = 1;      // minimum players to start (ex. if 3vs3, set to 3)
    	.eventlasting    = 20*60;  // event duration before auto-reset (20 minutes * seconds)
    	setarray .rewarditem[0],   // rewards for the winning team: <item>,<amount>,...
    		7828, 10;
    	setarray .rewarditemloss[0],   // rewards for the lossing team: <item>,<amount>,...
    		7828, 5;
    	end;
    OnStart:
    	if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start )
    		end;
    
    	// create Battleground and teams
    	.red = waitingroom2bg( "guild_vs3", 13,50, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
    	copyarray .team1aid, $@arenamembers, $@arenamembersnum;
    	.team1count = .minplayer2start;
    	.blue = waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
    	copyarray .team2aid, $@arenamembers, $@arenamembersnum;
    	.team2count = .minplayer2start;
    	delwaitingroom .rednpcname$;
    	delwaitingroom .bluenpcname$;
    	setwall "guild_vs3", 19,55,12, 4, 0, "bg_pvp_town_blue";
        	setwall "guild_vs3", 80,55, 12, 4, 0, "bg_pvp_town_red";
    	bg_warp .red, "guild_vs3", 13,50;
    	bg_warp .blue, "guild_vs3", 86,50;
    	.score[1] = .score[2] = .minplayer2start;
    	bg_updatescore "guild_vs3", .score[1], .score[2];
        sleep 6000; 
        mapannounce "guild_vs3", "Rules are simple. The first one to break the opponent's emperium will get a score.", 0;
        sleep 3000;
        mapannounce "guild_vs3", "Score "+ .winningscore +" rounds to win ! ... GET READY", 0;
        sleep 2000;
        mapannounce "guild_vs3", "start!", 0;
        delwall "bg_pvp_town_red";
        delwall "bg_pvp_town_blue";
    
    
    	// match duration
    	sleep .eventlasting * 1000;
    
    	// end match, destroy Battleground, reset NPCs
    	if ( .score[1] > .score[2] ) {
    		mapannounce "guild_vs3", "- Red Team is victorious! -", bc_map;
    		callsub L_Reward, 1, 2;
    	}
    	else if ( .score[1] < .score[2] ) {
    		mapannounce "guild_vs3", "- Blue Team is victorious! -", bc_map;
    		callsub L_Reward, 2, 1;
    	}
    	else
    		mapannounce "guild_vs3", "- The match has ended in a draw! -", bc_map;
    	bg_warp .red, "prontera",152,178;
    	bg_warp .blue, "prontera",154,178;
    	bg_destroy .red;
    	bg_destroy .blue;
    	donpcevent .rednpcname$ +"::OnStart";
    	donpcevent .bluenpcname$ +"::OnStart";
    	end;
    
    L_Reward:
    	for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ )
    		getitem .rewarditem[0], .rewarditem[1], getd(".team"+ getarg(0) +"aid["+ .@i +"]" );
    	for ( .@i = 0; .@i < getd(".team"+ getarg(1) +"count"); .@i++ )
    		getitem .rewarditemloss[0], .rewarditemloss[1], getd(".team"+ getarg(1) +"aid["+ .@i +"]" );
    	return;
    
    // "OnDeath" event
    OnRedDead:  callsub L_Dead, 1;
    OnBlueDead: callsub L_Dead, 2;
    L_Dead:
    	.score[ getarg(0) ]--;
    	bg_updatescore "guild_vs3", .score[1], .score[2];
    	while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++;
    	deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;
    	setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;
    	bg_leave;
    	if ( !.score[ getarg(0) ] )
    		awake strnpcinfo(0);
    	sleep2 1250;
    	percentheal 100,100;
    	end;
    // "OnQuit" event
    OnRedQuit:  callsub L_Quit, 1;
    OnBlueQuit: callsub L_Quit, 2;
    L_Quit:
    	.score[ getarg(0) ]--;
    	bg_updatescore "guild_vs3", .score[1], .score[2];
    	percentheal 100, 100;
    	while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++;
    	deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;
    	setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;
    	if ( !.score[ getarg(0) ] )
    		awake strnpcinfo(0);
    	end;
    }
    quiz_02,247,383,5	script	Red Team#bg_pvp	733,{
    	end;
    OnInit:
    	sleep 1;
    	set getvariableofnpc( .rednpcname$, "bg_pvp#control" ), strnpcinfo(0);
    OnStart:
    	waitingroom "Red Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" );
    	end;
    }
    
    quiz_02,252,383,5	script	Blue Team#bg_pvp	734,{
    	end;
    OnInit:
    	sleep 1;
    	set getvariableofnpc( .bluenpcname$, "bg_pvp#control" ), strnpcinfo(0);
    OnStart:
    	waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" );
    	end;
    }
    
    guild_vs3	mapflag	battleground	2
    guild_vs3	mapflag	nosave	SavePoint
    guild_vs3	mapflag	nowarp
    guild_vs3	mapflag	nowarpto
    guild_vs3	mapflag	noteleport
    guild_vs3	mapflag	nomemo
    guild_vs3	mapflag	nopenalty
    guild_vs3	mapflag	nobranch
    guild_vs3	mapflag	noicewall
    guild_vs3	mapflag	hidemobhpbar
    
    -	script	 BattleBadge#2	-1,{
    OnPCKillEvent:
    if (strcharinfo(3)=="guild_vs3" && killedrid != getcharid(3))
           getitem 7828,1;
    end;
    }

     

  3. Just now, pajodex said:

    What are your base and job exp rates?

    ok got it now thanks.. at first. i was "why base and job exp rates" and i remembered a script that i haven't fixed yet .. worldboss.txt which makes the servers base and job exp rate to 0x0x0x .. i disabled it and tried the hunting mission and it worked.. 

    thankyou so much pajodex.. im still new and still learning how to script.. thankyou again here's the SSfixed.thumb.png.13eaf04ba805242124b1951ecf35415e.png

  4. 1 minute ago, pajodex said:
    
    //===== rAthena Script =======================================
    //= Hunting Missions
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.4
    //===== Compatible With: ===================================== 
    //= rAthena Project
    //===== Description: =========================================
    //= Random hunting missions.
    //= Rewards are based on quest difficulty.
    //= 
    //= NOTE: Requires SQL mob database.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.1 Small improvements and fixes.
    //= 1.2 Added party support and replaced blacklists with an
    //=     SQL query, both thanks to AnnieRuru.
    //= 1.3 Re-added a blacklist adapted for the SQL query.
    //= 1.3a Added mission reset options.
    //= 1.3b Function updates.
    //= 1.4 Check for deleted characters, thanks to AnnieRuru.
    //=     Syntax updates and style cleaning.
    //============================================================
    
    prontera,152,187,6	script	Hunting Missions	951,{
    function Chk;
    	mes "[Hunting Missions]";
    	mes "Hello, " + strcharinfo(0) + "!";
    	if (!#Mission_Delay) {
    		next;
    		mes "[Hunting Missions]";
    		mes "I can't find any records...";
    		mes "You must be new here!";
    		emotion ET_HUK;
    		next;
    		callsub Mission_Info;
    		emotion ET_GO;
    		#Mission_Delay = 1;
    		close;
    	}
    	mes rand(2) ? "Working hard, as always..." : "Not slacking, I hope...";
    	mes "Is there anything I can help";
    	mes "you with?";
    	mes " ";
    	mes "^777777~ You've completed " + callfunc("F_InsertPlural",Mission_Total,"mission",0,"^0055FF%d^777777 %s") + ". ~^000000";
    	next;
    	switch(select(
    		((!Mission0) ? " ~ New Mission::" : ": ~ Mission Status: ~ Abandon Mission") +
    		": ~ Information: ~ Mission Shop: ~ View Top Hunters: ~ ^777777Cancel^000000"
    	)) {
    	case 1:
    		mes "[Hunting Missions]";
    		if (#Mission_Count) {
    			mes "You've started a mission";
    			mes "on another character.";
    			if (!@hm_char_del_check) {  // check for deleted character
    				query_sql("SELECT 1 FROM `char_reg_num` WHERE `key` = 'Mission0' AND `char_id` IN(SELECT `char_id` FROM `char` WHERE `account_id` = " + getcharid(3) + ")", .@i);
    				if (!.@i) {
    					next;
    					mes "[Hunting Missions]";
    					mes "I can't seem to find any records";
    					mes "for that character, though...";
    					mes "One moment, please.";
    					emotion ET_SCRATCH;
    					#Mission_Count = 0;
    				}
    				@hm_char_del_check = 1;
    			}
    			close;
    		}
    		if (#Mission_Delay > gettimetick(2) && .Delay) {
    			mes "I'm afraid you'll have to wait " + callfunc("Time2Str",#Mission_Delay) + " before taking another mission.";
    			close;
    		}
    		mes "You must hunt:";
    		query_sql("SELECT ID FROM `" + .mob_db$ + "` WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 AND instr('"+.Blacklist$+"',ID) = 0 ORDER BY rand() LIMIT " + .Quests, .@mob);
    		for (.@i = 0; .@i < .Quests; .@i++) {
    			setd "Mission" + .@i, .@mob[.@i];
    			setd "Mission" + .@i +"_", 0;
    		}
    		#Mission_Count = rand(.Count[0], .Count[1]);
    		callsub Mission_Status;
    		next;
    		mes "[Hunting Missions]";
    		mes "Report back when";
    		mes "you've finished.";
    		mes "Good luck!";
    		close;
    	case 2:
    		mes "[Hunting Missions]";
    		mes "Mission status:";
    		callsub Mission_Status;
    		close;
    	case 3:
    		mes "[Hunting Missions]";
    		mes "Do you really want to";
    		mes "abandon your mission?";
    		if (.Reset < 0 && .Delay)
    			mes "Your delay time will not be reset.";
    		else if (.Reset > 0)
    			mes "It will cost " + callfunc("F_InsertComma",.Reset) + " Zeny.";
    		next;
    		switch(select(" ~ Abandon...: ~ ^777777Cancel^000000")) {
    		case 1:
    			if (.Reset > 0) {
    				if (Zeny < .Reset) {
    					mes "[Hunting Missions]";
    					mes "You don't have enough";
    					mes "Zeny to drop this mission.";
    					emotion ET_SORRY;
    					close;
    				}
    				Zeny -= .Reset;
    				emotion ET_MONEY;
    			}
    			mes "[Hunting Missions]";
    			mes "Alright, I've dropped";
    			mes "your current mission.";
    			specialeffect2 EF_STORMKICK4;
    			for (.@i = 0; .@i < .Quests; .@i++) {
    				setd "Mission"+.@i, 0;
    				setd "Mission"+.@i+"_", 0;
    			}
    			#Mission_Count = 0;
    			if (.Reset < 0 && .Delay)
    				#Mission_Delay = gettimetick(2) + (.Delay * 3600);
    			close;
    		case 2:
    			mes "[Hunting Missions]";
    			mes "I knew you were kidding!";
    			mes "Keep up the good work.";
    			emotion ET_SMILE;
    			close;
    		}
    	case 4:
    		callsub Mission_Info;
    		close;
    	case 5:
    		mes "[Hunting Missions]";
    		mes "You have ^0055FF" + #Mission_Points + "^000000 Mission Points.";
    		mes "Use them well!";
    		callshop "mission_shop",1;
    		npcshopattach "mission_shop";
    		end;
    	case 6:
    		mes "[Hunting Missions]";
    		mes "The top hunters are:";
    		query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `char_reg_num` WHERE `key` = 'Mission_Total' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 5", .@id, .@name$, .@val);
    		for (.@i = 0; .@i < 5; .@i++)
    			mes "  [Rank " + (.@i+1) + "]  " + ((.@name$[.@i] == "") ? "^777777none" : "^0055FF" + .@name$[.@i]+"^000000 : ^FF0000" + .@val[.@i] + " pt.") + "^000000";
    		close;
    	case 7:
    		mes "[Hunting Missions]";
    		mes "Nothing? Okay...";
    		emotion ET_SCRATCH;
    		close;
    	}
    	end;
    
    Mission_Status:
    	@f = 0;
    	deletearray .@j[0], getarraysize(.@j);
    	for (.@i = 0; .@i < .Quests; .@i++) {
    		.@j[.@i] = getd("Mission" + .@i);
    		.@j[.Quests] = .@j[.Quests] + strmobinfo(3,.@j[.@i]);
    		.@j[.Quests+1] = .@j[.Quests+1] + (strmobinfo(6,.@j[.@i]) / (getbattleflag("base_exp_rate") / 100) * .Modifier[0]);
    		.@j[.Quests+2] = .@j[.Quests+2] + (strmobinfo(7,.@j[.@i]) / (getbattleflag("job_exp_rate") / 100) * .Modifier[1]);
    		mes " > "+Chk(getd("Mission"+.@i+"_"),#Mission_Count) + strmobinfo(1,.@j[.@i]) + " (" + getd("Mission"+.@i+"_") + "/" + #Mission_Count + ")^000000";
    	}
    
    	// Reward formulas:
    	.@Mission_Points = 3 + (.@j[.Quests] / .Quests / 6);
    	.@Base_Exp = #Mission_Count * .@j[.Quests+1] / 5;
    	.@Job_Exp = #Mission_Count * .@j[.Quests+2] / 5;
    	.@Zeny = #Mission_Count * .Quests * .@j[.@i] * .Modifier[2];
    
    	next;
    	mes "[Hunting Missions]";
    	mes "Mission rewards:";
    	mes " > Mission Points: ^0055FF" + .@Mission_Points + "^000000";
    	mes " > Base Experience: ^0055FF" + callfunc("F_InsertComma",.@Base_Exp) + "^000000";
    	mes " > Job Experience: ^0055FF" + callfunc("F_InsertComma",.@Job_Exp) + "^000000";
    	mes " > Zeny: ^0055FF" + callfunc("F_InsertComma",.@Zeny) + "^000000";
    	if (@f) {
    		@f = 0;
    		return;
    	}
    	next;
    	mes "[Hunting Missions]";
    	mes "Oh, you're done!";
    	mes "Good work.";
    	mes "Here's your reward.";
    	emotion ET_BEST;
    	specialeffect2 EF_ANGEL;
    	specialeffect2 EF_TRUESIGHT;
    	#Mission_Points += .@Mission_Points;
    	BaseExp += .@Base_Exp;
    	JobExp += .@Job_Exp;
    	Zeny += .@Zeny;
    	for (.@i = 0; .@i < .Quests; .@i++) {
    		setd "Mission" + .@i, 0;
    		setd "Mission" + .@i+"_", 0;
    	}
    	#Mission_Count = 0;
    	if (.Delay)
    		#Mission_Delay = gettimetick(2) + (.Delay * 3600);
    	Mission_Total++;
    	if (Mission_Total == 1)
    		query_sql("INSERT INTO `char_reg_num` (`char_id`,`key`,`index`,`value`) VALUES (" + getcharid(0) + ",'Mission_Total','0',1)");
    	else
    		query_sql("UPDATE `char_reg_num` SET `value` = " + Mission_Total + " WHERE `char_id` = " + getcharid(0) + " AND `key` = 'Mission_Total'");
    	close;
    
    Mission_Info:
    	mes "[Hunting Missions]";
    	mes "If you so choose, I can assign";
    	mes "you a random hunting quest.";
    	mes "Some are easier than others, but";
    	mes "the rewards increase with difficulty.";
    	next;
    	mes "[Hunting Missions]";
    	mes "Missions points are shared";
    	mes "amongst all your characters.";
    	if (.Delay)
    		mes "Delay time is, too.";
    	mes "You can't take missions on";
    	mes "multiple characters at once.";
    	next;
    	mes "[Hunting Missions]";
    	mes "You can start a quest";
    	mes (.Delay ? "every " + ((.Delay == 1) ? "hour." : .Delay + " hours.") : "whenever you want.");
    	mes "That's everything~";
    	return;
    
    function Chk {
    	if (getarg(0) < getarg(1)) {
    		@f = 1;
    		return "^FF0000";
    	} else
    		return "^00FF00";
    }
    
    OnBuyItem:
    	@cost = 0;
    	for (.@i = 0; .@i < getarraysize(@bought_nameid); .@i++)
    		for (.@j = 0; .@j < getarraysize(.Shop); .@j += 2)
    			if (@bought_nameid[.@i] == .Shop[.@j]) {
    				set @cost, @cost + (.Shop[.@j+1] * @bought_quantity[.@i]);
    				break;
    			}
    	mes "[Hunting Missions]";
    	if (@cost > #Mission_Points)
    		mes "You don't have enough Mission Points.";
    	else {
    		for (.@i = 0; .@i < getarraysize(@bought_nameid); .@i++) {
    			getitem @bought_nameid[.@i], @bought_quantity[.@i];
    			dispbottom "Purchased " + @bought_quantity[.@i] + "x " + getitemname(@bought_nameid[.@i]) + ".";
    		}
    		#Mission_Points -= @cost;
    		mes "Deal completed.";
    		emotion ET_MONEY;
    	}
    	@cost = 0;
    	deletearray @bought_nameid[0], getarraysize(@bought_nameid);
    	deletearray @bought_quantity[0], getarraysize(@bought_quantity);
    	close;
    
    OnNPCKillEvent:
    	if (!getcharid(1) || !.Party) {
    		if (!#Mission_Count || !Mission0) end;
    		for (.@i = 0; .@i < .Quests; .@i++) {
    			if (strmobinfo(1,killedrid) == strmobinfo(1,getd("Mission" + .@i))) {
    				if (getd("Mission" + .@i + "_") < #Mission_Count) {
    					dispbottom "[Hunting Mission] Killed " + (set(getd("Mission" + .@i + "_"),getd("Mission" + .@i + "_") + 1)) +
    					           " of " + #Mission_Count + " " + strmobinfo(1,killedrid) + ".";
    					end;
    				}
    			}
    		}
    	} else if (.Party) {
    		.@mob = killedrid;
    		getmapxy(.@map1$,.@x1,.@y1,UNITTYPE_PC);
    		getpartymember getcharid(1),1;
    		getpartymember getcharid(1),2;
    		for (.@i = 0; .@i < $@partymembercount; .@i++) {
    			if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) {
    				set .@Mission_Count, getvar(#Mission_Count, $@partymembercid[.@i]);
    				set .@Mission0, getvar(Mission0, $@partymembercid[.@i]);
    				set .@HP, readparam(HP, $@partymembercid[.@i]);
    
    				if (.@Mission_Count && .@Mission0 && .@HP > 0) {
    					getmapxy(.@map2$,.@x2,.@y2,UNITTYPE_PC);
    					if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) {
    						for (.@j = 0; .@j < .Quests; .@j++) {
    							.@my_mob_id = getvar( getd("Mission"+.@j),$@partymembercid[.@i] );
    							.@my_count = getvar( getd("Mission"+.@j+"_"), $@partymembercid[.@i] );
    							if (strmobinfo(1,.@mob) == strmobinfo(1,.@my_mob_id)) {
    								if (.@my_count < .@Mission_Count) {
    									setd "Mission"+.@j+"_", (.@my_count+1), $@partymembercid[.@i];
    									dispbottom "[Hunting Mission] Killed " + (.@my_count+1) + " of " + .@Mission_Count + " " + strmobinfo(1,.@mob) + ".", 0x777777, $@partymembercid[.@i];
    									break;
    								}
    							}
    						}
    					}
    				}
    			}
    		}
    	}
    	end;
    
    OnInit:
    	.Delay = 12;            // Quest delay, in hours (0 to disable).
    	.Quests = 4;            // Number of subquests per mission (increases rewards).
    	.Party = 3;             // Party options: 0 (exclude party kills), 1 (include party kills), 2 (same map only), 3 (screen area only)
    	.Reset = -1;            // Reset options: -1 (abandoning mission sets delay time), 0 (no delay time), [Zeny] (cost to abandon mission, no delay time)
    	setarray .Count[0],     // Min and max monsters per subquest (increases rewards).
    		40,70;
    	setarray .Modifier[0],  // Multipliers for Base Exp, Job Exp, and Zeny rewards.
    		getbattleflag("base_exp_rate")/100,getbattleflag("job_exp_rate")/100,60;
    	.mob_db$ =              // Table name of SQL mob database
    		(checkre(0))?"mob_db_re":"mob_db";
    	setarray .Shop[0],      // Reward items: <ID>,<point cost> (about 10~20 points per hunt).
    		512,1,513,1,514,1,538,5,539,5,558,10,561,10;
    	.Blacklist$ =           // Blacklisted mob IDs.
    		"1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+
    		"1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+
    		"1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+
    		"1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+
    		"1975,1976,1977,1978,1979";
    
    	npcshopdelitem "mission_shop",512;
    	for (.@i = 0; .@i < getarraysize(.Shop); .@i += 2)
    		npcshopadditem "mission_shop", .Shop[.@i], .Shop[.@i+1];
    	end;
    }
    -	shop	mission_shop	-1,512:-1

    Try use that

    same error =(

  5. 6 minutes ago, pajodex said:

    You don't need to enable use of sql_db for it to work. Just add the mob_db.sql on your sql database and it should work.

    tried importing mob_db.sql and mob_db_re.sqlerror.png.93cf6897e7dd5cb304595e1ae490f22b.png

    [Error]: script:op_2num: division by zero detected op=C_DIV i1=148700 i2=0
    [Debug]: Source (NPC): Hunting Missions at prontera (145,187)

  6. 1 hour ago, pajodex said:

    check your: trunk/npc/custom/quests/hunting_missions.txt

    thanks pajodex but i can't understand the meaning of this //= NOTE: Requires SQL mob database.

    i tried Downloading mob_db.sql/mob_db_pre.sql and enabled use sql_db to yes on inter_athena.conf

    then when i run the server.. it spams me with error messages.. i tried and search on the forums.. maybe my keywords are not correct

    - on hunting mission npc - when i select new mission.. i got an error script: op2num division by zero detected

  7. 22 hours ago, pajodex said:

    I don't know why you want to make a script instead of manually doing /lb command.

    but try this: (Not tested)

    https://github.com/pajodex/ScriptCollections/blob/master/gmannouncer.txt

    // GM Announcer
    // By pajodex
    -	script	GMAnnouncer	-1,{
    OnResetAnnounce:
    OnAtCmd:
    	if(select("Announce:Nothing") == 2 ) close;
    		mes "What messaage to announce?";
    		input .@announce$;
    		next;
    		mes "Announce: "+.@announce$+" ?";
    		if(select("Yes:No") == 2) callsub OnResetAnnounce;
    			.announce$ = .@announce$;
    			mes "Announce Interval? (in minutes)";
    			mes "- How many times will the broadcast be repeated?";
    			input .@interval;
    			next;
    			mes "Are you sure broadcast interval will be every "+.@interval+" mins?";
    			if(select("Yes:No") == 2) callsub OnResetAnnounce;
    				.interval = .@interval;
    				donpcevent strnpcinfo(3)+"::OnAnnounce";
    				mes "Done!";
    				close;
    			
    OnAnnounce:
    	announce .announce$, 0;
    	initnpctimer;
    	end;
    	
    OnTimer60000:
    	.timer++;
    	if(.interval == .timer) {
    		announce .announce$, 0;
    		.timer = 0;
    		end;
    	}
    	setnpctimer 0;
    	end;
    	
    OnInit:
    	.interval = 0;
    	.announce$ = "";
    	.timer = 0;
    	bindatcmd "gmbroadcast",strnpcinfo(3)+"::OnAtCmd",0,60;
    	end;
    }

    i think its working.. i fixed some typos tho.. "+.@interval+" and the OnTimer60000:

    thank you again pajodex for the fast replies and for helping us newbies thanks alot more power

  8. Unfortunately i can't make other hunting mission to work..

    So maybe you guys can help me out..

    i need a hunting mission script that

    1. you can only do the quest once a day for example

      on Easy Menu - poring,poporing,drops,marin(you can do all those quest once a day per account) - (and you must finish first the quest before taking another quest)

    so the players wont get all the quest at once(one at a time)

    2.if you already finished killing poring.. it will say you already did this quest at "--:--" this time come back at 24hours

    3.There would be 3 menus for this "Easy","Normal","Hard"

                   easy = 100kills / normal = 250kills / Hard = 1000kills

    5. players can party for faster kills

    6 Rewards for easy = TCG x 1 normal TCG x 2 Hard TCG x 3

    7 "Top 10 Hunters" - Rankings for the Top Quest Hunters ( Name With a total of (the number of how many quest the player has finished) points

    8. players can party for faster kills

    9. Daily Rewards for the top 10 hunters - Top 1 = 10 TCG top 2 9tcg --- top 10 = 1tcg

    10. Announcer if a player took a spot from the top 10.. ( Name has been promoted to top 2 Hunter)

    thankyou so much rathena community

     

     

     

  9. i need a NPC script that

    *Only GMs can access the NPC*

    *Menu (Announce,Nothing)

    *onAnnounce = Broadcast the typed Message every 30 mins*(configurable)

    *onAnnounce(Again) = removed previous Annouce and Broadcast the new announced message

    thanks thats it for now..

     

     

     

  10. 17 hours ago, pajodex said:

    Fix the Reset function.. (i killed 1 MVP  then it shows on the rankings "[1] GM - blabla ~ 1 kills") then i used reset function.. it turned to "~ 0 kills"

    and after i killed an MVP again.. instead of showing "~ 1 kills" it showed " ~ 2 kills " it continued the MVP kills after the reset

  11. On 4/23/2014 at 12:46 AM, Capuche said:

    you take this script from a previous request ; the guy wanted to reset the points when the player gets more than 200 points

    
    prontera,162,152,4	script	MVP Ladder	619,{
    	query_sql( "DELETE FROM `mvp_ranking` WHERE `name` NOT IN ( SELECT `name` FROM `char` )" );
    	set .@size, query_sql( "select name, points from mvp_ranking where points > 0 order by points desc limit "+ .top, .@name$, .@points );
    	mes "[^FF0000MvP ^0000FFRank ^996600Top ^FF0000" + .top +"^000000]";
    	for (set .@c, 0; .@c < .@size; set .@c, .@c + 1)
    		mes "Top ^FF0000" +(.@c + 1) +"^000000 ^0000FF" + .@name$[.@c] +"^000000 with ^FF0000" + .@points[.@c] +"^000000 MvP killed.";
    	close;
    
    OnInit: // Script Configuration
    	set .a, 1; // Broadcast who killed the MvP and wich MvP and wick Map [0 Off - 1 On]
    	set .top, 10; // Max. Top Rank (Hihgly recommended between 5~10, more maybe bug the server (limited variables)
    	waitingroom "MvP Rank",0;
    	end;
    
    OnNPCKillEvent: // Script execution
    	if ( getmonsterinfo( killedrid,MOB_MODE ) & 0x0020  == 0 ) end;// not an mvp
    	if (.a) // If announce On
    		announce "Player [" +strcharinfo(0) +"] had killed MVP [" +getmonsterinfo(killedrid,0) +"] in [" +strcharinfo(3) +"]",bc_blue|bc_all;
    	query_sql "insert into `mvp_ranking` value ( "+ getcharid(0) +", '"+ escape_sql( strcharinfo(0) ) +"', 1 ) on duplicate key update `points` = `points` + 1";
    	end;
    }

    The NPC reads all mobs poring - MVP as MVP.. and announces all mobs you kill

    kindly help me

     

  12. //===== rAthena Script =======================================
    //= Battleground: PVP
    //===== By: ==================================================
    //= AnnieRuru
    //===== Current Version: =====================================
    //= 1.0
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= A simple battleground script:
    //= Kill players from the other team.
    //===== Additional Comments: =================================
    //= 1.0 First version, edited. [Euphy]
    //============================================================
    
    -	script	bg_pvp#control	-1,{
    OnInit:
    	.minplayer2start = 5;      // minimum players to start (ex. if 3vs3, set to 3)
    	.eventlasting    = 20*60;  // event duration before auto-reset (20 minutes * seconds)
    	setarray .rewarditem[0],   // rewards for the winning team: <item>,<amount>,...
    		7828, 10;
    	setarray .rewarditemloss[0],   // rewards for the lossing team: <item>,<amount>,...
    		7828, 5;
    	end;
    OnStart:
    	if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start )
    		end;
    
    	// create Battleground and teams
    	.red = waitingroom2bg( "guild_vs3", 13,50, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
    	copyarray .team1aid, $@arenamembers, $@arenamembersnum;
    	.team1count = .minplayer2start;
    	.blue = waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
    	copyarray .team2aid, $@arenamembers, $@arenamembersnum;
    	.team2count = .minplayer2start;
    	delwaitingroom .rednpcname$;
    	delwaitingroom .bluenpcname$;
    	bg_warp .red, "guild_vs3", 13,50;
    	bg_warp .blue, "guild_vs3", 86,50;
    	.score[1] = .score[2] = .minplayer2start;
    	bg_updatescore "guild_vs3", .score[1], .score[2];
    
    	// match duration
    	sleep .eventlasting * 1000;
    
    	// end match, destroy Battleground, reset NPCs
    	if ( .score[1] > .score[2] ) {
    		mapannounce "guild_vs3", "- Red Team is victorious! -", bc_map;
    		callsub L_Reward, 1, 2;
    	}
    	else if ( .score[1] < .score[2] ) {
    		mapannounce "guild_vs3", "- Blue Team is victorious! -", bc_map;
    		callsub L_Reward, 2, 1;
    	}
    	else
    		mapannounce "guild_vs3", "- The match has ended in a draw! -", bc_map;
    	bg_warp .red, "prontera",152,178;
    	bg_warp .blue, "prontera",154,178;
    	bg_destroy .red;
    	bg_destroy .blue;
    	donpcevent .rednpcname$ +"::OnStart";
    	donpcevent .bluenpcname$ +"::OnStart";
    	end;
    
    L_Reward:
    	for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ )
    		getitem .rewarditem[0], .rewarditem[1], getd(".team"+ getarg(0) +"aid["+ .@i +"]" );
    	for ( .@i = 0; .@i < getd(".team"+ getarg(1) +"count"); .@i++ )
    		getitem .rewarditemloss[0], .rewarditemloss[1], getd(".team"+ getarg(1) +"aid["+ .@i +"]" );
    	return;
    
    // "OnDeath" event
    OnRedDead:  callsub L_Dead, 1;
    OnBlueDead: callsub L_Dead, 2;
    L_Dead:
    	.score[ getarg(0) ]--;
    	bg_updatescore "guild_vs3", .score[1], .score[2];
    	while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++;
    	deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;
    	setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;
    	bg_leave;
    	if ( !.score[ getarg(0) ] )
    		awake strnpcinfo(0);
    	sleep2 1250;
    	percentheal 100,100;
    	end;
    
    // "OnQuit" event
    OnRedQuit:  callsub L_Quit, 1;
    OnBlueQuit: callsub L_Quit, 2;
    L_Quit:
    	.score[ getarg(0) ]--;
    	bg_updatescore "guild_vs3", .score[1], .score[2];
    	percentheal 100, 100;
    	while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++;
    	deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;
    	setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;
    	if ( !.score[ getarg(0) ] )
    		awake strnpcinfo(0);
    	end;
    }
    
    quiz_02,247,383,5	script	Red Team#bg_pvp	733,{
    	end;
    OnInit:
    	sleep 1;
    	set getvariableofnpc( .rednpcname$, "bg_pvp#control" ), strnpcinfo(0);
    OnStart:
    	waitingroom "Red Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" );
    	end;
    }
    
    quiz_02,252,383,5	script	Blue Team#bg_pvp	734,{
    	end;
    OnInit:
    	sleep 1;
    	set getvariableofnpc( .bluenpcname$, "bg_pvp#control" ), strnpcinfo(0);
    OnStart:
    	waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" );
    	end;
    }
    
    guild_vs3	mapflag	battleground	2
    guild_vs3	mapflag	nosave	SavePoint
    guild_vs3	mapflag	nowarp
    guild_vs3	mapflag	nowarpto
    guild_vs3	mapflag	noteleport
    guild_vs3	mapflag	nomemo
    guild_vs3	mapflag	nopenalty
    guild_vs3	mapflag	nobranch
    guild_vs3	mapflag	noicewall
    guild_vs3	mapflag	hidemobhpbar

    Can you add Countdown timer before it begin..  5 4 3 2 1 Start!! like that and a setwall so it blocks players before the countdown

    after the count down disable walls Thankyou verry much

    if i posted it on the wrong section letme know thanks

  13. i don't know if this is possible .. i dont even know how to do it.. but maybe you guys can.. 

     

    Rebirth System:

    upon reaching level 99 job 70.. you will have an option to rebirth again to Novice High lvl 1 and you will gain 10 hmm lets say Item ID# 7729 (Rok_Star_Badge)

    Rebirth has no limit you can rebirth as long as you can.. but on the 5th rebirth.. you're sprite will change to 3rd job sprite with transcended only features 

     

    thanks

  14. Can you give me a ranking script for bg_emp.txt and bg_pvp.txt found at npc/custom/battleground

    bg_emp rankings Top 10

    Rankings on BG emp is based on kills and Empbreaks

    Killing enemy player = 1 point while breaking emperium will be 10 points

    also add when killing the enemy you will gain Valor Badge    Item ID# 7829 x1

    Breaking emperium you will receive  Valor Badge    Item ID# 7829 x10pcs

     

    bg.pvp

    rankings on bg_pvp is based on Team kills

    The team that will win will gain 15 points and Bravery Badge    Item ID# 7828 x15 

    The loosing Team will gain 5points and  Bravery Badge    Item ID# 7828 x5 

     

     

    bg_emp_rankings

    BGEpoints,BGEshop

    bg_pvp_rankings

    BGE

     

  15. -	script	bg_emp#control	-1,{
    OnInit:
    	.minplayer2start = 1; // minimum player to start
    	.winningscore = 2; // final score to win
    	.eventlasting = 20 * 60; // abort the system if there's no progress, 20 mins * seconds
    	setarray .rewarditem, 673, 5; // reward to the winning team
    	end;
    OnStart:
    	if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end;
    	.red = waitingroom2bg( "bat_a01", 171,346, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
    	copyarray .team1aid, $@arenamembers, $@arenamembersnum;
    	.team1count = .minplayer2start;
    	.blue = waitingroom2bg( "bat_a01", 162,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
    	copyarray .team2aid, $@arenamembers, $@arenamembersnum;
    	.team2count = .minplayer2start;
    	delwaitingroom .rednpcname$;
    	delwaitingroom .bluenpcname$;
    	disablenpc .rednpcname$;
    	disablenpc .bluenpcname$;
    	bg_warp .red, "bat_a01", 171,346;
    	bg_warp .blue, "bat_a01", 162,50;
    	setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue";
    	setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
    	bg_updatescore "bat_a01", 0, 0;
    	sleep 6000 * !.skip;
    	mapannounce "bat_a01", "Rules are simple. The first one to break the opponent's emperium will get a score.", 0;
    	sleep 3000 * !.skip;
    	mapannounce "bat_a01", "Score "+ .winningscore +" rounds to win ! ... GET READY", 0;
    	sleep 2000 * !.skip;
    	while (1) {
    		for ( .@i = 5; .@i > 0; .@i-- ) {
    			mapannounce "bat_a01", "["+ .@i +"]", 0;
    			sleep 1000 * !.skip;
    		}
    		if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 )
    			mapannounce "bat_a01", "Final Round start!", 0;
    		else
    			mapannounce "bat_a01", "Round "+ .round++ +" start!", 0;
    		bg_monster .red,"bat_a01",171,346, "--ja--",1915, strnpcinfo(3)+"::OnRedDown";
    		bg_monster .blue,"bat_a01",162,50, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown";
    		delwall "bg_emp_town_red";
    		delwall "bg_emp_town_blue";
    		sleep .eventlasting * 1000 * !.skip;
    		bg_updatescore "bat_a01", .score[1], .score[2];
    		killmonster "bat_a01", strnpcinfo(3)+"::OnRedDown";
    		killmonster "bat_a01", strnpcinfo(3)+"::OnBlueDown";
    		if ( getstrlen( .empkiller$ ) )
    			mapannounce "bat_a01", .empkiller$ +" has Destroy "+( ( .winside == 1 )? "Blue" : "Red" )+"'s side Emperium. "+( ( .winside == 1 )? "Red" : "Blue" )+" team score a point !", 0;
    		if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break;
    		sleep 5000 * !.skip;
    		bg_warp .red, "bat_a01", 171,346;
    		bg_warp .blue, "bat_a01", 162,50;
    		setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue";
    		setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
    		sleep 1000 * !.skip;
    		.winside = 0;
    	}
    	if ( .winside ) {
    		mapannounce "bat_a01", " "+ ( ( .winside == 1 )? "Red" : "Blue" ) +" side wins !", 0;
    		for ( .@i = 0; .@i < getd(".team"+ .winside +"count"); .@i++ )
    			getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" );
    	} else
    		mapannounce "bat_a01", "Time Out. Aborting the match.", 0;
    	sleep 5000;
    	bg_warp .red, "prontera", 155,182;
    	bg_warp .blue, "prontera", 158,182;
    	bg_destroy .red;
    	bg_destroy .blue;
    	delwall "bg_emp_town_red";
    	delwall "bg_emp_town_blue";
    	deletearray .team1aid;
    	deletearray .team2aid;
    	.round = .winside = .skip = .score[1] = .score[2] = .team1count = .team2count = 0;
    	enablenpc .rednpcname$;
    	enablenpc .bluenpcname$;
    	donpcevent .rednpcname$ +"::OnStart";
    	donpcevent .bluenpcname$ +"::OnStart";
    	end;
    OnRedDown: callsub L_EmpDown, 2;
    OnBlueDown: callsub L_EmpDown, 1;
    L_EmpDown:
    	.empkiller$ = strcharinfo(0);
    	.winside = getarg(0);
    	.score[ .winside ]++;
    	awake strnpcinfo(0);
    	end;
    OnRedDead: callsub L_dead, 2;
    OnBlueDead: callsub L_dead, 1;
    L_dead:
    	for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ )
    		getitem 608, 1, getd(".team"+ getarg(0) +"aid["+ .@i +"]" ); // give a ygg leaf here
    	sleep2 1250;
    	percentheal 100,100;
    	end;
    OnRedQuit: callsub L_quit, 1, "Red", 2;
    OnBlueQuit: callsub L_quit, 2, "Blue", 1;
    L_quit:
    	percentheal 100, 100;
    	while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++;
    	deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;
    	setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;
    	if ( getd(".team"+ getarg(0) +"count") ) end;
    	mapannounce "bat_a01", "All "+ getarg(1) +" team members has Quit !", 0, 0xff3333; // purposely use different color
    	.score[ getarg(2) ] = .winningscore;
    	.winside = getarg(2);
    	.skip = 1;
    	awake strnpcinfo(0);
    	end;
    }
    
    prontera,155,182,5	script	Red side#bg_emp	100,{
    	end;
    OnInit:
    	sleep 1;
    	set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0);
    OnStart:
    	waitingroom "Red side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, strnpcinfo(0)+"::OnJoin", 1;
    	end;
    OnJoin:
    	announce "The Red side has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User", 0;
    	donpcevent "bg_emp#control::OnStart";
    	end;
    }
    
    prontera,158,182,5	script	Blue side#bg_emp	100,{
    	end;
    OnInit:
    	sleep 1;
    	set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0);
    OnStart:
    	waitingroom "Blue side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, strnpcinfo(0)+"::OnJoin", 1;
    	end;
    OnJoin:
    	announce "The Blue side has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User", 0;
    	donpcevent "bg_emp#control::OnStart";
    	end;
    }
    
    bat_a01	mapflag	battleground	2
    bat_a01	mapflag	nosave	SavePoint
    bat_a01	mapflag	nowarp
    bat_a01	mapflag	nowarpto
    bat_a01	mapflag	noteleport
    bat_a01	mapflag	nomemo
    bat_a01	mapflag	nopenalty
    bat_a01	mapflag	nobranch
    bat_a01	mapflag	noicewall

    hi annie.. can you please help me about this script.. i just want the rednpc and blue npc waiting rooms not to disappear after warping the player on ba_a01.. the purpose is when the BG emp has started.. other players can still join the event until the BG has fisnished .. or is there any other way of doing it? so players can still join the BG emp and also a for the players inside the BG emp that logout should have like a 5min delay to enter again thankyou so much if you have time to spare thanks

     

     

    @edit.

    also the script is working fine at 1st.. but when i reloadnpc again and i entered the waiting rooms.. at rednpc2/2 and blueNPC 2/2 the npc disappeared but not warping the players on bat_a01

     

  16. id like to request a script that summons 20 treasure chests that will scatter around the map for the players to find after killing a custom MVP.. thanks

    like 

    onMVPkilled

     summon 1324

    summon 1356

    summon 1361 etc.. on random coordinates where the MVP was killed example if the MVP killed in prontera 20 chests will scatter around prontera for the people to find thanks

  17. 51 minutes ago, hendra814 said:

    sorry have some typo and error. here already fix the script

    
    prontera,155,176,4	script	Map Warper	512,{
    
    mes "Hello, ^0000FF"+strcharinfo(0)+"^000000,";
    mes "Where do you want to go?";
    next;
        switch(select("Prontera["+getmapusers("prontera")+"]:izlude["+getmapusers("izlude")+"]:aldebaran["+getmapusers("aldebaran")+"]")){
    Case 1:
        mes "Are you sure?";    
        next;
        switch(select("Yes:No")){
        Case 1:
            warp "prontera", 0, 0;
            close;
        Case 2:
        mes "ok bye";
        close;
    	}
    Case 2:
        mes "Are you sure?";    
        next;
        switch(select("Yes:No")){
        Case 1:
            warp "izlude", 0, 0;
            close;
        Case 2:
        mes "ok bye";
        close;
    	}
    Case 3:
        mes "Are you sure?";    
        next;
        switch(select("Yes:No")){
        Case 1:
            warp "aldebaran", 0, 0;
            close;
        Case 2:
        mes "ok bye";
        close;
    	}
    }
    }
     

    here my ss

      Hide contents

    screenrAthena032.thumb.jpg.c39a83c6e18c8ac8a5fb190f92e5f9a4.jpg

     

    ok thankyou so much it worked.. you have so many npcs .. do you own a private server or something?

     

  18. 55 minutes ago, hendra814 said:

    here, but not i'm not test this script

    
    prontera,164,173,3    script    Map Warper    512,{
    
    mes "Hello, ^0000FF"+strcharinfo(0)+"^000000,";
    mes "Where do you want to go?";
    next;
        switch(select("Prontera["+getmapusers("prontera")+"]:izlude["+getmapusers("izlude")+"]:aldebaran["+getmapusers("aldebaran")+"]")){
    Case 1:
        mes "Are you sure?";    
        next;
        switch(select("Yes:No")){
        Case 1:
            warp "prontera", 0, 0;
            close;
        Case 2:
        mes "ok bye";
        close;
    	}
    Case 2:
        mes "Are you sure?";    
        next;
        switch(select("Yes:No")){
        Case 1:
            warp "izlude", 0, 0;
            close;
        Case 2:
        mes "ok bye";
        close;
    	}
    Case 1:
        mes "Are you sure?";    
        next;
        switch(select("Yes:No")){
        Case 1:
            warp "aldebaran", 0, 0;
            close;
        Case 2:
        mes "ok bye";
        close;
    	}
    }
    }

     

    it shows -1 and doesnt count players on the map.. i used moc_pryd06 tho.. changed it to switch(select("moc_pryd06["+getmapusers("moc_pryd06")+"]

  19. Hi good day rathena community .. can you kindly help me with my script? i want to have a player count on Menu selection..

    prontera,164,173,3    script    Map Warper    512,{

    mes "Hello, ^0000FF"+strcharinfo(0)+"^000000,";
    mes "Where do you want to go?";
    next;
        switch(select("prontera( getmapusers) :izlude( getmapusers):aldebaran( getmapusers)")){

    Case 1:
        mes "Are you sure?";    
        next;
        switch(select("Yes:No")){
        Case 1:
            warp "prontera", 0, 0;
            close;
        Case 2:
        mes "ok bye";
        close;
    }


        
    Case 2:
            goto Atroce;

×
×
  • Create New...