Jump to content
  • 0
Sign in to follow this  
Lyka

Configure reward

Question

Hello i'm having a hard time figuring on how to configure this, i'm sorry just a newbie here. For example i want to configure that the winning party will win just a red potion each, lets say there 4 members inside that party that will receive red potion each? please and thank you!

 

//== Set Winning Party Rewards ==//
	set $@reward_winitem_qnty,0;								// Important, set to how many reward items you set below for the winning party
	setarray $@win_itemid[0],0;								// Set the item id of the reward item
	setarray $@win_itemname$[0],"Red Potion",						// Set the name of the reward item
								"Orange Potion",
								"Yellow Potion",
								"White Potion",
								"Blue Potion";
								
	setarray $@win_itemnum[0],0;
Edited by Lyka

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0


//== Set Winning Party Rewards ==//

set $@reward_winitem_qnty,1; // Important, set to how many reward items you set below for the winning party

setarray $@win_itemid[0],501; // Set the item id of the reward item

setarray $@win_itemname$[0],"Red Potion"; // Set the name of the reward item

setarray $@win_itemnum[0],5;

Share this post


Link to post
Share on other sites
  • 0

Actually, the script portion can be described this way:

 

reward_winitem_qnty ==> the number of different item you'll used as rewardint eh win_itemid array.

win_itemid ==> the item id to use

win_itemname ==> the name you want to display for the corresponding rank in the id array

win_itemnum ==> the number of item players will get from the corresponding rank.

 

Nothing in this section of your main script says 'Only x players will get the reward'. It's in another part of the script.

Share this post


Link to post
Share on other sites
  • 0

Actually, the script portion can be described this way:

 

reward_winitem_qnty ==> the number of different item you'll used as rewardint eh win_itemid array.

win_itemid ==> the item id to use

win_itemname ==> the name you want to display for the corresponding rank in the id array

win_itemnum ==> the number of item players will get from the corresponding rank.

 

Nothing in this section of your main script says 'Only x players will get the reward'. It's in another part of the script.

Hi! Is it okay sir if you could set and example of a correct reward configuration? For example the winning party is composed of 4 players and each of them will receive 1 red potion. Thanks in advance! ;>

Share this post


Link to post
Share on other sites
  • 0

As I said, that's not only a reward configuration that you'll need to do something like that.

You'll also have to edit the "get reward" section.

 

Send me your script, and I'll update it, with comments for you to understand.

Share this post


Link to post
Share on other sites
  • 0

As I said, that's not only a reward configuration that you'll need to do something like that.

You'll also have to edit the "get reward" section.

 

Send me your script, and I'll update it, with comments for you to understand.

 

-	script	init	-1,{
		
OnInit:

	//== CONFIG START ==//
	set $@charsymbol$,"#";									// Set the symbol of your char command ex. #
	
	set $@npcname$,"^009966War Organizer^000000";						// Set NPC name
	set $@party_mem,7;									// Set minimum members per party, if a party has 6 members below including the leader, leader can't register his/her party
	set $@arena_map$,"guild_vs3";								// Set where you want the players to battle
	
	set $@team1_arena_mapX,15;								// Set the starting X position of Team 1
	set $@team1_arena_mapY,49;								// Set the starting Y position of Team 1
	
	set $@team2_arena_mapX,85;								// Set the starting X position of Team 2
	set $@team2_arena_mapY,49;								// Set the starting Y position of Team 2
	
	set $@starting_map$,"quiz_02";								// Set where you want the players to be warped after the player was killed.
	set $@starting_mapX,350;
	set $@starting_mapY,379;

	//== Set Winning Party Rewards ==//
	set $@reward_winitem_qnty,1;								// Important, set to how many reward items you set below for the winning party
	setarray $@win_itemid[0],501;								// Set the item id of the reward item
	setarray $@win_itemname$[0],"Red Potion";						// Set the name of the reward item
							
								
	setarray $@win_itemnum[0],1;								// Set the quantity of the reward
	
	//== Set Losing Party Rewards ==//
	set $@reward_loseitem_qnty,0;								// Important, set to how many reward items you set below for losing party
	setarray $@lse_itemid[0],0;								// Set the item id of the reward item
	setarray $@lse_itemname$[0],"Red Potion",						// Set the name of the reward item
								"Orange Potion";
	setarray $@lse_itemnum[0],0;								// Set the quantity of the reward
	
	//== Set Draw Rewards ==//
	set $@reward_drawitem_qnty,0;								// Important, set to how many reward items you set below for draw result
	setarray $@drw_itemid[0],0;								// Set the item id of the reward item
	setarray $@drw_itemname$[0],"Yellow Potion",						// Set the name of the reward item
								"White Potion";
	setarray $@drw_itemnum[0],0;								// Set the quantity of the reward
	
	//== CONFIG END ==//
	
	// Do not change configs below, this will reset in case the server unexpectedly shuts down
	set $@Battle_Start,0;
	set $@party_team,0;
	set $@party_team1,0;
	set $@party_team2,0;
	set $team1_mem,0;
	set $team2_mem,0;

	    // RWC 3
            enablenpc "WALL#41";
            enablenpc "WALL#42";
            enablenpc "WALL#43";
            enablenpc "WALL#44";
            enablenpc "WALL#45";
            enablenpc "WALL#46";
            enablenpc "WALL#47";
            enablenpc "WALL#48";
            enablenpc "WALL#49";
            enablenpc "WALL#50";
            enablenpc "WALL#51";
            enablenpc "WALL#52";
            enablenpc "WALL#53";
            enablenpc "WALL#54";
            enablenpc "WALL#55";
            enablenpc "WALL#56";
            enablenpc "WALL#57";
            enablenpc "WALL#58";
            enablenpc "WALL#59";
            enablenpc "WALL#60";
            enablenpc "WALL#61";
            enablenpc "WALL#62";
            enablenpc "WALL#63";
            enablenpc "WALL#64";

	// Now let's check if the event is on going or not (checks current server's time)
	// if the event is on going, Enable NPC and sends a message to the player upon logging in
	
	for(set .@q,0; .@q<=22; set .@q,.@q+2) {
		set .@count,.@count+1;
		if(gettime(3)>.@q && gettime(3)<=.@count) {
			set $@evt_start,1;
			enablenpc "PartyReg";
		}
		set .@count,.@count+1;
	}
	end;
}

