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

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.