Jump to content
  • 0

About PvP Party Matching by Emistry


Jesky

Question


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  51
  • Reputation:   3
  • Joined:  11/29/13
  • Last Seen:  

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
Link to comment
Share on other sites

4 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  51
  • Reputation:   3
  • Joined:  11/29/13
  • Last Seen:  

anyonee?  /ic

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  51
  • Reputation:   3
  • Joined:  11/29/13
  • Last Seen:  

bump

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  8
  • Reputation:   0
  • Joined:  04/23/14
  • Last Seen:  

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

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

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;
Link to comment
Share on other sites

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.

×
×
  • Create New...