//===== rAthena Script =======================================
//= Battleground: PVP
//===== By: ==================================================
//= AnnieRuru
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= rAthena Project
//===== Description: =========================================
//= A simple battleground script:
//= Kill players from the other team.
//===== Additional Comments: =================================
//= 1.0 First version, edited. [Euphy]
//= 1.1 Use up to date battleground script commands [AnnieRuru]
//============================================================
- script bg_pvp#control -1,{
OnInit:
.minplayer2start = 2; // 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>,...
501, 10;
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$ );
.blue = waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
delwaitingroom .rednpcname$;
delwaitingroom .bluenpcname$;
bg_warp .red, "guild_vs3", 13,50;
bg_warp .blue, "guild_vs3", 86,50;
.red_score = .blue_score = .minplayer2start;
bg_updatescore "guild_vs3", .red_score, .blue_score;
// match duration
sleep .eventlasting * 1000;
// end match, destroy Battleground, reset NPCs
if ( .red_score > .blue_score ) {
mapannounce "guild_vs3", "- Red Team is victorious! -", bc_map;
callsub L_Reward, .red;
}
else if ( .blue_score > .red_score ) {
mapannounce "guild_vs3", "- Blue Team is victorious! -", bc_map;
callsub L_Reward, .blue;
}
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:
bg_get_data getarg(0), 1;
for ( .@i = 0; .@i < $@arenamemberscount; ++.@i )
getitem .rewarditem[0], .rewarditem[1], $@arenamembers[.@i];
return;
// "OnDeath" event
OnRedDead: callsub L_Dead, .red_score;
OnBlueDead: callsub L_Dead, .blue_score;
L_Dead:
set getarg(0), getarg(0) -1;
bg_updatescore "guild_vs3", .red_score, .blue_score;
bg_leave;
if ( !getarg(0) )
awake strnpcinfo(0);
sleep2 1250;
percentheal 100,100;
end;
// "OnQuit" event
OnRedQuit: callsub L_Quit, .red_score;
OnBlueQuit: callsub L_Quit, .blue_score;
L_Quit:
set getarg(0), getarg(0) -1;
bg_updatescore "guild_vs3", .red_score, .blue_score;
percentheal 100, 100;
if ( !getarg(0) )
awake strnpcinfo(0);
end;
}
prontera,152,178,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;
}
prontera,154,178,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
good evening gent and ladies....... i have a script above that was created i think by euphy in collaboration with ms. annie or is it ms. annieruru's work only..
anyway the script above is set to have a starting score of 2 only or the amount of the people needed to activate the event... now what i would like for the script is that both team starts with 99 score.. then within 5 minutes the side with most kills wins the game! like when i kill someone from the other side, he/she just respawn to a part of the map and then can participate to the battle again.. and then after 5 mins both side gets warped out and whoever has the most kills from either side wins it... also..
i'm using this script where the leader turns into grey and the members into red and i think if you kill the leader you get more points while if you kill the member you only get 1 point.. however i'm getting this kind of error and i can guess 100% that its probably because i'm using 3ceam... ( kindly see the image below/uploaded below )thank you so much everyone.. i hope you can help me.. thx in advance ...
P.S .... Also if possible.. i would like the to add a mapannounce function that if you join the red side... it would tell how many are currently in the waitingroom
ex. "Fairy side has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] Users.",0; " or something like that!!
Edited by AnnieRuru use [spoiler]+[code] tag when posting script > 10 lines
good evening gent and ladies....... i have a script above that was created i think by euphy in collaboration with ms. annie or is it ms. annieruru's work only..
anyway the script above is set to have a starting score of 2 only or the amount of the people needed to activate the event... now what i would like for the script is that both team starts with 99 score.. then within 5 minutes the side with most kills wins the game! like when i kill someone from the other side, he/she just respawn to a part of the map and then can participate to the battle again.. and then after 5 mins both side gets warped out and whoever has the most kills from either side wins it... also..
i'm using this script where the leader turns into grey and the members into red and i think if you kill the leader you get more points while if you kill the member you only get 1 point.. however i'm getting this kind of error and i can guess 100% that its probably because i'm using 3ceam... ( kindly see the image below/uploaded below ) thank you so much everyone.. i hope you can help me.. thx in advance ...
P.S .... Also if possible.. i would like the to add a mapannounce function that if you join the red side... it would tell how many are currently in the waitingroom
ex. "Fairy side has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] Users.",0; " or something like that!!
use [spoiler]+[code] tag when posting script > 10 lines
Share this post
Link to post
Share on other sites