// Party Registration NPC

quiz_02,350,389,3	script	Party Registration::PartyReg	89,{
	
	mes "["+$@npcname$+"]";
	if(($@Battle_Start && getcharid(1)==$@party_team1) || ($@Battle_Start && getcharid(1)==$@party_team2) ) { mes "Hmm... Too bad for you, you didn't make it to win for your party. Cheer them up instead."; close; }
	if($@Battle_Start || $@party_team>=2) {
		mes "Battle is currently on";
		mes "going. Party registration is";
		mes "close during this time.";
		next;
		if(select("> Check current battle info.:> Leave") == 2){
			mes "["+$@npcname$+"]";
			mes "Come back to me and register your party after the battle between "+getpartyname($@party_team1)+" and "+getpartyname($@party_team2)+" has ended.";
			close;
		}
		mes "["+$@npcname$+"]";
		if(!$@Battle_Start) { mes "The Battle already ended."; close; }
		set @standing_mem1,$@party_mem-$team2_mem;
		set @standing_mem2,$@party_mem-$team1_mem;
		mes "Battle Information";
		mes "---";
		mes "- " + getpartyname($@party_team1) + " Party : ";
		mes "Standing Members Left : " + @standing_mem1;
		mes "---";
		mes "- " + getpartyname($@party_team2) + " Party : ";
		mes "Standing Members Left : " + @standing_mem2; 
		next;
		mes "["+$@npcname$+"]";
		if($team1_mem>$team2_mem) {
			mes "Current leading party is "+getpartyname($@party_team1);
			close;
		} else if($team1_mem<$team2_mem) {
			mes "Current leading party is "+getpartyname($@party_team2);
			close;
		} else {
			mes "Both Party has the same number of members that are still alive.";
			close;
		}
	}
	if(getcharid(1)==0) goto L_ContinueMain;
	if(getcharid(1)==$@party_team1 || getcharid(1)==$@party_team2) { mes getpartyleader(getcharid(1)) + ", your party leader already registered your party, please wait for the other team to register."; close; }
L_ContinueMain:
	mes "Welcome "+strcharinfo(0)+"!";
	mes "I am the War Arena Organizer";

	next;
	switch(select("> Register")) {
		case 1:	callsub R_Party;
	}
R_Party:

	mes "["+$@npcname$+"]";
        if ( callfunc("party_has_duplicate_job") ) {
                mes "It seems that someone in the party has the same class than another member. Please check again the requirements...";
                close;
        }

        if ( $@partymembercount != 7 ) {
                mes "You have to be 7 on the team.";
                close;
	}
	if(getcharid(1)==0) { mes "I see that you have no party yet. Please form your party first before registering."; close; }
	mes "Party Name : "+strcharinfo(1);
	if(getpartyleader(getcharid(1),2)==getcharid(0)) {
		mes "Party Leader : You";
	} else {
		mes "Party Leader : "+getpartyleader(getcharid(1));
	}
	mes "-";
	getpartymember(getcharid(1));
	set @partymembercount,$@partymembercount;
	copyarray @partymembername$[0],$@partymembername$[0],@partymembercount;
	set @countmem,0;

L_DisplayMem:
	if(@countmem == @partymembercount) goto L_Continue;
	set @countmem,@countmem+1;
	goto L_DisplayMem;
L_Continue:
	mes "Party Members ("+(@countmem)+"/"+$@party_mem+")";
	set @count,0;

L_DisplayMember:
	if(@count == @partymembercount) goto L_Continue2;
	mes (@count + 1) + ". ^0000FF" + @partymembername$[@count] + "^000000";
	set @count,@count+1;
	goto L_DisplayMember;
L_Continue2:
	if($@Battle_Start || $@party_team>=2) { next; mes "Sorry but party registration is now close. Please re-register after the current battle progress has ended."; close; }
	if(getpartyleader(getcharid(1),2)!=getcharid(0)) { next; mes strcharinfo(0)+", If you have time, please find your Party Leader "+getpartyleader(getcharid(1))+" and let him/her register your party"; close; }
	if(@countmem>$@party_mem) { next; mes "This event requires you to form a party with only "+$@party_mem+" members including you. I'm sorry to say but you need to expel ^FF0000"+(@countmem-$@party_mem)+"^000000 more member(s)."; close; }
	if(@countmem<$@party_mem) { next; mes "This event requires you to form a party with "+$@party_mem+" members including you. You still need to recruit ^FF0000"+($@party_mem-@countmem)+"^000000 more member(s)."; close; }
	set $@party_team,$@party_team+1;
	if($@party_team==1) {
		set $@party_team1,getcharid(1);
		setarray $@mem_name1$[0],@partymembername$[0],@partymembername$[1],@partymembername$[2],@partymembername$[3],@partymembername$[4];
		announce "Team "+getpartyname($@party_team1)+" registered on Team "+$@party_team+".",bc_all;
		goto L_Continue3;
	}
	if($@party_team==2) {
		set $@party_team2,getcharid(1);
		announce "Team "+getpartyname($@party_team2)+" registered on Team "+$@party_team+".",bc_all;
		setarray $@mem_name2$[0],@partymembername$[0],@partymembername$[1],@partymembername$[2],@partymembername$[3],@partymembername$[4];
		goto L_Continue3;
	}

L_Continue3:
	close2;
	if($@party_team==2) donpcevent "PvP_Func::OnStart";
	end;

OnPCDieEvent:

	getmapxy @map$,@x,@y,0;
	
	if($@Battle_Start && @map$==$@arena_map$ && getcharid(1)==$@party_team1) {
		set $team2_mem,$team2_mem+1;
		warp $@starting_map$,$@starting_mapX,$@starting_mapY;
		if($team2_mem==$@party_mem) {
			setcell $@arena_map$,80,55,80,44,cell_walkable,1;
			setcell $@arena_map$,19,55,19,44,cell_walkable,1;
			donpcevent "PvP_Func::OnTeam2Win2";
		}
		end;
	}
	if($@Battle_Start && @map$==$@arena_map$ && getcharid(1)==$@party_team2) {
		set $team1_mem,$team1_mem+1;
		warp $@starting_map$,$@starting_mapX,$@starting_mapY;
		if($team1_mem==$@party_mem) {
			setcell $@arena_map$,80,55,80,44,cell_walkable,1;
			setcell $@arena_map$,19,55,19,44,cell_walkable,1;
			donpcevent "PvP_Func::OnTeam1Win2";
		}
		end;
	}
	
OnPCLogoutEvent:

	getmapxy @map$,@x,@y,0;
	
	if($@Battle_Start && @map$==$@arena_map$ && getcharid(1)==$@party_team1) {
		warp $@starting_map$,$@starting_mapX,$@starting_mapY;
		set $team2_mem,$team2_mem+1;
		mapannounce $@arena_map$,"User "+strcharinfo(0)+" of "+getpartyname($@party_team1)+" Team logged out of the game.",bc_all;
		if($team2_mem==$@party_mem) {
			setcell $@arena_map$,80,55,80,44,cell_walkable,1;
			setcell $@arena_map$,19,55,19,44,cell_walkable,1;
			donpcevent "PvP_Func::OnTeam2Win2";
		}
		end;
	}
	if($@Battle_Start && @map$==$@arena_map$ && getcharid(1)==$@party_team2) {
		warp $@starting_map$,$@starting_mapX,$@starting_mapY;
		set $team1_mem,$team1_mem+1;
		mapannounce $@arena_map$,"User "+strcharinfo(0)+" of "+getpartyname($@party_team2)+" Team logged out of the game.",bc_all;
		if($team1_mem==$@party_mem) {
			setcell $@arena_map$,80,55,80,44,cell_walkable,1;
			setcell $@arena_map$,19,55,19,44,cell_walkable,1;
			donpcevent "PvP_Func::OnTeam1Win2";
		}
		end;
	}
	
OnPCLoadMapEvent:

	getmapxy @map$,@x,@y,0;
	
	if($@Battle_Start && @map$!=$@arena_map$ && getcharid(1)==$@party_team1) {
		warp $@starting_map$,$@starting_mapX,$@starting_mapY;
		set $team2_mem,$team2_mem+1;
		mapannounce $@arena_map$,""+strcharinfo(0)+" of "+getpartyname($@party_team1)+" party warped out of the battle arena.",bc_blue;
		if($team2_mem==$@party_mem) {
			setcell $@arena_map$,80,55,80,44,cell_walkable,1;
			setcell $@arena_map$,19,55,19,44,cell_walkable,1;
			donpcevent "PvP_Func::OnTeam2Win2";
		}
		end;
	}
	if($@Battle_Start && @map$!=$@arena_map$ && getcharid(1)==$@party_team2) {
		warp $@starting_map$,$@starting_mapX,$@starting_mapY;
		set $team1_mem,$team1_mem+1;
		mapannounce $@arena_map$,""+strcharinfo(0)+" of "+getpartyname($@party_team2)+" party warped out of the battle arena.",bc_blue;
		if($team1_mem==$@party_mem) {
			setcell $@arena_map$,80,55,80,44,cell_walkable,1;
			setcell $@arena_map$,19,55,19,44,cell_walkable,1;
			donpcevent "PvP_Func::OnTeam1Win2";
		}
		end;
	}

}

