Jump to content
  • 0
Sign in to follow this  
lxlcadulxl

Help with Script (Function to Donate when recruiting)

Question

 

Hello, community! I have a field recruiter script running 100%, but I wanted to make a modification, I do not know if it is possible, but I know there is a function but I do not know how to use the "kkk" function ... Next: I would like it to have a "Donation" function where the play's will have to donate. Some amount to assume of Emblems Be war, bravery or value, when they reach the amount X of emblems they will be able to enlist in the camp, but for all enlistment has to have that number X of badges charged being collective not only of a play but of all, but only to pay who wants. So to summarize: The play's have to make a donation to the recruiting script for when they reach the X amount of badges the recruiter releases the following battles.

 

 

//    Registro seletivo de jogadores nas Batalhas Campais.
//
-    script    BattleGround#cmd_register    FAKE_NPC,{
    mes "^FF0000[Recrutador das Batalhas]^000000";
    mes "Bem-vindo ao sistema de recrutamento das ^FF0000Batalhas Campais^000000, vou ajudar a escolher a batalha mais adequada a você.";
    next;
    set .@loop_1, 1;
    if( !$@BG_MODE )
    {
        while(.@loop_1)
        {
            mes "^FF0000[Recrutador das Batalhas]^000000";
            mes "O primeiro passo é selecionar uma ^0000FFBatalha^000000, então vamos lá!";
            next;
            if( getbattleflag("bg_group_filter") )
            {
                set .@group_id, callsub(GroupList);
                if( .@group_id <= 0 )
                    break;
                    
                mes "^FF0000[Recrutador das Batalhas]^000000";
                mes "Muito bem, agora selecione a arena em que deseja se alistar.";
                next;
            }
            
            set .@arena_id, callsub(ArenaList, (.@group_id?.@group_id:0), getbattleflag("bg_group_filter")?true:false);
            if( .@arena_id == 0 )
                break;
            else if( .@arena_id < 0 )
                continue;
            
            callsub RemoveQueue;
            
            set .@loop_2, 1;
            while(.@loop_2)
            {
                // -------------------------------------------------------------------------
                // -                 Carregando informações necessárias.                   -
                // -------------------------------------------------------------------------
                set .@get_team1_var$, callfunc("bg_getarenainfo", .@arena_id, "team1_var");
                set .@get_team2_var$, callfunc("bg_getarenainfo", .@arena_id, "team2_var");
                set .@var_name_event$, callfunc("bg_getarenainfo", .@arena_id, "npc_var_event");
                
                set .@a_name$, callfunc("bg_getarenainfo", .@arena_id, "arena_name");
                set .@base_level, callfunc("bg_getarenainfo", .@arena_id, "base_level");
                set .@max_player, callfunc("bg_getarenainfo", .@arena_id, "max_player");
                
                set .@npc_start_event$, callfunc("bg_getarenainfo", .@arena_id, "npc_start_event");
                
                mes "^FF0000[Recrutador das Batalhas]^000000";
                if( BaseLevel < .@base_level )
                    mes "Você não tem ^FF0000Nível de Base^000000 suficiente para se registrar nas batalhas em ^0000FF" + .@a_name$ + "^000000.";
                else if( queue_size(.@arena_id) >= MAX_QUEUE )
                    mes "Muito bem, as fila de espera da batalha em ^0000FF" + .@a_name$ + "^000000 estão lotada, gostaria de saber alguma informação?";
                else if( queue_char_info(0) )
                    mes "No momento você não pode se alistar por estar alistado em outra batalha, gostaria de saber alguma informação da batalha em ^0000FF" + .@a_name$ + "^000000?";
                else
                    mes "Muito bem, deseja se alistar agora ou saber alguma informação da batalha em ^0000FF" + .@a_name$ + "^000000?";
                next;
                set .@choose2, select( (!queue_char_info(0)&&BaseLevel>=.@base_level&&queue_size(.@arena_id)<MAX_QUEUE?"- Alistamento.":""), "^0000FF- Informações.^000000", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000")-1;
        
                if( .@choose2 == 1 )
                {
                    callfunc "bg_info_npc", .@arena_id, "^FF0000[Recrutador das Batalhas]^000000";
                    continue;
                }
                else if( .@choose2 == 2 )
                {
                    set .@loop_2, 0;
                    break;
                }
                else if( .@choose2 == 3 )
                {
                    set .@loop_1, 0;
                    set .@loop_2, 0;
                    break;
                }
                
                mes "^FF0000[Recrutador das Batalhas]^000000";
                mes "Tem certeza que deseja se alistar na ^0000FFFila de Espera em " + .@a_name$ + "^000000?";
                next;
                switch( select("- Sim, continuar com o registro.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") )
                {
                    case 1:
                        mes "^FF0000[Recrutador das Batalhas]^000000";
                        if( getcharid(4) )
                            mes "Você já está participando de uma batalha e não pode se alistar em outra batalha.";
                        else if( queue_size(.@arena_id) >= MAX_QUEUE )
                        {
                            mes "Não foi possível se alistar na batalha, você pode ter demorado e as fileiras já deve ter sido preenchida.";
                            mes "Tente novamente!";
                        }
                        else {
                            set .@join_flag, queue_join(.@arena_id);
                            switch(.@join_flag)
                            {
                                case -3:
                                    mes "Não foi possível ingressar na fila de espera das batalhas em " + .@a_name$ + ", você deve aguardar " + queue_char_info(4) + ".";
                                    break;
                                case -2:
                                    mes "Não foi possível ingressar na fila de espera das batalhas em " + .@a_name$ + " por não estar em uma Cidade.";
                                    break;
                                case -1:
                                    mes "Não foi possível ingressar na fila de espera das batalhas em " + .@a_name$ + " por não conseguir remove-lo da fila de espera anterior, tente o comando @bgunregister.";
                                    break;
                                case 1:
                                    if( getbattleflag("bg_player_announce") )
                                        announce "[Batalhas Campais]: " + strcharinfo(0) + " se alistou nas Batalhas em " + .@a_name$ + ".", bc_all, "0xFFCE00";
                                    
                                    mes "Você se alistou nas Batalhas em " + .@a_name$ + ".";
                                    set BAT_VFLAG, 0;
                                    close;
                                default:
                                    mes "Houve um erro ao ingressar na fila de espera das batalhas em " + .@a_name$ + " tente novamente mais tarde.";
                                    break;
                            }
                        }
                        next;
                        break;
                    case 2:
                        break;
                    case 3:
                        set .@loop_1, 0;
                        set .@loop_2, 0;
                        break;
                }
            }
        }
    }
    else {
        while(.@loop_1)
        {
            deletearray .@bg_id;
            deletearray .@arena_name$;
            deletearray .@max_player;
            deletearray .@base_level;
            deletearray .@start_event$;
            deletearray .@var_event$;
            deletearray .@var_lock;
            deletearray .@team1_var$;
            deletearray .@team2_var$;
            set .@buildmenu$, "";
            
            mes "^FF0000[Recrutador das Batalhas]^000000";
            mes "O primeiro passo é selecionar uma ^0000FFBatalha^000000, então vamos lá!";
            next;
            query_sql "SELECT `bg_arena`.`bg_id`, `bg_arena`.`arena_name`, `bg_arena`.`max_player`, `bg_arena`.`base_level`, `bg_arena`.`npc_start_event`, `bg_arena`.`npc_var_event`, `bg_arena`.`npc_var_event_lock`, `bg_arena`.`team1_var`, `bg_arena`.`team2_var` FROM `bg_arena`, `bg_groups` WHERE `bg_arena`.`group_id`=`bg_groups`.`group_id` AND `bg_groups`.`status`='1' ORDER BY `bg_arena`.`arena_name`", .@bg_id, .@arena_name$, .@max_player, .@base_level, .@start_event$, .@var_event$, .@var_lock, .@team1_var$, .@team2_var$;
            
            for( set .@i,0; .@i < getarraysize(.@bg_id); set .@i,.@i+1 )
            {
                set .@team1_id, getd(.@team1_var$);
                set .@team2_id, getd(.@team2_var$);
                set .@event_check, getd(.@var_event$[.@i]);
                
                if( $BG_ARENA != .@bg_id[.@i] && .@event_check == 0 || .@event_check && .@event_check >= .@var_lock[.@i] || bg_team_size(.@team1_id) >= .@max_player[.@i] && bg_team_size(.@team2_id) >= .@max_player[.@i] )
                    set .@buildmenu$, .@buildmenu$ + ":";
                else
                    set .@buildmenu$, .@buildmenu$ + "- " + .@arena_name$[.@i] + ".:";
            }
            
            set .@choose, select(.@buildmenu$+"^FF0000- Cancelar.^000000")-1;
            if( .@choose >= getarraysize(.@bg_id) )
                break;
                
            callsub RemoveQueue;
            
            set .@loop_2, 1;
            while(.@loop_2)
            {
                set .@queue_size, queue_size(.@bg_id[.@choose]);
                set .@team1_id, getd(.@team1_var$[.@choose]);
                set .@team2_id, getd(.@team2_var$[.@choose]);
                set .@team1_size, bg_team_size(.@team1_id);
                set .@team2_size, bg_team_size(.@team2_id);
                
                mes "^FF0000[Recrutador das Batalhas]^000000";
                if( BaseLevel < .@base_level[.@choose] )
                    mes "Você não tem ^FF0000Nível de Base^000000 suficiente para se registrar nesta batalha.";
                else if( .@queue_size > MAX_QUEUE )
                    mes "Muito bem, as fila de espera da batalha em ^0000FF" + .@arena_name$[.@choose] + "^000000 está lotada, gostaria de saber alguma informação?";
                else if( queue_char_info(0) )
                    mes "No momento você não pode se alistar por estar alistado em outra batalha, gostaria de saber alguma informação da batalha em ^0000FF" + .@a_name$[.@choose] + "^000000?";
                else
                    mes "Muito bem, deseja se alistar agora ou saber alguma informação da batalha em ^0000FF" + .@arena_name$[.@choose] + "^000000?";
                next;
                set .@choose2, select( (!queue_char_info(0)&&BaseLevel>=.@base_level[.@choose]&&queue_size(.@bg_id[.@choose])<MAX_QUEUE&&(bg_team_size(.@team1_id)<.@max_player[.@choose]||bg_team_size(.@team2_id)<.@max_player[.@choose])?"- Alistamento.":""), "^0000FF- Informações.^000000", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000")-1;
        
                if( .@choose2 == 1 )
                {
                    callfunc "bg_info_npc", .@bg_id[.@choose], "^FF0000[Recrutador das Batalhas]^000000";
                    continue;
                }
                else if( .@choose2 == 2 )
                {
                    set .@loop_2, 0;
                    break;
                }
                else if( .@choose2 == 3 )
                {
                    set .@loop_1, 0;
                    set .@loop_2, 0;
                    break;
                }
                
                mes "^FF0000[Recrutador das Batalhas]^000000";
                mes "Tem certeza que deseja se alistar na ^0000FFFila de Espera em " + .@arena_name$[.@choose] + "^000000?";
                next;
                switch( select("- Sim, continuar com o registro.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") )
                {
                    case 1:
                        mes "^FF0000[Recrutador das Batalhas]^000000";
                        if( getcharid(4) )
                            mes "Você já está participando de uma batalha e não pode se alistar em outra batalha.";
                        else if( queue_char_info(3) )
                            mes "Você deve aguardar " + queue_char_info(4) + " para utilizar o registro novamente!";
                        else if( $BG_ARENA != .@bg_id[.@choose] && (!getd(.@var_event$[.@choose]) || getd(.@var_event$[.@choose]) >= .@var_lock[.@choose] || bg_team_size(.@team1_id) > .@max_player[.@choose] || bg_team_size(.@team2_id) > .@max_player[.@choose]) )
                        {
                            mes "Me desculpe, mais esta arena não está mais disponível para novos jogadores.";
                            set .@loop_2,0;
                        }
                        else {
                            set .@join_flag, queue_join(.@bg_id[.@choose]);
                            switch(.@join_flag)
                            {
                                case -3:
                                    mes "Não foi possível ingressar na fila de espera das batalhas em " + .@arena_name$[.@choose] + ", você deve aguardar " + queue_char_info(4) + ".";
                                    break;
                                case -2:
                                    mes "Não foi possível ingressar na fila de espera das batalhas em " + .@arena_name$[.@choose] + " por não estar em uma Cidade.";
                                    break;
                                case -1:
                                    mes "Não foi possível ingressar na fila de espera das batalhas em " + .@arena_name$[.@choose] + " por não conseguir remove-lo da fila de espera anterior, tente o comando @bgunregister.";
                                    break;
                                case 1:
                                    if( getbattleflag("bg_player_announce") )
                                        announce "[Batalhas Campais]: " + strcharinfo(0) + " se alistou nas Batalhas em " + .@arena_name$[.@choose] + ".", bc_all, "0xFFCE00";
                                    
                                    mes "Você se alistou nas Batalhas em " + .@arena_name$[.@choose] + ".";
                                    set BAT_VFLAG, 0;
                                    close;
                                default:
                                    mes "Houve um erro ao ingressar na fila de espera das batalhas em " + .@arena_name$[.@choose] + " tente novamente mais tarde.";
                                    break;
                            }
                        }
                        next;
                        break;
                    case 2:
                        break;
                    case 3:
                        set .@loop_1, 0;
                        set .@loop_2, 0;
                        break;
                }
            }
        }
    }
    mes "^FF0000[Recrutador das Batalhas]^000000";
    mes "Volte quando desejar se alistar em uma Batalhar.";
    close;
    
RemoveQueue:
    set .@queue_id, queue_char_info(0);
    if( .@queue_id )
    {
        set .@bg_id, callfunc("bg_exist",.@queue_id) ? .@queue_id : 0;
        
        mes "^FF0000[Recrutador das Batalhas]^000000";
        if( .@bg_id ) {
            set .@arena$, callfunc("bg_getarenainfo", .@bg_id, "arena_name");
            mes "Você está alistado em ^0000FF" + .@arena$ + "^000000,";
        }
        else {
            mes "Você já está alistado em uma Fila de Espera desconhecida.";
        }            
        mes "deseja remover seu alistamento?";
        next;
        if( select("- Sim, por favor.", "^FF0000- Não, obrigado.^000000") == 1 )
        {
            if( !queue_leave() )
            {
                mes "^FF0000[Recrutador das Batalhas]^000000";
                if( .@bg_id )
                    mes "Não foi possível te remover da fila de espera das Batalhas em ^0000FF" + .@arena$ + "^000000,";
                else
                    mes "Não foi possível te remover do seu antigo alistamento, tente novamente.";
                close;
            }
        }
    }
    return;
    
GroupList:
    deletearray .@groups_id[0];
    deletearray .@groups_name$[0];
    query_sql "SELECT `group_id`, `name` FROM `bg_groups` WHERE `status`='1' ORDER BY `name` ASC", .@groups_id, .@groups_name$;
    
    if( !getarraysize(.@groups_id) )
        return 0;
        
    set .@buildmenu$, "";
    for( set .@i,0; .@i < getarraysize(.@groups_id); set .@i,.@i+1 )
    {
        if( callfunc("bg_countarena", .@groups_id[.@i]) > 0 )
            set .@buildmenu$, .@buildmenu$ + "- " + .@groups_name$[.@i] + ".";
        
        set .@buildmenu$, .@buildmenu$ + ":";
    }
    
    set .@choose, select(.@buildmenu$ + "^FF0000- Cancelar.^000000")-1;
    
    if( .@choose == getarraysize(.@groups_id) )
        return false;
    else
        return .@groups_id[.@choose];
        
ArenaList:
    deletearray .@arenas_id[0];
    deletearray .@arenas_name$[0];
    
    if( getarg(0) > 0 )
        query_sql "SELECT `bg_id`, `arena_name` FROM `bg_arena` WHERE `group_id`='" + getarg(0) + "' ORDER BY `arena_name` ASC", .@arenas_id, .@arenas_name$;
    else
        query_sql "SELECT `bg_arena`.`bg_id`, `bg_arena`.`arena_name` FROM `bg_arena`, `bg_groups` WHERE `bg_arena`.`group_id`>'0' AND `bg_arena`.`group_id`=`bg_groups`.`group_id` AND `bg_groups`.`status`='1'", .@arenas_id, .@arenas_name$;
    
    set .@buildmenu$, "";
    for( set .@i,0; .@i < getarraysize(.@arenas_id); set .@i,.@i+1 )
    {
        set .@buildmenu$, .@buildmenu$ + "- " + .@arenas_name$[.@i] + ".";
        set .@buildmenu$, .@buildmenu$ + ":";
    }
    
    if( getarg(1) )
        set .@buildmenu$, .@buildmenu$ + "^FFA500- Voltar.^000000";
        
    set .@buildmenu$, .@buildmenu$ + ":";
    
    set .@choose, select(.@buildmenu$ + "^FF0000- Cancelar.^000000")-1;
    
    if( .@choose == getarraysize(.@arenas_id) )
        return -1;
    else if( .@choose > getarraysize(.@arenas_id) )
        return 0;
    else
        return .@arenas_id[.@choose];
        
OnInit:
    if( strnpcinfo(2) != "cmd_register" && strnpcinfo(2) != "bg_bat" )
        waitingroom "Batalhas Campais", 0;
    end;
}

-    script    BattleGround#cmd_unregister    FAKE_NPC,{
    set .@queue_id, queue_char_info(0);
    if( !.@queue_id )
    {
        message strcharinfo(0), "Você não está alistado em nenhuma batalha...";
        end;
    }
    
    set .@bg_id, callfunc("bg_exist", .@queue_id)?.@queue_id:0;
    
    if( !.@bg_id )
    {
        if( queue_leave() )
            message strcharinfo(0), "Você foi removido da fila de espera com sucesso.";
        else
            message strcharinfo(0), "Não foi possível remove-lo fila de espera...";
        end;
    }

    mes "^FF0000[Recrutador das Batalhas]^000000";
    mes "Tem certeza que deseja desertar da batalha em ^0000FF" + callfunc("bg_getarenainfo", .@bg_id, "arena_name") + "^000000?";
    next;
    if( select("- Sim, por favor.", "^FF0000- Não, obrigado.^000000") == 2 )
    {
        mes "^FF0000[Recrutador das Batalhas]^000000";
        mes "Utilize o comando ^0000FF@bgunregister^000000 sair da fila de espera da batalha em ^0000FF" + callfunc("bg_getarenainfo", .@bg_id, "arena_name") + "^000000.";
        close;
    }
    
    mes "^FF0000[Recrutador das Batalhas]^000000";
    if( queue_leave() )
        mes "Muito bem, você foi removido da fila de espera da batalha em ^0000FF" + callfunc("bg_getarenainfo", .@bg_id, "arena_name") + "^000000.";
    else
        mes "Sinto muito, não foi possível remove-lo da fila de espera da batalha em ^0000FF" + callfunc("bg_getarenainfo", .@bg_id, "arena_name") + "^000000.";
    close;
}

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

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