Hello everyone, I have a npc script of the Death Arena that I found just here. But I have the problem not repro .wav files that already exists myserver.grf at data(grf)\wav\(.wav)
A: How I setup the wavs at below script? Have to setup lub/lua or others files to?
A2: If I want to put to drop skulls with character name in pvp, what I may to do?
// [Nota 1]: Ponha 0 para desabilitar esta opção.
// [Nota 2]: Sistema de configurações de avisos na arena.
// [0]: Desabilita avisos na arena.
// [1]: Habilita somente mensagem global no mapa da arena ao matar um jogador.
// [2]: Habilita somente sons de eventos ao matar um jogador.
// [3]: Habilita mensagem global no mapa da arena e sons de eventos ao matar um jogador.
// [Nota 3]: O valor máximo é 120.
// [Nota 4]: As configurações de sons são feito através de uma matriz, quando o jogador chega a
// quantidade de mortes o som é tocado, lembre-se que a matriz que seja configurada
// na indice '0' será a que repetirá quando o jogador ultrapassar a quantidade máxima
// de mortes feita sobre os jogadores.
- script DeathArena#Main::DeathArena -1,{
OnInit:
// *---------------------------------------------*
// * Configurações *
// *---------------------------------------------*
setarray $@da_BasicSettings$[0],
99, // Nível de GM para Configurações.
1, // Sistema de eventos de avisos na arena. [Nota 2]
0, // Habilitar janela de chat em cima do npc? [Nota 1]
"Death Arena", // Mensagem a ser exibida na janela de chat do npc ou referência sobre o npc.
"^8A2BE2[Death Arena]^000000", // Nome do npc que será exibido nas janelas de dialogo do npc.
1, // Checar se caso um item na restrição seja carta se ele está equipada em um equipamento?
99, // Total de resultados exibidos por ranking. [Nota 3]
0 // Nível de GM para utilizar o comando de acessar raking.
;
setarray $@da_Color$[0],
"FF0000", // Cor hexadecimal para opções de menus com a função de Cancelar.
"FFA500", // Cor hexadecimal para opções de menus com a função de Voltar.
"FFA500", // Cor hexadecimal para opções de menus com a função de Próximo/Anterior.
"0000FF", // Cor hexadecimal para uma referência um objeto para função.
"0000FF", // Cor hexadecimal para opção do menu de administrador.
"0000FF", // Cor hexadecimal para referência sobre o npc.
"0000FF" // Cor hexadecimal parao cabeçalho do rank.
;
setarray $@da_DataBase$[0],
"da_arena", // Banco de Dados de arenas.
"da_group", // Banco de Dados do Grupo de restrições.
"da_restrictions", // Banco de Dados das restrições.
"da_ranking" // Banco de Dados do Ranking.
;
prontera,162,185,3 script Death Arena#da_arena01::da_arena 4_F_NFDEADKAFRA,{
set .@loop_1, 1;
while(.@loop_1)
{
cutin "death_arena", 2;
mes $@da_BasicSettings$[4];
mes "Bem-vindo a ^" + $@da_Color$[5] + $@da_BasicSettings$[3] + "^000000.";
mes "Em que posso ajudar?";
next;
switch( select("- Ír para uma arena.", "- Ranking.", (getgmlevel()>=atoi($@da_BasicSettings$[0])?"^"+ $@da_Color$[4] + "- Gerenciar.^000000":""), "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Ír para um arena.
set .@loop_2, 1;
while(.@loop_2)
{
mes $@da_BasicSettings$[4];
mes "Muito bem, escolha o tipo de arena que deseja entrar.";
next;
set .@type, select("- Jogadores vs Jogadores.", "- Clãns vs Clãns.", "- Grupos vs Grupos.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000")-1;
switch(.@type)
{
default:
set .@loop_3, 1;
while(.@loop_3)
{
setarray .@mask_name$[0], "Jogadores vs Jogadores", "Clãns vs Clãns", "Grupos vs Grupos";
mes $@da_BasicSettings$[4];
mes "Escolha ^" + $@da_Color$[3] + "arena de " + .@mask_name$[.@type] + "^000000 que deseja entrar.";
next;
query_sql "SELECT `auto_id`, `map_index`, `coord_x`, `coord_y`, `name`, `max_player`, `min_level`, `max_level`, `group_id` FROM `" + $@da_DataBase$[0] + "` WHERE `type`='" + .@type + "' ORDER BY `name` ASC", .@auto_id, .@map_index$, .@coord_x, .@coord_y, .@name$, .@max_player, .@min_level, .@max_level, .@group_id;
set .@BuildArenaMenu$, "";
for( set .@i, 0; .@i < getarraysize(.@auto_id); set .@i, .@i + 1 )
set .@BuildArenaMenu$, .@BuildArenaMenu$ + "- " + .@name$[.@i] + ". [" + getmapusers(.@map_index$[.@i]) + (.@max_player[.@i]?"/"+.@max_player[.@i]:"") + "]:";
if( .@chooseArena == getarraysize(.@auto_id) )
set .@loop_3, 0;
else if( .@chooseArena > getarraysize(.@auto_id) )
{
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
}
else {
set .@loop_4, 1;
while(.@loop_4)
{
mes $@da_BasicSettings$[4];
mes "Deseja entrar na arena ^" + $@da_Color$[3] + .@name$[.@chooseArena] + "^000000?";
next;
switch( select("- Sim, por favor.", "- Informações.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Entrar na arena.
set .@item_id, 0;
set .@class_id, 0;
for( set .@t, 0; .@t < 2; set .@t, .@t + 1 )
{
cleararray .@object_id[0], 0, getarraysize(.@object_id);
query_sql "SELECT `auto_id`, `value` FROM `" + $@da_DataBase$[2] + "` WHERE `type`='" + .@t + "' AND `group_id`='" + .@group_id[.@chooseArena] + "'", .@object_id, .@object_value;
for( set .@i, 0; .@i < getarraysize(.@object_id); set .@i, .@i + 1 )
{
if( .@t == 0 )
{
if( countitem(.@object_value[.@i]) || (atoi($@da_BasicSettings$[5]) && checkequipedcard(.@object_value[.@i])) )
set .@item_id, .@object_value[.@i];
}
else if( Class == .@object_value[.@i] )
set .@class_id, .@object_value[.@i];
}
}
if( .@item_id )
{
mes $@da_BasicSettings$[4];
mes "Você não pode entrar na arena com o item ^" + $@da_Color$[3] + getitemname(.@item_id) + "^000000, saiba os requisitos no menu de ^" + $@da_Color$[3] + "Informações^000000.";
next;
}
else if( .@class_id )
{
mes $@da_BasicSettings$[4];
mes "Você não pode entrar na arena com a classe ^" + $@da_Color$[3] + jobname(.@class_id) + "^000000, saiba os requisitos no menu de ^" + $@da_Color$[3] + "Informações^000000.";
next;
}
else if( .@max_player[.@chooseArena] && getmapusers(.@map_index$[.@chooseArena]) >= .@max_player[.@chooseArena] )
{
mes $@da_BasicSettings$[4];
mes "A quantidade máxima de jogadores na arena já foi atingida, tente novamente mais tarde!";
next;
}
else if( .@min_level[.@chooseArena] && BaseLevel < .@min_level[.@chooseArena] )
{
mes $@da_BasicSettings$[4];
mes "Você não tem o nível minimo para entrar na arena, saiba os requisitos no menu de ^" + $@da_Color$[3] + "Informações^000000.";
next;
}
else if( .@max_level[.@chooseArena] && BaseLevel > .@max_level[.@chooseArena] )
{
mes $@da_BasicSettings$[4];
mes "Você ultrapassou do nível máximo para entrar na arena, saiba os requisitos no menu de ^" + $@da_Color$[3] + "Informações^000000.";
next;
}
else if( .@type == 1 && !getcharid(2) )
{
mes $@da_BasicSettings$[4];
mes "É necessário estar em um clã para entrar na arena!";
next;
}
else if( .@type == 2 && !getcharid(1) )
{
mes $@da_BasicSettings$[4];
mes "É necessário estar em um grupo para entrar na arena!";
next;
}
else {
// Levar para a arena.
mes $@da_BasicSettings$[4];
mes "Vou te mandar para arena ^" + $@da_Color$[3] + .@name$[.@chooseArena] + "^000000, tenha uma boa batalha!";
close2;
set da_kill_count, 0;
cutin "", 255;
warp .@map_index$[.@chooseArena], .@coord_x[.@chooseArena], .@coord_y[.@chooseArena];
end;
}
break;
case 2:
// Informações.
// Entrar na arena.
mes "^" + $@da_Color$[3] + "Arena:^000000 " + .@name$[.@chooseArena];
mes "^" + $@da_Color$[3] + "Tipo: ^000000" + .@mask_name$[.@type];
mes "^" + $@da_Color$[3] + "Mapa: ^000000" + .@map_index$[.@chooseArena] + (.@coord_x[.@chooseArena]&&.@coord_y[.@chooseArena]?"x["+.@coord_x[.@chooseArena]+"] - y["+.@coord_y[.@chooseArena]+"]":"");
mes "^" + $@da_Color$[3] + "Máximo de Jogadores: ^000000" + (.@max_playe[.@chooseArena]?.@max_player[.@chooseArena]:"ilimitado");
mes "^" + $@da_Color$[3] + "Nível Minimo de Base: ^000000" + (.@min_level[.@chooseArena]?.@min_level[.@chooseArena]:"qualquer");
mes "^" + $@da_Color$[3] + "Nível Máximo de Base: ^000000" + (.@max_level[.@chooseArena]?.@max_level[.@chooseArena]:"qualquer");
set .@item_list$, "";
set .@class_list$, "";
for( set .@t, 0; .@t < 2; set .@t, .@t + 1 )
{
cleararray .@object_id[0], 0, getarraysize(.@object_id);
query_sql "SELECT `auto_id`, `value` FROM `" + $@da_DataBase$[2] + "` WHERE `type`='" + .@t + "' AND `group_id`='" + .@group_id[.@chooseArena] + "'", .@object_id, .@object_value;
for( set .@i, 0; .@i < getarraysize(.@object_id); set .@i, .@i + 1 )
{
if( !.@t )
set .@item_list$, .@item_list$ + getitemname(.@object_value[.@i]) + ((.@i+1)==getarraysize(.@object_id)?".":", ");
else
set .@class_list$, .@class_list$ + jobname(.@object_value[.@i]) + ((.@i+1)==getarraysize(.@object_id)?".":", ");
}
}
mes "^"+$@da_Color$[3] + "Vitórias:^000000 " + .@wins[.@i];
mes "^"+$@da_Color$[3] + "Derrotas:^000000 " + .@loss[.@i];
mes "^"+$@da_Color$[3] + "Proporção:^000000 " + .@ration[.@i];
mes "¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨";
mes " ";
set .@row_position, .@row_position + 1;
}
set .@tmp_row_init, .@row_init;
set .@tmp_row_end, .@row_end;
set .@row_init, .@row_end + 1;
set .@row_end, .@row_end + atoi($@da_BasicSettings$[6]);
query_sql "SELECT `object_id` FROM `" + $@da_DataBase$[3] + "` WHERE `type`='" + .@filter + "' ORDER BY `" + (.@filter==1?"loss":(.@filter==2?"ration":"wins")) + "` ASC LIMIT " + (.@row_end+1) + "," + (.@row_end+atoi($@da_BasicSettings$[6])) + "", .@tmp_object_next;
next;
switch( select((.@row_init>atoi($@da_BasicSettings$[6])?"^"+$@da_Color$[2]+"- Anterior.^000000":""), (getarraysize(.@tmp_object_next)?"^"+$@da_Color$[2]+"- Próximo.^000000":""), "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
set .@row_init, .@tmp_row_init;
set .@row_end, .@tmp_row_end;
break;
case 2:
break;
case 3:
set .@loop_4, 0;
break;
case 4:
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else {
mes "Nenhum resultado a ser exibido.";
set .@loop_4, 0;
}
}
break;
case 3:
set .@loop_3, 0;
break;
case 4:
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 3:
set .@loop_2, 0;
break;
case 4:
set .@loop_1, 0;
set .@loop_2, 0;
break;
}
}
break;
case 3:
// Gerenciar.
OnManagerScript: //atcmd_func
set .@loop_2, 1;
while(.@loop_2)
{
mes $@da_BasicSettings$[4];
mes "O que deseja gerenciar na ^" + $@da_Color$[5] + $@da_BasicSettings$[3] + "^000000?";
next;
switch( select("- Gerenciar Grupos de Restrições.", "- Gerenciar Arenas.", "- Gerenciar Ranking.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Gerenciar Grupos de Restrições.
set .@loop_3, 1;
while(.@loop_3)
{
mes $@da_BasicSettings$[4];
mes "O que deseja gerenciar no ^" + $@da_Color$[3] + "Grupos de Restrições^000000?";
next;
switch( select("- Adicionar Grupo.", "- Remover Grupo.", "- Alterar nome de um Grupo.", "- Gerenciar Regras de Restrições.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Adicionar Grupo.
if( callfunc("GetGroupInfo", 0) >= 120 )
{
mes $@da_BasicSettings$[4];
mes "O limite máximo de ^" + $@da_Color$[3] + "Grupos de Restrições^000000 já foi atingido.";
next;
break;
}
set .@loop_4, 1;
while(.@loop_4)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite o nome para o novo ^" + $@da_Color$[3] + "Grupo de Restrições^000000.";
next;
input .@GroupName$;
if( .@GroupName$ == "" )
{
mes $@da_BasicSettings$[4];
mes "Você tem que digitar um nome para o novo ^" + $@da_Color$[3] + "Grupo de Restrições^000000!";
mes "Deseja tentar novamente?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
break;
case 2:
set .@loop_4, 0;
break;
case 3:
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else {
mes $@da_BasicSettings$[4];
mes "Você tem certeza que deseja adicionar ^" + $@da_Color$[3] + "'" + .@GroupName$ + "'^000000 ao ^" + $@da_Color$[3] + "Grupos de Restrições^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo adicionar outro.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Adicionar ao grupo de restrições.
query_sql "INSERT INTO `" + $@da_DataBase$[1] + "` (name) VALUES ('" + .@GroupName$ + "')";
mes $@da_BasicSettings$[4];
mes "O Grupo ^" + $@da_Color$[3] + "'" + .@GroupName$ + "'^000000 foi adicionado!";
mes "Para adicionar restrições a este grupo, vá até ao menu de ^" + $@da_Color$[3] + "Gerenciar Regras de Restrições^000000.";
next;
set .@loop_4, 0;
break;
case 2:
break;
case 3:
set .@loop_4, 0;
break;
case 4:
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
break;
case 2:
// Remover Grupo.
if( !callfunc("GetGroupInfo", 0) )
{
mes $@da_BasicSettings$[4];
mes "Não há ^" + $@da_Color$[3] + "Grupos de Restrições^000000 para ser removido.";
next;
break;
}
set .@loop_4, 1;
while(.@loop_4)
{
mes $@da_BasicSettings$[4];
mes "Selecione um ^" + $@da_Color$[3] + "Grupo de Restrições^000000 para ser removido.";
next;
set .@BuildGroupMenu$, "";
query_sql "SELECT `auto_id`, `name` FROM `" + $@da_DataBase$[1] + "` ORDER BY `name` ASC", .@groups_id, .@groups_name$;
for( set .@i, 0; .@i < getarraysize(.@groups_id); set .@i, .@i + 1 )
set .@BuildGroupMenu$, .@BuildGroupMenu$ + "- " + .@groups_name$[.@i] + ".:";
if( .@chooseGroup == getarraysize(.@groups_id) )
set .@loop_4, 0;
else if( .@chooseGroup > getarraysize(.@groups_id) )
{
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
}
else {
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja remover o Grupo ^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo remover outro.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Remover do grupo de restrições.
set .@loop_5, 1;
while(.@loop_5)
{
set .@total_arena, callfunc("GetGroupInfo", 1, .@groups_id[.@chooseGroup]);
if( .@total_arena )
{
mes $@da_BasicSettings$[4];
mes "Há ^" + $@da_Color$[3] + "'" + .@total_arena + "'^000000 arenas cadastrada nesse grupo, o que deseja fazer com elas?";
next;
switch( select("- Mover para outro grupo.", "- Remover todas as arenas.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Selecionar outro grupo.
set .@loop_6, 1;
while(.@loop_6)
{
mes $@da_BasicSettings$[4];
mes "Por favor, selecione o ^" + $@da_Color$[3] + "novo grupo^0000000 em que deseja mover as arenas!";
mes $@da_BasicSettings$[4];
next;
set .@nBuildGroupMenu$, "";
for( set .@i, 0; .@i < getarraysize(.@groups_id); set .@i, .@i + 1 )
set .@nBuildGroupMenu$, (.@groups_id[.@i]==.@groups_id[.@chooseGroup]?"":.@groups_name$[.@i]) + ":";
if( .@nchooseGroup == getarraysize(.@groups_id) )
set .@loop_6, 0;
else if( .@nchooseGroup > getarraysize(.@groups_id) )
{
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
}
else {
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja mover as arenas do Grupo ^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 para o Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@nchooseGroup] + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo mover para outro grupo.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Mover para outro grupo.
query_sql "UPDATE `" + $@da_DataBase$[0] + "` SET `group_id`='" + .@groups_id[.@nchooseGroup] + "' WHERE `group_id`='" + .@groups_id[.@chooseGroup] + "'";
set .@loop_6, 0;
break;
case 2:
break;
case 3:
set .@loop_6, 0;
break;
case 4:
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
break;
case 2:
// Remover todas as arenas.
query_sql "DELETE FROM `" + $@da_DataBase$[0] + "` WHERE `group_id`='" + .@groups_id[.@chooseGroup] + "'";
break;
case 3:
set .@loop_5, 0;
break;
case 4:
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else {
// Remover o grupo.
query_sql "DELETE FROM `" + $@da_DataBase$[1] + "` WHERE `auto_id`='" + .@groups_id[.@chooseGroup] + "'";
mes $@da_BasicSettings$[4];
mes "O Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 foi removido.";
next;
set .@loop_5, 0;
set .@loop_4, 0;
}
}
break;
case 2:
break;
case 3:
set .@loop_4, 0;
break;
case 4:
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
break;
case 3:
// Alterar nome de um Grupo.
if( !callfunc("GetGroupInfo", 0) )
{
mes $@da_BasicSettings$[4];
mes "Não há ^" + $@da_Color$[3] + "Grupos de Restrições^000000 para ser removido.";
next;
break;
}
set .@loop_4, 1;
while(.@loop_4)
{
mes $@da_BasicSettings$[4];
mes "Por favor, selecione o '^" + $@da_Color$[3] + "'" + "Grupo de Restrições'^000000 que deseja alterar o nome.";
next;
set .@BuildGroupMenu$, "";
query_sql "SELECT `auto_id`, `name` FROM `" + $@da_DataBase$[1] + "` ORDER BY `name` ASC", .@groups_id, .@groups_name$;
for( set .@i, 0; .@i < getarraysize(.@groups_id); set .@i, .@i + 1 )
set .@BuildGroupMenu$, .@BuildGroupMenu$ + "- " + .@groups_name$[.@i] + ".:";
if( .@chooseGroup == getarraysize(.@groups_id) )
set .@loop_4, 0;
else if( .@chooseGroup > getarraysize(.@groups_id) )
{
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
}
else
{
set .@loop_5, 1;
while(.@loop_5)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite um novo nome para o Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000.";
next;
input .@GroupName$;
if( .@GroupName$ == "" || .@GroupName$ == .@groups_name$[.@chooseGroup] )
{
mes $@da_BasicSettings$[4];
mes "Você deve digitar um novo nome para o Grupo '^" + $@da_Color$[3] + "'"+ .@groups_name$[.@chooseGroup] + "'^000000.";
mes "Deseja tentar novamente?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
break;
case 2:
set .@loop_5, 0;
break;
case 3:
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else {
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja mudar o nome do Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 para '^" + $@da_Color$[3] + "'" + .@GroupName$ + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, digitar outro.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alterar nome do grupo.
query_sql "UPDATE `" + $@da_DataBase$[1] + "` SET `name`='" + .@GroupName$ + "' WHERE `auto_id`='" + .@groups_id[.@chooseGroup] + "'";
mes $@da_BasicSettings$[4];
mes "Nome do Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 foi alterado para '^" + $@da_Color$[3] + "'" + .@GroupName$ + "'^000000.";
next;
set .@loop_5, 0;
set .@loop_4, 0;
break;
case 2:
break;
case 3:
set .@loop_5, 0;
break;
case 4:
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
}
}
break;
case 4:
// Gerenciar Regras de Restrições.
if( callfunc("GetGroupInfo", 0) >= 120 )
{
mes $@da_BasicSettings$[4];
mes "O limite máximo de ^" + $@da_Color$[3] + "Grupos de Restrições^000000 já foi atingido.";
next;
break;
}
set .@loop_4, 1;
while(.@loop_4)
{
mes $@da_BasicSettings$[4];
mes "Selecione o ^" + $@da_Color$[3] + "Grupo de Restrições^000000 que deseja gerenciar.";
next;
set .@BuildGroupMenu$, "";
query_sql "SELECT `auto_id`, `name` FROM `" + $@da_DataBase$[1] + "` ORDER BY `name` ASC", .@groups_id, .@groups_name$;
for( set .@i, 0; .@i < getarraysize(.@groups_id); set .@i, .@i + 1 )
set .@BuildGroupMenu$, .@BuildGroupMenu$ + "- " + .@groups_name$[.@i] + ".:";
if( .@chooseGroup == getarraysize(.@groups_id) )
set .@loop_4, 0;
else if( .@chooseGroup > getarraysize(.@groups_id) )
{
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
}
else
{
set .@loop_5, 1;
while(.@loop_5)
{
mes $@da_BasicSettings$[4];
mes "O que deseja gerenciar nas Regras do Grupo ^" + $@da_Color$[3] + .@groups_name$[.@chooseGroup] + "^000000?";
next;
switch( select("- Gerenciar Classes ou Itens.", "- Copiar restrições para outro Grupo.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Gerenciar Classes ou Itens.
set .@loop_6, 1;
while(.@loop_6)
{
mes $@da_BasicSettings$[4];
mes "O que deseja gerenciar de classes e itens nas Regras do Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000?";
next;
set .@countItem, callfunc("GetGroupInfo", 2, .@groups_id[.@chooseGroup]);
set .@countClass, callfunc("GetGroupInfo", 3, .@groups_id[.@chooseGroup]);
set .@choosetype, select((.@countItem<120?"- Adicionar Itens as Regras de Restrições.":""), (.@countClass<120?"- Adicionar Classes as Regras de Restrições.":""), (.@countItem?"- Remover Itens das Regras de Restrições.":""), (.@countClass?"- Remover Classes das Regras de Restrições.":""), "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000")-1;
switch(.@choosetype)
{
case 0:
case 1:
// Adicionar itens ou classes as Regras de Restrições.
set .@loop_7, 1;
while(.@loop_7)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite o ^" + $@da_Color$[3] + (.@choosetype?"id da classe":"id do item") + "^000000 que deseja adicionar ao Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 de Restrições.";
next;
input .@object_id;
if( (.@choosetype == 0 && !.@object_id && getitemname(.@object_id) == "") || (jobname(.@object_id) == "") )
{
mes $@da_BasicSettings$[4];
mes "Você deve digitar o ^" + $@da_Color$[3] + "id " + (.@choosetype?"da classe":"do item") + " válido^000000 que deseja adicionar ao Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 de Restrições.";
mes "Deseja tentar novamente?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
break;
case 2:
set .@loop_7, 0;
break;
case 3:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else if( callfunc("checkRestriction", .@groups_id[.@chooseGroup], .@object_id) )
{
mes $@da_BasicSettings$[4];
mes (.@choosetype?"A classe":"O item") + " ^" + $@da_Color$[3] + (.@choosetype?jobname(.@object_id):getitemname(.@object_id)) + "^000000 já existe no Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 de Restrições.";
mes "Deseja tentar novamente?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
break;
case 2:
set .@loop_7, 0;
break;
case 3:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else {
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja adicionar " + (.@choosetype?"a classe":"o item") + " ^" + $@da_Color$[3] + "'" + (.@choosetype?jobname(.@object_id):getitemname(.@object_id)) + "'^000000 no Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 de Restrições?";
next;
switch( select("- Sim, por favor.", "- Não, desejo adicionar outro.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Adicionar item ou classe no grupo de restrição.
query_sql "INSERT INTO `" + $@da_DataBase$[2] + "` (group_id, value, type) VALUES (" + .@groups_id[.@chooseGroup] + ", " + .@object_id + ", " + .@choosetype + ")";
mes $@da_BasicSettings$[4];
mes (.@choosetype?"A classe":"O item") + " '^" + $@da_Color$[3] + "'" + (.@choosetype?jobname(.@object_id):getitemname(.@object_id)) + "'^000000 foi adicionado ao Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 de Restrições.";
next;
set .@loop_7, 0;
break;
case 2:
break;
case 3:
set .@loop_7, 0;
break;
case 4:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
break;
case 2:
case 3:
set .@choosetype, (.@choosetype==2?0:1);
// Remover Itens das Regras de Restrições.
set .@loop_7, 1;
while(.@loop_7)
{
mes $@da_BasicSettings$[4];
mes "Por favor, selecione " + (.@choosetype?"a classe":"o item") + " que deseja remover do Grupo ^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 de Restrições.";
next;
query_sql "SELECT `auto_id`, `value` FROM `" + $@da_DataBase$[2] + "` WHERE `type`='" + .@choosetype + "' AND `group_id`='" + .@groups_id[.@chooseGroup] + "' ORDER BY `value` ASC", .@object_id, .@object_value;
set .@BuildObjectMenu$, "";
for( set .@i, 0; .@i < getarraysize(.@object_id); set .@i, .@i + 1 )
set .@BuildObjectMenu$, .@BuildObjectMenu$ + "- " + (.@choosetype?jobname(.@object_value[.@i]):getitemname(.@object_value[.@i])) + ".:";
if( .@chooseObject == getarraysize(.@object_id) )
set .@loop_7, 0;
else if( .@chooseObject > getarraysize(.@object_id) )
{
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
}
else {
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja remover " + (.@choosetype?"a classe":"o item") + " ^" + $@da_Color$[3] + (.@choosetype?jobname(.@object_value[.@chooseObject]):getitemname(.@object_value[.@chooseObject])) + "^000000 do Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 de Restrições?";
next;
switch( select("- Sim, por favor.", "- Não, desejo remover outro item.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Remover o item ou classe do Grupo de Restrição
query_sql "DELETE FROM `" + $@da_DataBase$[2] + "` WHERE `auto_id`='" + .@object_id[.@chooseObject] + "'";
mes $@da_BasicSettings$[4];
mes (.@choostype?"A classe":"O item") + " ^" + $@da_Color$[3] + (.@choosetype?jobname(.@object_value[.@chooseObject]):getitemname(.@object_value[.@chooseObject])) + "^000000 foi removido do Grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "'^000000 de Restrições.";
next;
set .@loop_7, 0;
break;
case 2:
break;
case 3:
set .@loop_7, 0;
break;
case 4:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
break;
case 4:
set .@loop_6, 0;
break;
case 5:
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 2:
// Copiar restrições para outro Grupo.
set .@loop_6, 1;
while(.@loop_6)
{
mes $@da_BasicSettings$[4];
mes "Selecione o ^" + $@da_Color$[3] + "Grupo de Restrições^000000 no qual você deseja que as restrições do Grupo ^" + $@da_Color$[3] + .@groups_name$[.@chooseGroup] + "^000000 seja copiada.";
next;
set .@BuildtoGroupMenu$, "";
for( set .@i, 0; .@i < getarraysize(.@groups_id); set .@i, .@i + 1 )
set .@BuildtoGroupMenu$, .@BuildtoGroupMenu$ + (.@groups_id[.@i]!=.@groups_id[.@chooseGroup]?"- " + .@groups_name$[.@i] + ".":"") + ":";
if( .@choosetoGroup == getarraysize(.@groups_id) )
set .@loop_6, 0;
else if( .@choosetoGroup > getarraysize(.@groups_id) )
{
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
}
else {
setarray .@copy[0], 0, callfunc("GetGroupInfo", 2, .@groups_id[.@choosetoGroup]), callfunc("GetGroupInfo", 2, .@groups_id[.@chooseGroup]), 0, callfunc("GetGroupInfo", 1, .@groups_id[.@choosetoGroup]), callfunc("GetGroupInfo", 1, .@groups_id[.@chooseGroup]);
set .@loop_7, 1;
while(.@loop_7)
{
if( !.@copy[0] && (.@copy[1]+.@copy[2]) > 120 )
{
mes $@da_BasicSettings$[4];
mes "A quantidade de item cadastrado no grupo no qual você deseja adicionar a cópia com a quantidade de item cadastrado no grupo aonde deseja ser copiado é maior que 120.";
mes "Não é possível mover os valores do item, deseja continuar sem copiar os itens?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
set .@copy[0], 1;
break;
case 2:
set .@loop_7, 0;
break;
case 3:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else if( !.@copy[3] && (.@copy[4]+.@copy[5]) > 120 )
{
mes $@da_BasicSettings$[4];
mes "A quantidade de classe cadastrada no grupo no qual você deseja adicionar a cópia com a quantidade de classe cadastrada no grupo aonde deseja ser copiado é maior que 120.";
mes "Não é possível mover os valores das classes, deseja continuar sem copiar as classes?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
set .@copy[3], 1;
break;
case 2:
set .@loop_7, 0;
break;
case 3:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else if( .@copy[0] && .@copy[3] )
{
mes $@da_BasicSettings$[4];
mes "Não há nada a ser copiado.";
next;
set .@loop_7, 0;
break;
}
else {
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja copiar as restrições do Grupo ^" + $@da_Color$[3] + .@groups_name$[.@chooseGroup] + "^000000 para o Grupo ^" + $@da_Color$[3] + .@groups_name$[.@choosetoGroup] + "^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo selecionar outro grupo.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
for( set .@i, 0; .@i < 2; set .@i, .@i + 1 )
{
if( (.@i==0&&!.@copy[0]) || (.@i==1&&!.@copy[3]) )
{
query_sql "SELECT `value`, `type` FROM `" + $@da_DataBase$[2] + "` WHERE `group_id`='" + .@groups_id[.@chooseGroup] + "' AND `type`='" + .@i + "'", .@c_value, .@c_type;
for( set .@c, 0; .@c < getarraysize(.@c_value); set .@c, .@c + 1 )
{
if( !callfunc("checkRestriction", .@groups_id[.@choosetoGroup], .@c_value[.@c]) )
query_sql "INSERT INTO `" + $@da_DataBase$[2] + "` (group_id, value, type) VALUES (" + .@groups_id[.@choosetoGroup] + ", " + .@c_value[.@c] + ", " + .@c_type[.@c] + ")";
}
}
}
mes $@da_BasicSettings$[4];
mes "Foi feito uma copia das restrições do Grupo ^" + $@da_Color$[3] + .@groups_name$[.@chooseGroup] + "^000000 para o Grupo ^" + $@da_Color$[3] + .@groups_name$[.@choosetoGroup] + "^000000?";
next;
set .@loop_7, 0;
break;
case 2:
break;
case 3:
set .@loop_7, 0;
break;
case 4:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
}
}
break;
case 3:
set .@loop_5, 0;
break;
case 4:
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
}
break;
case 5:
set .@loop_3, 0;
break;
case 6:
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 2:
// Gerenciar Arenas.
set .@loop_3, 1;
while(.@loop_3)
{
mes $@da_BasicSettings$[4];
mes "O que deseja gerenciar nas ^" + $@da_Color$[3] + "Arenas^000000?";
next;
switch( select("- Adicionar uma Arena.", "- Remover uma Arena.", "- Alterar uma Arena.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Adicionar uma Arena.
if( !callfunc("GetGroupInfo", 0) )
{
mes $@da_BasicSettings$[4];
mes "Não há grupos de restrições cadastrado,";
mes "por favor cadastre um grupo de restrições no menu ^" + $@da_Color$[3] + "'Gerenciar Grupos de Restrições'^000000.";
next;
break;
}
set .@loop_4, 1;
while(.@loop_4)
{
mes $@da_BasicSettings$[4];
mes "Por favor, escolha um tipo para a nova ^" + $@da_Color$[3] + "Arenas^000000?";
next;
set .@type, select("- Jogadores vs Jogadores.", "- Clãns vs Clãns.", "- Grupos vs Grupos.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000")-1;
switch(.@type)
{
default:
setarray .@mask_name$, "Jogadores", "Clãns", "Grupos";
set .@loop_5, 1;
while(.@loop_5)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite o nome para a nova arena de ^" + $@da_Color$[3] + .@mask_name$[.@type] + "^000000.";
next;
input .@Name$;
if( .@Name$ == "" )
{
mes $@da_BasicSettings$[4];
mes "Você tem que digitar um nome para a nova arena de ^" + $@da_Color$[3] + .@mask_name$[.@type] + "^000000.";
mes "Deseja tentar novamente?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
break;
case 2:
set .@loop_5, 0;
break;
case 3:
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else {
set .@loop_6, 0;
mes $@da_BasicSettings$[4];
mes "Por favor, digite o mapa aonde vai ser a arena ^" + $@da_Color$[3] + .@Name$ + "^000000.";
next;
input .@MapIndex$;
if( .@MapIndex$ == "" )
{
mes $@da_BasicSettings$[4];
mes "Você tem que digitar o mapa aonde vai ser a arena ^" + $@da_Color$[3] + .@Name$ + "^000000.";
mes "Deseja tentar novamente?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
break;
case 2:
set .@loop_6, 0;
break;
case 3:
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else if( callfunc("getArenaInfo", 0, .@MapIndex$) )
{
mes $@da_BasicSettings$[4];
mes "Já existe uma arena cadastra com o mapa ^" + $@da_Color$[3] + .@MapIndex$ + "^000000.";
mes "Deseja tentar novamente?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
break;
case 2:
set .@loop_6, 0;
break;
case 3:
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else {
set .@loop_7, 1;
while(.@loop_7)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite a coordenada x aonde os jogadores serão teleportados no mapa ^" + $@da_Color$[3] + .@MapIndex$ + "^000000.";
mes "Digite 0 para os jogadores serem teleportado aleatóriamente e as coordenadas y serão configurada para 0.";
next;
input .@CoordX;
if( .@CoordX )
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite a coordenada y aonde os jogadores serão teleportados no mapa ^" + $@da_Color$[3] + .@MapIndex$ + "^000000.";
mes "Digite 0 para os jogadores serem teleportado aleatóriamente e as coordenadas x serão configurada para 0.";
next;
input .@CoordY;
if( !.@CoordY ) set .@CoordX, 0;
}
else
set .@CoordY, 0;
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja adicionar as coordenadas ^" + $@da_Color$[3] +"x[" + (.@CoordX?.@CoordX:"aleatório") + "] y[" + (.@CoordY?.@CoordY:"alterório") + "]^000000 para o mapa ^" + $@da_Color$[3] + .@MapIndex$ + "^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo adicionar outras coordenadas.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
set .@loop_8, 1;
while(.@loop_8)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite o máximo de jogadores que podem acessar a arena ^" + $@da_Color$[3] + .@Name$ + "^000000.";
mes "Digite 0 para que o acesso a a arena seja ilimitado.";
next;
input .@MaxPlayer;
mes $@da_BasicSettings$[4];
mes "Por favor, digite o nível minimo de base para jogadores poderem acessar a arena ^" + $@da_Color$[3] + .@Name$ + "^000000.";
mes "Digite 0 para que o nível minimo de base seja desabilitado.";
next;
input .@MinBaseLevel;
mes $@da_BasicSettings$[4];
mes "Por favor, digite o nível máximo de base para jogadores poderem acessar a arena ^" + $@da_Color$[3] + .@Name$ + "^000000.";
mes "Digite 0 para que o nível máximo de base seja desabilitado.";
next;
input .@MaxBaseLevel;
mes $@da_BasicSettings$[4];
mes "Tem certeza que o máximo de jogadores a entrar na arena seja ^" + $@da_Color$[3] + (.@MaxPlayer?.@MaxPlayer:"ilimitado") + "^000000, o nível minimo de base seja ^" + $@da_Color$[3] + (.@MinBaseLevel?.@MinBaseLevel:"desabilitado") + "^000000 e o nível máximo de base seja ^" + $@da_Color$[3] + (.@MaxBaseLevel?.@MaxBaseLevel:"desabilitado") + "^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo mudar.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
set .@loop_9, 1;
while(.@loop_9)
{
mes $@da_BasicSettings$[4];
mes "Por favor, selecione o ^" + $@da_Color$[3] + "'Grupo de Restrições'^000000 que deseja adicionar a arena ^" + $@da_Color$[3] + .@Name$ + "^000000.";
next;
query_sql "SELECT `auto_id`, `name` FROM `" + $@da_DataBase$[1] + "` ORDER BY `name` ASC", .@groups_id, .@groups_name$;
set .@BuildGroupMenu$, "";
for( set .@i, 0; .@i < getarraysize(.@groups_id); set .@i, .@i + 1 )
set .@BuildGroupMenu$, .@BuildGroupMenu$ + (callfunc("GetGroupInfo", 1, .@groups_id$[.@i])<120?"- " + .@groups_name$[.@i] + ".":"") + ":";
if( .@chooseGroup == getarraysize(.@groups_id) )
set .@loop_9, 0;
else if( .@chooseGroup > getarraysize(.@groups_id) )
{
set .@loop_9, 0;
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
}
else {
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja adicionar o grupo '^" + $@da_Color$[3] + "'" + .@groups_name$[.@chooseGroup] + "^000000' de restrições na arena '^" + $@da_Color$[3] + .@Name$ + "^000000'?";
next;
switch( select("- Sim, por favor.", "- Não, desejo selecionar outro grupo.", "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
mes $@da_BasicSettings$[4];
mes "Por favor, confirme as informações abaixo para concluír o cadastrado da arena:";
mes " ";
mes "^"+$@da_Color$[3] + "Arena:^000000 " + .@Name$;
mes "^"+$@da_Color$[3] + "Tipo:^000000 " + .@mask_name$[.@type];
mes "^"+$@da_Color$[3] + "Grupo de Restrições:^000000 "+ .@groups_name$[.@chooseGroup];
mes "^"+$@da_Color$[3] + "Mapa:^000000 " + .@MapIndex$;
mes "^"+$@da_Color$[3] + "Coordenadas:^000000 " + (.@CoordX&&.@CoordY?"x[" + .@CoordX + "] - y[" + .@CoordY + "]":"aleatória");
mes "^"+$@da_Color$[3] + "Máximo de Jogadores:^000000 " + (.@MaxPlayer?.@MaxPlayer:"ilimitado");
mes "^"+$@da_Color$[3] + "Nível Minimo:^000000 " + (.@MinBaseLevel?.@MinBaseLevel:"desabilitado");
mes "^"+$@da_Color$[3] + "Nível Máximo:^000000 " + (.@MaxBaseLevel?.@MaxBaseLevel:"desabilitado");
next;
switch( select("- Sim, está tudo correto.", "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Adicionar arena.
query_sql "INSERT INTO `" + $@da_DataBase$[0] + "` (map_index, coord_x, coord_y, name, type, max_player, max_level, min_level, group_id) VALUES('" + .@MapIndex$ + "', " + .@CoordX + ", " + .@CoordY + ", '" + .@Name$ + "', " + .@type + ", " + .@MaxPlayer + ", " + .@MaxBaseLevel + ", " + .@MinBaseLevel + ", " + .@groups_id[.@chooseGroup] + ")";
mes $@da_BasicSettings$[4];
mes "A arena '^" + $@da_Color$[3] + .@Name$ + "'^000000 foi adicionada.";
next;
donpcevent "DeathArena::OnLoadMapFlags";
set .@loop_9, 0;
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
break;
case 2:
set .@loop_9, 0;
break;
case 3:
set .@loop_9, 0;
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
break;
case 2:
break;
case 3:
set .@loop_9, 0;
break;
case 4:
set .@loop_9, 0;
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
break;
case 2:
break;
case 3:
set .@loop_8, 0;
break;
case 4:
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 2:
break;
case 3:
set .@loop_7, 0;
break;
case 4:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
}
}
break;
case 3:
set .@loop_4, 0;
break;
case 4:
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 2:
// Remover uma Arena.
set .@loop_4, 1;
while(.@loop_4)
{
mes $@da_BasicSettings$[4];
mes "Por favor, selecione o ^" + $@da_Color$[3] + "tipo da arena^000000 que deseja remover uma arena.";
next;
set .@type, select("- Jogadores vs Jogadores.", "- Clãns vs Clãns.", "- Grupos vs Grupos.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000")-1;
switch( .@type )
{
default:
set .@loop_5, 1;
while(.@loop_5)
{
setarray .@mask_name$[0], "Jogadores vs Jogadores", "Clãns vs Clãns", "Grupos vs Grupos";
mes $@da_BasicSettings$[4];
mes "Por favor, selecione uma arena de ^" + $@da_Color$[3] + .@mask_name$[.@type] + "^000000.";
next;
cleararray .@a_auto_id, 0, getarraysize(.@a_auto_id);
cleararray .@a_name$, "", getarraysize(.@a_name$);
cleararray .@a_mapindex$, "", getarraysize(.@a_mapindex$);
query_sql "SELECT `auto_id`, `name`, `map_index` FROM `" + $@da_DataBase$[0] + "` WHERE `type`='" + .@type + "' ORDER BY `name`", .@a_auto_id, .@a_name$, .@a_mapindex$;
set .@BuildArenaMenu$, "";
for( set .@i, 0; .@i < getarraysize(.@a_auto_id); set .@i, .@i + 1 )
set .@BuildArenaMenu$, .@BuildArenaMenu$ + "- " + .@a_name$[.@i] + ".:";
if( .@chooseArena == getarraysize(.@a_auto_id) )
set .@loop_5, 0;
else if( .@chooseArena > getarraysize(.@a_auto_id) )
{
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
}
else {
set .@loop_6, 1;
while( .@loop_6 )
{
mes $@da_BasicSettings$[4];
mes "O que deseja alterar na arena '^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000?";
next;
switch( select("- Alterar nome.", "- Alterar tipo.", "- Alterar mapa e coordenadas.", "- Alterar níveis e limites.", "- Alterar Grupo de Restrições.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alterar nome.
set .@loop_7, 1;
while(.@loop_7)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite um novo nome para a arena '^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000.";
next;
input .@Name$;
if( .@Name$ == "" || .@Name$ == .@a_name$[.@chooseArena] )
{
mes $@da_BasicSettings$[4];
mes "Você deve digitar um novo nome para a arena '^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000.";
mes "Deseja tentar novamente?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
break;
case 2:
set .@loop_7, 0;
break;
case 3:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else {
mes $@da_BasicSettings$[4];
mes "Você tem certeza que deseja alterar o nome da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 para ^" + $@da_Color$[3] + "'" + .@Name$ + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo digitar outro nome.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alterar o nome.
query_sql "UPDATE `" + $@da_DataBase$[0] + "` SET `name`='" + .@Name$ + "' WHERE `auto_id`='" + .@a_auto_id[.@chooseArena] + "'";
mes $@da_BasicSettings$[4];
mes "O nome da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 foi alterado para ^" + $@da_Color$[3] + "'" + .@Name$ + "'^000000.";
next;
set .@a_name$[.@chooseArena], .@Name$;
set .@loop_7, 0;
break;
case 2:
break;
case 3:
set .@loop_7, 0;
break;
case 4:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
break;
case 2:
// Alterar tipo.
set .@loop_7, 1;
while(.@loop_7)
{
mes $@da_BasicSettings$[4];
mes "Por favor, selecione um novo tipo para a arena '^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000.";
next;
set .@type, select("- Jogadores vs Jogadores.", "- Clãns vs Clãns.", "- Grupos vs Grupos.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000")-1;
switch(.@type)
{
default:
setarray .@mask_name$[0], "Jogadores vs Jogadores", "Clãns vs Clãns", "Grupos vs Grupos";
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja alterar o tipo da arena '^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 de ^" + $@da_Color$[3] + "'" + .@mask_name$[.@a_type[.@chooseArena]] + "'^000000 para ^" + $@da_Color$[3] + "'" + .@mask_name$[.@type] + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo mudar o tipo.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alter o tipo da arena.
query_sql "UPDATE `" + $@da_DataBase$[0] + "` SET `type`='" + .@type + "' WHERE `auto_id`='" + .@a_auto_id[.@chooseArena] + "'";
mes $@da_BasicSettings$[4];
mes "O tipo da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 foi alterado de ^" + $@da_Color$[3] + "'" + .@mask_name$[.@a_type[.@chooseArena]] + "'^000000 para ^" + $@da_Color$[3] + "'" + .@mask_name$[.@type ] + "'^000000.";
next;
set .@a_type[.@chooseArena], .@type;
callfunc "ReloadMapFlags", .@a_map_index$[.@chooseArena], 0;
callfunc "ReloadMapFlags", .@a_map_index$[.@chooseArena], 1, .@a_map_index$[.@chooseArena], .@type;
set .@loop_7, 0;
break;
case 2:
break;
case 3:
set .@loop_7, 0;
break;
case 4:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
break;
case 3:
set .@loop_7, 0;
break;
case 4:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 3:
// Alterar mapa e coordenadas.
set .@loop_7, 1;
while(.@loop_7)
{
mes $@da_BasicSettings$[4];
mes "O que deseja alterar no mapa da arena '^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000?";
next;
switch( select("- Alterar mapa.", "- Alterar coordenadas.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alterar mapa.
set .@loop_8, 1;
while(.@loop_8)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite um novo mapa para a arena '^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000.";
next;
input .@MapIndex$;
if( .@MapIndex$ == "" || .@MapIndex$ == .@a_map_index$[.@chooseArena] )
{
mes $@da_BasicSettings$[4];
mes "Você tem que digitar um novo mapa para a arena '^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000.";
mes "Deseja tentar novamente?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
break;
case 2:
set .@loop_8, 0;
break;
case 3:
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else {
mes $@da_BasicSettings$[4];
mes "Você tem que certeza que deseja alterar o mapa da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 de ^" + $@da_Color$[3] + "'" + .@a_map_index$[.@chooseArena] + "'^000000 para ^" + $@da_Color$[3] + "'" + .@MapIndex$ + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo alterar para outro mapa.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alterar mapindex.
query_sql "UPDATE `" + $@da_DataBase$[0] + "` SET `map_index`='" + .@MapIndex$ + "' WHERE `auto_id`='" + .@a_auto_id[.@chooseArena] + "'";
mes $@da_BasicSettings$[4];
mes "O mapa da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 foi alterado de ^" + $@da_Color$[3] + "'" + .@a_map_index$[.@chooseArena] + "^000000 para ^" + $@da_Color$[3] + "'" + .@MapIndex$ + "'^000000.";
next;
callfunc "ReloadMapFlags", .@a_map_index$[.@chooseArena], 0;
callfunc "ReloadMapFlags", .@a_map_index$[.@chooseArena], 1, .@MapIndex$, .@a_type[.@chooseArena];
set .@a_map_index$[.@chooseArena], .@MapIndex$;
set .@loop_8, 0;
break;
case 2:
break;
case 3:
set .@loop_8, 0;
break;
case 4:
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
break;
case 2:
// Alterar coordenadas.
set .@loop_8, 1;
while(.@loop_8)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite uma nova coordenada x aonde os jogadores serão teleportados para o mapa ^" + $@da_Color$[3] + "'" + .@a_map_index$[.@chooseArena] + "'^000000 da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000.";
mes "Digite 0 para os jogadores serem teleportado aleatóriamente e as coordenadas y serão configurada para 0.";
next;
input .@CoordX;
if( .@CoordX )
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite a coordenada y aonde os jogadores serão teleportados no mapa ^" + $@da_Color$[3] + "'" + .@a_map_index$[.@chooseArena] + "'^000000 da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000.";
mes "Digite 0 para os jogadores serem teleportado aleatóriamente e as coordenadas x serão configurada para 0.";
next;
input .@CoordY;
if( !.@CoordY ) set .@CoordX, 0;
}
else
set .@CoordY, 0;
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja alterar as coordenadas do mapa ^" + $@da_Color$[3] + "'" + .@a_map_index$[.@chooseArena] + "'^000000 da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 de ^" + $@da_Color$[3] + "'" + (.@a_coord_x[.@chooseArena]&&.@a_coord_y[.@chooseArena]?"x[" + .@a_coord_x[.@chooseArena] + "] - y[" + .@a_coord_y[.@chooseArena] + "]":"aleatório") + "'^000000 para ^" + $@da_Color$[3] + "'" + (.@CoordX&&.@CoordY?"x[" + .@CoordX + "] - y[" + .@CoordY + "]":"aleatório") + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo alterar para outras coordenadas.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alterar coordenadas.
query_sql "UPDATE `" + $@da_DataBase$[0] + "` SET `coord_x`='" + .@CoordX + "', `coord_y`='" + .@CoordY + "' WHERE `auto_id`='" + .@a_auto_id[.@chooseArena] + "'";
mes $@da_BasicSettings$[4];
mes "As coordenadas do mapa ^" + $@da_Color$[3] + "'" + .@a_map_index$[.@chooseArena] + "'^000000 da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 foi alterada de ^" + $@da_Color$[3] + "'" + (.@a_coord_x[.@chooseArena]&&.@a_coord_y[.@chooseArena]?"x[" + .@a_coord_x[.@chooseArena] + "] - y[" + .@a_coord_y[.@chooseArena] + "]":"aleatório") + "'^000000 para ^" + $@da_Color$[3] + "'" + (.@CoordX&&.@CoordY?"x[" + .@CoordX + "] - y[" + .@CoordY + "]":"aleatório") + "'^000000.";
next;
set .@a_coord_x[.@chooseArena], .@CoordX;
set .@a_coord_y[.@chooseArena], .@CoordY;
set .@loop_8, 0;
break;
case 2:
break;
case 3:
set .@loop_8, 0;
break;
case 4:
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@lopp_1, 0;
break;
}
}
break;
case 3:
set .@loop_7, 0;
break;
case 4:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 4:
// Alterar limites
set .@loop_7, 1;
while(.@loop_7)
{
mes $@da_BasicSettings$[4];
mes "O que deseja alterar nos níveis e limites da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000?";
next;
switch( select("- Alterar máximo de jogadores.", "- Alterar nível minimo de Base.", "- Alterar nível máximo de Base.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Máximo de jogadores.
set .@loop_8, 1;
while(.@loop_8)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite um novo limite de jogadores que pode acessar a arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000.";
mes "Digite 0 para desabilitar o limite de jogadores na arena.";
next;
input .@max_player;
mes $@da_BasicSettings$[4];
mes "Você tem certeza que deseja alterar o limite de jogadores que pode acessar a arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 de ^" + $@da_Color$[3] + "'" + (.@a_max_player[.@chooseArena]?.@a_max_player[.@chooseArena]:"ilimitado") + "'^000000 para ^" + $@da_Color$[3] + "'" + (.@max_player?.@max_player:"ilimitado") + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo alterar para outro limite.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alterar limite de jogadores.
query_sql "UPDATE `" + $@da_DataBase$[0] + "` SET `max_player`='" + .@max_player + "' WHERE `auto_id`='" + .@a_auto_id[.@chooseArena] + "'";
mes $@da_BasicSettings$[4];
mes "O limite de jogadores que pode acessar a arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 foi alterado de ^" + $@da_Color$[3] + "'" + (.@a_max_player[.@chooseArena]?.@a_max_player[.@chooseArena]:"ilimitado") + "'^000000 para ^" + $@da_Color$[3] + "'" + (.@max_player?.@max_player:"ilimitado") + "'^000000.";
next;
set .@a_max_player[.@chooseArena], .@max_player;
set .@loop_8, 0;
break;
case 2:
break;
case 3:
set .@loop_8, 0;
break;
case 4:
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 2:
// Minimo de base.
set .@loop_8, 1;
while(.@loop_8)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite um novo minimo de base que jogadores que pode acessar a arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000.";
mes "Digite 0 para desabilitar o nível minimo de base para os jogadores adentrar a arena.";
next;
input .@min_level;
mes $@da_BasicSettings$[4];
mes "Você tem certeza que deseja alterar o minimo de base dos jogadore da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 de ^" + $@da_Color$[3] + "'" + (.@a_min_level[.@chooseArena]?.@a_min_level[.@chooseArena]:"desabilitado") + "'^000000 para ^" + $@da_Color$[3] + "'" + (.@min_level?.@min_level:"desabilitado") + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo alterar para outro nível.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alterar base minima de jogadores.
query_sql "UPDATE `" + $@da_DataBase$[0] + "` SET `min_level`='" + .@min_level + "' WHERE `auto_id`='" + .@a_auto_id[.@chooseArena] + "'";
mes $@da_BasicSettings$[4];
mes "O nível minimo de base dos jogadores que pode acessar a arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 foi alterado de ^" + $@da_Color$[3] + "'" + (.@a_min_level[.@chooseArena]?.@a_min_level[.@chooseArena]:"desabilitado") + "'^000000 para ^" + $@da_Color$[3] + "'" + (.@min_level?.@min_level:"desabilitado") + "'^000000.";
next;
set .@a_min_level[.@chooseArena], .@min_level;
set .@loop_8, 0;
break;
case 2:
break;
case 3:
set .@loop_8, 0;
break;
case 4:
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 3:
// Máximo de base.
set .@loop_8, 1;
while(.@loop_8)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite um novo máximo de base que jogadores que pode acessar a arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000.";
mes "Digite 0 para desabilitar o nível máximo de base para os jogadores adentrar a arena.";
next;
input .@max_level;
mes $@da_BasicSettings$[4];
mes "Você tem certeza que deseja alterar o máximo de base dos jogadore da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 de ^" + $@da_Color$[3] + "'" + (.@a_max_level[.@chooseArena]?.@a_max_level[.@chooseArena]:"desabilitado") + "'^000000 para ^" + $@da_Color$[3] + "'" + (.@max_level?.@max_level:"desabilitado") + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo alterar para outro nível.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alterar base máximo de jogadores.
query_sql "UPDATE `" + $@da_DataBase$[0] + "` SET `max_level`='" + .@max_level + "' WHERE `auto_id`='" + .@a_auto_id[.@chooseArena] + "'";
mes $@da_BasicSettings$[4];
mes "O nível máximo de base dos jogadores que pode acessar a arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 foi alterado de ^" + $@da_Color$[3] + "'" + (.@a_max_level[.@chooseArena]?.@a_max_level[.@chooseArena]:"desabilitado") + "'^000000 para ^" + $@da_Color$[3] + "'" + (.@max_level?.@max_level:"desabilitado") + "'^000000.";
next;
set .@a_max_level[.@chooseArena], .@max_level;
set .@loop_8, 0;
break;
case 2:
break;
case 3:
set .@loop_8, 0;
break;
case 4:
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 4:
set .@loop_7, 0;
break;
case 5:
set .@loop_8, 0;
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 5:
// Alterar grupo de restrições.
set .@loop_7, 1;
while(.@loop_7)
{
mes $@da_BasicSettings$[4];
mes "Por favor selecione um novo grupo de restrições para arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000.";
next;
query_sql "SELECT `auto_id`, `name` FROM `" + $@da_DataBase$[1] + "` ORDER BY `name`", .@a_groups_id, .@a_groups_name$;
set .@BuildtoGroupMenu$, "";
for( set .@i, 0; .@i < getarraysize(.@a_groups_id); set .@i, .@i + 1 )
set .@BuildtoGroupMenu$, .@BuildtoGroupMenu$+((.@a_groups_id[.@i]==.@a_group_id[.@chooseArena])||(callfunc("GetGroupInfo", 1, .@a_groups_id[.@i])>=120)?"":"- " + .@a_groups_name$[.@i] + ".") + ":";
if( .@choosetoGroup == getarraysize(.@a_groups_id) )
set .@loop_7, 0;
else if( .@choosetoGroup > getarraysize(.@a_groups_id) )
{
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
}
else {
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja alterar o grupo de restrições da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 de ^" + $@da_Color$[3] + "'" + callfunc("GetGroupInfo", 4, .@a_group_id[.@chooseArena]) + "'^000000 para ^" + $@da_Color$[3] + "'" + .@a_groups_name$[.@choosetoGroup] + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo alterar para outro grupo.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alterar o grupo de restriçoes
query_sql "UPDATE `" + $@da_DataBase$[0] + "` SET `group_id`='" + .@a_groups_id[.@choosetoGroup] + "' WHERE `auto_id`='" + .@a_auto_id[.@chooseArena] + "'";
mes $@da_BasicSettings$[4];
mes "O grupo de restrições da arena ^" + $@da_Color$[3] + "'" + .@a_name$[.@chooseArena] + "'^000000 foi alterada de ^" + $@da_Color$[3] + "'" + callfunc("GetGroupInfo", 4, .@a_group_id[.@chooseArena]) + "'^000000 para ^" + $@da_Color$[3] + "'" + .@a_groups_name$[.@choosetoGroup] + "'^000000.";
next;
set .@a_group_id[.@chooseArena], .@a_groups_id[.@choosetoGroup];
set .@loop_7, 0;
break;
case 2:
break;
case 3:
set .@loop_7, 0;
break;
case 4:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
break;
case 6:
set .@loop_6, 0;
break;
case 7:
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
}
break;
case 3:
set .@loop_4, 0;
break;
case 4:
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
case 4:
set .@loop_3, 0;
break;
case 5:
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 3:
// Gerenciar Ranking.
set .@loop_3, 1;
{
mes $@da_BasicSettings$[4];
mes "O que deseja gerenciar no ^" + $@da_Color$[3] + "Ranking^000000?";
next;
switch( select("- Resetar um Ranking.", "- Alterar pontos.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Resetar um Ranking.
set .@loop_4, 1;
while(.@loop_4)
{
mes $@da_BasicSettings$[4];
mes "Selecione o tipo de ^" + $@da_Color$[3] + "Rank^000000 que deseja resetar.";
next;
set .@type, select("- Jogadores vs Jogadores.", "- Clãns vs Clãns.", "- Grupos vs Grupos.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000")-1;
switch(.@type)
{
default:
setarray .@mask_name$[0], "Jogadores vs Jogadores", "Clãns vs Clãns", "Grupos vs Grupos";
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja resetar o ^" + $@da_Color$[3] + "'Rank de " + .@mask_name$[.@type] + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo resetar outro.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Resetar Ranking
query_sql "DELETE FROM `" + $@da_DataBase$[3] + "` WHERE `type`='" + .@type + "'";
mes $@da_BasicSettings$[4];
mes "O ^" + $@da_Color$[3] + "'Rank de " + .@mask_name$[.@type] + "'^000000 foi resetado!";
next;
set .@loop_4, 0;
break;
case 2:
break;
case 3:
set .@loop_4, 0;
break;
case 4:
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
break;
case 3:
set .@loop_4, 0;
break;
case 4:
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 2:
// Alterar pontos.
set .@loop_4, 1;
while(.@loop_4)
{
mes $@da_BasicSettings$[4];
mes "O que você deseja ^" + $@da_Color$[3] + "alterar de pontos^000000?";
next;
set .@type, select("- Jogador.", "- Clã.", "- Grupo.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000")-1;
switch(.@type)
{
default:
set .@loop_5, 1;
while(.@loop_5)
{
setarray .@mask_name$[0], "Jogador", "Clã", "Grupo";
mes $@da_BasicSettings$[4];
mes "Por favor, digite o ^" + $@da_Color$[3] + "'ID do " + .@mask_name$[.@type] + "'^000000 que deseja alterar pontos?";
next;
input .@object_id;
set .@rank_id, callfunc("getRankInfo", 0, .@type, .@object_id );
if( !.@object_id || !.@rank_id )
{
mes $@da_BasicSettings$[4];
if( !.@object_id )
mes "Você deve digitar o ^" + $@da_Color$[3] + "'ID do " + .@mask_name$[.@type] + "'^000000 que deseja alterar pontos!";
else
mes "Nenhum ^" + $@da_Color$[3] + "'" + .@mask_name$[.@type] + "'^000000 foi encontrado com o id " + .@object_id + " no rank.";
mes "Deseja tentar novamente?";
next;
switch( select("- Sim, por favor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
break;
case 2:
set .@loop_5, 0;
break;
case 3:
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
else {
set .@loop_6, 1;
while(.@loop_6)
{
setarray .@rank_points[0], callfunc("getRankInfo", 1, .@type, .@object_id ), callfunc("getRankInfo", 2, .@type, .@object_id ), callfunc("getRankInfo", 3, .@type, .@object_id );
set .@name$, callfunc("getRankInfo", 4, .@type, .@object_id);
mes $@da_BasicSettings$[4];
mes "O que deseja alterar no ^" + $@da_Color$[3] + "'" + .@mask_name$[.@type] + " " + .@name$ + "'^000000?";
next;
set .@change, select("- Pontos de vitórias [" + .@rank_points[0] + " pnts].", "- Pontos de derrotas [" + .@rank_points[1] + " pnts].", "- Pontos proporcionais [" + .@rank_points[2] + " pnts].", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000")-1;
switch(.@change)
{
default:
// Alterar pontos.
setarray .@p_mask$[0], "vitórias", "derrotas", "proporcionais";
set .@loop_7, 1;
while(.@loop_7)
{
mes $@da_BasicSettings$[4];
mes "Por favor, digite a quantidade de ^" + $@da_Color$[3] + "pontos " + .@p_mask$[.@change] + "^000000 que deseja alterar.";
next;
input .@points;
mes $@da_BasicSettings$[4];
mes "Tem certeza que deseja alterar os ^" + $@da_Color$[3] + "pontos de " + .@p_mask$[.@change] + "^000000 do ^" + $@da_Color$[3] +"'"+ .@p_mask_name$[.@change] + " " + .@name$ + "'^000000 de ^" + $@da_Color$[3] + .@rank_points[.@change] + "'^000000 para ^" + $@da_Color$[3] + .@points + "'^000000?";
next;
switch( select("- Sim, por favor.", "- Não, desejo digitar outro valor.", "^" + $@da_Color$[1] + "- Voltar.^000000", "^" + $@da_Color$[0] + "- Cancelar.^000000") )
{
case 1:
// Alterar pontos.
query_sql "UPDATE `" + $@da_DataBase$[3] + "` SET `" + (.@change==1?"loss":(.@change==2?"ration":"wins")) + "`='" + .@points + "' WHERE `type`='" + .@type + "' AND `auto_id`='" + .@rank_id + "'";
mes $@da_BasicSettings$[4];
mes "Os pontos de ^" + $@da_Color$[3] + "pontos de " + .@p_mask$[.@change] + "^000000 do ^" + $@da_Color$[3] +"'"+ .@p_mask_name$[.@change] + " " + .@name$ + "'^000000 de ^" + $@da_Color$[3] + .@rank_points[.@change] + "'^000000 para ^" + $@da_Color$[3] + .@points + "'^000000.";
next;
set .@loop_7, 0;
break;
case 2:
break;
case 3:
set .@loop_7, 0;
break;
case 4:
set .@loop_7, 0;
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
break;
case 3:
set .@loop_6, 0;
break;
case 4:
set .@loop_6, 0;
set .@loop_5, 0;
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
}
}
break;
case 3:
set .@loop_4, 0;
break;
case 4:
set .@loop_4, 0;
set .@loop_3, 0;
set .@loop_2, 0;
set .@loop_1, 0;
break;
}
}
case 3:
set .@loop_3, 0;
break;
case 4:
set .@loop_3, 0;
break;
}
}
break;
case 4:
set .@loop_2, 0;
break;
case 5:
set .@loop_1, 0;
set .@loop_2, 0;
break;
}
}
break;
case 4:
set .@loop_1, 0;
break;
}
}
mes $@da_BasicSettings$[4];
mes "Volte quando desejar batalhar em uma arena!";
close2;
cutin "", 255;
end;
// * getGroupInfo(type {,id})
// type: Tipo da informação que deseja adquirir.
// [0]: Total de grupos cadastrado.
// [1]: Total de arenas cadastrada de um grupo.
// id: Identificação do grupo.
// [2]: Total de itens cadastrado na restrição de um grupo.
// id: Identificação do grupo.
// [3]: Total de classes cadastrada na restrição de um grupo.
// id: Identificação do grupo.
// [4]: Nome de um grupo.
// id: Identificação do grupo.
function script GetGroupInfo {
if( getarg(0) == 0 )
{
query_sql "SELECT `auto_id` FROM `" + $@da_DataBase$[1] + "`", .@id;
return (getarraysize(.@id)?getarraysize(.@id):0);
}
else if( getarg(0) == 4 )
{
query_sql "SELECT `auto_id`, `name` FROM `" + $@da_DataBase$[1] + "` WHERE `auto_id`='" + getarg(1) + "'", .@id, .@name$;
return (!getarraysize(.@id)?0:.@name$[0]);
}
else if( getarg(0) == 1 )
{
query_sql "SELECT `auto_id` FROM `" + $@da_DataBase$[0] + "` WHERE `group_id`='" + getarg(1) + "'", .@id;
return (getarraysize(.@id)?.@id[0]:0);
}
else if( getarg(0) == 2 || getarg(0) == 3 )
{
query_sql "SELECT `auto_id` FROM `" + $@da_DataBase$[2] + "` WHERE `type`='" + (getarg(0)==2?0:1) + "' AND `group_id`='" + getarg(1) + "'", .@id;
return (getarraysize(.@id)?.@id[0]:0);
}
else
return 0;
}
// * checkRestriction(id, value)
// id: Id do grupo a ser checado.
// value: Id do item ou classe que deseja checar se existe nas restrições.
function script checkRestriction {
query_sql "SELECT `auto_id` FROM `" + $@da_DataBase$[2] + "` WHERE `value`='" + getarg(1) + "' AND `group_id`='" + getarg(0) + "'", .@id;
return (getarraysize(.@id)?.@id[0]:0);
}
// * getRankInfo(type_1, type_2, object_id)
// type_1: Tipo de retorno de referência.
// [0]: Checa se o objeto(type_2) está cadastrado no Rank e retorna com a id do objeto no rank.
// [1]: Retorna com as vitórias de um objeto(type_2).
// [2]: Retorna com as derrotas de um objeto(type_2).
// [3]: Retorna com o proporcional de vitórias sobre derrotas de um objeto(type_2).
// [4]: Retorna com o nome do objeto(type_2).
// type_2: Tipo do objeto.
// [0]: Jogador.
// [1]: Clã.
// [2]: Grupo.
// object_id: Id do objeto a ser consultado.
function script getRankInfo {
query_sql "SELECT `auto_id`, `wins`, `loss`, `ration`, `object_name` FROM `" + $@da_DataBase$[3] + "` WHERE `object_id`='" + getarg(2) + "' AND `type`='" + getarg(1) + "'", .@id, .@wins, .@loss, .@ration, .@name$;
return (!getarraysize(.@id)?0:(getarg(0)==0?.@id[0]:(getarg(0)==1?.@wins[0]:(getarg(0)==2)?.@loss[0]:(getarg(0)==3?.@ration[0]:.@name$[0]))));
}
// * getArenaInfo(type, map_index)
// type: Retorna com uma informação da arena.
// [0]: Retorna com o id da arena.
// [1]: Retorna com o tipo da arena.
// [2]: Retorna com o nome da arena.
// map_index: Mapa oande se encontra a arena.
function script getArenaInfo {
query_sql "SELECT `auto_id`, `name`, `type` FROM `" + $@da_DataBase$[0] + "` WHERE `map_index`='" + getarg(1) + "'", .@id, .@name$, .@type;
return (!getarraysize(.@id)?0:(getarg(0)==0?.@id[0]:(getarg(0)==1?.@type[0]:.@name$[0])));
}
// * UpdateRanking(type, object_killer_id, object_killer_name, object_killed_id, object_killed_name)
// type: Tipo de computação do ranking.
// [0]: Computar em jogadores.
// [1]: Computar em clãns.
// [2]: Computar em Grupos.
// object_killer_id: Id do jogador/clã/grupo que derrotou.
// object_killer_name: Nome do jogador/clã/grupo que derrotou.
// object_killed_id: Id do jogador/clã/grupo derrotado.
// object_killed_name: Nome do jogador/clã/grupo derrotado.
//
// Observações: Os nomes são modo de depuramento, caso o jogador/clã/grupo troque de nome.
function script UpdateRanking {
for( set .@i, 0; .@i < 2; set .@i, .@i + 1 )
{
if( (.@i==0 && getarg(1)) || (.@i==1 && getarg(3)) )
{
query_sql "SELECT `auto_id` FROM `" + $@da_DataBase$[3] + "` WHERE `object_id`='" + (.@i==0?getarg(1):getarg(3)) + "' AND `type`='" + getarg(0) + "'", .@u_auto_id;
// * GetInfoName(<type>, <char_id>)
// type: Retorna com o nome do clã ou grupo, caso o jogador não este em um deles retorna com N/a.
// [0]: Nome do clã se o jogador estiver em um.
// [1]: Nome do grupo se o jogador estiver em um.
// char_id: Id do personagem.
function script GetInfoName {
query_sql "SELECT `guild_id`, `party_id` FROM `char` WHERE `char_id`='" + getarg(1) + "'", .@gid, .@pid;
Question
Sidy
Hello everyone, I have a npc script of the Death Arena that I found just here. But I have the problem not repro .wav files that already exists myserver.grf at data(grf)\wav\(.wav)
A: How I setup the wavs at below script? Have to setup lub/lua or others files to?
A2: If I want to put to drop skulls with character name in pvp, what I may to do?
If someone undertands about, please help me.
Script NPC:
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.