- 0
Sign in to follow this
Followers
0
Help with Script (Function to Donate when recruiting)
Asked by
lxlcadulxl
-
Recently Browsing 0 members
No registered users viewing this page.
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