Jump to content

Question

Posted (edited)

Hello rAthena members, will you help me with this script? I don't know how to fix it.

If possible, can you edit it for me?

 

This is a Party vs Party Event

 

> When the Party 1 has won, each member of the Party 1 will automatically get a prize and automatically warp to their Save Point or Prontera.

> When the Party 2 has lose, they will automatically warp to their Save Point or Prontera.

 
Sorry for my bad grammar, I hope you can help me. Thank you.
 
prontera,156,148,4	script	Team Wars::teamwar	899,{
if (getgmlevel() >= 99){
	menu "standard menu",standard,"reset",lend;
}
standard:
set $@members,2; // number of party members change this to your party size you want
set $@start,0;
	getpartymember(getcharid(1));
	set @partymembercount,$@partymembercount;
	if ( $@start==1) {
			mes "The Sign Ups are currently unavailable because a match is in progress. Don't hesitate to try again in a few minutes!";
			close;
	}
	if ( @partymembercount==$@members) {
	if ($@TeamID1==getcharid(1)) 
		{
			mes "Do you wish to sign out your team?";	
			next;	
			if (select("I Give up ~.","Never Say Quit !!")==2) close;	
			announce "Team 1 : [ " + getpartyname($@TeamID1) + " ] has sign out. We need another Party to sign up now!",bc_yellow|bc_map;	
			set $@TeamID1, 0;
			close;	
		}
	if ($@TeamID2==getcharid(1)) 
		{	
			mes "Do you wish to sign out your team?";	
			next;	
			if (select("I Give up ~.","Never Say Quit !!")==2) close;
			announce "Team 2 : [ " + getpartyname($@TeamID2) + " ] has sign out. We need another Party to sign up now!",bc_yellow|bc_map;	
			set $@TeamID2, 0;	
			close;	
		}
		mes "Hello "+strcharinfo(0)+" what do you want?";
		if (($@TeamID1!=0) && ($@TeamID2!=0)) 
		{
			mes "The Sign Ups are currently unavailable because a match is in progress. Don't hesitate to try again in a few minutes!";
			close;
		}
		if ( getpartyleader(getcharid(1),2) != getcharid(0) )
		{
			mes "Only party leader have the right to sign up / out from the game with me..";
			close;
		}
			mes "Choose your team to register.";
			switch(select("Red Team - [" + GetPartyName($@TeamID1) + "] :Blue Team - [" + GetPartyName($@TeamID2) + "]")) 
				{
				case 1:	mes "[  Team War  ]";
						if ($@TeamID1==0 || getpartyname($@TeamID1)=="null") 
						{
							getpartymember(getcharid(1)),1;
							getpartymember(getcharid(1)),2;
							copyarray $@partymembercidt1[0],$@partymembercid[0],$@members;
							copyarray $@partymemberaid1[0],$@partymemberaid[0],$@members;
								for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
									if(isloggedin($@partymemberaid1[.@i],$@partymembercidt1[.@i]))  set .@count,.@count+1;
								}
								if(.@count < $@members) {
									mes "You need all your party members to be online to Register";
									close;
								}
							set $@TeamID1, getcharid(1);	
							initnpctimer;	
							mes "Your Party is now subscribed, good luck!";	
							announce "Team 1 : [ " +getpartyname($@TeamID1)+ " ] has sign up For the Team War!",bc_blue|bc_map;	
							doevent "teamwar::OnSubscriptionTeam";	
							close;	
						} else {
							mes "I'm sorry! Another Team has sign up before you...";	
							close;	
						}
				case 2:	mes "[  Team War  ]";
					if ($@TeamID2==0 || getpartyname($@TeamID2)=="null") 
					{	
						getpartymember(getcharid(1)),1;
						getpartymember(getcharid(1)),2;
						copyarray $@partymembercidt2[0],$@partymembercid[0],$@members;
						copyarray $@partymemberaid2[0],$@partymemberaid[0],$@members;
							for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
								if(isloggedin($@partymemberaid2[.@i],$@partymembercidt2[.@i])) set .@count,.@count+1;
							}
							if(.@count < $@members) {
								mes "You need all your party members to be online to Register";
								close;
							}
						set $@TeamID2, getcharid(1);	
						initnpctimer;	
						mes "Your Party is now subscribed, good luck!";	
						announce "Team 2 : [ " +getpartyname($@TeamID2)+ " ] has sign up For the Team War!",bc_blue|bc_map;
						doevent "teamwar::OnSubscriptionTeam";	
						close;	
					}
					else 
					{	
						mes "I'm sorry! Another Team has sign up before you...";	
						close;
					}
				}
	} else {
		mes "[Event Handler]";
		mes "Please contact your party leader.";
		mes "Your team must have a party consisting of "+$@members+" members.";
		close;
	}
