// .----------------------------------------------------------. // . ___________________ . // . / _____/\______ \ . // . \_____ \ | | _/ . // . / \ | | \ . // . /_______ / |______ / . // . \/ \/ . // . [ Advanced Scripts ] . // . v1.2 . // .----------------------------------------------------------. // ; https:github.com/SoulBlaker/ ; // .----------------------------------------------------------. // . Script: . // . Gerenciador da Guerra do Emperium. . // .----------------------------------------------------------. // . Por: SoulBlaker Compátivel: eAthena Based . // . Versão: 1.0 // .----------------------------------------------------------. // . Descrição: . // . Gerencia Castelos e Horários da Guerra do Emperium. . // .----------------------------------------------------------. // . Changelog da Versão: . // . * 1.0 [SoulBlaker] . // . - Iniciado NPC. . // *----------------------------------------------------------* /* CREATE TABLE IF NOT EXISTS `m_woe_group` ( `auto_id` int(11) unsigned NOT NULL auto_increment, `name` varchar(34) NOT NULL default '', PRIMARY KEY (`auto_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS `m_woe_timer` ( `auto_id` int(11) unsigned NOT NULL auto_increment, `group_id` int(11) unsigned NOT NULL default '0', `week` int(1) unsigned NOT NULL default '0', `init_hour` int(2) unsigned NOT NULL default '0', `init_minute` int(2) unsigned NOT NULL default '0', `end_hour` int(2) unsigned NOT NULL default '0', `end_minute` int(2) unsigned NOT NULL default '0', PRIMARY KEY (`auto_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS `m_woe_restrictions` ( `auto_id` int(11) unsigned NOT NULL auto_increment, `group_id` int(11) unsigned NOT NULL default '0', `castle_id` int(11) unsigned NOT NULL default '0', `type` int(1) unsigned NOT NULL default '0', `status` int(1) unsigned NOT NULL default '0', PRIMARY KEY (`auto_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; */ - script #woe_castle_manager -1,{ OnStart: set $@woe_admincpanel, 99; if( getgmlevel() < .@Admin ) { message strcharinfo(0), "Você não está autorizado a utilizar este comando."; end; } set .@loop_1, 1; while(.@loop_1) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Bem-vindo, em que posso ajudar?"; next; switch( select("^0000FF- Gerenciar Grupos.", "- Gerenciar Horários.^000000", "^FF0000- Cancelar.^000000") ) { case 1: set .@loop_2, 1; while(.@loop_2) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Em que posso te ajudar nos ^FF0000Grupos^000000?"; next; switch( select("- Adicionar um novo Grupo.", "- Remover um Grupo.", "- Alterar restrições de um Grupo.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { // Adicionar um novo Grupo. case 1: set .@loop_3, 1; while(.@loop_3) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Por favor, digite um ^0000FFnome para o grupo^000000."; next; input .@GroupName$; if( .@GroupName$ == "" ) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Você deve digitar um ^0000FFnome para o grupo^000000."; mes "Deseja tentar novamente?"; next; switch( select("- Sim, por favor.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { case 1: break; case 2: set .@loop_3, 0; break; case 3: set .@loop_3, 0; set .@loop_2, 0; set .@loop_1, 0; break; } } else { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Tem certeza que deseja adicionar ^0000FF" + .@GroupName$ + "^000000 nos Grupos?"; next; switch( select("- Sim, por favor.", "- Não, digitar outro nome.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { case 1: query_sql "INSERT INTO `m_woe_group` (name) VALUES ('" + .@GroupName$ + "')"; mes "^556B2F[Gerenciador da Guerra]^000000"; mes "O Grupo ^0000FF" + .@GroupName$ + "^000000 foi adicionado."; next; set .@loop_3, 0; break; case 2: break; case 3: set .@loop_3, 0; break; case 4: set .@loop_3, 0; set .@loop_2, 0; set .@loop_1, 0; break; } } } break; // Remover um Grupo. case 2: set .@loop_3, 1; while(.@loop_3) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "^FF0000Atenção!"; mes "Ao remover um Grupo todos horários configurados que estiver vinculado a ele automáticamente será removido."; mes "^0000FFVocê pode alterar o grupo de um horário no menu de Gerenciar Horários.^000000"; mes "Escolha o Grupo que deseja remover:"; next; set .@build_menu$, ""; deletearray .@GroupID[0], getarraysize(.@GroupID); query_sql "SELECT * FROM `m_woe_group` ORDER BY `name`", .@GroupID, .@GroupName$; for( set .@i, 0; .@i < getarraysize(.@GroupID); set .@i, .@i + 1 ) set .@build_menu$, .@build_menu$ + "- " + .@GroupName$[.@i] + ".:"; set .@choose, select(.@build_menu$+"^FF8C00- Voltar.^000000:^FF0000- Cancelar.^000000")-1; if( .@choose == getarraysize(.@GroupID) ) set .@loop_3, 0; else if( .@choose > getarraysize(.@GroupID) ) { set .@loop_3, 0; set .@loop_2, 0; set .@loop_1, 0; } else { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Tem certeza que deseja remover o Grupo ^FF0000" + .@GroupName$[.@choose] + "^000000?"; next; switch( select("- Sim, por favor.", "^FF8C00- Voltar.^000000", "- Cancelar.") ) { case 1: query_sql "DELETE FROM `m_woe_group` WHERE `auto_id`='" + .@GroupID[.@choose] + "'"; query_sql "DELETE FROM `m_woe_timer` WHERE `group_id`='" + .@GroupID[.@choose] + "'"; query_sql "DELETE FROM `m_woe_restrictions` WHERE `group_id`='" + .@GroupID[.@choose] + "'"; mes "^556B2F[Gerenciador da Guerra]^000000"; mes "O Grupo ^FF0000" + .@GroupName$[.@choose] + "^000000 foi removido"; next; break; case 2: break; case 3: set .@loop_3, 0; set .@loop_2, 0; set .@loop_1, 0; break; } } } break; // Alterar Restrições de um Grupo. case 3: set .@loop_3, 1; while(.@loop_3) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Por favor, selecione um ^0000FFGrupo^000000 em que deseja gerenciar as restrições."; next; set .@build_menu$, ""; deletearray .@GroupID[0], getarraysize(.@GroupID); deletearray .@GroupName$[0], getarraysize(.@GroupName$); query_sql "SELECT * FROM `m_woe_group` ORDER BY `name`", .@GroupID, .@GroupName$; for( set .@i, 0; .@i < getarraysize(.@GroupID); set .@i, .@i + 1 ) set .@build_menu$, .@build_menu$ + "- " + .@GroupName$[.@i] + ".:"; set .@choose, select(.@build_menu$+"^FF8C00- Voltar.^000000:^FF0000- Cancelar.^000000")-1; if( .@choose == getarraysize(.@GroupID) ) set .@loop_3, 0; else if( .@choose > getarraysize(.@GroupID) ) { set .@loop_3, 0; set .@loop_2, 0; set .@loop_1, 0; } else { set .@loop_4, 1; while(.@loop_4) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Escolha um ^0000FFcastelo^000000 no qual deseja ^0000FFativar^000000/^FF0000desativar^000000 desse grupo."; mes "Lembrando, que castelos ativados serão os que ocorrerão a Guerra nos horários vinculados a esse grupo, e"; mes "os castelos desativados, não acontecerá Guerra em horários vinculados a esse grupo."; mes "^FF0000Os castelos só serão atualizados quando houver a próxima Guerra do Emperium.^000000"; next; set .@build_menu2$, ""; set .@check, 1; while(.@check) { deletearray .@AutoID[0], getarraysize(.@AutoID); deletearray .@Status[0], getarraysize(.@Status); query_sql "SELECT `auto_id`, `castle_id`, `type`, `status` FROM `m_woe_restrictions` WHERE `group_id`='" + .@GroupID[.@choose] + "' ORDER BY `type`, `status`, `castle_id`", .@AutoID, .@CastleID, .@Type, .@Status; if( getarraysize(.@AutoID) ) set .@check, 0; else { for( set .@i, 0; .@i < getarraysize($@castle_id); set .@i, .@i + 1 ) query_sql "INSERT INTO `m_woe_restrictions` (group_id, castle_id, type, status) VALUES (" + .@GroupID[.@choose] + ", " + $@castle_id[.@i] + ", " + $@castle_type[.@i] + ", 0)"; } } for( set .@i, 0; .@i < getarraysize(.@AutoID); set .@i, .@i + 1 ) { set .@build_menu2$, .@build_menu2$ + "- " + (!.@Status[.@i]?"^0000FFAtivar":"^FF0000Desativar") + "^000000 " + callfunc("castlename", .@CastleID[.@i]) + ".:"; } set .@choose2, select(.@build_menu2$+"^FF8C00- Voltar.^000000:^FF0000- Cancelar.^000000")-1; if( .@choose2 == getarraysize(.@AutoID) ) set .@loop_4, 0; else if( .@choose2 > getarraysize(.@AutoID) ) { set .@loop_4, 0; set .@loop_3, 0; set .@loop_2, 0; set .@loop_1, 0; } else { query_sql "UPDATE `m_woe_restrictions` SET `status`='" + (.@Status[.@choose2]?0:1) + "' WHERE `auto_id`='" + .@AutoID[.@choose2] + "'"; } } } } break; case 4: set .@loop_2, 0; break; case 5: set .@loop_1, 0; set .@loop_2, 0; break; } } break; case 2: set .@loop_2, 1; while(.@loop_2) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Em que posso te ajudar nos ^FF0000Horários^000000?"; next; switch( select("- Adicionar um novo Horário.", "- Remover um Horário.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { // Adicionar um novo Horário case 1: set .@loop_3, 1; while(.@loop_3) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Por favor, selecione um ^FF0000Grupo^000000 em que deseja vincular o ^FF0000horário^000000."; next; set .@build_menu$, ""; deletearray .@GroupID[0], getarraysize(.@GroupID); query_sql "SELECT * FROM `m_woe_group` ORDER BY `name`", .@GroupID, .@GroupName$; for( set .@i, 0; .@i < getarraysize(.@GroupID); set .@i, .@i + 1 ) set .@build_menu$, .@build_menu$ + "- " + .@GroupName$[.@i] + ".:"; set .@choose, select(.@build_menu$+"^FF8C00- Voltar.^000000:^FF0000- Cancelar.^000000")-1; if( .@choose == getarraysize(.@GroupID) ) set .@loop_3, 0; else if( .@choose > getarraysize(.@GroupID) ) { set .@loop_3, 0; set .@loop_2, 0; set .@loop_1, 0; } else { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Tem certeza que deseja adicionar o novo Horário no ^FF0000Grupo " + .@GroupName$[.@choose] + "^000000?"; next; switch( select("- Sim, por favor.", "- Não, desejo mudar.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { case 1: set .@loop_4, 1; while(.@loop_4) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Selecione o dia da semana que deseja que a ^FF0000Guerra^000000 ocorra."; next; set .@day, select("- Domingo.", "- Segunda-Feira.", "- Terça-Feira.", "- Quarta-Feira.", "- Quinta-Feira.", "- Sexta-Feira.", "- Sabado.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000")-1; switch(.@day) { default: setarray .@tmp_day$[0], "Domingo", "Segunda-Feira", "Terça-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "Sabado"; mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Tem certeza que deseja que a ^FF0000Guerra^000000 ocorra ^0000FF" + .@tmp_day$[.@day] + "^000000?"; next; switch( select("- Sim, por favor.", "- Não, desejo mudar.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { case 1: set .@loop_5, 1; while(.@loop_5) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Digite o ^FF0000horário^000000 no formato de ^0000FF0hrs~23hrs^000000 em que a Guerra comece."; next; input .@init_hour; if( .@init_hour < 0 || .@init_hour > 23 ) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Você tem que digitar o ^FF0000horário^000000 no formato de ^0000FF0hrs~23hrs^000000"; mes "Deseja tentar novamente?"; next; switch( select("- Sim, por favor.", "- Não, obrigado.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { case 1: break; case 2: set .@loop_5, 0; set .@loop_4, 0; 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 { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Agora digite ^0000FFminuto^000000 das ^FF0000" + .@init_hour + "hrs^000000 que deseja que a ^FF0000Guerra^000000 comece, no formato de ^0000FF0~59 minutos^000000."; next; input .@init_minute; if( .@init_minute < 0 || .@init_minute > 59 ) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Você deve digitar o ^FF0000minuto^00000 das ^FF0000" + .@init_hour + "hrs^000000 que deseja que a ^FF0000Guerra^0000 comece, no formato de ^0000FF0~59 minutos^000000."; mes "Deseja tentar novamente?"; next; switch( select("- Sim, por favor.", "- Não, obrigado.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { case 1: break; case 2: set .@loop_5, 0; set .@loop_4, 0; 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 { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Digite o ^FF0000horário^000000 no formato de ^0000FF0hrs~23hrs^000000 em que a Guerra termine."; next; input .@end_hour; if( .@end_hour < 0 || .@end_hour > 23 ) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Você tem que digitar o ^FF0000horário^000000 no formato de ^0000FF0hrs~23hrs^000000"; mes "Deseja tentar novamente?"; next; switch( select("- Sim, por favor.", "- Não, obrigado.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { case 1: break; case 2: set .@loop_5, 0; set .@loop_4, 0; 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 { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Agora digite ^FF0000minuto^000000 das ^FF0000" + .@end_hour + "hrs^000000 que deseja que a ^FF0000Guerra^000000 termine, no formato de ^0000FF0~59 minutos^000000."; next; input .@end_minute; if( .@end_minute < 0 || .@end_minute > 59 ) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Você deve digitar o ^FF0000minuto^00000 das ^FF0000" + .@end_hour + "hrs^000000 que deseja que a ^FF0000Guerra^000000 termine, no formato de ^0000FF0~59 minutos^000000."; mes "Deseja tentar novamente?"; next; switch( select("- Sim, por favor.", "- Não, obrigado.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { case 1: break; case 2: set .@loop_5, 0; set .@loop_4, 0; 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 { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Por favor, confirme as configurações para cadastrar-mos o ^FF0000novo horário^000000."; mes " "; mes "^FF0000Grupo de Castelo:^000000 " + .@GroupName$[.@choose]; mes "^FF0000Horário de Ínicio:^000000 " + .@init_hour + ":" + .@init_minute + "hrs"; mes "^FF0000Horário de Término:^000000 " + .@end_hour + ":" + .@end_minute + "hrs"; next; switch( select("- Sim, está tudo correto.", "- Re-começar apartir de Grupos.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { case 1: query_sql "INSERT INTO `m_woe_timer` (group_id, week, init_hour, init_minute, end_hour, end_minute) VALUES (" + .@GroupID[.@choose] + ", " + .@day + ", " + .@init_hour + ", " + .@init_minute + ", " + .@end_hour + ", " + .@end_minute + ")"; mes "^556B2F[Gerenciador da Guerra]^000000"; mes "O novo ^FF0000horário^000000 foi adicionado ao Grupo ^FF0000"+ .@GroupName$[.@choose]+"^000000."; next; set .@loop_5, 0; set .@loop_4, 0; break; case 2: set .@loop_5, 0; break; case 3: 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 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 7: set .@loop_4, 0; break; case 8: 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_3, 0; break; case 4: set .@loop_3, 0; set .@loop_2, 0; set .@loop_1, 0; break; } } } break; case 2: // Remover um Horário. set .@loop_3, 1; while(.@loop_3) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Por favor, selecione um ^FF0000Grupo^000000 aonde se encontra o ^FF0000horário^000000 que deseja remover."; next; set .@build_menu$, ""; deletearray .@GroupID[0], getarraysize(.@GroupID); query_sql "SELECT * FROM `m_woe_group` ORDER BY `name`", .@GroupID, .@GroupName$; for( set .@i, 0; .@i < getarraysize(.@GroupID); set .@i, .@i + 1 ) set .@build_menu$, .@build_menu$ + "- " + .@GroupName$[.@i] + ".:"; set .@choose, select(.@build_menu$+"^FF8C00- Voltar.^000000:^FF0000- Cancelar.^000000")-1; if( .@choose == getarraysize(.@GroupID) ) set .@loop_3, 0; else if( .@choose > getarraysize(.@GroupID) ) { set .@loop_3, 0; set .@loop_2, 0; set .@loop_1, 0; } else { set .@loop_4, 1; while(.@loop_4) { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Escolha o ^FF0000horário^000000 que deseja remover."; next; set .@build_menu2$, ""; setarray .@tmp_day$[0], "Domingo", "Segunda-Feira", "Terça-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "Sabado"; deletearray .@w_auto_id[0], getarraysize(.@w_auto_id); query_sql "SELECT `auto_id`, `week`, `init_hour`, `init_minute`, `end_hour`, `end_minute` FROM `m_woe_timer` WHERE `group_id`='" + .@GroupID[.@choose] + "' ORDER BY `week`, `init_hour`, `init_minute`", .@w_auto_id, .@w_week, .@w_init_hour, .@w_init_minute, .@w_end_hour, .@w_end_minute; for( set .@i, 0; .@i < getarraysize(.@w_auto_id); set .@i, .@i + 1 ) set .@build_menu2$, .@build_menu2$ + "^0000FF- " + .@tmp_day$[.@w_week[.@i]] + " das " + (.@w_init_hour[.@i]<10?"0":"") + .@w_init_hour[.@i] +"h" + (.@w_init_minute[.@i]<10?"0":"") + .@w_init_minute[.@i] +"min ás " + (.@w_end_hour[.@i]<10?"0":"") + .@w_end_hour[.@i] +"h" + (.@w_end_minute[.@i]<10?"0":"") + .@w_end_minute[.@i] +"min.:"; set .@choose2, select(.@build_menu2$+"^FF8C00- Voltar.^000000:^FF0000- Cancelar.^000000")-1; if( .@choose2 == getarraysize(.@w_auto_id) ) set .@loop_4, 0; else if( .@choose2 > getarraysize(.@w_auto_id) ) { set .@loop_4, 0; set .@loop_3, 0; set .@loop_2, 0; set .@loop_1, 0; } else { mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Tem certeza que deseja remover o horário ^0000FF" + .@tmp_day$[.@w_week[.@choose2]] + " das " + (.@w_init_hour[.@choose2]<10?"0":"") + .@w_init_hour[.@choose2] +"h" + (.@w_init_minute[.@choose2]<10?"0":"") + .@w_init_minute[.@choose2] +"min ás " + (.@w_end_hour[.@choose2]<10?"0":"") + .@w_end_hour[.@choose2] +"h" + (.@w_end_minute[.@choose2]<10?"0":"") + .@w_end_minute[.@choose2] +"min^000000?"; next; switch( select("- Sim, por favor.", "- Não, escolher outro.", "^FF8C00- Voltar.^000000", "^FF0000- Cancelar.^000000") ) { case 1: query_sql "DELETE FROM `m_woe_timer` WHERE `auto_id`='" + .@w_auto_id[.@choose2] + "'"; mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Tem certeza que deseja remover o horário ^FF0000" + .@tmp_day$[.@w_week[.@choose2]] + " das " + (.@w_init_hour[.@choose2]<10?"0":"") + .@w_init_hour[.@choose2] +"h" + (.@w_init_minute[.@choose2]<10?"0":"") + .@w_init_minute[.@choose2] +"min ás " + (.@w_end_hour[.@choose2]<10?"0":"") + .@w_end_hour[.@choose2] +"h" + (.@w_end_minute[.@choose2]<10?"0":"") + .@w_end_minute[.@choose2] +"min^000000 foi removido."; next; 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_2, 0; break; case 4: set .@loop_2, 0; set .@loop_1, 0; break; } } break; } } mes "^556B2F[Gerenciador da Guerra]^000000"; mes "Muito bem, volte quando desejar gerenciar a Guerra!"; close; OnInit: set $@woe_admincpanel, 99; // Nível de Administração para acessar o painel de gerenciamento. // Ids dos castelos. setarray $@castle_id[0], 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33; setarray $@castle_type[0], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2; // Npcs que devem ser ativados/desativados de acordo com o seu castelo. setarray $@castle_npc$[0], "Agit#aldeg_cas01", "Agit#aldeg_cas02", "Agit#aldeg_cas03", "Agit#aldeg_cas04", "Agit#aldeg_cas05", "Agit#gefg_cas01", "Agit#gefg_cas02", "Agit#gefg_cas03", "Agit#gefg_cas04", "Agit#gefg_cas05", "Agit#payg_cas01", "Agit#payg_cas02", "Agit#payg_cas03", "Agit#payg_cas04", "Agit#payg_cas05", "Agit#prtg_cas01", "Agit#prtg_cas02", "Agit#prtg_cas03", "Agit#prtg_cas04", "Agit#prtg_cas05", "Manager#schg_cas01", "Manager#schg_cas02", "Manager#schg_cas03", "Manager#schg_cas04", "Manager#schg_cas05", "Manager#arug_cas01", "Manager#arug_cas02", "Manager#arug_cas03", "Manager#arug_cas04", "Manager#arug_cas05"; bindatcmd "woemanager",strnpcinfo(0)+"::OnStart"; initnpctimer; end; OnTimer60000: freeloop(1); // Terminando a Guerra do Emperium. setarray .@tmptype[0], 0, 0; query_sql "SELECT `group_id` FROM `m_woe_timer` WHERE `week`='" + gettime(4) + "' AND `end_hour`='" + gettime(3) + "' AND `end_minute`='" + gettime(2) + "'", .@eGroupID; if( getarraysize(.@eGroupID) ) { for( set .@i, 0; .@i < getarraysize(.@eGroupID); set .@i, .@i + 1 ) { query_sql "SELECT `castle_id`, `status`, `type` FROM `m_woe_restrictions` WHERE `group_id`='" + .@eGroupID[.@i] + "'", .@end_castle_id, .@end_status, .@end_type; for( set .@c, 0; .@c < getarraysize(.@end_castle_id); set .@c, .@c + 1 ) { if( .@end_status[.@c] == 1 ) { if( .@end_type[.@c] == 1 ) set .@tmptype[0], 1; else set .@tmptype[1], 1; } } } } if( .@tmptype[0] ) agitend; if( .@tmptype[1] ) agitend2; if( .@tmptype[0] || .@tmptype[1] ) announce "A Guerra do Emperium terminou!", bc_all|bc_woe; // Habilitando os castelos. setarray .@tmptype[0], 0, 0; deletearray .@tmp_map_kill$[0], getarraysize(.@tmp_map_kill$); query_sql "SELECT `group_id` FROM `m_woe_timer` WHERE `week`='" + gettime(4) + "' AND `init_hour`='" + gettime(3) + "' AND `init_minute`='" + gettime(2) + "'", .@GroupID; if( getarraysize(.@GroupID) ) { for( set .@i, 0; .@i < getarraysize(.@GroupID); set .@i, .@i + 1 ) { query_sql "SELECT `castle_id`, `status`, `type` FROM `m_woe_restrictions` WHERE `group_id`='" + .@GroupID[.@i] + "'", .@castle_id, .@Status, .@type; for( set .@c, 0; .@c < getarraysize(.@castle_id); set .@c, .@c + 1 ) { set .@npc$, callfunc("castlenpc", .@castle_id[.@c]); if( .@Status[.@c] == 0 ) { set .@map$, callfunc("castlemap", .@castle_id[.@c]); if( .@map$ != "" ) set .@tmp_map_kill$[getarraysize(.@tmp_map_kill$)], .@map$; //if( .@npc$ != "" ) // disablenpc .@npc$; } else { if( .@type[.@c] == 1 ) set .@tmptype[(.@type[.@c]==1?0:1)], 1; //enablenpc .@npc$; } } } if( .@tmptype[0] && !agitcheck() ) agitstart; if( .@tmptype[1] && !agitcheck2() ) agitstart2; } for( set .@i, 0; .@i < getarraysize(.@tmp_map_kill$); set .@i, .@i + 1 ) killmonsterall .@tmp_map_kill$[.@i]; if( .@tmptype[0] || .@tmptype[1] ) announce "A Guerra do Emperium começou!", bc_all|bc_woe; freeloop(0); stopnpctimer; initnpctimer; end; } function script castlename { setarray .@castle_map$[0], "aldeg_cas01", "aldeg_cas02", "aldeg_cas03", "aldeg_cas04", "aldeg_cas05", "gefg_cas01", "gefg_cas02", "gefg_cas03", "gefg_cas04", "gefg_cas05", "payg_cas01", "payg_cas02", "payg_cas03", "payg_cas04", "payg_cas05", "prtg_cas01", "prtg_cas02", "prtg_cas03", "prtg_cas04", "prtg_cas05", "schg_cas01", "schg_cas02", "schg_cas03", "schg_cas04", "schg_cas05", "arug_cas01", "arug_cas02", "arug_cas03", "arug_cas04", "arug_cas05"; for( set .@i, 0; .@i < getarraysize(.@castle_map$); set .@i, .@i + 1 ) { if( getarg(0) == $@castle_id[.@i] ) return getcastlename(.@castle_map$[.@i]); } return "Desconhecido"; } function script castlemap { setarray .@castle_map$[0], "aldeg_cas01", "aldeg_cas02", "aldeg_cas03", "aldeg_cas04", "aldeg_cas05", "gefg_cas01", "gefg_cas02", "gefg_cas03", "gefg_cas04", "gefg_cas05", "payg_cas01", "payg_cas02", "payg_cas03", "payg_cas04", "payg_cas05", "prtg_cas01", "prtg_cas02", "prtg_cas03", "prtg_cas04", "prtg_cas05", "schg_cas01", "schg_cas02", "schg_cas03", "schg_cas04", "schg_cas05", "arug_cas01", "arug_cas02", "arug_cas03", "arug_cas04", "arug_cas05"; for( set .@i, 0; .@i < getarraysize(.@castle_map$); set .@i, .@i + 1 ) { if( getarg(0) == $@castle_id[.@i] ) return .@castle_map$[.@i]; } return false; } function script castlenpc { setarray .@castle_npc$[0], "Agit#aldeg_cas01", "Agit#aldeg_cas02", "Agit#aldeg_cas03", "Agit#aldeg_cas04", "Agit#aldeg_cas05", "Agit#gefg_cas01", "Agit#gefg_cas02", "Agit#gefg_cas03", "Agit#gefg_cas04", "Agit#gefg_cas05", "Agit#payg_cas01", "Agit#payg_cas02", "Agit#payg_cas03", "Agit#payg_cas04", "Agit#payg_cas05", "Agit#prtg_cas01", "Agit#prtg_cas02", "Agit#prtg_cas03", "Agit#prtg_cas04", "Agit#prtg_cas05", "Manager#schg_cas01", "Manager#schg_cas02", "Manager#schg_cas03", "Manager#schg_cas04", "Manager#schg_cas05", "Manager#arug_cas01", "Manager#arug_cas02", "Manager#arug_cas03", "Manager#arug_cas04", "Manager#arug_cas05"; for( set .@i, 0; .@i < getarraysize(.@castle_npc$); set .@i, .@i + 1 ) { if( getarg(0) == $@castle_id[.@i] ) return .@castle_npc$[.@i]; } return false; } // Npcs de Board prontera,162,185,3 script Guerra do Emperium#bulletin_01 4_BOARD3,{ set .@loop_1, 1; while(.@loop_1) { mes "^556B2F[Guerra do Emperium]^000000"; mes "^FF0000Horários da Guerra do Emperium.^000000"; mes "Selecione um Horário para saber quais Castelos estão habilitados."; next; deletearray .@auto_id[0], getarraysize(.@auto_id); setarray .@tmp_day$[0], "Domingo", "Segunda-Feira", "Terça-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "Sabado"; set .@build_menu$, ""; query_sql "SELECT `auto_id`, `group_id`, `week`, `init_hour`, `init_minute`, `end_hour`, `end_minute` FROM `m_woe_timer` ORDER BY `week`, `init_hour`, `init_minute`", .@auto_id, .@group_id, .@week, .@init_hour, .@init_minute, .@end_hour, .@end_minute; for( set .@i, 0; .@i < getarraysize(.@auto_id); set .@i, .@i + 1 ) set .@build_menu$, .@build_menu$ + "^0000FF- " + .@tmp_day$[.@week[.@i]] + " das " + (.@init_hour[.@i]<10?"0":"") + .@init_hour[.@i] +"h" + (.@init_minute[.@i]<10?"0":"") + .@init_minute[.@i] +"min ás " + (.@end_hour[.@i]<10?"0":"") + .@end_hour[.@i] +"h" + (.@end_minute[.@i]<10?"0":"") + .@end_minute[.@i] +"min.:"; set .@choose, select(.@build_menu$+"^FF0000- Cancelar.^000000")-1; if( .@choose >= getarraysize(.@auto_id) ) set .@loop_1, 0; else { mes "^556B2F[Guerra do Emperium]^000000"; mes "^0000FFGuerra do Emperium de " + .@tmp_day$[.@week[.@choose]] + " das " + (.@init_hour[.@choose]<10?"0":"") + .@init_hour[.@choose] +"h" + (.@init_minute[.@choose]<10?"0":"") + .@init_minute[.@choose] +"min ás " + (.@end_hour[.@choose]<10?"0":"") + .@end_hour[.@choose] +"h" + (.@end_minute[.@choose]<10?"0":"") + .@end_minute[.@choose] +"min, castelos ativos:^000000"; query_sql "SELECT `castle_id`, `type` FROM `m_woe_restrictions` WHERE `status`='1' ORDER BY `castle_id`, `type`", .@castle_id, .@castle_type; for( set .@c, 0; .@c < getarraysize(.@castle_id); set .@c, .@c + 1 ) mes callfunc("castlename", .@castle_id[.@c]) + " - ^0000FFGDE"+(.@castle_type[.@c]==2?" SE":"")+" - ^FF0000(" + callfunc("castlemap", .@castle_id[.@c]) + ")^000000"; next; } } mes "^556B2F[Guerra do Emperium]^000000"; mes "^0000FFQuando deseja saber dos horários da Guerra o quadroa estará aqui.^000000"; close; }