//===== eAthena Script =======================================// //= Party vs Party Npc ==// //===== Originally By: =======================================// //= icabit69 ==// //===== Credits for help goes to: ============================// //= Rahuldev345 ==// //= Emistry ==// //===== Edited by: ===========================================// //= MrVandalBus ==// //============================================================// prontera,149,176,5 script War Organizer::teamwar 951,{ if (getgmlevel() >= 99){ menu "Standard Menu",standard,"Reset Team Wars",lend1; } standard: set $@members,1; // number of party members change this to your party size you want set $@start,0; getpartymember(getcharid(1)); set @partymembercount,$@partymembercount; if ( $@start==1) { mes "The Team War Registration is currently unavailable because a match is in progress. Don't hesitate to try again in a few minutes !"; close; } if ( @partymembercount==$@members) { mes "Hello "+strcharinfo(0)+" what do you want?"; if (($@TeamID1!=0) && ($@TeamID2!=0)) { mes "The Team War Registration is currently unavailable because a match is in progress. Don't hesitate to try again in a few minutes !"; close; } if ( getpartyleader(getcharid(1),2) != getcharid(0) ) { mes "Only party leader have the right to sign up / out from the game with me.."; close; } mes "Choose your team to register."; switch(select("Red Team - [" + GetPartyName($@TeamID1) + "] :Blue Team - [" + GetPartyName($@TeamID2) + "]")) { case 1: mes "[ War Organizer ]"; if ($@TeamID1==0 || getpartyname($@TeamID1)=="null") { getpartymember(getcharid(1)),1; getpartymember(getcharid(1)),2; copyarray $@partymembercidt1[0],$@partymembercid[0],$@members; copyarray $@partymemberaid1[0],$@partymemberaid[0],$@members; for (set .@i,0; .@i<$@members; set .@i,.@i+1) { if(isloggedin($@partymemberaid1[.@i],$@partymembercidt1[.@i])) set .@count,.@count+1; } if(.@count < $@members) { mes "You need all your party members to be online to Register"; close; } set $@TeamID1, getcharid(1); initnpctimer; mes "Your Party is now subscribed, good luck!"; announce "Team 1 : [ " +getpartyname($@TeamID1)+ " ] has sign up For the Team War!",bc_blue|bc_map; doevent "teamwar::OnSubscriptionTeam"; close; } else { mes "I'm sorry! Another Team has sign up before you..."; close; } case 2: mes "[ War Organizer ]"; if ($@TeamID2==0 || getpartyname($@TeamID2)=="null") { getpartymember(getcharid(1)),1; getpartymember(getcharid(1)),2; copyarray $@partymembercidt2[0],$@partymembercid[0],$@members; copyarray $@partymemberaid2[0],$@partymemberaid[0],$@members; for (set .@i,0; .@i<$@members; set .@i,.@i+1) { if(isloggedin($@partymemberaid2[.@i],$@partymembercidt2[.@i])) set .@count,.@count+1; } if(.@count < $@members) { mes "You need all your party members to be online to Register"; close; } set $@TeamID2, getcharid(1); initnpctimer; mes "Your Party is now subscribed, good luck!"; announce "Team 2 : [ " +getpartyname($@TeamID2)+ " ] has sign up For the Team War!",bc_blue|bc_map; doevent "teamwar::OnSubscriptionTeam"; close; } else { mes "I'm sorry! Another Team has sign up before you..."; close; } } } else { mes "[ War Organizer ]"; mes "Please contact your party leader."; mes "Your team must have a party consisting of "+$@members+" members."; close; } OnSubscriptionTeam: getpartymember($@TeamID2),1; getpartymember($@TeamID2),2; copyarray $@partymembercidtc2[0],$@partymembercid[0],$@members; copyarray $@partymemberaidc2[0],$@partymemberaid[0],$@members; for (set .@i,0; .@i<$@members; set .@i,.@i+1) { if(isloggedin($@partymemberaidc2[.@i],$@partymembercidtc2[.@i])) set .@countx,.@countx+1; } if(.@countx < $@members) { announce "War Organizer : "+getpartyname($@TeamID2)+" are not all online the match has been canceled",0; announce "War Organizer : Registration for 2 New Teams are now available",0; goto lend; close; } getpartymember($@TeamID1),1; getpartymember($@TeamID1),2; copyarray $@partymembercidtc1[0],$@partymembercid[0],$@members; copyarray $@partymemberaidc1[0],$@partymemberaid[0],$@members; for (set .@i,0; .@i<$@members; set .@i,.@i+1) { if(isloggedin($@partymemberaidc1[.@i],$@partymembercidtc1[.@i])) set .@countz,.@countz+1; } if(.@countz < $@members) { announce "War Organizer : "+getpartyname($@TeamID1)+"are not all online the match has been canceled",0; announce "War Organizer : registration for 2 new teams are now available",0; goto lend; close; } if($@TeamID1!=0 && $@TeamID2!=0){ announce "War Organizer : We have 2 Teams signed up now : "+getpartyname($@TeamID1)+" and "+getpartyname($@TeamID2)+".",bc_blue|bc_map; set @win1, 0; set @win2, 0; goto Onstart; } end; OnTimer50000: if (($@TeamID1!=0) && ($@TeamID2!=0)) { end; } stopnpctimer; set $@TeamID1, 0; set $@TeamID1, 0; announce "War Organizer : we lack teams to start registration for two teams are now available",0; end; OnStart: setcell "rwc03",16,47,16,52,cell_walkable,0; warpparty "rwc03",10,50,$@TeamID1; warpparty "rwc03",90,50,$@TeamID2; set $@start,1; mapannounce "rwc03","Entries are closed, we will soon begin please rebuffs now.",bc_map,"0xFF3333",FW_NORMAL,20,0,40; sleep2 30000; mapannounce "rwc03","Team Wars will Start in 5",bc_map,"0xFF3333",FW_NORMAL,20,0,40; sleep2 1000; mapannounce "rwc03","Team Wars will Start in 4",bc_map,"0xFF3333",FW_NORMAL,20,0,40; sleep2 1000; mapannounce "rwc03","Team Wars will Start in 3",bc_map,"0xFF3333",FW_NORMAL,20,0,40; sleep2 1000; mapannounce "rwc03","Team Wars will Start in 2",bc_map,"0xFF3333",FW_NORMAL,20,0,40; sleep2 1000; mapannounce "rwc03","Team Wars will Start in 1",bc_map,"0xFF3333",FW_NORMAL,20,0,40; sleep2 1000; mapannounce "rwc03","Go ! Fight to your Heart's Content",bc_map,"0xFF3333",FW_NORMAL,20,0,40; setcell "rwc03",16,47,16,52,cell_walkable,1; end; lend: stopnpctimer; set $@TeamID1,0; set $@TeamID2,0; set $@start,0; set @win1,0; set @win2,0; set @partymembercount,$@members; end; lend1: stopnpctimer; set $@TeamID1,0; set $@TeamID2,0; set $@start,0; set @win1,0; set @win2,0; set @partymembercount,$@members; announce "Team War has been reset, you may now register your team now",0; close; end; OnTimer250000: Announce "War Organizer : No Party has Won due to Time Limit!",0; mapwarp "rwc03","prontera",156,174; goto lend; end; OnPCDieEvent: OnPCLogoutEvent: if(strcharinfo(3) != "rwc03") end; warp "prontera",156,174; for(set .@i, 0; .@i < $@members; set .@i, .@i + 1) { if ( $@partymembercidt1[.@i] == getcharid(0)) { deletearray $@partymembercidt1[.@i], 1; if( getarraysize($@partymembercidt1) == 0 ) { set @win2,$@partymembercount; goto onwin; } } if ( $@partymembercidt2[.@i] == getcharid(0) ) { deletearray $@partymembercidt2[.@i], 1; if( getarraysize($@partymembercidt2) == 0 ) { set @win1,$@partymembercount; goto onwin; } } } end; onwin: if (@win1==0) { warpparty "prontera",156,174,$@TeamID2; warpparty "prontera",156,174,$@TeamID1; announce "War Organizer : Congratulations "+GetPartyName($@TeamID2)+" Party you have won against "+GetPartyName($@TeamID1)+" Party",0; goto lend; end; } if (@win2==0) { warpparty "prontera",156,174,$@TeamID2; warpparty "prontera",156,174,$@TeamID1; announce "War Organizer : Congratulations "+GetPartyName($@TeamID1)+" Party you have won against "+GetPartyName($@TeamID2)+" Party",0; goto lend; end; } end; } rwc03 mapflag nosave rwc03 mapflag nomemo rwc03 mapflag nobranch rwc03 mapflag nowarp rwc03 mapflag nowarpto rwc03 mapflag pvp_noguild rwc03 mapflag noicewall rwc03 mapflag pvp