// Script where all functions are stored

-	script	PvP_Func	-1,{

OnStart:

	initnpctimer;
	set $@Battle_Start,1;
	setcell $@arena_map$,80,55,80,44,cell_walkable,0;
	setcell $@arena_map$,19,55,19,44,cell_walkable,0;
	announce "The Battle between  "+getpartyname($@party_team1)+" and "+getpartyname($@party_team2)+" Party has engaged. Registered Party along with its members will be automatically warped to the arena after 10 seconds.",bc_all;
	gvgoff $@arena_map$;
	setnpctimer 0;
	startnpctimer;
	end;
	
OnTimer5000:

	warpparty $@arena_map$,$@team1_arena_mapX,$@team1_arena_mapY,$@party_team1;
	warpparty $@arena_map$,$@team2_arena_mapX,$@team1_arena_mapY,$@party_team2;
	end;
OnTimer30000:
	mapannounce $@arena_map$,"Players, you only have 30 seconds left to prepare for the Battle.",bc_all;
	end;
OnTimer50000:
	mapannounce $@arena_map$,"The Battle will begin in 5 seconds.",bc_all;
	end;
OnTimer51000:
	mapannounce $@arena_map$,"The Battle will begin in 4 seconds.",bc_all;
	end;
OnTimer52000:
	mapannounce $@arena_map$,"The Battle will begin in 3 seconds.",bc_all;
	end;
OnTimer53000:
	mapannounce $@arena_map$,"The Battle will begin in 2 seconds.",bc_all;
	end;
OnTimer54000:
	mapannounce $@arena_map$,"The Battle will begin in 1 second.",bc_all;
	end;
OnTimer55000:
	gvgon $@arena_map$;
	setcell $@arena_map$,80,55,80,44,cell_walkable,1;
	setcell $@arena_map$,19,55,19,44,cell_walkable,1;

		    disablenpc "WALL#41";
		    disablenpc "WALL#42";
		    disablenpc "WALL#43";
		    disablenpc "WALL#44";
		    disablenpc "WALL#45";
		    disablenpc "WALL#46";
		    disablenpc "WALL#47";
		    disablenpc "WALL#48";
		    disablenpc "WALL#49";
		    disablenpc "WALL#50";
		    disablenpc "WALL#51";
		    disablenpc "WALL#52";
		    disablenpc "WALL#53";
		    disablenpc "WALL#54";
		    disablenpc "WALL#55";
		    disablenpc "WALL#56";
		    disablenpc "WALL#57";
		    disablenpc "WALL#58";
		    disablenpc "WALL#59";
		    disablenpc "WALL#60";
		    disablenpc "WALL#61";
		    disablenpc "WALL#62";
		    disablenpc "WALL#63";
		    disablenpc "WALL#64";

	announce "The team "+getpartyname($@party_team1)+" vs "+getpartyname($@party_team2)+" battle has begun!",bc_all;
	mapannounce $@arena_map$,"You only have 5 minutes to eliminate all opponent's party members. Be quick!!!",bc_all;
	end;
	
	// After 5 Minutes, system will check the party who has the most number of member and will declare that party as a winner.
	// All variables will be resetted.
OnTimer420000:

	if($team2_mem<$team1_mem) {
		donpcevent "PvP_Func::OnTeam1Win";
	} else if ($team2_mem<$team1_mem) {
		donpcevent "PvP_Func::OnTeam2Win";
	} else if ($team2_mem==$team1_mem || $team1_mem==$team2_mem) {
		donpcevent "PvP_Func::OnDraw";
	} else {
		donpcevent "PvP_Func::OnNoWin";
	}
	end;

	// This label will be called after the event has ended without registered parties
OnNoWin:

	announce "The Battle has ended.",bc_all;
	gvgoff $@arena_map$;
	set $@party_team,0;
	set $@Battle_Start,0;
	set $team1_mem,0;
	set $team2_mem,0;
	set $@party_team1,0;
	set $@party_team2,0;

	    	    setcell "guild_vs3",19,55,19,44,cell_walkable,0;
                    setcell "guild_vs3",80,55,80,44,cell_walkable,0;
		    enablenpc "WALL#41";
		    enablenpc "WALL#42";
		    enablenpc "WALL#43";
		    enablenpc "WALL#44";
		    enablenpc "WALL#45";
		    enablenpc "WALL#46";
		    enablenpc "WALL#47";
		    enablenpc "WALL#48";
		    enablenpc "WALL#49";
		    enablenpc "WALL#50";
		    enablenpc "WALL#51";
		    enablenpc "WALL#52";
		    enablenpc "WALL#53";
		    enablenpc "WALL#54";
		    enablenpc "WALL#55";
		    enablenpc "WALL#56";
		    enablenpc "WALL#57";
		    enablenpc "WALL#58";
		    enablenpc "WALL#59";
		    enablenpc "WALL#60";
		    enablenpc "WALL#61";
		    enablenpc "WALL#62";
		    enablenpc "WALL#63";
		    enablenpc "WALL#64";

	stopnpctimer;
	sleep2 10000;
	areawarp $@arena_map$,12,87,87,12,$@starting_map$,$@starting_mapX,$@starting_mapY;
	end;
	
OnEndNoWin:

	announce "The Battle has ended.",bc_all;
	gvgoff $@arena_map$;
	set $@party_team,0;
	set $@Battle_Start,0;
	set $team1_mem,0;
	set $team2_mem,0;
	set $@party_team1,0;
	set $@party_team2,0;
	set $@evt_start,0;

	    	    setcell "guild_vs3",19,55,19,44,cell_walkable,0;
                    setcell "guild_vs3",80,55,80,44,cell_walkable,0;
		    enablenpc "WALL#41";
		    enablenpc "WALL#42";
		    enablenpc "WALL#43";
		    enablenpc "WALL#44";
		    enablenpc "WALL#45";
		    enablenpc "WALL#46";
		    enablenpc "WALL#47";
		    enablenpc "WALL#48";
		    enablenpc "WALL#49";
		    enablenpc "WALL#50";
		    enablenpc "WALL#51";
		    enablenpc "WALL#52";
		    enablenpc "WALL#53";
		    enablenpc "WALL#54";
		    enablenpc "WALL#55";
		    enablenpc "WALL#56";
		    enablenpc "WALL#57";
		    enablenpc "WALL#58";
		    enablenpc "WALL#59";
		    enablenpc "WALL#60";
		    enablenpc "WALL#61";
		    enablenpc "WALL#62";
		    enablenpc "WALL#63";
		    enablenpc "WALL#64";

	stopnpctimer;
	sleep2 10000;
	areawarp $@arena_map$,12,87,87,12,$@starting_map$,$@starting_mapX,$@starting_mapY;
	end;
	
OnDraw:
	announce "Team "+getpartyname($@party_team1)+" and Team "+getpartyname($@party_team2)+" has the same number of members standing in the arena, the battle result is a draw.",bc_all;
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_drawitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name1$[.@i]+" "+$@drw_itemid[.@j]+" "+$@drw_itemnum[.@j]+"";
		}
	}
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_drawitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name2$[.@i]+" "+$@drw_itemid[.@j]+" "+$@drw_itemnum[.@j]+"";
		}
	}
	stopnpctimer;
	gvgoff $@arena_map$;
	set $@party_team,0;
	set $@Battle_Start,0;
	set $team1_mem,0;
	set $team2_mem,0;
	set $@party_team1,0;
	set $@party_team2,0;

	    	    setcell "guild_vs3",19,55,19,44,cell_walkable,0;
                    setcell "guild_vs3",80,55,80,44,cell_walkable,0;
		    enablenpc "WALL#41";
		    enablenpc "WALL#42";
		    enablenpc "WALL#43";
		    enablenpc "WALL#44";
		    enablenpc "WALL#45";
		    enablenpc "WALL#46";
		    enablenpc "WALL#47";
		    enablenpc "WALL#48";
		    enablenpc "WALL#49";
		    enablenpc "WALL#50";
		    enablenpc "WALL#51";
		    enablenpc "WALL#52";
		    enablenpc "WALL#53";
		    enablenpc "WALL#54";
		    enablenpc "WALL#55";
		    enablenpc "WALL#56";
		    enablenpc "WALL#57";
		    enablenpc "WALL#58";
		    enablenpc "WALL#59";
		    enablenpc "WALL#60";
		    enablenpc "WALL#61";
		    enablenpc "WALL#62";
		    enablenpc "WALL#63";
		    enablenpc "WALL#64";

	sleep2 10000;
	areawarp $@arena_map$,12,87,87,12,$@starting_map$,$@starting_mapX,$@starting_mapY;
	end;
	
