Hi everyone... i already tried this script but it worked . the problem is.. how to revised the script for example per party can warp to respective place? bcoz this script if all ready and set. when they warp all parties is shuffle to place not 1 place only.. i hope someone can help me for this..
sorry for bad english
///// PVP MATCHER NPC
caspen,172,186,5 script PVP MATCHER NPC 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$,"caspen",171,204;
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 "caspen",171,204;
}
}
end;
OnInit:
set .GMLevel,60;
set .Map$,"guild_vs4";
end;
}
Question
mikemike
Hi everyone... i already tried this script but it worked . the problem is.. how to revised the script for example per party can warp to respective place? bcoz this script if all ready and set. when they warp all parties is shuffle to place not 1 place only.. i hope someone can help me for this..
sorry for bad english
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.