Jump to content
  • 0

Bug in 3 vs 3


brunoshp

Question


  • Group:  Members
  • Topic Count:  64
  • Topics Per Day:  0.02
  • Content Count:  180
  • Reputation:   7
  • Joined:  12/19/12
  • Last Seen:  

How can I fix these errors?

arena_room,102,100,5 script 3vs3Party 822,{
//npctalk getpartymembercount(getcharid(1));
mes "[Arena Guide]";
mes "Welcome to the 3 vs 3 Party Arena!!!";
mes "Would you like to compete?";
next;
menu "Oooh Yeeaahh!!!",L_Yes, "Nuuu", L_No;
close;
L_Yes:
if (BaseLevel < 250 || Class==Job_Novice || Class==Job_Baby || Class==Job_Novice_High) goto L_Level;
if (getpartymembercount(getcharid(1)) == 3 && getpartycount(getcharid(1)) == 3){
 set .@myparty, getcharid(1);
 if(.@myparty==$PP1_Team1_id || .@myparty==$PP1_Team2_id || .@myparty==$PP2_Team1_id || .@myparty==$PP2_Team2_id){
  mes "[Arena Guide]";
  mes "Your party is already playing...";
  close;
 }
 getmapxy(@PRTYPRTY_city$, @PRTYPRTY_x, @PRTYPRTY_y, 0);
 set .@pos, arena_queue_add(2); //sets @PRTYPRTY_active=1 as well
 mes "[Arena Guide]";
 if(.@pos==0){
  mes "The queue is full. Please wait a while and try again.";
 }else if(.@pos==-2){
  mes "Sorry, you and your Party need to be at least level 200. No Novices allowed either.";
 }else if(.@pos==-1){
  mes "You / your party already are on a waiting line...";
 }else if(.@pos==2){
  if($@PP1_running==0){
set $@PP1_running, 1;
donpcevent "PARTYVSPARTY_WINR::onstart1";
  }else if($@PP2_running==0){
set $@PP2_running, 1;
donpcevent "PARTYVSPARTY_WINR::onstart2";
  }else{
mes "Congratulations, you are now on the waiting line for 3vs3 Party!";
mes "Your position is: ^FF0000"+(.@pos-1)+"^000000";
  next;
  mes "[Arena Guide]";
  mes "^0000FFWhen it's your turn, you will be taken to the Arena even if you moved away from this map!";
  mes "^FF0000But if you logout, you will be put out of the queue.";
  close;
 }
}else{
 mes "[Arena Guide]";
 mes "Sorry, you do not meet the requirements, check that your party has exactly 3 people in it and try again.";
}
close;
L_No:
mes "[Arena Guide]";
mes "Okay, please come again!";
close;
L_Level:
mes "[Arena Guide]";
mes "Sorry, you need to be at least level 250.";
close;
}}
izlude,135,114,5 duplicate(3vs3Party) 3vs3Party#2 822
payon, 158,233,5 duplicate(3vs3Party) 3vs3Party#3 822
ra_in01,318,291,2 duplicate(3vs3Party) 3vs3Party#4 822
//-------------------------------------------------------------------------
//
// ARENA 1
//
//-------------------------------------------------------------------------
guild_vs1.gat,0,0,0 script PARTYVSPARTY_TIMR1 -1,{
OnTimer10000:
set $PP1_times_10s, $PP1_times_10s + 1;
//4 minutes
if ($PP1_times_10s==24){
 mapannounce "guild_vs1.gat", "Everyone, you have one minute to finish this fight!!", 1;
}
//4.66 minutes
if ($PP1_times_10s==28){
 mapannounce "guild_vs1.gat", "Attention! The round is over in 20 seconds, the team with more people alive will win!", 1;
}
//5 minutes - time's over
if ($PP1_times_10s>=30){
 stopnpctimer;
 stopnpctimer "PPTimer1";
 set .@PP1_Team1_alive, countpartyin("guild_vs1", $PP1_Team1_id);
 set .@PP1_Team2_alive, countpartyin("guild_vs1", $PP1_Team2_id);
 if(.@PP1_Team1_alive > .@PP1_Team2_alive){
  //team1 wins
  if($PP1_Team2_x) warpparty $PP1_Team2_city$,$PP1_Team2_x,$PP1_Team2_y,$PP1_Team2_id;
  else warpparty "prontera",156,173,$PP1_Team2_id;
  if (getpartymembercount($PP1_Team1_id) <= 3)
warpparty "lhz_cube.gat",122,74,$PP1_Team1_id;
  else
warpparty "prontera",156,173,$PP1_Team1_id; //they cheated
  mapannounce "arena_room", "We have a winner for this 3vs3 fight! Party "
+getpartyname($PP1_Team1_id)+" defeated "+getpartyname($PP1_Team2_id)+"!!", 1;
  sleep 10000;
  donpcevent "PARTYVSPARTY_WINR::onstart1";
 }else if(.@PP1_Team2_alive > .@PP1_Team1_alive){
  //team2 wins
  if($PP1_Team1_x) warpparty $PP1_Team1_city$,$PP1_Team1_x,$PP1_Team1_y,$PP1_Team1_id;
  else warpparty "prontera",156,173,$PP1_Team1_id;
  if (getpartymembercount($PP1_Team2_id) <= 3)
warpparty "lhz_cube.gat",122,74,$PP1_Team2_id;
  else
warpparty "prontera",156,173,$PP1_Team2_id; //they cheated
  mapannounce "arena_room", "We have a winner for this 3vs3 fight! Party "
+getpartyname($PP1_Team2_id)+" defeated "+getpartyname($PP1_Team1_id)+"!!", 1;
  sleep 10000;
  donpcevent "PARTYVSPARTY_WINR::onstart1";
 }else{
  //draw
  if($PP1_Team1_x) warpparty $PP1_Team1_city$,$PP1_Team1_x,$PP1_Team1_y,$PP1_Team1_id;
  else warpparty "prontera",156,173,$PP1_Team1_id;
  if($PP1_Team2_x) warpparty $PP1_Team2_city$,$PP1_Team2_x,$PP1_Team2_y,$PP1_Team2_id;
  else warpparty "prontera",156,173,$PP1_Team2_id;
  mapannounce "arena_room", "The 3vs3 fight between party "
+getpartyname($PP1_Team1_id)+" and "+getpartyname($PP1_Team2_id)+" was a draw!!", 1;
  sleep 10000;
  donpcevent "PARTYVSPARTY_WINR::onstart1";
 }
 end;
}
donpcevent "PARTYVSPARTY_WINR::OnCheckWinner1";
}
guild_vs1.gat,1,1,1 script PPTimer1 -1,{
OnTimer10001:
if (getpartycount($PP1_Team1_id) > 3){ set .@cheater, $PP1_Team1_id; goto L_Cheat; }
if (getpartycount($PP1_Team2_id) > 3){ set .@cheater, $PP1_Team2_id; goto L_Cheat; }
initnpctimer;
end;
L_Cheat:
stopnpctimer;
stopnpctimer "PARTYVSPARTY_TIMR1";
set $PP1_Team1_id, 0;
set $PP1_Team2_id, 0;
mapwarp "guild_vs1","prontera",156,173;
mapannounce "arena_room", "Party "
 +getpartyname(.@cheater)+" tried to get more than 3 members during the 3vs3 fight. This match is cancelled!!", 1;
sleep 10000;
donpcevent "PARTYVSPARTY_WINR::onstart1";
end;
}
//-------------------------------------------------------------------------
//
// ARENA 2
//
//-------------------------------------------------------------------------
guild_vs1-1.gat,0,0,0 script PARTYVSPARTY_TIMR2 -1,{
OnTimer10000:
set $PP2_times_10s, $PP2_times_10s + 1;
//4 minutes
if ($PP2_times_10s==24){
 mapannounce "guild_vs1-1.gat", "Everyone, you have one minute to finish this fight!!", 1;
}
//4.66 minutes
if ($PP2_times_10s==28){
 mapannounce "guild_vs1-1.gat", "Attention! The round is over in 20 seconds, the team with more people alive will win!", 1;
}
//5 minutes - time's over
if ($PP2_times_10s>=30){
 stopnpctimer;
 stopnpctimer "PPTimer2";
 set .@PP2_Team1_alive, countpartyin("guild_vs1-1", $PP2_Team1_id);
 set .@PP2_Team2_alive, countpartyin("guild_vs1-1", $PP2_Team2_id);
 if(.@PP2_Team1_alive > .@PP2_Team2_alive){
  //team1 wins
  if($PP2_Team2_x) warpparty $PP2_Team2_city$,$PP2_Team2_x,$PP2_Team2_y,$PP2_Team2_id;
  else warpparty "prontera",156,173,$PP2_Team2_id;
  if (getpartymembercount($PP2_Team1_id) <= 3)
warpparty "lhz_cube.gat",122,74,$PP2_Team1_id;
  else
warpparty "prontera",156,173,$PP2_Team1_id; //they cheated
  mapannounce "arena_room", "We have a winner for this 3vs3 fight! Party "
+getpartyname($PP2_Team1_id)+" defeated "+getpartyname($PP2_Team2_id)+"!!", 1;
  sleep 10000;
  donpcevent "PARTYVSPARTY_WINR::onstart2";
 }else if(.@PP2_Team2_alive > .@PP2_Team1_alive){
  //team2 wins
  if($PP2_Team1_x) warpparty $PP2_Team1_city$,$PP2_Team1_x,$PP2_Team1_y,$PP2_Team1_id;
  else warpparty "prontera",156,173,$PP2_Team1_id;
  if (getpartymembercount($PP2_Team2_id) <= 3)
warpparty "lhz_cube.gat",122,74,$PP2_Team2_id;
  else
warpparty "prontera",156,173,$PP2_Team2_id; //they cheated
  mapannounce "arena_room", "We have a winner for this 3vs3 fight! Party "
+getpartyname($PP2_Team2_id)+" defeated "+getpartyname($PP2_Team1_id)+"!!", 1;
  sleep 10000;
  donpcevent "PARTYVSPARTY_WINR::onstart2";
 }else{
  //draw
  if($PP2_Team1_x) warpparty $PP2_Team1_city$,$PP2_Team1_x,$PP2_Team1_y,$PP2_Team1_id;
  else warpparty "prontera",156,173,$PP2_Team1_id;
  if($PP2_Team2_x) warpparty $PP2_Team2_city$,$PP2_Team2_x,$PP2_Team2_y,$PP2_Team2_id;
  else warpparty "prontera",156,173,$PP2_Team2_id;
  mapannounce "arena_room", "The 3vs3 fight between party "
+getpartyname($PP2_Team1_id)+" and "+getpartyname($PP2_Team2_id)+" was a draw!!", 1;
  sleep 10000;
  donpcevent "PARTYVSPARTY_WINR::onstart2";
 }
 end;
}
donpcevent "PARTYVSPARTY_WINR::OnCheckWinner2";
}
guild_vs1-1.gat,1,1,1 script PPTimer2 -1,{
OnTimer10001:
if (getpartycount($PP2_Team1_id) > 3){ set .@cheater, $PP2_Team1_id; goto L_Cheat; }
if (getpartycount($PP2_Team2_id) > 3){ set .@cheater, $PP2_Team2_id; goto L_Cheat; }
initnpctimer;
end;
L_Cheat:
stopnpctimer;
stopnpctimer "PARTYVSPARTY_TIMR2";
set $PP2_Team1_id, 0;
set $PP2_Team2_id, 0;
mapwarp "guild_vs1-1","prontera",156,173;
mapannounce "arena_room", "Party "
 +getpartyname(.@cheater)+" tried to get more than 3 members during the 3vs3 fight. This match is cancelled!!", 1;
sleep 10000;
donpcevent "PARTYVSPARTY_WINR::onstart2";
end;
}
//-------------------------------------------------------------------------
//
// GAME NPC
//
//-------------------------------------------------------------------------
guild_vs1.gat,0,0,0 script PARTYVSPARTY_WINR -1,{
mes "[Arena Guide]";
mes "What are you doing here? ";
close;
OnInit:
mapwarp "guild_vs1.gat","prontera",156,173;
mapwarp "guild_vs1-1.gat","prontera",156,173;
set $@PP1_running, 1;
set $@PP2_running, 1;
donpcevent "PARTYVSPARTY_WINR::onstart1";
donpcevent "PARTYVSPARTY_WINR::onstart2";
end;
onstart1:
set $PP1_Team1_id, 0;
set $PP1_Team2_id, 0;
set $PP1_times_10s, 0;
set $PP1_Team1_city$, 0; set $PP1_Team1_x, 0; set $PP1_Team1_y, 0;
set $PP1_Team2_city$, 0; set $PP1_Team2_x, 0; set $PP1_Team2_y, 0;
if(warp_arena_queue(2,1,"guild_vs1",0,0,2) > 0){ //sets $team1id $team2id as well
 set $@PP1_running, 1;
 set $PP1_times_10s, 0;
 initnpctimer "PARTYVSPARTY_TIMR1";
 initnpctimer "PPTimer1";
}else{
 set $@PP1_running, 0;
}
end;
onstart2:
set $PP2_Team1_id, 0;
set $PP2_Team2_id, 0;
set $PP2_times_10s, 0;
set $PP2_Team1_city$, 0; set $PP2_Team1_x, 0; set $PP2_Team1_y, 0;
set $PP2_Team2_city$, 0; set $PP2_Team2_x, 0; set $PP2_Team2_y, 0;
if(warp_arena_queue(2,2,"guild_vs1-1",0,0,2) > 0){ //sets $team1id $team2id as well
 set $@PP2_running, 1;
 set $PP2_times_10s, 0;
 initnpctimer "PARTYVSPARTY_TIMR2";
 initnpctimer "PPTimer2";
}else{
 set $@PP2_running, 0;
}
end;
OnPCLogoutEvent:
if(@PRTYPRTY_active==1)
 arena_queue_del(2);
end;
OnPCDieEvent:
getmapxy(.@mapname$, .@mapx, .@mapy, 0);
if(.@mapname$=="guild_vs1-1"){
 if(@PRTYPRTY_x) warp @PRTYPRTY_city$,@PRTYPRTY_x,@PRTYPRTY_y;
 else warp "prontera",156,173;
 set @PRTYPRTY_city$, 0; set @PRTYPRTY_x, 0; set @PRTYPRTY_y, 0;
 sleep2 1000;
 alive;
}
end;
OnCheckWinner1:
set .@PP1_Team1_alive, countpartyin("guild_vs1", $PP1_Team1_id);
set .@PP1_Team2_alive, countpartyin("guild_vs1", $PP1_Team2_id);
if ( .@PP1_Team1_alive==0 && .@PP1_Team2_alive==0 ) goto L_NoWinner1;
if ( .@PP1_Team1_alive == 0 ) {
 //team2 wins
 stopnpctimer "PARTYVSPARTY_TIMR1";
 stopnpctimer "PPTimer1";
 if($PP1_Team1_x) warpparty $PP1_Team1_city$,$PP1_Team1_x,$PP1_Team1_y,$PP1_Team1_id;
 else warpparty "prontera",156,173,$PP1_Team1_id;
 if (getpartymembercount($PP1_Team2_id) <= 3)
  warpparty "lhz_cube.gat",122,74,$PP1_Team2_id;
 else
  warpparty "prontera",156,173,$PP1_Team2_id; //they cheated
 //declare winner
 mapannounce "arena_room", "We have a winner for this 3vs3 fight! Party "
  +getpartyname($PP1_Team2_id)+" defeated "+getpartyname($PP1_Team1_id)+"!!", 1;
 sleep 10000;
 donpcevent "PARTYVSPARTY_WINR::onstart1";
}else if ( .@PP1_Team2_alive == 0){
 //team1 wins
 stopnpctimer "PARTYVSPARTY_TIMR1";
 stopnpctimer "PPTimer1";
 if($PP1_Team2_x) warpparty $PP1_Team2_city$,$PP1_Team2_x,$PP1_Team2_y,$PP1_Team2_id;
 else warpparty "prontera",156,173,$PP1_Team2_id;
 if (getpartymembercount($PP1_Team1_id) <= 3)
  warpparty "lhz_cube.gat",122,74,$PP1_Team1_id;
 else
  warpparty "prontera",156,173,$PP1_Team1_id; //they cheated
 //declare winner
 mapannounce "arena_room", "We have a winner for this 3vs3 fight! Party "
  +getpartyname($PP1_Team1_id)+" defeated "+getpartyname($PP1_Team2_id)+"!!", 1;
 sleep 10000;
 donpcevent "PARTYVSPARTY_WINR::onstart1";
}else{
 initnpctimer "PARTYVSPARTY_TIMR1";
}
end;
L_NoWinner1:
stopnpctimer "PARTYVSPARTY_TIMR1";
stopnpctimer "PPTimer1";
mapannounce "arena_room", "The 3vs3 fight between party "
 +getpartyname($PP1_Team1_id)+" and "+getpartyname($PP1_Team2_id)+" was a draw!!", 1;
sleep 10000;
donpcevent "PARTYVSPARTY_WINR::onstart1";
end;
OnCheckWinner2:
set .@PP2_Team1_alive, countpartyin("guild_vs1-1", $PP2_Team1_id);
set .@PP2_Team2_alive, countpartyin("guild_vs1-1", $PP2_Team2_id);
if ( .@PP2_Team1_alive==0 && .@PP2_Team2_alive==0 ) goto L_NoWinner2;
if ( .@PP2_Team1_alive == 0 ) {
 //team2 wins
 stopnpctimer "PARTYVSPARTY_TIMR2";
 stopnpctimer "PPTimer2";
 if($PP2_Team1_x) warpparty $PP2_Team1_city$,$PP2_Team1_x,$PP2_Team1_y,$PP2_Team1_id;
 else warpparty "prontera",156,173,$PP2_Team1_id;
 if (getpartymembercount($PP2_Team2_id) <= 3)
  warpparty "lhz_cube.gat",122,74,$PP2_Team2_id;
 else
  warpparty "prontera",156,173,$PP2_Team2_id; //they cheated
 //declare winner
 mapannounce "arena_room", "We have a winner for this 3vs3 fight! Party "
  +getpartyname($PP2_Team2_id)+" defeated "+getpartyname($PP2_Team1_id)+"!!", 1;
 sleep 10000;
 donpcevent "PARTYVSPARTY_WINR::onstart2";
}else if ( .@PP2_Team2_alive == 0){
 //team1 wins
 stopnpctimer "PARTYVSPARTY_TIMR2";
 stopnpctimer "PPTimer2";
 if($PP2_Team2_x) warpparty $PP2_Team2_city$,$PP2_Team2_x,$PP2_Team2_y,$PP2_Team2_id;
 else warpparty "prontera",156,173,$PP2_Team2_id;
 if (getpartymembercount($PP2_Team1_id) <= 3)
  warpparty "lhz_cube.gat",122,74,$PP2_Team1_id;
 else
  warpparty "prontera",156,173,$PP2_Team1_id; //they cheated
 //declare winner
 mapannounce "arena_room", "We have a winner for this 3vs3 fight! Party "
  +getpartyname($PP2_Team1_id)+" defeated "+getpartyname($PP2_Team2_id)+"!!", 1;
 sleep 10000;
 donpcevent "PARTYVSPARTY_WINR::onstart2";
}else{
 initnpctimer "PARTYVSPARTY_TIMR2";
}
end;
L_NoWinner2:
stopnpctimer "PARTYVSPARTY_TIMR2";
stopnpctimer "PPTimer2";
mapannounce "arena_room", "The 3vs3 fight between party "
 +getpartyname($PP2_Team1_id)+" and "+getpartyname($PP2_Team2_id)+" was a draw!!", 1;
sleep 10000;
donpcevent "PARTYVSPARTY_WINR::onstart2";
end;
}
//
// Prize NPC
//
lhz_cube.gat,124,74,3 script winnerPrize#3vs3 818,2,2,{
sc_end SC_ALL;
mes "[Winner Prize]";
mes "Congratulations, you're the winners! Here's your prize ~ ";
next;
getitem 22555,1;
percentheal 100,100;
if(@PRTYPRTY_x) warp @PRTYPRTY_city$,@PRTYPRTY_x,@PRTYPRTY_y;
else warp "prontera",156,173;
set @PRTYPRTY_city$, 0; set @PRTYPRTY_x, 0; set @PRTYPRTY_y, 0;
end;
}

Edited by Emistry
Please use [CODEBOX] or Attachments for long contents.
Link to comment
Share on other sites

4 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  60
  • Topics Per Day:  0.01
  • Content Count:  562
  • Reputation:   219
  • Joined:  11/22/11
  • Last Seen:  

and where is error?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  64
  • Topics Per Day:  0.02
  • Content Count:  180
  • Reputation:   7
  • Joined:  12/19/12
  • Last Seen:  


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

countpartyin() and partycount() is not an default script commands that we have in rAthena ...

you have to get the source snippet for this commands..

of course..ask the script author....

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  64
  • Topics Per Day:  0.02
  • Content Count:  180
  • Reputation:   7
  • Joined:  12/19/12
  • Last Seen:  

countpartyin and partycount are ok! now error is queue!

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...