OnEndDraw:
	announce "Team "+getpartyname($@party_team1)+" and Team "+getpartyname($@party_team2)+" has the same number of members standing in the arena, the battle result is a draw.",bc_all;
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_drawitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name1$[.@i]+" "+$@drw_itemid[.@j]+" "+$@drw_itemnum[.@j]+"";
		}
	}
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_drawitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name2$[.@i]+" "+$@drw_itemid[.@j]+" "+$@drw_itemnum[.@j]+"";
		}
	}
	stopnpctimer;
	gvgoff $@arena_map$;
	set $@party_team,0;
	set $@Battle_Start,0;
	set $team1_mem,0;
	set $team2_mem,0;
	set $@party_team1,0;
	set $@party_team2,0;
	set $@evt_start,0;

	    	    setcell "guild_vs3",19,55,19,44,cell_walkable,0;
                    setcell "guild_vs3",80,55,80,44,cell_walkable,0;
		    enablenpc "WALL#41";
		    enablenpc "WALL#42";
		    enablenpc "WALL#43";
		    enablenpc "WALL#44";
		    enablenpc "WALL#45";
		    enablenpc "WALL#46";
		    enablenpc "WALL#47";
		    enablenpc "WALL#48";
		    enablenpc "WALL#49";
		    enablenpc "WALL#50";
		    enablenpc "WALL#51";
		    enablenpc "WALL#52";
		    enablenpc "WALL#53";
		    enablenpc "WALL#54";
		    enablenpc "WALL#55";
		    enablenpc "WALL#56";
		    enablenpc "WALL#57";
		    enablenpc "WALL#58";
		    enablenpc "WALL#59";
		    enablenpc "WALL#60";
		    enablenpc "WALL#61";
		    enablenpc "WALL#62";
		    enablenpc "WALL#63";
		    enablenpc "WALL#64";

	sleep2 10000;
	areawarp $@arena_map$,12,87,87,12,$@starting_map$,$@starting_mapX,$@starting_mapY;
	end;
	
