Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - script sdkfksdfjsdfgdf -1,{
- OnInit:
- .eventlasting = 30 * 60; // how long would the event last or it auto-reset. 30 *60 = 30 mins
- .min2start = 2; // minimum player to start
- .startingscore = 50; // score at start
- setarray .rewardwin, 7773,30; // premiar a equipe vencedora
- setarray .rewardlose, 7773,15; // premiar a equipe vencedora
- setarray .Map$, "florian", "bat_c01", "guild_vs3";
- .rewardwinsize = getarraysize( .rewardwin );
- .rewardlosesize = getarraysize( .rewardlose );
- .totalmap = getarraysize( .Map$ );
- bindatcmd "bg", strnpcinfo(0)+"::OnJoin";
- bindatcmd "leavebg", strnpcinfo(0)+"::OnLeave";
- for ( .@i = 0; .@i < .totalmap; .@i++ ) {
- setmapflag .Map$[.@i], mf_battleground, 2;
- setmapflag .Map$[.@i], mf_nosave;
- setmapflag .Map$[.@i], mf_nowarp;
- setmapflag .Map$[.@i], mf_nowarpto;
- setmapflag .Map$[.@i], mf_noreturn;
- setmapflag .Map$[.@i], mf_noteleport;
- setmapflag .Map$[.@i], mf_nomemo;
- setmapflag .Map$[.@i], mf_noexppenalty;
- setmapflag .Map$[.@i], mf_nobranch;
- setmapflag .Map$[.@i], mf_noicewall;
- setmapflag .Map$[.@i], mf_gvg;
- }
- end;
- OnLeave:
- while ( .signup_aid[.@i] != getcharid(3) && .@i < .signup_count )
- .@i++;
- if ( .@i == .signup_count ) {
- dispbottom "Você ainda não se inscreveu na BG.";
- end;
- }
- deletearray .signup_aid[.@i], 1;
- .signup_count--;
- dispbottom "Você tem deixar o registro desta BG.";
- end;
- OnJoin:
- if ( getmapflag( strcharinfo(3), mf_nowarp ) || getmapflag( strcharinfo(3), mf_nowarpto ) ) {
- dispbottom "Você não pode se inscrever para BG neste mapa.";
- end;
- }
- while ( .signup_aid[.@i] != getcharid(3) && .@i < .signup_count )
- .@i++;
- if ( .@i < .signup_count ) {
- dispbottom "Você ainda não se inscreveu na BG.";
- end;
- }
- .signup_aid[ .signup_count ] = getcharid(3);
- .signup_count++;
- dispbottom "Você se registrou na BG.";
- // .@i = 1; // DEBUG
- // .@signup_name$ = rid2name( .signup_aid[0] );
- // while ( .signup_aid[.@i] ) {
- // .@signup_name$ = .@signup_name$ +","+ rid2name( .signup_aid[.@i] );
- // .@i++;
- // }
- // dispbottom "[Debug] Atualmente tem "+ .signup_count +" e eles são "+ .@signup_name$;
- L_Start:
- for ( .@i = 0; .@i < .signup_count; .@i++ ) {
- if ( attachrid( .signup_aid[.@i] ) ) {
- if ( getmapflag( strcharinfo(3), mf_nowarp ) ) { // player has went into another event
- deletearray .signup_aid[.@i], 1;
- }
- }
- else {
- deletearray .signup_aid[.@i], 1;
- .signup_count--;
- .@i--;
- }
- }
- if ( .start || .signup_count < .min2start ) {
- announce "Batalha Campal -- [Field of Death] -- +"+ .signup_count +" jogadores para começar -- Digite @bg para participar!", bc_all, 0xFFA500;
- end;
- }
- announce "Batalha Campal -- [Field of Death] -- Começou!", bc_all, 0xFFA500;
- .start = 1;
- .@map$ = .Map$[ rand(3) ];
- .red = createbgid( .@map$, 0,0, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead" );
- .blue = createbgid( .@map$, 0,0, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead" );
- callfunc "shuffle__", 0, .min2start -1, .@r;
- .@modulus = rand(2);
- for ( .@i = 0; .@i < .signup_count; .@i++ )
- setbgid ( .@i %2 == .@modulus )? .red : .blue, .signup_aid[ .@r[.@i] ];
- deletearray .signup_aid, .min2start;
- .signup_count -= .min2start;
- bg_warp .red, .@map$, 0,0;
- bg_warp .blue, .@map$, 0,0;
- .score[1] = .score[2] = .startingscore;
- bg_updatescore .@map$, .score[1], .score[2];
- sleep .eventlasting * 1000;
- if ( .start == 1 ) {
- if ( .score[1] > .score[2] ) {
- mapannounce "guild_vs"+ .map, " Time Vermelho ganhou!", bc_all, 0xFFA500;
- callsub L_reward, .red, .rewardwin, .rewardwinsize;
- callsub L_reward, .blue, .rewardlose, .rewardlosesize;
- }
- else if ( .score[1] < .score[2] ) {
- mapannounce "guild_vs"+ .map, " Time Azul ganhou!", bc_all, 0xFFA500;
- callsub L_reward, .blue, .rewardwin, .rewardwinsize;
- callsub L_reward, .red, .rewardlose, .rewardlosesize;
- }
- else {
- mapannounce "guild_vs"+ .map, "Empate !", bc_all, 0xFFA500;
- callsub L_reward, .red, .rewardlose, .rewardlosesize;
- callsub L_reward, .blue, .rewardlose, .rewardlosesize;
- }
- }
- bg_warp .red, "prontera", 155,182;
- bg_warp .blue, "prontera", 158,182;
- bg_destroy .red;
- bg_destroy .blue;
- .start = 0;
- deletearray .score;
- goto L_Start;
- L_reward:
- getbgusers getarg(0);
- for ( .@i = 0; .@i < $@arenamembersnum; .@i++ )
- for ( .@j = 0; .@j < getarg(2); .@j += 2 )
- getitem getelementofarray( getarg(1), .@j ), getelementofarray( getarg(1), .@j +1 ), $@arenamembers[.@i];
- return;
- OnRedDead: callsub L_dead, 1;
- OnBlueDead: callsub L_dead, 2;
- L_dead:
- .score[ getarg(0) ]--;
- bg_updatescore strcharinfo(3), .score[1], .score[2];
- if ( !.score[ getarg(0) ] )
- awake strnpcinfo(0);
- while ( checkcell( strcharinfo(3), .@x = rand(200), .@y = rand(200), cell_chknopass ) );
- bg_team_setxy getcharid(4), .@x, .@y;
- sleep2 1250;
- percentheal 0,0;
- if ( getmapflag( strcharinfo(3), mf_battleground ) )
- warp strcharinfo(3), 0,0;
- end;
- OnRedQuit: callsub L_quit, 1, .red;
- OnBlueQuit: callsub L_quit, 2, .blue;
- L_quit:
- percentheal 100, 100;
- if ( bg_get_data( getarg(1), 0 ) ) end;
- mapannounce strcharinfo(3), "Todos "+ .teamname$[ getarg(0) ] +"membros da equipe saiu!", bc_all, 0xFF3333;
- .score[ getarg(0) ] = 0;
- awake strnpcinfo(0);
- end;
- }
- florian mapflag battleground 2
- florian mapflag nosave SavePoint
- florian mapflag nowarp
- florian mapflag nowarpto
- florian mapflag noreturn
- florian mapflag noteleport
- florian mapflag nomemo
- florian mapflag nopenalty
- florian mapflag nobranch
- florian mapflag noicewall
- bat_c01 mapflag battleground 2
- bat_c01 mapflag nosave SavePoint
- bat_c01 mapflag nowarp
- bat_c01 mapflag nowarpto
- bat_c01 mapflag noreturn
- bat_c01 mapflag noteleport
- bat_c01 mapflag nomemo
- bat_c01 mapflag nopenalty
- bat_c01 mapflag nobranch
- bat_c01 mapflag noicewall
- guild_vs3 mapflag battleground 2
- guild_vs3 mapflag nosave SavePoint
- guild_vs3 mapflag nowarp
- guild_vs3 mapflag nowarpto
- guild_vs3 mapflag noreturn
- guild_vs3 mapflag noteleport
- guild_vs3 mapflag nomemo
- guild_vs3 mapflag nopenalty
- guild_vs3 mapflag nobranch
- guild_vs3 mapflag noicewall
- //------------------------------ FUNÇÃO --------------------------------------------------
- //----------------------------------------------------------------------------------------
- // callfunc "shuffle", <min num>, <max num>, <output array> {, <count> };
- function script shuffle__ {
- .@static = getarg(0);
- .@range = getarg(1) +1 - .@static;
- .@count = getarg(3, 0);
- if ( .@range <= 0 )
- return 0;
- if ( !.@count || .@count > .@range )
- .@count = .@range;
- while ( .@i < .@count ) {
- .@r = .@save = rand( .@i, .@range -1 ) ;
- if ( !.@tmp1[.@i] ) {
- .@r = .@tmp1[.@r] ? .@tmp2[.@r] : .@r;
- .@tmp2[.@i] = .@r;
- .@tmp2[.@save] = .@i;
- .@tmp1[.@save] = 1;
- set getelementofarray( getarg(2), .@i ), .@r + .@static;
- if ( .@save < .@count )
- set getelementofarray( getarg(2), .@save ), .@i + .@static;
- }
- .@i++;
- }
- return .@count;
- }
- /*
- prontera,156,184,5 script kjdshfksfjh 100,{
- // input .@min, -1000000000, 1000000000;
- // input .@max, -1000000000, 1000000000;
- .@min = 1;
- .@max = 5;
- callfunc "shuffle__", .@min, .@max, .@output$, 100;
- dispbottom implode( .@output$, "," );
- }
- */
- //------------------------------ Quit AFK --------------------------------------------------
- //----------------------------------------------------------------------------------------
- - script afk_script -1,{
- // Config
- OnInit:
- .sleeploop = 2000; // every 1 second
- .afk = 4; // loop 180 times of 1 second = 3 minutes to execute
- setarray .@map$,
- "florian", "bat_c01", "guild_vs3"; // battlegrounds
- .@size = getarraysize( .@map$ );
- for ( .@i = 0; .@i < .@size; .@i++ )
- setmapflag .@map$[.@i], mf_loadevent;
- .Map$ = ":"+ implode( .@map$, ":" ) +":";
- .idle = .sleeploop * .afk / 1000;
- end;
- // what to do when triggered
- L_trigger:
- // dispbottom "Você está AFK"+ .idle +" segudos";
- if ( getcharid(4) )
- bg_leave;
- warp "SavePoint", 0,0;
- end;
- // function
- OnPCLoadMapEvent:
- while ( true ) {
- if ( compare( .Map$, ":"+ strcharinfo(3) +":" ) ) {
- if ( checkidle() >= .idle )
- goto L_trigger;
- // dispbottom "Você está AFK "+ checkidle() +" segundos";
- sleep2 .sleeploop;
- }
- else
- break;
- }
- end;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement