Jump to content
  • 0

About PvP Party Matching by Emistry


Question

Posted (edited)

Hi everyone, i looked around from eathena to rathena and i found this script from a post by Emistry

(* i'm sorry if i was wrong.. it because i don't know who made this script, i just give credit to emistry because i found this from his post.)

prontera,155,181,5	script	Sample	757,{
mes "I am Party Match Manager.";
mes "Party Leader may create a PVP Match here.";
next;
switch( select( ( .Created )?"Join Game[ ^FF0000"+.No+"vs"+.No+"^000000 ]":"Create Game",
				( ( getgmlevel() >= .GMLevel || getcharid(0) == getpartyleader( getcharid(1),2 ) ) && .Created )?"^FF0000Remove Game^000000":"" )){

Case 1:
	switch( .Created ){
		Case 0:
			getpartymember getcharid(1),1;
			if( getcharid(0) != getpartyleader( getcharid(1),2 ) || !getcharid(1) ){
				mes "Sorry, but only a ^FF0000Party Leader^000000 can register a game here.";
			}else{
				mes "How many Players for each Party Team ?";
				mes "Min = 1    Max = "+$@partymembercount;
				mes "Because you only have "+$@partymembercount+" member right now.";
				next;
				input .No,1,$@partymembercount;
				announce "[ "+.No+"vs"+.No+" Party Match ] created by "+strcharinfo(0)+", you may register to join.",0;
				set .Team[0],getcharid(1);
				set .Created,1;
			}
			close;
		Case 1:
			if( !.Team[1] && getcharid(1) == .Team[0] ){
				mes "Please wait for ^FF0000Team 2^000000 to Register.";
			}else{
				if( getcharid(0) != getpartyleader( getcharid(1),2 ) || !getcharid(1) ){
					mes "Sorry, but only a ^FF0000Party Leader^000000 can register a game here.";
					close;
				}
				getpartymember getcharid(1),1;
				if( $@partymembercount < .No ){
					mes "You didnt have enough of "+.No+" Member for the Game.";
					mes "You only have "+$@partymembercount+" Member.";
				}else{
					mes "Confirm Registration ?";
					if( select("Yes:No") == 1 ){
						set .Team[1],getcharid(1);
						set .Created,2;
						setarray .Members[0],.No,.No;
						for( set .@party,0; .@party < 2; set .@party,.@party + 1 ){
							getpartymember .Team[.@party],1;
							for( set .@i,0; .@i < .No; set .@i,.@i + 1 )
								warpchar .Map$,0,0,$@partymembercid[.@i];
						}
						end;
					}
				}
			}
			close;
		Case 2:
			mes "^FF0000The Game is in Progress.^000000";
			mes "[ A "+.No+" vs "+.No+" Game ]";
			mes "Team ^FF0000"+getpartyname( .Team[0] )+"^000000 vs Team ^FF0000"+getpartyname( .Team[1] )+"^000000 .";
			close;
		}
		close;
Case 2:
		mes "Done, Match will be terminated right away.";
		mapannounce .Map$,"Match has been Cancelled by a GM.",0;
		close2;
	OnReset:
		deletearray .Team[0],getarraysize( .Team );
		deletearray .Members[0],getarraysize( .Members );
		if( .Winner ){
			getpartymember .Winner,2;
			for( set .@i,0; .@i < .No; set .@i,.@i + 1 ){
				getitem 512,100,$@partymemberaid[.@i];
				getitem 607,1,$@partymemberaid[.@i];
			}
		set .Winner,0;
		}
		sleep2 2000;
		set .Created,0;
		mapwarp .Map$,"prontera",155,181;
		end;
}
close;
		
OnPCDieEvent:
OnPCLogoutEvent:
if( strcharinfo(3) == .Map$ && .Created ){
	for( set .@i,0; .@i < 2; set .@i,.@i + 1 )	
		if( getcharid(1) == .Team[.@i] )
			set .Members[.@i],.Members[.@i] - 1;
			
	if( .Members[0] < 1 ) set .Winner,.Team[1];
	else if( .Members[1] < 1 ) set .Winner,.Team[0];
			
	if( .Winner ){
		mapannounce .Map$,"Team "+getpartyname( .Winner )+" Win the "+.No+"vs"+.No+" Game.",0;
		donpcevent strnpcinfo(0)+"::OnReset";
	}else{
		warp "prontera",155,181;
	}
}
end;
				
OnInit:
set .GMLevel,80;
set .Map$,"pvp_y_1-1";
end;
}

i love this script so much and its work on my server. but the problems is, i don't found where to change the minimum and maximum member to join the match. I want this script to work only if a party has a minimum 3 members (including the party leader) and for a party with 8 members above can't join the match.

Then, the next problem i found is the other party leader can remove the game that made by another party leader.

For example: the leader of party "A" create the game, then the leader of party "B" can remove the game.

 

At last, can i request for this script to make a player who died automatically go back to prontera? (Like GvG).

 

Sorry for repeat my words, i just want to explain this as easy as i can and sorry for my bad english too, i hope you guys understand what i said haha.. and, thank you so much for your attention and your help. :D

Edited by Jesky

4 answers to this question

Recommended Posts

Posted

mes "Min = 3 Max = "+$@partymembercount;
                mes "Because you only have "+$@partymembercount+" member right now.";
                next;
                input .No,3,$@partymembercount

Posted
getpartymember getcharid(1),1;
if( getcharid(0) != getpartyleader( getcharid(1),2 ) || !getcharid(1) ){

change to

getpartymember getcharid(1),1;
if( $@partymembercount < 3 || $@partymembercount > 8 ){
	mes "Only a Party with 3 ~ 8 members can join.";
}
else if( getcharid(0) != getpartyleader( getcharid(1),2 ) || !getcharid(1) ){

then

input .No,1,$@partymembercount;

change to

input .No,3,$@partymembercount;

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...