Jump to content
  • 0

Help please


idLaZ

Question


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  93
  • Reputation:   6
  • Joined:  12/10/11
  • Last Seen:  

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

5 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  48
  • Topics Per Day:  0.01
  • Content Count:  1125
  • Reputation:   236
  • Joined:  07/30/12
  • Last Seen:  


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;

}

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  93
  • Reputation:   6
  • Joined:  12/10/11
  • Last Seen:  

The prize still not given.

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   616
  • Joined:  07/05/12
  • Last Seen:  

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


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  93
  • Reputation:   6
  • Joined:  12/10/11
  • Last Seen:  

The NPC became unclickable.

Edited by idLaZ
Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   616
  • Joined:  07/05/12
  • Last Seen:  

Post a ss of your error(s) display by your mapserver

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