Jump to content
  • 0

Party vs Party


Question

Posted (edited)

i need t omake other players registred can into in event!

i use AnnieRuru System.

 prontera,156,185,5    script    Party vs Party    100,{
if (getpartymembercount(getcharid(1)) != 1 && getpartycount(getcharid(1)) != 1){
mes " You need have 3 players un party!";
close;}
if (getpartyleader(getcharid(1),2) != getcharid(0)) {mes "Only Leader Party can Registre!"; close;}
    mes "You Wanna Sign Up";
    if ( select( "yes", "no" ) == 2 ) close;
    else if ( .signup_count == 128 ) {
        mes "Sorry the whole queue is full";
        close;
    }
    while ( .signup_aid[.@i] != getcharid(3) && .@i < .signup_count )
        set .@i, .@i +1;
    if ( .@i < .signup_count ) {
        mes "you have already sign up in this event";
    mes "You have ^FF0000"+(.signup_count-1)+"^000000 Peoples in your front.";
        close;
    }
    set .signup_aid[ .signup_count ], getcharid(3);
    set .signup_count, .signup_count +1;
    mes "You are now signed to the BG event";
    dispbottom "You have  "+(.signup_count-1)+" Peoples in your front !";
    close2;
L_start:
    if ( .signup_count < .min2start ) end;
    for ( set .@i, 0; .@i < .signup_count; set .@i, .@i +1 ) {
        if ( attachrid( .signup_aid[.@i] ) ) {
            if ( getmapflag( strcharinfo(3), mf_nowarp ) ) { // player has went into another event
                deletearray .signup_aid[.@i], 1;
                set .signup_count, .signup_count -1;
                set .@i, .@i -1;
            }
        }
        else {
            deletearray .signup_aid[.@i], 1;
            set .signup_count, .signup_count -1;
            set .@i, .@i -1;
        }    
    }
    if ( .start || .signup_count < .min2start ) end;
    announce "event started", 0;
    set .start, 1;
    for ( set .@i, 0; .@i < .signup_count; set .@i, .@i +1 )
        setbgid ( .@i %2 )? .red : .blue, .signup_aid[.@i];
    deletearray .signup_aid, .min2start;
    set .signup_count, .signup_count - .min2start;
    bg_warp .red, "guild_vs3", 13,50;
    bg_warp .blue, "guild_vs3", 86,50;
    cleararray .score[1], .startingscore, 2;
    bg_updatescore "guild_vs3", .score[1], .score[2];
    sleep .eventlasting * 1000;
    if ( .start == 1 ) {
        if ( .score[1] == .score[2] )
            mapannounce "guild_vs3", "Draw !", 0;
        else if ( .score[1] > .score[2] ) {
            mapannounce "guild_vs3", " Red side wins !", 0;
            callsub L_reward, .red;
        }
        else if ( .score[1] < .score[2] ) {
            mapannounce "guild_vs3", " Blue side wins !", 0;
            callsub L_reward, .blue;
        }
    }
    bg_warp .red, "prontera", 155,182;
    bg_warp .blue, "prontera", 158,182;
    bg_kickall .red;
    bg_kickall .blue;
    set .start, 0;
    deletearray .score;
    enablenpc "Partytwo";
    enablenpc "Partyone";
    goto L_start;
L_reward:
    getbgusers getarg(0);
    for ( set .@i, 0; .@i < $@arenamembersnum; set .@i, .@i +1 )
//        getitem 501, 1, $@arenamembers[.@i]; // item reward
    return;
OnredDead: callsub L_dead, 1;
OnblueDead: callsub L_dead, 2;
L_dead:
//warp "guild_vs3", 13,50;
    set .score[ getarg(0) ], .score[ getarg(0) ] -1;
    bg_updatescore "guild_vs3", .score[1], .score[2];
    if ( !.score[ getarg(0) ] )
        awake strnpcinfo(0);
    sleep2 1250;
    percentheal 100,100;
    end;
OnredQuit: callsub L_quit, 1, .red;
OnblueQuit: callsub L_quit, 2, .blue;
L_quit:
    if ( bg_get_data( getarg(1), 0 ) ) end;
    set .score[ getarg(0) ], 0;
    awake strnpcinfo(0);
end;
OnInit:
    set .eventlasting, 30 * 60; // how long would the event last or it auto-reset. 30 *60 = 30 mins
    set .min2start, 2; // minimum player to start
    set .startingscore, 4; // score at start
    set .red, createbgid( "guild_vs3", 13,50, strnpcinfo(0)+"::OnredQuit", strnpcinfo(0)+"::OnredDead" );
    set .blue, createbgid( "guild_vs3", 86,50, strnpcinfo(0)+"::OnblueQuit", strnpcinfo(0)+"::OnblueDead" );
    set $psvp_map$,"guild_vs3";
    set $pvsp_grupo1,0;
    set $pvsp_grupo2,0;
    set $pvsp_kill1,0;
    set $pvsp_kill2,0;
    enablenpc "Partytwo";
    enablenpc "Partyone";
    end;
OnPCKillEvent:
if(strcharinfo(3) == $psvp_map$)
    {
        if(getcharid(1) == $pvsp_grupo1)
        {
            set $pvsp_kill1,$pvsp_kill1+1;
            mapannounce $psvp_map$,"O grupo ["+getpartyname($pvsp_grupo1)+"] matou "+$pvsp_kill1+"/3 players do grupo ["+getpartyname($pvsp_grupo2)+"]!",bc_all;
        }
        if(getcharid(1) == $pvsp_grupo2)
        {
            set $pvsp_kill2,$pvsp_kill2+1;
            mapannounce $psvp_map$,"O grupo ["+getpartyname($pvsp_grupo2)+"] matou "+$pvsp_kill2+"/3 players do grupo ["+getpartyname($pvsp_grupo1)+"]!",bc_all;
        }
        if($pvsp_kill1 == 1)
        {
            announce "[Party vs Party] O grupo vencendor foi o ["+getpartyname($pvsp_grupo1)+"] !",bc_all;
            sleep2 2000;
            mapwarp $psvp_map$,"lhz_cube.gat",66,192;
        }
        if($pvsp_kill2 == 1)
        {
            announce "[Party vs Party] O grupo vencendor foi o ["+getpartyname($pvsp_grupo2)+"] !",bc_all;
            sleep2 2000;
            mapwarp $psvp_map$,"lhz_cube.gat",66,192;
        }
        
        set $pvsp_grupo1,0;
        set $pvsp_grupo2,0;
        set $pvsp_kill1,0;
        set $pvsp_kill2,0;
        end;
    }
}
guild_vs3,13,50,0    script    Partyone    139,5,5,{
warpparty "guild_vs3",13,50,getcharid(1);
if($pvsp_grupo1 == 0) set $pvsp_grupo1,getcharid(1);
disablenpc "Partyone";
end;
}
guild_vs3,86,50,0    script    Partytwo    139,5,5,{
warpparty "guild_vs3",86,50,getcharid(1);
if($pvsp_grupo2 == 0) set $pvsp_grupo2,getcharid(1);
disablenpc "Partytwo";
end;
}
//guild_vs3    mapflag    battleground    2
guild_vs3    mapflag    nosave    SavePoint
guild_vs3    mapflag    nowarp
guild_vs3    mapflag    nowarpto
guild_vs3    mapflag    noteleport
guild_vs3    mapflag    nomemo
guild_vs3    mapflag    nopenalty
guild_vs3    mapflag    nobranch
guild_vs3    mapflag    noicewall
Edited by Capuche
Change Quote to Code

