pa help naman po about sa battleground. kasi po nung pinalitan ko ng TCG ung reward nung CTF battle Ground wala napong nalabas na reward..
thanks in advance....
// (c) 2008 - 2012 eAmod Project; Andres Garbanzo / Zephyrus
//
// -
[email protected]
// - MSN
[email protected]
// - Skype: Zephyrus_cr
// - Site: http://dev.terra-gaming.com
//
// This file is NOT public - you are not allowed to distribute it.
// Authorized Server List : http://dev.terra-gaming.com/index.php?/topic/72-authorized-eamod-servers/
// eAmod is a non Free, extended version of eAthena Ragnarok Private Server.
// ==============================================================================
// BattleGround System - Flavius Capture the Flag
// ==============================================================================
// Battleground Flags
// *********************************************************************
bat_b02,328,150,0 script Alpha Crystal::Team1_Flag 1914,1,1,{
end;
OnTouch:
if( $@BG_Status != 1 || getvariableofnpc(.BG_Arena$,"BG_Queue_Join") != "Flavius_CTF" || HP < 1 )
end;
if( getcharid(4) == $@BG_Team2 && .Flag_Status < 2 )
{ // Flag Captured
set .Flag_Status, 2; // Taken
set .Flag_Carrier, getcharid(0);
sc_end SC_HIDING;
sc_end SC_CLOAKING;
sc_end SC_CHASEWALK;
// Renewal invisibility
sc_end SC_CLOAKINGEXCEED;
sc_end SC_CAMOUFLAGE;
sc_end SC__INVISIBILITY;
pcblock 1,1; // Block Skills/Items
mapannounce "bat_b02","Alpha Crystal Taken by [ " + strcharinfo(0) + " ]",1,bg_get_data($@BG_Team1,4);
bg_rankpoints "ctf_taken",1;
disablenpc "Team1_Flag";
addtimer 2000, "Flavius_CTF::OnAlphaFlash";
stopnpctimer;
}
else if( getcharid(4) == $@BG_Team1 )
{
if( .Flag_Status == 0 && getvariableofnpc(.Flag_Carrier,"Team2_Flag") == getcharid(0) )
{
set getvariableofnpc(.Flag_Carrier,"Team2_Flag"),0;
set .Flag_Carrier, 0;
mapannounce "bat_b02","Omega Crystal Captured by [ " + strcharinfo(0) + " ]!!",1,bg_get_data($@BG_Team2,4);
bg_rankpoints "ctf_captured",1;
pcblock 1,0; // UnBlock Skills/Items
stopnpctimer;
donpcevent "Flavius_CTF::OnTeam1Score";
}
else if( .Flag_Status == 1 )
{
mapannounce "bat_b02","Alpha Crystal Returned by [ " + strcharinfo(0) + " ]!!",1,bg_get_data($@BG_Team1,4);
bg_rankpoints "fame",1;
disablenpc "Team1_Flag";
sleep 2000;
movenpc "Team1_Flag",328,150; // Back to Base
set .Flag_Status, 0;
initnpctimer;
enablenpc "Team1_Flag";
}
}
end;
OnTimer2000:
stopnpctimer;
if( .Flag_Status < 2 )
{
getmapxy .@m$, .@x, .@y, 1;
viewpointmap "bat_b02",1, .@x, .@y, 1, bg_get_data($@BG_Team1,4);
specialeffect 223;
initnpctimer;
}
end;
OnBase:
movenpc "Team1_Flag",328,150;
set .Flag_Status, 0;
set .Flag_Carrier, 0;
initnpctimer;
enablenpc "Team1_Flag";
end;
}
bat_b02,62,150,0 script Omega Crystal::Team2_Flag 1915,1,1,{
end;
OnTouch:
if( $@BG_Status != 1 || getvariableofnpc(.BG_Arena$,"BG_Queue_Join") != "Flavius_CTF" || HP < 1 )
end;
if( getcharid(4) == $@BG_Team1 && .Flag_Status < 2 )
{ // Flag Captured
set .Flag_Status, 2; // Taken
set .Flag_Carrier, getcharid(0);
sc_end SC_HIDING;
sc_end SC_CLOAKING;
sc_end SC_CHASEWALK;
// Renewal invisibility
sc_end SC_CLOAKINGEXCEED;
sc_end SC_CAMOUFLAGE;
sc_end SC__INVISIBILITY;
pcblock 1,1; // Block Skills/Items
mapannounce "bat_b02","Omega Crystal Taken by [ " + strcharinfo(0) + " ]",1,bg_get_data($@BG_Team2,4);
bg_rankpoints "ctf_taken",1;
disablenpc "Team2_Flag";
addtimer 2000, "Flavius_CTF::OnOmegaFlash";
stopnpctimer;
}
else if( getcharid(4) == $@BG_Team2 )
{
if( .Flag_Status == 0 && getvariableofnpc(.Flag_Carrier,"Team1_Flag") == getcharid(0) )
{
set getvariableofnpc(.Flag_Carrier,"Team1_Flag"),0;
set .Flag_Carrier, 0;
mapannounce "bat_b02","Alpha Crystal Captured by [ " + strcharinfo(0) + " ]!!",1,bg_get_data($@BG_Team1,4);
bg_rankpoints "ctf_captured",1;
pcblock 1,0; // UnBlock Skills/Items
stopnpctimer;
donpcevent "Flavius_CTF::OnTeam2Score";
}
else if( .Flag_Status == 1 )
{
mapannounce "bat_b02","Omega Crystal Returned by [ " + strcharinfo(0) + " ]!!",1,bg_get_data($@BG_Team2,4);
bg_rankpoints "fame",1;
disablenpc "Team2_Flag";
sleep 2000;
movenpc "Team2_Flag",62,150; // Back to Base
set .Flag_Status, 0;
initnpctimer;
enablenpc "Team2_Flag";
}
}
end;
OnTimer2000:
stopnpctimer;
if( .Flag_Status < 2 )
{
getmapxy .@m$, .@x, .@y, 1;
viewpointmap "bat_b02",1, .@x, .@y, 2, bg_get_data($@BG_Team2,4);
specialeffect 223;
initnpctimer;
}
end;
OnBase:
movenpc "Team2_Flag",62,150;
set .Flag_Status, 0;
set .Flag_Carrier, 0;
initnpctimer;
enablenpc "Team2_Flag";
end;
}
// Battleground Engine
// *********************************************************************
- script Flavius_CTF -1,{
end;
OnAlphaFlash:
if( getvariableofnpc(.Flag_Carrier,"Team1_Flag") == getcharid(0) && $@BG_Status == 1 && getvariableofnpc(.BG_Arena$,"BG_Queue_Join") == "Flavius_CTF" )
{
getmapxy .@m$, .@x, .@y, 0;
viewpointmap "bat_b02",1, .@x, .@y, 1, bg_get_data($@BG_Team1,4);
specialeffect2 73;
emotion e_hlp,1;
addtimer 2000, "Flavius_CTF::OnAlphaFlash";
percentheal -5,-5;
}
end;
OnOmegaFlash:
if( getvariableofnpc(.Flag_Carrier,"Team2_Flag") == getcharid(0) && $@BG_Status == 1 && getvariableofnpc(.BG_Arena$,"BG_Queue_Join") == "Flavius_CTF" )
{
getmapxy .@m$, .@x, .@y, 0;
viewpointmap "bat_b02",1, .@x, .@y, 2, bg_get_data($@BG_Team2,4);
specialeffect2 73;
emotion e_hlp,1;
addtimer 2000, "Flavius_CTF::OnOmegaFlash";
percentheal -5,-5;
}
end;
OnInit:
disablenpc "Team1_Flag";
disablenpc "Team2_Flag";
end;
OnTeam1Quit:
setquest 8506; // Deserter
set @killer_bg_src, 0;
if( $@BG_Status != 0 && getvariableofnpc(.BG_Arena$,"BG_Queue_Join") == "Flavius_CTF" )
donpcevent "BG_Queue_Join::OnJoinEvent";
OnTeam1Die:
if( $@BG_Status == 1 && getvariableofnpc(.BG_Arena$,"BG_Queue_Join") == "Flavius_CTF" && getvariableofnpc(.Flag_Carrier,"Team2_Flag") == getcharid(0) )
{ // Drop Flag
set getvariableofnpc(.Flag_Carrier,"Team2_Flag"), 0;
pcblock 1,0; // UnBlock Skills/Items
getmapxy .@m$, .@x, .@y, 0;
movenpc "Team2_Flag", .@x, .@y;
mapannounce "bat_b02","Omega Flag Droped by [ " + strcharinfo(0) + " ]",1,bg_get_data($@BG_Team2,4);
bg_rankpoints "ctf_droped",1;
bg_rankpoints "fame",1,@killer_bg_src;
set getvariableofnpc(.Flag_Status,"Team2_Flag"), 1; // OnFloor
initnpctimer "Team2_Flag";
enablenpc "Team2_Flag";
}
end;
OnTeam2Quit:
setquest 8506; // Deserter
set @killer_bg_src, 0;
if( $@BG_Status != 0 && getvariableofnpc(.BG_Arena$,"BG_Queue_Join") == "Flavius_CTF" )
donpcevent "BG_Queue_Join::OnJoinEvent";
OnTeam2Die:
if( $@BG_Status == 1 && getvariableofnpc(.BG_Arena$,"BG_Queue_Join") == "Flavius_CTF" && getvariableofnpc(.Flag_Carrier,"Team1_Flag") == getcharid(0) )
{ // Drop Flag
set getvariableofnpc(.Flag_Carrier,"Team1_Flag"), 0;
pcblock 1,0; // UnBlock Skills/Items
getmapxy .@m$, .@x, .@y, 0;
movenpc "Team1_Flag", .@x, .@y;
mapannounce "bat_b02","Alpha Flag Droped by [ " + strcharinfo(0) + " ]",1,bg_get_data($@BG_Team1,4);
bg_rankpoints "ctf_droped",1;
bg_rankpoints "fame",1,@killer_bg_src;
set getvariableofnpc(.Flag_Status,"Team1_Flag"), 1; // OnFloor
initnpctimer "Team1_Flag";
enablenpc "Team1_Flag";
}
end;
OnBuildTeams:
set $@BG_Team1,bg_team_create("bat_b02",390,10,0,"Flavius_CTF::OnTeam1Quit","Flavius_CTF::OnTeam1Die");
set $@BG_Team2,bg_team_create("bat_b02",10,290,1,"Flavius_CTF::OnTeam2Quit","Flavius_CTF::OnTeam2Die");
end;
OnReady:
if( getvariableofnpc(.BG_Arena$,"BG_Queue_Join") != "Flavius_CTF" )
end;
initnpctimer;
// BG Variables
set .Team1_Score, 0;
set .Team2_Score, 0;
sleep 2000;
bg_warp $@BG_Team1,"bat_b02",311,224;
bg_warp $@BG_Team2,"bat_b02",87,75;
sleep 2000;
// Respawn NPC's
donpcevent "#guictf_respawn::OnBGStart";
donpcevent "#croctf_respawn::OnBGStart";
// Start Match!!
donpcevent "Flavius_CTF::OnMatchStart";
end;
OnMatchStart:
if( $@BG_Status != 1 || getvariableofnpc(.BG_Arena$,"BG_Queue_Join") != "Flavius_CTF" )
end;
// Flags2Base
donpcevent "Team1_Flag::OnBase";
donpcevent "Team2_Flag::OnBase";
mapannounce "bat_b02","The Flags have been set to their Bases!!",8;
end;
OnTeam1Score:
set .Team1_Score, .Team1_Score + 1;
donpcevent "Flavius_CTF::OnMatchStop";
end;
OnTeam2Score:
set .Team2_Score, .Team2_Score + 1;
donpcevent "Flavius_CTF::OnMatchStop";
end;
OnMatchStop:
disablenpc "Team1_Flag";
disablenpc "Team2_Flag";
bg_updatescore "bat_b02",.Team1_Score,.Team2_Score;
viewpointmap "bat_b02",2, 0, 0, 1, 0x0000FF;
viewpointmap "bat_b02",2, 0, 0, 2, 0xFF0000;
if( .Team1_Score > 2 )
{ // Team 1 Won
mapannounce "bat_b02","The " + bg_get_data($@BG_Team1,2) + " army has won the Battle of Flavius CTF!",1,bg_get_data($@BG_Team1,4);
donpcevent "Flavius_CTF::OnMatchEnd";
}
else if( .Team2_Score > 2 )
{ // Team 2 Won
mapannounce "bat_b02","The " + bg_get_data($@BG_Team2,2) + " army has won the Battle of Flavius CTF!",1,bg_get_data($@BG_Team2,4);
donpcevent "Flavius_CTF::OnMatchEnd";
}
else
{ // Keep Playing
sleep 8000;
donpcevent "Flavius_CTF::OnMatchStart";
}
end;
OnTimer600000:
mapannounce "bat_b02","The Battle will ends in 5 minutes!!",1,0xA0522D;
end;
OnTimer840000:
mapannounce "bat_b02","The Battle will ends in 1 minute!!",1,0xA0522D;
end;
OnTimer900000:
disablenpc "Team1_Flag";
disablenpc "Team2_Flag";
viewpointmap "bat_b02",2, 0, 0, 1, bg_get_data($@BG_Team1,4);
viewpointmap "bat_b02",2, 0, 0, 2, bg_get_data($@BG_Team2,4);
if( .Team1_Score > .Team2_Score )
mapannounce "bat_b02","The " + bg_get_data($@BG_Team1,2) + " army has won the Battle of Flavius CTF!",1,bg_get_data($@BG_Team1,4);
else if( .Team1_Score < .Team2_Score )
mapannounce "bat_b02","The " + bg_get_data($@BG_Team2,2) + " army has won the Battle of Flavius CTF!",1,bg_get_data($@BG_Team2,4);
else
mapannounce "bat_b02","The battle is over. This is a Tie...!",1,0xA0522D;
donpcevent "Flavius_CTF::OnMatchEnd";
end;
OnMatchEnd:
stopnpctimer;
disablenpc "Team1_Flag";
disablenpc "Team2_Flag";
donpcevent "#guictf_respawn::OnBGStop";
donpcevent "#croctf_respawn::OnBGStop";
set $@BG_Status, 2;
// =======================================================
// Team Rewards
// =======================================================
if( .Team1_Score > .Team2_Score )
{
bg_reward $@BG_Team1,7227,30 + .Team1_Score,0,0,"BG_CTF",1,3,0;
bg_reward $@BG_Team2,7227,10 + .Team2_Score,0,0,"BG_CTF",1,3,2;
}
else if( .Team2_Score > .Team1_Score )
{
bg_reward $@BG_Team1,7227,30 + .Team1_Score,0,0,"BG_CTF",1,3,2;
bg_reward $@BG_Team2,7227,10 + .Team2_Score,0,0,"BG_CTF",1,3,0;
}
else
{
bg_reward $@BG_Team1,7227,10 + .Team1_Score,0,0,"BG_CTF",1,3,1;
bg_reward $@BG_Team2,7227,10 + .Team2_Score,0,0,"BG_CTF",1,3,1;
}
// =======================================================
set .Team1_Score, 0;
set .Team2_Score, 0;
sleep 5000;
donpcevent "BG_Queue_Join::OnRotate";
bg_updatescore "bat_b02",0,0;
end;
}
// Battleground Therapist
// *********************************************************************
bat_b02,390,13,5 script Therapist in battle#ctf1 95,{
mes "[Therapist in battle]";
mes "Just close your eyes, and take a deep breathe.";
mes "You can be free from pain.";
specialeffect2 312;
percentheal 100,100;
repairall;
close2;
openstorage;
end;
}
bat_b02,10,293,5 script Therapist in battle#ctf2 95,{
mes "[Therapist in battle]";
mes "Just close your eyes, and take a deep breathe.";
mes "You can be free from pain.";
specialeffect2 312;
percentheal 100,100;
repairall;
close2;
openstorage;
end;
}
// Battleground Respawn
// *********************************************************************
bat_b02,390,10,0 script #guictf_respawn 139,{
end;
OnBGStart:
initnpctimer;
end;
OnBGStop:
stopnpctimer;
end;
OnTimer24000:
misceffect 83;
end;
OnTimer25000:
areapercentheal "bat_b02",382,2,397,17,100,100;
areawarp "bat_b02",382,2,397,17,"bat_b02",311,224;
initnpctimer;
end;
}
bat_b02,10,290,0 script #croctf_respawn 139,{
end;
OnBGStart:
initnpctimer;
end;
OnBGStop:
stopnpctimer;
end;
OnTimer24000:
misceffect 83;
end;
OnTimer25000:
areapercentheal "bat_b02",2,282,17,297,100,100;
areawarp "bat_b02",2,282,17,297,"bat_b02",87,75;
initnpctimer;
end;
}
// Flags
// *********************************************************************
bat_b02,304,231,1 duplicate(Base Flag#bg) Alpha Base#bat23 973
bat_b02,319,231,1 duplicate(Base Flag#bg) Alpha Base#bat24 973
bat_b02,304,218,1 duplicate(Base Flag#bg) Alpha Base#bat25 973
bat_b02,319,218,1 duplicate(Base Flag#bg) Alpha Base#bat26 973
bat_b02,304,231,1 duplicate(Base Flag#bg) Alpha Base#bat27 973
bat_b02,304,231,1 duplicate(Base Flag#bg) Alpha Base#bat28 973
bat_b02,335,142,1 duplicate(Base Flag#bg) Alpha Base#bat29 973
bat_b02,335,157,1 duplicate(Base Flag#bg) Alpha Base#bat30 973
bat_b02,390,16,1 duplicate(Base Flag#bg) Alpha Base#bat31 973
bat_b02,292,163,1 duplicate(Base Flag#bg) Alpha Base#bat32 973
bat_b02,292,136,1 duplicate(Base Flag#bg) Alpha Base#bat33 973
bat_b02,241,185,1 duplicate(Base Flag#bg) Alpha Base#bat34 973
bat_b02,247,179,1 duplicate(Base Flag#bg) Alpha Base#bat35 973
bat_b02,96,81,1 duplicate(Base Flag#bg) Omega Base#bat22 974
bat_b02,96,68,1 duplicate(Base Flag#bg) Omega Base#bat23 974
bat_b02,79,81,1 duplicate(Base Flag#bg) Omega Base#bat24 974
bat_b02,79,68,1 duplicate(Base Flag#bg) Omega Base#bat25 974
bat_b02,96,81,1 duplicate(Base Flag#bg) Omega Base#bat26 974
bat_b02,96,81,1 duplicate(Base Flag#bg) Omega Base#bat27 974
bat_b02,59,164,1 duplicate(Base Flag#bg) Omega Base#bat28 974
bat_b02,59,137,1 duplicate(Base Flag#bg) Omega Base#bat29 974
bat_b02,10,296,1 duplicate(Base Flag#bg) Omega Base#bat30 974
bat_b02,110,162,1 duplicate(Base Flag#bg) Omega Base#bat31 974
bat_b02,110,137,1 duplicate(Base Flag#bg) Omega Base#bat32 974
bat_b02,152,120,1 duplicate(Base Flag#bg) Omega Base#bat33 974
bat_b02,158,114,1 duplicate(Base Flag#bg) Omega Base#bat34 974
// MapFlags
// *********************************************************************
bat_b02 mapflag battleground 2
bat_b02 mapflag nomemo
bat_b02 mapflag nosave SavePoint
bat_b02 mapflag noteleport
bat_b02 mapflag nowarp
bat_b02 mapflag nowarpto
bat_b02 mapflag noreturn
bat_b02 mapflag nobranch
bat_b02 mapflag nopenalty
bat_b02 mapflag noemergencycall