OnSubscriptionTeam:
		getpartymember($@TeamID2),1;
		getpartymember($@TeamID2),2;
		copyarray $@partymembercidtc2[0],$@partymembercid[0],$@members;
		copyarray $@partymemberaidc2[0],$@partymemberaid[0],$@members;
		for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
		if(isloggedin($@partymemberaidc2[.@i],$@partymembercidtc2[.@i])) set .@countx,.@countx+1;
		}
		if(.@countx < $@members) {
		announce "Team War : "+getpartyname($@TeamID2)+"are not all online the match has been canceled",0;
		announce "Team War : registration for 2 new teams are now available",0;
		goto lend;
		close;
		}
		getpartymember($@TeamID1),1;
		getpartymember($@TeamID1),2;
		copyarray $@partymembercidtc1[0],$@partymembercid[0],$@members;
		copyarray $@partymemberaidc1[0],$@partymemberaid[0],$@members;
		for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
		if(isloggedin($@partymemberaidc1[.@i],$@partymembercidtc1[.@i])) set .@countz,.@countz+1;
		}
		if(.@countz < $@members) {
		announce "Team War : "+getpartyname($@TeamID1)+"are not all online the match has been canceled",0;
		announce "Team War : registration for 2 new teams are now available",0;
		goto lend;
		close;
		}
	if($@TeamID1!=0 && $@TeamID2!=0){
		announce "Team War : We have 2 Teams signed up now : "+getpartyname($@TeamID1)+" and "+getpartyname($@TeamID2)+".",bc_blue|bc_map;
		set @win1, 0;
		set @win2, 0;
		goto Onstart;
	}
	end;
OnTimer50000:
	if (($@TeamID1!=0) && ($@TeamID2!=0)) {
		stopnpctimer;
		end;
	}
	stopnpctimer;
	set $@TeamID1, 0;
	set $@TeamID1, 0;
	announce "Team War : we lack teams to start registration for two teams are now available",0;
	end;
	
OnStart:
	warpparty "guild_vs2",89,49,$@TeamID1;
	warpparty "guild_vs2",11,49,$@TeamID2;
	set $@start,1;
	end;
lend:
	stopnpctimer;
	set $@TeamID1,0;
	set $@TeamID2,0;
	set $@start,0;
	set @win1,0;
	set @win2,0;
	set @partymembercount,$@members;
	announce "Thanks for playing",0;
	end;
OnTimer250000:
	Announce "Team War : No Party won due to time limit!",0;
	mapwarp "guild_vs2","prontera",156,191;
	goto lend;
	end;
OnPCKillEvent:
/* 
	Its party Vs party kind of script, then y checking for guilds on the map?? 
	getmapxy(.@map$,.@x,.@y,0);
	if(.@map$=="guild_vs2")
	{
	set .@guser, getmapguildusers("guild_vs2",getcharid(1));
		if ( getcharid(1) == $@TeamID2 )
		{
			if (.@guser) end;	// Checks if 0 guild member of teamid2 left
			warpparty "bat_b01",390,9,$@TeamID2;
			Announce "Team War :"+GetPartyName($@TeamID2)+" won",0;
			goto lend;
		}
		if ( getcharid(1) == $@TeamID1 )
		{
			if (.@guser) end; // Checks if 0 guild member of teamid1 left
			warpparty "bat_b01",390,9,$@TeamID1;
			Announce "Team War :"+GetPartyName($@TeamID1)+" won",0;
			goto lend;
		}
	}
*/
	end;
	