4 answers to this question

Recommended Posts

Posted

Try this

prontera,156,185,5	script	Party vs Party	100,{
	
	if( !getcharid(1) ) {
		mes "You need a party";
		close;
	}
	getpartymember getcharid(1), 1;
	getpartymember getcharid(1), 2;
	for( .@i = 0; .@i < $@partymembercount; .@i++ )
		if( isloggedin( $@partymemberaid[ .@i ], $@partymembercid[ .@i ] ) ) .@j++;

	if ( .@j != 1 ) {
		mes "You need 3 players in the party";
		close;
	}
	if ( getpartyleader( getcharid(1),2 ) != getcharid(0) ) {
		mes "Only Leader Party can Registre!";
		close;
	}
	mes "You Wanna Sign Up";
	if ( select( "yes", "no" ) == 2 ) close;
	else if ( .signup_count == 128 ) {
		mes "Sorry the whole queue is full";
		close;
	}
	while ( .signup_aid[.@i] != getcharid(3) && .@i < .signup_count )
		set .@i, .@i +1;
	if ( .@i < .signup_count ) {
		mes "you have already sign up in this event";
		mes "You have ^FF0000"+ (.signup_count-1) +"^000000 Peoples in your front.";
		close;
	}
	set .signup_aid[ .signup_count ], getcharid(3);
	set .signup_pid[ .signup_count ], getcharid(1);
	set .signup_count, .signup_count +1;
	mes "You are now signed to the BG event";
	dispbottom "You have  "+(.signup_count-1)+" Peoples in your front !";
	close2;
L_start:
	if ( .signup_count < .min2start ) end;
	for ( set .@i, 0; .@i < .signup_count; set .@i, .@i +1 ) {
		if ( attachrid( .signup_aid[.@i] ) ) {
			if ( getmapflag( strcharinfo(3), mf_nowarp ) || !callsub( L_checkp, .signup_pid[.@i] ) ) { // player has went into another event
				deletearray .signup_aid[.@i], 1;
				deletearray .signup_pid[.@i], 1;
				set .signup_count, .signup_count -1;
				set .@i, .@i -1;
			}
		}
		else {
			deletearray .signup_aid[.@i], 1;
			deletearray .signup_pid[.@i], 1;
			set .signup_count, .signup_count -1;
			set .@i, .@i -1;
		}	
	}
	if ( .start || .signup_count < .min2start ) end;
	announce "event started", 0;
	set .start, 1;
	set .pvsp_kill1,0;
	set .pvsp_kill2,0;
	for ( set .@i, 0; .@i < .signup_count; set .@i, .@i +1 ) {
		setbgid ( .@i %2 )? .red : .blue, .signup_aid[.@i];
		set .team_p[.@i], .signup_pid[.@i];
	}
	deletearray .signup_aid, .min2start;
	deletearray .signup_pid, .min2start;
	set .signup_count, .signup_count - .min2start;
	bg_warp .red, "guild_vs3", 13,50;
	bg_warp .blue, "guild_vs3", 86,50;
	warpparty "guild_vs3",13,50,getcharid(1);
	warpparty "guild_vs3",13,50,getcharid(1);
	cleararray .score[1], .startingscore, 2;
	bg_updatescore "guild_vs3", .score[1], .score[2];
	sleep .eventlasting * 1000;
	if ( .start == 1 ) {
		if ( .score[1] == .score[2] )
			mapannounce "guild_vs3", "Draw !", 0;
		else if ( .score[1] > .score[2] ) {
			mapannounce "guild_vs3", " Red side wins !", 0;
			sleep 2000;
			bg_warp .red, "lhz_cube",66,192;
			bg_warp .blue, "prontera", 158,182;
			// callsub L_reward, .red;
		}
		else if ( .score[1] < .score[2] ) {
			mapannounce "guild_vs3", " Blue side wins !", 0;
			sleep 2000;
			bg_warp .red, "prontera", 155,182;
			bg_warp .blue, "lhz_cube",66,192;
			// callsub L_reward, .blue;
		}
	}
	bg_kickall .red;
	bg_kickall .blue;
	set .start, 0;
	deletearray .score;
	goto L_start;
L_reward:
	getbgusers getarg(0);
	for ( set .@i, 0; .@i < $@arenamembersnum; set .@i, .@i +1 )
		getitem 501, 1, $@arenamembers[.@i]; // item reward
	return;
OnredDead: callsub L_dead, 1;
OnblueDead: callsub L_dead, 2;
L_dead:
//warp "guild_vs3", 13,50;
	set .score[ getarg(0) ], .score[ getarg(0) ] -1;
	bg_updatescore "guild_vs3", .score[1], .score[2];
	if ( !.score[ getarg(0) ] )
		awake strnpcinfo(0);
	sleep2 1250;
	percentheal 100,100;
	end;
 
OnredQuit: callsub L_quit, 1, .red;
OnblueQuit: callsub L_quit, 2, .blue;
L_quit:
	if ( bg_get_data( getarg(1), 0 ) ) end;
	set .score[ getarg(0) ], 0;
	awake strnpcinfo(0);
	end;
L_checkp:
	if( !getcharid(1) || getcharid(1) != getarg(0) ) return 0;
	getpartymember getcharid(1), 1;
	getpartymember getcharid(1), 2;
	for( .@i = 0; .@i < $@partymembercount; .@i++ )
		if( isloggedin( $@partymemberaid[ .@i ], $@partymembercid[ .@i ] ) ) .@j++;
	if( .@j != 1 ) return 0;
	return 1;

OnInit:
	set .eventlasting, 30 * 60; // how long would the event last or it auto-reset. 30 *60 = 30 mins
	set .min2start, 2; // minimum player to start
	set .startingscore, 3; // score at start
	set .red, createbgid( "guild_vs3", 13,50, strnpcinfo(0)+"::OnredQuit", strnpcinfo(0)+"::OnredDead" );
	set .blue, createbgid( "guild_vs3", 86,50, strnpcinfo(0)+"::OnblueQuit", strnpcinfo(0)+"::OnblueDead" );
	set .psvp_map$, "guild_vs3";
	end;
 
OnPCKillEvent:
	if( strcharinfo(3) == .psvp_map$ ) {
		if( getcharid(1) == .team_p[0] ) {
			set .pvsp_kill1, .pvsp_kill1 + 1;
			mapannounce .psvp_map$,"O grupo ["+ getpartyname( .team_p[0] ) +"] matou "+ .pvsp_kill1 +"/"+ .startingscore +" players do grupo ["+ getpartyname( .team_p[1] ) +"]!",bc_all;
		}
		else if( getcharid(1) == .team_p[1] ) {
			set .pvsp_kill2, .pvsp_kill2 + 1;
			mapannounce .psvp_map$,"O grupo ["+getpartyname( .team_p[1] )+"] matou "+ .pvsp_kill2 +"/"+ .startingscore +" players do grupo ["+ getpartyname( .team_p[0] ) +"]!",bc_all;
		}
	}
	end;
}
Posted

