Jump to content
  • 0

How to add Reward to winning team for this pvp script?


Caves

Question


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  14
  • Reputation:   0
  • Joined:  06/27/14
  • Last Seen:  

Can someone teach me how to add the codes to give the winning team a reward item, as well as when a player kills a player he gets an item too.

// ------------------------------------------------------------------------------------------
// ------ rAthena Script Release
// Title: Simple 4 versus 4 PVP Gateway
// Author: jTynne - [email protected]
// Modified by: Scene - [email protected]
// Version: 0.1 (Beta)
// ------------------------------------------------------------------------------------------
prontera,145,186,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 4 versus 4 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+"/4)",L_odin,"Freya ("+$pvp4nB+"/4)",L_freya;


L_odin:
if(.@charid == $pvp4nAchar1 || .@charid == $pvp4nAchar2 || .@charid == $pvp4nAchar3 || .@charid == $pvp4nAchar4 || .@charid == $pvp4nBchar1 || .@charid == $pvp4nBchar2 || .@charid == $pvp4nBchar3 || .@charid == $pvp4nBchar4) { mes .@n$; mes "You may only register once per round."; close; end; }
if($pvp4nA < 4) {
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 == 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 == 4 && $pvp4nB == 4) { 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 < 4) {
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($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 == 4 && $pvp4nB == 4) { 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,$pvp4nAchar4; }
else if (.@x == 4)
{ warpchar "guild_vs3",83,50,$pvp4nBchar1; }
else if (.@x == 5)
{ warpchar "guild_vs3",83,50,$pvp4nBchar2; }
else if (.@x == 6)
{ warpchar "guild_vs3",83,50,$pvp4nBchar3; }
else if (.@x == 7)
{ warpchar "guild_vs3",83,50,$pvp4nBchar4; }
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 $pvp4nBchar1,0;
set $pvp4nBchar2,0;
set $pvp4nBchar3,0;
set $pvp4nBchar4,0;
end;
}


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

5 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  54
  • Topics Per Day:  0.01
  • Content Count:  513
  • Reputation:   83
  • Joined:  08/11/12
  • Last Seen:  

What are the conditions for determining the winning team?

For rewarding someone after killing an enemy, just add this line after "OnPcKillEvent:"

Getitem <insert item id here>, <quantity>;
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  14
  • Reputation:   0
  • Joined:  06/27/14
  • Last Seen:  

What are the conditions for determining the winning team?

For rewarding someone after killing an enemy, just add this line after "OnPcKillEvent:"

Getitem <insert item id here>, <quantity>;

 

The winning team is determined when theres no one left alive in the other team.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  54
  • Topics Per Day:  0.01
  • Content Count:  513
  • Reputation:   83
  • Joined:  08/11/12
  • Last Seen:  

My Changes are marked with "//4v4 Team rewarder" comment lines  :)

 

Not Tested. Please give me a feedback on the results. Thanks.

- script pvp4vs4#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;

//4v4 Team rewarder
for (set .@x, 1; .@x <= getarraysize($pvp4nA); set .@x, .@x + 1){
	if (getd("$pvp4nAchar"+.@x) == killedrid)
		set $pvp4nA, $pvp4nA - 1;
	else
		set $pvp4nB, $pvp4nB - 1;
}

if ($pvp4nB <= 0){ // if Team Freya kills all of Team Odin
	mapannounce "guild_vs3","Team Freya has dominated Team Odin!!",1,0xD6A4E6;
	for (set .@x, 1; .@x <= getarraysize($pvp4nA); set .@x, .@x + 1){
		atcommand "#item "+getd("$pvp4nAchar"+.@x)+" "+$4v4reward+" "+$4v4rewardqty;
	}
} else if ($pvp4nA <= 0) { // if Team Odin kills all of Team Freya
	mapannounce "guild_vs3","Team Odin has dominated Team Freya!!",1,0xD6A4E6;
	for (set .@x, 1; .@x <= getarraysize($pvp4nB); set .@x, .@x + 1){
		atcommand "#item "+getd("$pvp4nBchar"+.@x)+" "+$4v4reward+" "+$4v4rewardqty;
	}	
	
	
}


}

end;

OnInit:
//4v4 Team rewarder configuration
set $4v4reward, 607; // Change this for item reward
set $4v4rewardqty, 10; // Change this for item reward quantity
end;
}

Edited by jezznar
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  14
  • Reputation:   0
  • Joined:  06/27/14
  • Last Seen:  

 

My Changes are marked with "//4v4 Team rewarder" comment lines  :)

 

Not Tested. Please give me a feedback on the results. Thanks.

- script pvp4vs4#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;

//4v4 Team rewarder
for (set .@x, 1; .@x <= getarraysize($pvp4nA); set .@x, .@x + 1){
	if (getd("$pvp4nAchar"+.@x) == killedrid)
		set $pvp4nA, $pvp4nA - 1;
	else
		set $pvp4nB, $pvp4nB - 1;
}

if ($pvp4nB <= 0){ // if Team Freya kills all of Team Odin
	mapannounce "guild_vs3","Team Freya has dominated Team Odin!!",1,0xD6A4E6;
	for (set .@x, 1; .@x <= getarraysize($pvp4nA); set .@x, .@x + 1){
		atcommand "#item "+getd("$pvp4nAchar"+.@x)+" "+$4v4reward+" "+$4v4rewardqty;
	}
} else if ($pvp4nA <= 0) { // if Team Odin kills all of Team Freya
	mapannounce "guild_vs3","Team Odin has dominated Team Freya!!",1,0xD6A4E6;
	for (set .@x, 1; .@x <= getarraysize($pvp4nB); set .@x, .@x + 1){
		atcommand "#item "+getd("$pvp4nBchar"+.@x)+" "+$4v4reward+" "+$4v4rewardqty;
	}	
	
	
}


}

end;

OnInit:
//4v4 Team rewarder configuration
set $4v4reward, 607; // Change this for item reward
set $4v4rewardqty, 10; // Change this for item reward quantity
end;
}

some how the event doesnt trigger. 

i tested to apply and it worked until we were warped to the map.

then when we tried to apply or rerun the event the registration slots were still filled even when no one was left in the map abd everyone died

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  54
  • Topics Per Day:  0.01
  • Content Count:  513
  • Reputation:   83
  • Joined:  08/11/12
  • Last Seen:  

// edit

 

Made a thread for this in the release sections. Please checkout: https://rathena.org/board/topic/103294-pvp-4v4/#entry290639

I hope you can provide me some feedback :) thanks.

post-7005-0-10641800-1443551875_thumb.jpg

post-7005-0-20223800-1443551878_thumb.jpg

post-7005-0-59595900-1443551880_thumb.jpg

post-7005-0-04818100-1443551883_thumb.jpg

post-7005-0-11353400-1443551886_thumb.jpg

post-7005-0-65317500-1443551887_thumb.jpg

post-7005-0-03500500-1443551890_thumb.jpg

Edited by jezznar
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...