OnTeam1Win:

	announce "After 5 minutes of battle, "+getpartyname($@party_team1)+" party member survives more than "+getpartyname($@party_team2)+" party member and won the Battle!",bc_all;
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_winitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name1$[.@i]+" "+$@win_itemid[.@j]+" "+$@win_itemnum[.@j]+"";
		}
	}
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_loseitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name2$[.@i]+" "+$@lse_itemid[.@j]+" "+$@lse_itemnum[.@j]+"";
		}
	}
	set $@party_team,0;
	set $@Battle_Start,0;
	set $team1_mem,0;
	set $team2_mem,0;
	set $@party_team1,0;
	set $@party_team2,0;
	gvgoff $@arena_map$;

	    	    setcell "guild_vs3",19,55,19,44,cell_walkable,0;
                    setcell "guild_vs3",80,55,80,44,cell_walkable,0;
		    enablenpc "WALL#41";
		    enablenpc "WALL#42";
		    enablenpc "WALL#43";
		    enablenpc "WALL#44";
		    enablenpc "WALL#45";
		    enablenpc "WALL#46";
		    enablenpc "WALL#47";
		    enablenpc "WALL#48";
		    enablenpc "WALL#49";
		    enablenpc "WALL#50";
		    enablenpc "WALL#51";
		    enablenpc "WALL#52";
		    enablenpc "WALL#53";
		    enablenpc "WALL#54";
		    enablenpc "WALL#55";
		    enablenpc "WALL#56";
		    enablenpc "WALL#57";
		    enablenpc "WALL#58";
		    enablenpc "WALL#59";
		    enablenpc "WALL#60";
		    enablenpc "WALL#61";
		    enablenpc "WALL#62";
		    enablenpc "WALL#63";
		    enablenpc "WALL#64";

	stopnpctimer;
	sleep2 10000;
	areawarp $@arena_map$,12,87,87,12,$@starting_map$,$@starting_mapX,$@starting_mapY;
	end;
	