Try this

prontera,156,185,5	script	Party vs Party	100,{
	
	if( !getcharid(1) ) {
		mes "You need a party";
		close;
	}
	getpartymember getcharid(1), 1;
	getpartymember getcharid(1), 2;
	for( .@i = 0; .@i < $@partymembercount; .@i++ )
		if( isloggedin( $@partymemberaid[ .@i ], $@partymembercid[ .@i ] ) ) .@j++;

	if ( .@j != 1 ) {
		mes "You need 3 players in the party";
		close;
	}
	if ( getpartyleader( getcharid(1),2 ) != getcharid(0) ) {
		mes "Only Leader Party can Registre!";
		close;
	}
	mes "You Wanna Sign Up";
	if ( select( "yes", "no" ) == 2 ) close;
	else if ( .signup_count == 128 ) {
		mes "Sorry the whole queue is full";
		close;
	}
	while ( .signup_aid[.@i] != getcharid(3) && .@i < .signup_count )
		set .@i, .@i +1;
	if ( .@i < .signup_count ) {
		mes "you have already sign up in this event";
		mes "You have ^FF0000"+ (.signup_count-1) +"^000000 Peoples in your front.";
		close;
	}
	set .signup_aid[ .signup_count ], getcharid(3);
	set .signup_pid[ .signup_count ], getcharid(1);
	set .signup_count, .signup_count +1;
	mes "You are now signed to the BG event";
	dispbottom "You have  "+(.signup_count-1)+" Peoples in your front !";
	close2;
L_start:
	if ( .signup_count < .min2start ) end;
	for ( set .@i, 0; .@i < .signup_count; set .@i, .@i +1 ) {
		if ( attachrid( .signup_aid[.@i] ) ) {
			if ( getmapflag( strcharinfo(3), mf_nowarp ) || !callsub( L_checkp, .signup_pid[.@i] ) ) { // player has went into another event
				deletearray .signup_aid[.@i], 1;
				deletearray .signup_pid[.@i], 1;
				set .signup_count, .signup_count -1;
				set .@i, .@i -1;
			}
		}
		else {
			deletearray .signup_aid[.@i], 1;
			deletearray .signup_pid[.@i], 1;
			set .signup_count, .signup_count -1;
			set .@i, .@i -1;
		}	
	}
	if ( .start || .signup_count < .min2start ) end;
	announce "event started", 0;
	set .start, 1;
	set .pvsp_kill1,0;
	set .pvsp_kill2,0;
	for ( set .@i, 0; .@i < .signup_count; set .@i, .@i +1 ) {
		setbgid ( .@i %2 )? .red : .blue, .signup_aid[.@i];
		set .team_p[.@i], .signup_pid[.@i];
	}
	deletearray .signup_aid, .min2start;
	deletearray .signup_pid, .min2start;
	set .signup_count, .signup_count - .min2start;
	bg_warp .red, "guild_vs3", 13,50;
	bg_warp .blue, "guild_vs3", 86,50;
	warpparty "guild_vs3",13,50,getcharid(1);
	warpparty "guild_vs3",13,50,getcharid(1);
	cleararray .score[1], .startingscore, 2;
	bg_updatescore "guild_vs3", .score[1], .score[2];
	sleep .eventlasting * 1000;
	if ( .start == 1 ) {
		if ( .score[1] == .score[2] )
			mapannounce "guild_vs3", "Draw !", 0;
		else if ( .score[1] > .score[2] ) {
			mapannounce "guild_vs3", " Red side wins !", 0;
			sleep 2000;
			bg_warp .red, "lhz_cube",66,192;
			bg_warp .blue, "prontera", 158,182;
			// callsub L_reward, .red;
		}
		else if ( .score[1] < .score[2] ) {
			mapannounce "guild_vs3", " Blue side wins !", 0;
			sleep 2000;
			bg_warp .red, "prontera", 155,182;
			bg_warp .blue, "lhz_cube",66,192;
			// callsub L_reward, .blue;
		}
	}
	bg_kickall .red;
	bg_kickall .blue;
	set .start, 0;
	deletearray .score;
	goto L_start;
L_reward:
	getbgusers getarg(0);
	for ( set .@i, 0; .@i < $@arenamembersnum; set .@i, .@i +1 )
		getitem 501, 1, $@arenamembers[.@i]; // item reward
	return;
OnredDead: callsub L_dead, 1;
OnblueDead: callsub L_dead, 2;
L_dead:
//warp "guild_vs3", 13,50;
	set .score[ getarg(0) ], .score[ getarg(0) ] -1;
	bg_updatescore "guild_vs3", .score[1], .score[2];
	if ( !.score[ getarg(0) ] )
		awake strnpcinfo(0);
	sleep2 1250;
	percentheal 100,100;
	end;
 
OnredQuit: callsub L_quit, 1, .red;
OnblueQuit: callsub L_quit, 2, .blue;
L_quit:
	if ( bg_get_data( getarg(1), 0 ) ) end;
	set .score[ getarg(0) ], 0;
	awake strnpcinfo(0);
	end;
L_checkp:
	if( !getcharid(1) || getcharid(1) != getarg(0) ) return 0;
	getpartymember getcharid(1), 1;
	getpartymember getcharid(1), 2;
	for( .@i = 0; .@i < $@partymembercount; .@i++ )
		if( isloggedin( $@partymemberaid[ .@i ], $@partymembercid[ .@i ] ) ) .@j++;
	if( .@j != 1 ) return 0;
	return 1;

OnInit:
	set .eventlasting, 30 * 60; // how long would the event last or it auto-reset. 30 *60 = 30 mins
	set .min2start, 2; // minimum player to start
	set .startingscore, 3; // score at start
	set .red, createbgid( "guild_vs3", 13,50, strnpcinfo(0)+"::OnredQuit", strnpcinfo(0)+"::OnredDead" );
	set .blue, createbgid( "guild_vs3", 86,50, strnpcinfo(0)+"::OnblueQuit", strnpcinfo(0)+"::OnblueDead" );
	set .psvp_map$, "guild_vs3";
	end;
 
OnPCKillEvent:
	if( strcharinfo(3) == .psvp_map$ ) {
		if( getcharid(1) == .team_p[0] ) {
			set .pvsp_kill1, .pvsp_kill1 + 1;
			mapannounce .psvp_map$,"O grupo ["+ getpartyname( .team_p[0] ) +"] matou "+ .pvsp_kill1 +"/"+ .startingscore +" players do grupo ["+ getpartyname( .team_p[1] ) +"]!",bc_all;
		}
		else if( getcharid(1) == .team_p[1] ) {
			set .pvsp_kill2, .pvsp_kill2 + 1;
			mapannounce .psvp_map$,"O grupo ["+getpartyname( .team_p[1] )+"] matou "+ .pvsp_kill2 +"/"+ .startingscore +" players do grupo ["+ getpartyname( .team_p[0] ) +"]!",bc_all;
		}
	}
	end;
}

d po nag wowork pag click ko d nagana

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