OnPCDieEvent:
OnPCLogoutEvent:
	if(strcharinfo(3) != "guild_vs2") end;
	warp "prontera",156,191;
		for(set .@i, 0; .@i < $@members; set .@i, .@i + 1) {
			if ( $@partymembercidt1[.@i] == getcharid(0)) {
				deletearray $@partymembercidt1[.@i], 1;
				if( getarraysize($@partymembercidt1) == 0 ) {
					set @win2,$@partymembercount;
					goto onwin;
				}
			}
			if ( $@partymembercidt2[.@i] == getcharid(0) ) {
				deletearray $@partymembercidt2[.@i], 1;
				if( getarraysize($@partymembercidt2)  == 0 ) {
					set @win1,$@partymembercount;
					goto onwin;
				}
			}
		}
	end;
onwin:
	if (@win1==0)
	{
		warpparty "bat_b01",390,9,$@TeamID2;
		warpparty "prontera",156,191,$@TeamID1;
		Announce "Team War :"+GetPartyName($@TeamID2)+" won",0;
		goto lend;
		end;
	}
	if (@win2==0)
	{
		warpparty "bat_b01",390,9,$@TeamID1;
		warpparty "prontera",156,191,$@TeamID2;
		Announce "Team War :"+GetPartyName($@TeamID1)+" won",0;
		goto lend;
		end;
	}
	end;
}
guild_vs2	mapflag	nosave
guild_vs2	mapflag	nomemo
guild_vs2	mapflag	nobranch
guild_vs2	mapflag	pvp_noguild
guild_vs2	mapflag	nocommand	60
guild_vs2	mapflag	noicewall
guild_vs2	mapflag	pvp
bat_b01	mapflag	nosave
bat_b01	mapflag	nomemo
bat_b01	mapflag	nobranch
bat_b01	mapflag	pvp_noparty
bat_b01	mapflag	nocommand
bat_b01,390,9,0	script	#prizegiver	111,5,5,{
//OnTouch2:
OnTouch:
	getitem 671,rand(3,5);
	warp "prontera",156,196;
	close;
}
Edited by Capuche
Insert the script into [Code]

5 answers to this question

Recommended Posts

Posted


onwin:

if (@win1==0)

{

getitem 671,rand(3,5);

warpparty "bat_b01",390,9,$@TeamID2;

warpparty "prontera",156,191,$@TeamID1;

announce "Team War :"+GetPartyName($@TeamID1)+" won",0;

goto lend;

end;

}

if (@win2==0)

{

getitem 671,rand(3,5);

warpparty "bat_b01",390,9,$@TeamID1;

warpparty "prontera",156,191,$@TeamID2;

announce "Team War :"+GetPartyName($@TeamID1)+" won",0;

goto lend;

end;

}

end;

}

Posted

1/ Replace the content of the 'onwin' label by this up to the last bracket.

onwin:
	if (@win1==0) {
		Announce "Team War :"+GetPartyName($@TeamID2)+" won",0;
		callsub L_prize, $@TeamID1;
	}
	else if (@win2==0) {
		Announce "Team War :"+GetPartyName($@TeamID1)+" won",0;
		callsub L_prize, $@TeamID2;
		
	}
	warpparty "prontera",156,191,$@TeamID1;
	warpparty "prontera",156,191,$@TeamID2;
	goto lend;
L_prize:
	getpartymember getarg(0), 1;
	getpartymember getarg(0), 2;
	for ( .@i = 0; .@i < $@partymembercount; .@i++ )
		if ( isloggedin( $@partymemberaid[.@i],$@partymembercid[.@i] ) )
			getitem 671, rand(3,5), $@partymemberaid[.@i];
	return;

 

2/ Remove this NPC :

bat_b01,390,9,0	script	#prizegiver	111,5,5,{
OnTouch:
	getitem 671, rand(3,5);
	warp "prontera",156,196;
	close;
}

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