OnEndTeam1Win:

	announce "After 5 minutes of battle, "+getpartyname($@party_team1)+" party member survives more than "+getpartyname($@party_team2)+" party member and won the Battle!",bc_all;
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_winitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name1$[.@i]+" "+$@win_itemid[.@j]+" "+$@win_itemnum[.@j]+"";
		}
	}
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_loseitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name2$[.@i]+" "+$@lse_itemid[.@j]+" "+$@lse_itemnum[.@j]+"";
		}
	}
	set $@party_team,0;
	set $@Battle_Start,0;
	set $team1_mem,0;
	set $team2_mem,0;
	set $@party_team1,0;
	set $@party_team2,0;
	set $@evt_start,0;
	gvgoff $@arena_map$;

	    	    setcell "guild_vs3",19,55,19,44,cell_walkable,0;
                    setcell "guild_vs3",80,55,80,44,cell_walkable,0;
		    enablenpc "WALL#41";
		    enablenpc "WALL#42";
		    enablenpc "WALL#43";
		    enablenpc "WALL#44";
		    enablenpc "WALL#45";
		    enablenpc "WALL#46";
		    enablenpc "WALL#47";
		    enablenpc "WALL#48";
		    enablenpc "WALL#49";
		    enablenpc "WALL#50";
		    enablenpc "WALL#51";
		    enablenpc "WALL#52";
		    enablenpc "WALL#53";
		    enablenpc "WALL#54";
		    enablenpc "WALL#55";
		    enablenpc "WALL#56";
		    enablenpc "WALL#57";
		    enablenpc "WALL#58";
		    enablenpc "WALL#59";
		    enablenpc "WALL#60";
		    enablenpc "WALL#61";
		    enablenpc "WALL#62";
		    enablenpc "WALL#63";
		    enablenpc "WALL#64";

	stopnpctimer;
	sleep2 10000;
	areawarp $@arena_map$,12,87,87,12,$@starting_map$,$@starting_mapX,$@starting_mapY;
	end;

OnTeam2Win:

	announce "After 5 minutes of battle, "+getpartyname($@party_team2)+" party member survives more than "+getpartyname($@party_team1)+" party member and won the Battle!",bc_all;
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_winitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name2$[.@i]+" "+$@win_itemid[.@j]+" "+$@win_itemnum[.@j]+"";
		}
	}
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_loseitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name1$[.@i]+" "+$@lse_itemid[.@j]+" "+$@lse_itemnum[.@j]+"";
		}
	}
	set $@party_team,0;
	set $@Battle_Start,0;
	set $team1_mem,0;
	set $team2_mem,0;
	set $@party_team1,0;
	set $@party_team2,0;
	gvgoff $@arena_map$;

	    	    setcell "guild_vs3",19,55,19,44,cell_walkable,0;
                    setcell "guild_vs3",80,55,80,44,cell_walkable,0;
		    enablenpc "WALL#41";
		    enablenpc "WALL#42";
		    enablenpc "WALL#43";
		    enablenpc "WALL#44";
		    enablenpc "WALL#45";
		    enablenpc "WALL#46";
		    enablenpc "WALL#47";
		    enablenpc "WALL#48";
		    enablenpc "WALL#49";
		    enablenpc "WALL#50";
		    enablenpc "WALL#51";
		    enablenpc "WALL#52";
		    enablenpc "WALL#53";
		    enablenpc "WALL#54";
		    enablenpc "WALL#55";
		    enablenpc "WALL#56";
		    enablenpc "WALL#57";
		    enablenpc "WALL#58";
		    enablenpc "WALL#59";
		    enablenpc "WALL#60";
		    enablenpc "WALL#61";
		    enablenpc "WALL#62";
		    enablenpc "WALL#63";
		    enablenpc "WALL#64";

	stopnpctimer;
	sleep2 10000;
	areawarp $@arena_map$,12,87,87,12,$@starting_map$,$@starting_mapX,$@starting_mapY;
	end;
	
OnEndTeam2Win:

	announce "After 5 minutes of battle, "+getpartyname($@party_team2)+" party member survives more than "+getpartyname($@party_team1)+"'s Party member and won the Battle!",bc_all;
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_winitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name2$[.@i]+" "+$@win_itemid[.@j]+" "+$@win_itemnum[.@j]+"";
		}
	}
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_loseitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name1$[.@i]+" "+$@lse_itemid[.@j]+" "+$@lse_itemnum[.@j]+"";
		}
	}
	set $@party_team,0;
	set $@Battle_Start,0;
	set $team1_mem,0;
	set $team2_mem,0;
	set $@party_team1,0;
	set $@party_team2,0;
	set $@evt_start,0;
	disablenpc "PartyReg";
	gvgoff $@arena_map$;

	    	    setcell "guild_vs3",19,55,19,44,cell_walkable,0;
                    setcell "guild_vs3",80,55,80,44,cell_walkable,0;
		    enablenpc "WALL#41";
		    enablenpc "WALL#42";
		    enablenpc "WALL#43";
		    enablenpc "WALL#44";
		    enablenpc "WALL#45";
		    enablenpc "WALL#46";
		    enablenpc "WALL#47";
		    enablenpc "WALL#48";
		    enablenpc "WALL#49";
		    enablenpc "WALL#50";
		    enablenpc "WALL#51";
		    enablenpc "WALL#52";
		    enablenpc "WALL#53";
		    enablenpc "WALL#54";
		    enablenpc "WALL#55";
		    enablenpc "WALL#56";
		    enablenpc "WALL#57";
		    enablenpc "WALL#58";
		    enablenpc "WALL#59";
		    enablenpc "WALL#60";
		    enablenpc "WALL#61";
		    enablenpc "WALL#62";
		    enablenpc "WALL#63";
		    enablenpc "WALL#64";

	stopnpctimer;
	sleep2 10000;
	areawarp $@arena_map$,12,87,87,12,$@starting_map$,$@starting_mapX,$@starting_mapY;
	end;
	
	
OnTeam1Win2:

	announce "Team "+getpartyname($@party_team1)+" smashed all the member of Team "+getpartyname($@party_team2)+" and won the Battle!",bc_all;
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_winitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name1$[.@i]+" "+$@win_itemid[.@j]+" "+$@win_itemnum[.@j]+"";
		}
	}
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_loseitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name2$[.@i]+" "+$@lse_itemid[.@j]+" "+$@lse_itemnum[.@j]+"";
		}
	}
	set $@party_team,0;
	set $@Battle_Start,0;
	set $team1_mem,0;
	set $team2_mem,0;
	set $@party_team1,0;
	set $@party_team2,0;
	gvgoff $@arena_map$;

	    	    setcell "guild_vs3",19,55,19,44,cell_walkable,0;
                    setcell "guild_vs3",80,55,80,44,cell_walkable,0;
		    enablenpc "WALL#41";
		    enablenpc "WALL#42";
		    enablenpc "WALL#43";
		    enablenpc "WALL#44";
		    enablenpc "WALL#45";
		    enablenpc "WALL#46";
		    enablenpc "WALL#47";
		    enablenpc "WALL#48";
		    enablenpc "WALL#49";
		    enablenpc "WALL#50";
		    enablenpc "WALL#51";
		    enablenpc "WALL#52";
		    enablenpc "WALL#53";
		    enablenpc "WALL#54";
		    enablenpc "WALL#55";
		    enablenpc "WALL#56";
		    enablenpc "WALL#57";
		    enablenpc "WALL#58";
		    enablenpc "WALL#59";
		    enablenpc "WALL#60";
		    enablenpc "WALL#61";
		    enablenpc "WALL#62";
		    enablenpc "WALL#63";
		    enablenpc "WALL#64";

	stopnpctimer;
	sleep2 10000;
	areawarp $@arena_map$,12,87,87,12,$@starting_map$,$@starting_mapX,$@starting_mapY;
	end;

OnTeam2Win2:

	announce "Team "+getpartyname($@party_team2)+" smashed all the member of Team "+getpartyname($@party_team1)+"and won the Battle!",bc_all;
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_winitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name2$[.@i]+" "+$@win_itemid[.@j]+" "+$@win_itemnum[.@j]+"";
		}
	}
	for(set .@i,0; .@i<$@party_mem; set .@i,.@i+1) {
		for(set .@j,0; .@j<$@reward_loseitem_qnty; set .@j,.@j+1) {
			charcommand ""+$@charsymbol$+"item "+$@mem_name1$[.@i]+" "+$@lse_itemid[.@j]+" "+$@lse_itemnum[.@j]+"";
		}
	}
	set $@party_team,0;
	set $@Battle_Start,0;
	set $team1_mem,0;
	set $team2_mem,0;
	set $@party_team1,0;
	set $@party_team2,0;
	gvgoff $@arena_map$;

	    	    setcell "guild_vs3",19,55,19,44,cell_walkable,0;
                    setcell "guild_vs3",80,55,80,44,cell_walkable,0;
		    enablenpc "WALL#41";
		    enablenpc "WALL#42";
		    enablenpc "WALL#43";
		    enablenpc "WALL#44";
		    enablenpc "WALL#45";
		    enablenpc "WALL#46";
		    enablenpc "WALL#47";
		    enablenpc "WALL#48";
		    enablenpc "WALL#49";
		    enablenpc "WALL#50";
		    enablenpc "WALL#51";
		    enablenpc "WALL#52";
		    enablenpc "WALL#53";
		    enablenpc "WALL#54";
		    enablenpc "WALL#55";
		    enablenpc "WALL#56";
		    enablenpc "WALL#57";
		    enablenpc "WALL#58";
		    enablenpc "WALL#59";
		    enablenpc "WALL#60";
		    enablenpc "WALL#61";
		    enablenpc "WALL#62";
		    enablenpc "WALL#63";
		    enablenpc "WALL#64";

	stopnpctimer;
	sleep2 10000;
	areawarp $@arena_map$,12,87,87,12,$@starting_map$,$@starting_mapX,$@starting_mapY;
	end;
	
}

function	script	StartEvent	{
		enablenpc "PartyReg";
		set $@evt_start,1;
		announce "The Battle has begun.",bc_all;
		return;
}

