// ------------------------------------------------------------------------------------------ // ------ rAthena Script Release // Title: Simple 4 versus 4 PVP Gateway // Author: jTynne - justin@justintynne.com // Modified by: Scene - scenebuster@live.com // Version: 0.1 (Beta) // ------------------------------------------------------------------------------------------ Prontera,147,175,6 script Party Battle Recruiter 416,{ set .@n$,"[^FF0000Party Battle Recruiter^000000]"; set .@charid,getcharid(0); mes .@n$; mes "Would you like to register for a 4 versus 4 Party Battle?"; next; menu "Yes",-,"No",L_cancel; if(getmapusers("guild_vs3") > 0) { mes .@n$; mes "There appears to be a match currently in session. Check back momentarily."; close; end; } mes .@n$; mes "Which side of the arena would you like to join?"; next; menu "Odin ("+$pvp4nA+"/4)",L_odin,"Freya ("+$pvp4nB+"/4)",L_freya; L_odin: if(.@charid == $pvp4nAchar1 || .@charid == $pvp4nAchar2 || .@charid == $pvp4nAchar3 || .@charid == $pvp4nAchar4 || .@charid == $pvp4nBchar1 || .@charid == $pvp4nBchar2 || .@charid == $pvp4nBchar3 || .@charid == $pvp4nBchar4) { mes .@n$; mes "You may only register once per round."; close; end; } if($pvp4nA < 4) { set $pvp4nA,$pvp4nA+1; if($pvp4nA == 1) { set $pvp4nAchar1,getcharid(0); } if($pvp4nA == 2) { set $pvp4nAchar2,getcharid(0); } if($pvp4nA == 3) { set $pvp4nAchar3,getcharid(0); } if($pvp4nA == 4) { set $pvp4nAchar4,getcharid(0); } if($pvp4nA == 1 || $pvp4nB == 1) { if($pvp4timer == 0 ) { initnpctimer; set $pvp4timer,1; } } mes .@n$; mes "You've joined the selected team. Once the other team have filled up, you'll automatically be transferred into the Colosseum. If the other team do not fill up within the next 30 seconds, this session will be cleared."; npctalk strcharinfo(0)+" has entered the round on Odin's Side."; if($pvp4nA == 4 && $pvp4nB == 4) { stopnpctimer; goto L_begin;} close; end; } L_freya: if(.@charid == $pvp4nAchar1 || .@charid == $pvp4nAchar2 || .@charid == $pvp4nAchar3 || .@charid == $pvp4nAchar4 || .@charid == $pvp4nAchar5 || .@charid == $pvp4nAchar6 || .@charid == $pvp4nAchar7 || .@charid == $pvp4nBchar1 || .@charid == $pvp4nBchar2 || .@charid == $pvp4nBchar3 || .@charid == $pvp4nBchar4 || .@charid == $pvp4nBchar5 || .@charid == $pvp4nBchar6 || .@charid == $pvp4nBchar7) { mes .@n$; mes "You may only register once per round."; close; end; } if($pvp4nB < 4) { set $pvp4nB,$pvp4nB+1; if($pvp4nB == 1) { set $pvp4nBchar1,getcharid(0); } if($pvp4nB == 2) { set $pvp4nBchar2,getcharid(0); } if($pvp4nB == 3) { set $pvp4nBchar3,getcharid(0); } if($pvp4nB == 4) { set $pvp4nBchar4,getcharid(0); } if($pvp4nA == 1 || $pvp4nB == 1) { if($pvp4timer == 0 ) { initnpctimer; set $pvp4timer,1; } } mes .@n$; mes "You've joined the selected team. Once the other team have filled up, you'll automatically be transferred into the Colosseum. If the other team do not fill up within the next 30 seconds, this session will be cleared."; npctalk strcharinfo(0)+" has entered the round on Freya's Side."; if($pvp4nA == 4 && $pvp4nB == 4) { stopnpctimer; goto L_begin;} close; end; } goto L_full; L_full: mes .@n$; mes "Sorry, but this team is full. Try another team, please."; close; end; L_begin: npctalk "Both teams have been filled. All participants currently logged in will be transferred to the arena in ten seconds."; sleep2 10000; set .@x,0; L_warploop: while (.@x < 7) { if (.@x == 0) { warpchar "guild_vs3",18,50,$pvp4nAchar1; } else if (.@x == 1) { warpchar "guild_vs3",18,50,$pvp4nAchar2; } else if (.@x == 2) { warpchar "guild_vs3",18,50,$pvp4nAchar3; } else if (.@x == 3) { warpchar "guild_vs3",18,50,$pvp4nAchar4; } else if (.@x == 4) { warpchar "guild_vs3",83,50,$pvp4nBchar1; } else if (.@x == 5) { warpchar "guild_vs3",83,50,$pvp4nBchar2; } else if (.@x == 6) { warpchar "guild_vs3",83,50,$pvp4nBchar3; } else if (.@x == 7) { warpchar "guild_vs3",83,50,$pvp4nBchar4; } else { npctalk "A round is now in session."; goto L_clear;} set .@x, .@x + 1; } goto L_warploop; end; L_cancel: mes .@n$; mes "Do come back if you change your mind."; close; end; OnTimer10000: npctalk "Ten seconds have passed. Entry to the round ends in 20 seconds."; end; OnTimer20000: npctalk "Twenty seconds have passed. Entry to the round ends in 10 seconds."; end; OnTimer30000: npctalk "Thirty seconds have passed and thus I have canceled the round."; stopnpctimer; goto L_clear; L_clear: set $pvp4timer,0; set $pvp4nA,0; set $pvp4nB,0; set $pvp4nAchar1,0; set $pvp4nAchar2,0; set $pvp4nAchar3,0; set $pvp4nAchar4,0; set $pvp4nBchar1,0; set $pvp4nBchar2,0; set $pvp4nBchar3,0; set $pvp4nBchar4,0; end; } - script pvp4vs4#1 -1,{ OnPCDieEvent: getmapxy (.@map$, .@x, .@y, 0); if(.@map$ == "guild_vs3") { warp "SavePoint",0,0;} end; OnPCKillEvent: getmapxy (.@map$, .@x, .@y, 0); if( .@map$ == "guild_vs3") { set .@tempn1$,strcharinfo(0); set .@tempn2$,rid2name(killedrid); mapannounce "guild_vs3",""+.@tempn1$+" has killed "+.@tempn2$+".",1,0xD6A4E6;} end; }