prontera,157,187,4 script Team Wars::teamwar 899,{ if (getgmlevel() >= 99){ menu "standard menu",-,"reset",lend; } getpartymember(getcharid(1)); set @partymembercount,$@partymembercount; if ( $@start==1) { mes "The Sign Ups are currently unavailable because a match is in progress. Don't hesitate to try again in a few minutes!"; close; } if ( @partymembercount==$@members) { if ($@TeamID1==getcharid(1)) { // here should be a check for the party leader ;O mes "Do you wish to sign out your team?"; next; if (select("I Give up ~.","Never Say Quit !!")==2) close; announce "Team 1 : [ " + getpartyname($@TeamID1) + " ] has sign out. We need another Party to sign up now!",bc_yellow|bc_map; set $@TeamID1, 0; close; } if ($@TeamID2==getcharid(1)) { // here should be a check for the party leader ;O mes "Do you wish to sign out your team?"; next; if (select("I Give up ~.","Never Say Quit !!")==2) close; announce "Team 2 : [ " + getpartyname($@TeamID2) + " ] has sign out. We need another Party to sign up now!",bc_yellow|bc_map; set $@TeamID2, 0; close; } mes "Hello "+strcharinfo(0)+" what do you want?"; if ($@TeamID1 != 0 && $@TeamID2 != 0) { mes "The Sign Ups are 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 "[ Red Team ]"; 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 "[ Blue Team ]"; 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 "[Event Handler]"; mes "Please contact your party leader."; mes "Your team must have a party consisting of "+$@members+" members."; close; } //////////////////////////////////////////////////////////////////////////// ////Checker Script////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// 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 "Team War : "+getpartyname($@TeamID2)+"are not all online the match has been canceled",0; announce "Team War : registration for 2 new teams are now available",0; goto lend; } 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 "Team War : "+getpartyname($@TeamID1)+"are not all online the match has been canceled",0; announce "Team War : registration for 2 new teams are now available",0; goto lend; } if($@TeamID1!=0 && $@TeamID2!=0){ announce "Team War : We have 2 Teams signed up now : "+getpartyname($@TeamID1)+" and "+getpartyname($@TeamID2)+".",bc_blue|bc_map; set @win1, 0; set @win2, 0; warpparty "quiz_01",64,183,$@TeamID1; warpparty "quiz_01",229,368,$@TeamID2; goto onstart; end; } OnTimer50000: if (($@TeamID1!=0) && ($@TeamID2!=0)) { stopnpctimer; end; } stopnpctimer; set $@TeamID1, 0; set $@TeamID1, 0; announce "Team War : we lack teams to start registration for two teams are now available",0; end; //////////////////////////////////////////////////////////////////////////// ////On Start////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// onstart: set $@start,1; goto OnPub; end; //////////////////////////////////////////////////////////////////////////// ////If Inside Pub Timer///////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// OnPub: announce "Team War : Please Enter the pub to warp inside the arena.",0; sleep2 10000; announce "Team War : [4 min.] Please Enter The Pub to warp inside the Arena.",0; sleep2 10000; announce "Team War : [3 min.] Please Enter The Pub to warp inside the Arena.",0; sleep2 10000; announce "Team War : [2 min.] Please Enter The Pub to warp inside the Arena.",0; sleep2 10000; announce "Team War : [1 min.] Checking Participants...",0; if(getmapusers("quiz_01") > 1) goto OnDQ; if(getmapusers("quiz_01") == 0) { sleep2 10000; announce "Team War: Lets Start in 5.",0; sleep2 5000; announce "Team War: 4",0; sleep2 4000; announce "Team War: 3",0; sleep2 3000; announce "Team War: 2",0; sleep2 2000; announce "Team War: 1",0; sleep2 1000; setcell "guild_vs3",80,55,80,44,cell_walkable,1; setcell "guild_vs3",19,55,19,44,cell_walkable,1; disablenpc "WALL#41"; disablenpc "WALL#42"; disablenpc "WALL#43"; disablenpc "WALL#44"; disablenpc "WALL#45"; disablenpc "WALL#46"; disablenpc "WALL#47"; disablenpc "WALL#48"; disablenpc "WALL#49"; disablenpc "WALL#50"; disablenpc "WALL#51"; disablenpc "WALL#52"; disablenpc "WALL#53"; disablenpc "WALL#54"; disablenpc "WALL#55"; disablenpc "WALL#56"; disablenpc "WALL#57"; disablenpc "WALL#58"; disablenpc "WALL#59"; disablenpc "WALL#60"; disablenpc "WALL#61"; disablenpc "WALL#62"; disablenpc "WALL#63"; disablenpc "WALL#64"; announce "Team War: Ready to Rumble",0; end; } } //////////////////////////////////////////////////////////////////////////// ////Waiting Room Red Team/////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// quiz_01,52,182,3 script Red Team#01 467,{ end; OnInit: waitingroom "Waiting room 1",2,"Red Team#01::OnRoomFull",2; //Create a waitingroom enablewaitingroomevent; //Enable the event trigger for the waiting room end; OnRoomFull: if(!getwaitingroomstate(32,"Blue Team#01")) end; //Check if the other waiting room is full, if not end the script. donpcevent "Blue Team#01::OnRoomWarp"; //Warp the second room callsub OnRoomWarp; //Warp this room. end; OnRoomWarp: doevent "teamwar::OnSubscriptionTeam"; warpwaitingpc "guild_vs3",14,51; end; } //////////////////////////////////////////////////////////////////////////// ////Waiting Room Blue Team////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// quiz_01,220,368,3 script Blue Team#01 467,{ end; OnInit: waitingroom "Waiting room 2",2,"Blue Team#01::OnRoomFull",2; enablewaitingroomevent; end; OnRoomFull: if(!getwaitingroomstate(32,"Red Team#01")) end; donpcevent "Red Team#01::OnRoomWarp"; callsub OnRoomWarp; end; OnRoomWarp: doevent "teamwar::OnSubscriptionTeam"; warpwaitingpc "guild_vs3",84,51; end; //////////////////////////////////////////////////////////////////////////// ////If Disqualified///////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// OnDQ: announce "Team War : No Party won due to player still not Entering the Waiting Room.!",0; mapwarp "quiz_01","prontera",156,191; mapwarp "guild_vs3","prontera",156,191; stopnpctimer; set $@members,7; // number of party members change this to your party size you want set $@TeamID1,0; set $@TeamID2,0; set $@start,0; set .@win1,0; set .@win2,0; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; end; //////////////////////////////////////////////////////////////////////////// ////Arena End Script//////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// lend: stopnpctimer; set $@members,2; // Number of Party Members Change This in your party size.. - don't forget to change also the pub number size.. set $@TeamID1,0; set $@TeamID2,0; set $@start,0; set .@win1,0; set .@win2,0; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; announce "Thanks for playing",0; end; //////////////////////////////////////////////////////////////////////////// ////Arena Timer Script////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// OnTimer250000: Announce "Team War : No Party won due to time limit!",0; mapwarp "guild_vs3","prontera",156,191; goto lend; OnPCKillEvent: getmapxy(.@map$,.@x,.@y,0); if(.@map$=="guild_vs3") { set .@guser, getmapguildusers("guild_vs3",getcharid(1)); if ( getcharid(1) == $@TeamID2 ) { if (.@guser) end; // Checks if 0 guild member of teamid2 left warpparty "prt_in",284,132,$@TeamID2; announce "Team War :"+GetPartyName($@TeamID2)+" won",0; goto lend; } if ( getcharid(1) == $@TeamID1 ) { if (.@guser) end; // Checks if 0 guild member of teamid1 left warpparty "prt_in",284,132,$@TeamID1; announce "Team War :"+GetPartyName($@TeamID1)+" won",0; goto lend; } } end; OnPCDieEvent: OnPCLogoutEvent: if(strcharinfo(3) != "guild_vs3") end; for(set .@i, 0; .@i < $@members; set .@i, .@i + 1) { if ( $@partymembercidt1[.@i] == getcharid(0)) { deletearray $@partymembercidt1[.@i], 1; if( getarraysize($@partymembercidt1) == 0 ) { // Team of Party 1 has been defeated goto T2Win; } } if ( $@partymembercidt2[.@i] == getcharid(0) ) { deletearray $@partymembercidt2[.@i], 1; if( getarraysize($@partymembercidt2) == 0 ) { // Team of Party 2 has been defeated goto T1Win; } } } end; } //////////////////////////////////////////////////////////////////////////// ////Arena Wall////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// guild_vs3,19,55,0 script WALL#41 1905,{ //////////////////////////////////////////////////////////////////////////// ////Winner Script/////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// T2Win: warpparty "prt_in",284,132,$@TeamID2; warpparty "prontera",156,191,$@TeamID1; announce "Team War :"+GetPartyName($@TeamID2)+" won",0; goto lend; T1Win: warpparty "prt_in",284,132,$@TeamID1; warpparty "prontera",156,191,$@TeamID2; announce "Team War :"+GetPartyName($@TeamID1)+" won",0; goto lend; } guild_vs3,19,54,0 duplicate(WALL#41) WALL#42 1905 guild_vs3,19,53,0 duplicate(WALL#41) WALL#43 1905 guild_vs3,19,52,0 duplicate(WALL#41) WALL#44 1905 guild_vs3,19,51,0 duplicate(WALL#41) WALL#45 1905 guild_vs3,19,50,0 duplicate(WALL#41) WALL#46 1905 guild_vs3,19,49,0 duplicate(WALL#41) WALL#47 1905 guild_vs3,19,48,0 duplicate(WALL#41) WALL#48 1905 guild_vs3,19,47,0 duplicate(WALL#41) WALL#49 1905 guild_vs3,19,46,0 duplicate(WALL#41) WALL#50 1905 guild_vs3,19,45,0 duplicate(WALL#41) WALL#51 1905 guild_vs3,19,44,0 duplicate(WALL#41) WALL#52 1905 guild_vs3,80,55,0 duplicate(WALL#41) WALL#53 1905 guild_vs3,80,54,0 duplicate(WALL#41) WALL#54 1905 guild_vs3,80,53,0 duplicate(WALL#41) WALL#55 1905 guild_vs3,80,52,0 duplicate(WALL#41) WALL#56 1905 guild_vs3,80,51,0 duplicate(WALL#41) WALL#57 1905 guild_vs3,80,50,0 duplicate(WALL#41) WALL#58 1905 guild_vs3,80,49,0 duplicate(WALL#41) WALL#59 1905 guild_vs3,80,48,0 duplicate(WALL#41) WALL#60 1905 guild_vs3,80,47,0 duplicate(WALL#41) WALL#61 1905 guild_vs3,80,46,0 duplicate(WALL#41) WALL#62 1905 guild_vs3,80,45,0 duplicate(WALL#41) WALL#63 1905 guild_vs3,80,44,0 duplicate(WALL#41) WALL#64 1905 //////////////////////////////////////////////////////////////////////////// ////Map Flag//////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// guild_vs3 mapflag nosave guild_vs3 mapflag nomemo guild_vs3 mapflag nobranch guild_vs3 mapflag pvp_noguild guild_vs3 mapflag nocommand 99 guild_vs3 mapflag noicewall guild_vs3 mapflag pvp guild_vs3 mapflag nowarp 99 prt_in mapflag nosave prt_in mapflag nomemo prt_in mapflag nobranch prt_in mapflag pvp_noparty prt_in mapflag nocommand 99 prt_in mapflag nowarp 99 quiz_01 mapflag nosave quiz_01 mapflag nomemo quiz_01 mapflag nocommand 99 quiz_01 mapflag nowarp 99 //////////////////////////////////////////////////////////////////////////// ////Prize Giver///////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// prt_in,289,135,0 script #prizegiver 111,5,5,{ //OnTouch2: OnTouch: getitem 909,rand(1,2); warp "prontera",156,196; close; }