Help: 7v7 Script

Overkill Gaming

New member
Messages
25
Points
0
Hi Hercules.

Found this script in rAthena (credits to the author) which I would like to use in my server. The script is for 7v7.
I would like to request help if ever you guys can edit and have this to be:

-No repeating class.

// ------------------------------------------------------------------------------------------// ------ rAthena Script Release// Title: Simple 4 vs 4 PVP Gateway// Author: jTynne - [email protected]// Version: 0.1 (Beta)// Notes:// v0.1: This is the UNOPTIMIZED release of a simple 4vs4vs4vs4 PVP gateway.// There are likely bugs in this version. Please report them as you find them!// Please note that this script uses a TON of global variables. Keep that in mind// when using this script in the current version.// ------------------------------------------------------------------------------------------//Modified by: www.runemidgard.asia// ------------------------------------------------------------------------------------------prontera,218,183,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 7 versus 7 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+"/7)",L_odin,"Freya ("+$pvp4nB+"/7)",L_freya;L_odin: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($pvp4nA < 3) {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 == 5) { set $pvp4nAchar5,getcharid(0); }if($pvp4nA == 6) { set $pvp4nAchar6,getcharid(0); }if($pvp4nA == 7) { set $pvp4nAchar7,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 == 7 && $pvp4nB == 7) { 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 < 3) {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($pvp4nB == 5) { set $pvp4nBchar5,getcharid(0); }if($pvp4nB == 6) { set $pvp4nBchar6,getcharid(0); }if($pvp4nB == 7) { set $pvp4nBchar7,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 == 7 && $pvp4nB == 7) { 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,$pvp4nBchar1; } else if (.@x == 4) { warpchar "guild_vs3",18,50,$pvp4nBchar2; } else if (.@x == 5) { warpchar "guild_vs3",18,50,$pvp4nBchar3; } else if (.@x == 6) { warpchar "guild_vs3",18,50,$pvp4nAchar2; } else if (.@x == 7) { warpchar "guild_vs3",83,50,$pvp4nAchar3; } else if (.@x == 8) { warpchar "guild_vs3",83,50,$pvp4nBchar1; } else if (.@x == 9) { warpchar "guild_vs3",83,50,$pvp4nBchar2; } else if (.@x == 10) { warpchar "guild_vs3",83,50,$pvp4nBchar3; } else if (.@x == 11) { warpchar "guild_vs3",83,50,$pvp4nBchar2; } else if (.@x == 12) { warpchar "guild_vs3",83,50,$pvp4nBchar3; } else if (.@x == 13) { warpchar "guild_vs3",83,50,$pvp4nBchar3; } 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 $pvp4nAchar5,0;set $pvp4nAchar6,0;set $pvp4nAchar7,0;set $pvp4nBchar1,0;set $pvp4nBchar2,0;set $pvp4nBchar3,0;set $pvp4nBchar4,0;set $pvp4nBchar5,0;set $pvp4nBchar6,0;set $pvp4nBchar7,0;end;}- script pvp3vs3#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;}

Or is there any similar script somewhere in this forum that you guys can recommend?

Thanks in advance.
 

 
Last edited by a moderator:
I should probably remove my old scripts from rA/Hercules (I'm jTynne-- author of that script).

I'm not sure of other scripts available here.. though I must admit, I've never really looked around.

I'm sure someone could whip something better together of greater quality than I can, as my original script is terribly unoptimized.

At first glance, I guess you could store the Job IDs in an array, and run a loop to see if a class has already registered.. but I suck at arrays (hence why I have so many variables in the original script to begin with >.<).

 
Last edited by a moderator:
Nice. Good to know author moved to hercules too.
default_smile.png


Well sir, here is the issue on this script.
-once the session starts, only team 1 gets warped. Team 2 gets stuck o prontera. clicking on the npc again also gets the client to hang.

-if say we are able to warp inside the gvg map. there is no announcement that the team won even if they eliminated all opposing teams. Also, the winning team is not ported out after the battle.
-the counter remains for the team. even though no one is playing or in session, the counter stays 7/7 or 1/1 or 4/4.

if ever we can revise this to do a party vs party and also the kind that checks no repeating classes this NPC will be a blast!

 
Back
Top