function	script	EndEvent	{
		if (!$@Battle_Start && $@party_team<2) {
			setcell $@arena_map$,80,55,80,44,cell_walkable,1;
			setcell $@arena_map$,19,55,19,44,cell_walkable,1;
			donpcevent "PvP_Func::OnEndNoWin";
		} else if ($team2_mem<$team1_mem) {
			setcell $@arena_map$,80,55,80,44,cell_walkable,1;
			setcell $@arena_map$,19,55,19,44,cell_walkable,1;
			donpcevent "PvP_Func::OnEndTeam1Win";
		} else if ($team2_mem<$team1_mem) {
			setcell $@arena_map$,80,55,80,44,cell_walkable,1;
			setcell $@arena_map$,19,55,19,44,cell_walkable,1;
			donpcevent "PvP_Func::OnEndTeam2Win";
		} else if ($team2_mem==$team1_mem || $team1_mem==$team2_mem) {
			setcell $@arena_map$,80,55,80,44,cell_walkable,1;
			setcell $@arena_map$,19,55,19,44,cell_walkable,1;
			donpcevent "PvP_Func::OnEndDraw";
		} else {
			setcell $@arena_map$,80,55,80,44,cell_walkable,1;
			setcell $@arena_map$,19,55,19,44,cell_walkable,1;
			donpcevent "PvP_Func::OnEndNoWin";
		}
		end;

}

////////////////////////////////////////////////////////////////////////////
////RWC 3///////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
    guild_vs3,19,55,0	script	WALL#41	1905,{
    }
    guild_vs3,19,54,0	duplicate(WALL#41)	WALL#42	1905
    guild_vs3,19,53,0	duplicate(WALL#41)	WALL#43	1905
    guild_vs3,19,52,0	duplicate(WALL#41)	WALL#44	1905
    guild_vs3,19,51,0	duplicate(WALL#41)	WALL#45	1905
    guild_vs3,19,50,0	duplicate(WALL#41)	WALL#46	1905
    guild_vs3,19,49,0	duplicate(WALL#41)	WALL#47	1905
    guild_vs3,19,48,0	duplicate(WALL#41)	WALL#48	1905
    guild_vs3,19,47,0	duplicate(WALL#41)	WALL#49	1905
    guild_vs3,19,46,0	duplicate(WALL#41)	WALL#50	1905
    guild_vs3,19,45,0	duplicate(WALL#41)	WALL#51	1905
    guild_vs3,19,44,0	duplicate(WALL#41)	WALL#52	1905

    guild_vs3,80,55,0	duplicate(WALL#41)	WALL#53	1905
    guild_vs3,80,54,0	duplicate(WALL#41)	WALL#54	1905
    guild_vs3,80,53,0	duplicate(WALL#41)	WALL#55	1905
    guild_vs3,80,52,0	duplicate(WALL#41)	WALL#56	1905
    guild_vs3,80,51,0	duplicate(WALL#41)	WALL#57	1905
    guild_vs3,80,50,0	duplicate(WALL#41)	WALL#58	1905
    guild_vs3,80,49,0	duplicate(WALL#41)	WALL#59	1905
    guild_vs3,80,48,0	duplicate(WALL#41)	WALL#60	1905
    guild_vs3,80,47,0	duplicate(WALL#41)	WALL#61	1905
    guild_vs3,80,46,0	duplicate(WALL#41)	WALL#62	1905
    guild_vs3,80,45,0	duplicate(WALL#41)	WALL#63	1905
    guild_vs3,80,44,0	duplicate(WALL#41)	WALL#64	1905

function	script	party_has_duplicate_job	{
        set .@party_id, getarg( 0, getcharid(1) );

        // Need to have a party.
        if ( !.@party_id )
        {
                        return -1;
        }

        // Loading party members variables
        getpartymember .@party_id, 1;
        getpartymember .@party_id, 2;

        // Keep rid attached.
        set .@rid, playerattached();


        // Check all members
        for ( set .@i,0; .@i<$@partymembercount; set .@i, .@i+1 )
        {

                // Online user
                if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i]) )
                {
                        // Attach the member to access "Class"
                        attachrid( $@partymemberaid[.@i] );
                        if ( compare( .@tmp_class$ + "|", "|" + Class + "|" ) )
                        {
                                if ( .@rid )
                                        attachrid(.@rid);
                                else
                                        detachrid;
                                return 1;
                        }
                        set .@tmp_class$, .@tmp_class$ + "|" + Class;
                }

                // Offline user (use sql)
                else
                {
                        set .@sql$, .@sql$ + ( .@sql_i ? "OR " : "" ) + "`char_id`='" + $@partymembercid[.@i] + "' ";
                        set .@sql_i, .@sql_i + 1;
                }
        }

        // SQL for offline users
        if ( getstrlen(.@sql$) )
        {
                // get class from offline members
                set .@count, query_sql("SELECT `class` FROM `char` WHERE " + .@sql$, .@class );

                // Check the class.
                for ( set .@i, 0; .@i<.@count; set .@i, .@i+1 )
                {
                        if ( compare( .@tmp_class$ + "|", "|" + .@class[.@i] + "|" ) )
                        {
                                if ( .@rid )
                                        attachrid(.@rid);
                                else
                                        detachrid;
                                return 1;
                        }
                        set .@tmp_class$, .@tmp_class$ + "|" + .@class[.@i];
                }
        }


        // Restore RID.
        if ( .@rid )
                attachrid(.@rid);
        else
                detachrid;

        return 0;
}

-	script	RWC	-1,{
    // Settings
    // GM LVL Allowed
    set .gmlvl,99;

    OnWhisperGlobal:
            if(getgmlevel() <= .gmlvl) goto N_Authority;
		switch(select("Reset:")) {
	    case 1:
		stopnpctimer;
		gvgoff $@arena_map$;
		set $@party_team,0;
		set $@Battle_Start,0;
		set $team1_mem,0;
		set $team2_mem,0;
		set $@party_team1,0;
		set $@party_team2,0;
		set $@evt_start,0;
		dispbottom "Reset OK.";
		close;

    N_Authority:
            dispbottom "You cannot use this commands anymore.";
            close;
}
}

Here's the whole script sir :> thank you in advance

Share this post


Link to post
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.   Restore formatting

  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.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.