Timexy

Membro
  • Total de itens

    10
  • Registro em

  • Última visita

Reputação

1 Iniciante

Sobre Timexy

  • Data de Nascimento 19-05-1988
  1. Procurei um script que tinha esta fun??o e achei este abaixo, que controla a WoE. Nem sei se funciona mais (?ltima modifica??o do arquivo ? ?"domingo, ?26? de ?junho? de ?2011, ??15:42:52" haha) e se voc? tiver um que controle a WoE no seu servidor sugiro adaptar a fun??o, ou simplesmente remover a checagem que utiliza esta fun??o do Red vs Blue. Enfim, use por sua conta e risco: //===== eAthena Script ======================================= //= Controlador WoE - Asgard //===== By: ================================================== //= Venom //= Timexy //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= //= Script que Controla a WoE //===== Additional Comments: ================================= //= Script personalizado exclusivamente para o servidor Asgard //= N?o use em outro servidor -.- //= //= Indicadores de data: //= 0 = Domingo //= 1 = Segunda-Feira //= 2 = Ter?a-Feira //= 3 = Quarta-Feira //= 4 = Quinta-Feira //= 5 = Sexta-Feira //= 6 = S?bado //===== To Do List: ========================================== //= //============================================================ - script Agit_Event -1,{ OnClock2000: OnClock2100: OnClock2200: for(set [email protected],0; [email protected] < getarraysize($WoE_WDays); set [email protected],[email protected]+1 ) { if(gettime(4) == $WoE_WDays[[email protected]]) { //Verificando dia da Semana if(gettime(3) >= $WoE_Init[[email protected]] && gettime(3) < $WoE_End[[email protected]]) { //Verificando se ? hora de iniciar if($WoE_Type[[email protected]] == 1) { //Verificando se ? WoE 1.0 if (!agitcheck()) { announce "A Guerra do Emperium Come?ou!",bc_all|bc_woe; agitstart; donpcevent "Agit_Event::OnWoEInit"; end; } } if($WoE_Type[[email protected]] == 2) { //Verificando se ? WoE SE if (!agitcheck2()) { announce "A Guerra do Emperium SE Come?ou!",bc_all|bc_woe; agitstart2; end; } } } if(gettime(3) >= $WoE_End[[email protected]]) { //Verificando se ? hora de finalizar if($WoE_Type[[email protected]] == 1) { //Verificando se ? WoE 1.0 if (agitcheck()) { announce "A Guerra do Emperium Terminou!",bc_all|bc_woe; agitend; donpcevent "Agit_Event::OnWoEEnd"; end; } } if($WoE_Type[[email protected]] == 2) { //Verificando se ? WoE SE if (agitcheck2()) { announce "A Guerra do Emperium SE Terminou!",bc_all|bc_woe; agitend2; end; } } } } } end; OnInit: setarray $WoE_WDays ,2 ,4 ,6; //Dias da Semana setarray $WoE_Init ,20 ,20 ,20; //Horas que come?a (Server Time) setarray $WoE_End ,22 ,22 ,22; //Horas que termina (Server Time) setarray $WoE_Type ,1 ,2 ,1; //Tipo da WoE (1 = WoE 1.0 | 2 = WoE SE) end; //Ter?a = aldeg_cas03, aldeg_cas05, gefg_cas04, gefg_cas05, payg_cas02, prtg_cas03 //Quinta = prtg_cas01, aldeg_cas02, payg_cas05 OnWoEInit: if(gettime(4) == $WoE_WDays[0]) { //Verificando se ? Ter?a-feira, desativando os de Quinta-feira disablenpc "prtg01"; disablenpc "aldg02"; disablenpc "payg05"; end; } if(gettime(4) == $WoE_WDays[1]) { //Verificando se ? Quinta-feira, desativando os de Ter?a-feira disablenpc "aldg03"; disablenpc "aldg05"; disablenpc "gefg08"; disablenpc "gefg09"; disablenpc "gefg09-1"; disablenpc "payg02"; disablenpc "prtg03-1"; end; } end; OnWoEEnd: if(gettime(4) == $WoE_WDays[0]) { //Verificando se ? Ter?a-feira, habilitando os de Quinta-feira enablenpc "prtg01"; enablenpc "aldg02"; enablenpc "payg05"; end; } if(gettime(4) == $WoE_WDays[1]) { //Verificando se ? Quinta-feira, habilitando os de Ter?a-feira enablenpc "aldg03"; enablenpc "aldg05"; enablenpc "gefg08"; enablenpc "gefg09"; enablenpc "gefg09-1"; enablenpc "payg02"; enablenpc "prtg03-1"; end; } end; OnWhisperGlobal: if(getgmlevel() <= 90) end; if(compare(@whispervar0$,"!warps_end")) { donpcevent "Agit_Event::OnWoEEnd"; end; } if(compare(@whispervar0$,"!warps_init")) { donpcevent "Agit_Event::OnWoEInit"; end; } end; } function script WoE_Check { //Como usar: if (callfunc("WoE_Check",ARG 0) == ?) //ARG 0: Horas antes da WoE para "travar". //Return 0: Liberado //Return 1: WoE ativa //Return 2: Hor?rio "travado" if(agitcheck() || agitcheck2()) { return 1; } for(set [email protected],0; [email protected] < getarraysize($WoE_WDays); set [email protected],[email protected]+1 ) { if(gettime(4) == $WoE_WDays[[email protected]]) { if(gettime(3) >= $WoE_Init[[email protected]]-getarg(0) && gettime(3) < $WoE_End[[email protected]]) { return 2; } } } return 0; }
  2. Altere o loop, set [email protected],[email protected]+1;. Mas vai der erro em outra partes tamb?m, como na fun??o RXB_RBuff, ent?o ? mais f?cil:
  3. Formas diferentes de fazer (quase) a mesma coisa. Mas n?o entendi este loop, se ele achar a mapflag finaliza o script... e? N?o seria o contrario, se ele n?o achar a mapflag que finaliza o script? Na verdade com o getmapflag voc? nem precisa de loop, s? fazer um if-else pra cada clausula e se nenhuma retornar OK, finaliza, levando em considera??o que WoE e GvG s?o coisas diferentes, claro.
  4. OnAgitBreak n?o ? uma Label especial. O comando monster que invoca o Emperium que chama ela quando o mesmo for "morto": if (!mobcount(strnpcinfo(2),"Agit#"+strnpcinfo(2)+"::OnAgitBreak") && getmapflag(strnpcinfo(2),mf_set_castle) != 0 && agitcheck()) { monster strnpcinfo(2),[email protected][0],[email protected][1],"Emperium",1288,1,"Agit#"+strnpcinfo(2)+"::OnAgitBreak"; } Mas como ele ? invocado pela morte de um monstro vem um RID anexado, que voc? pode usar pra identificar o Guild ID. ? assim que as pessoas colocam o nome de quem quebrou o Emperium tamb?m. Fiz isso uma vez mas n?o estou achando o script. Enfim, voc? n?o precisa necessariamente criar um array salvando quem est? com o castelo no inicio da WoE, porque esta informa??o j? existe no SQL. Voc? precisa sim marcar se ele foi ou n?o quebrado durante a WoE, pra diferenciar os pontos. De qualquer forma isso ? subjetivo. Faz tempo que n?o uso isso e como eu disse anteriormente n?o recomendo fazer via script, mas fica o exemplo: http://ctrlv.it/c/MzM1NjM3 - http://ctrlv.it/sql/MzM1NjM4 PS: N?o sei se est? funcionando e n?o ? de forma alguma um script otimizado, ? um velho que tenho jogado por aqui s? de exemplo mesmo.
  5. Sobre "pontos por kill" eu n?o sugiro fazer isso via script. Por mais que voc? otimize o script, em servidores movimentados muitos eventos n?o v?o ser contabilizados (experiencia pr?pria) devido a limita??o* do pr?prio emulador. O que voc? pode fazer ? algo mais "oficial" (pelo menos de quando eu jogava): adiciona uma fun??o dentro do OnAgitBreak no npc/gde/gde_padrao.txt pra verificar se o castelo j? foi quebrado na WoE atual e marcar quantas vezes e por quem, e uma fun??o aparte no OnAgitEnd pra calcular quantas guerras j? se passaram desde a ultima vez que o castelo quebrou e adicionar pontos conforme sua formula. Se quiser "complicar" mais tamb?m pode criar um ELO Rating. As pontua??es eram +/- asim: * X pontos por conquistar um castelo (por conquista, mas precisa tomar cuidados para n?o haver abusos). * X pontos por terminar a WoE com um castelo (por castelo). * X pontos por segurar um castelo durante a WoE toda, sem quebrar (por castelo). Um exemplode ELO Rating aplicado a um script: http://www.heypasteit.com/clip/0SJO * N?o ? limita??o em si, ? a forma como o sistema funciona. Se voc? aumentar o MAX_EVENTQUEUE no map.h at? ajuda, mas n?o ? uma boa pr?tica.
  6. Troca o dispbottom por mes, mas coloca ele no fim do script (ap?s o addtimer) e troca o end por um close. S? que os usu?rios v?o reclamar, imagina aparecer um popup, do nada, em momentos tipo MVP, WoE ou PvP...
  7. Como eu disse o comando continua o mesmo, basta olhar na documenta??o. Se n?o me engano o tipo define onde o cliente procura o arquivo para tocar.
  8. Nome do Arquivo: soundeffectall Autor: Timexy Arquivo enviado: 12 Mar 2013 Categoria: Lan?amentos de C?digos (Source) Esta pequena modifica??o no comando soundeffectall habilita o antigo modo de utiliza??o do comando onde o som executava em todos os clientes conectados, mas sem alterar a forma atual de utiliza??o do mesmo. O comando continua sendo: soundeffectall "<efeito>",<tipo>{,"<mapa>"}{,<x0>,<y0>,<x1>,<y1>}; A ?nica diferen?a ? que, caso o nome do mapa seja "todos_mapas", todos os clientes conectados ao servidor ir?o ouvir o efeito. Para implementar basta efetuar download e aplicar o diff ou efetuar uma simples altera??o no script.c. N?o esque?a de recompilar! Antes (r1852): @@ -11927,6 +11927,7 @@ } else if(!script_hasdata(st,5)) { // entire map const char *map = script_getstr(st,4); map_foreachinmap(soundeffect_sub, map_mapname2mapid(map), BL_PC, name, type); } else if(script_hasdata(st,8)) { // specified part of map Depois (r1852): @@ -11927,6 +11927,7 @@ } else if(!script_hasdata(st,5)) { // entire map const char *map = script_getstr(st,4); if (strcmp(map,"todos_mapas")==0) clif_soundeffectall(bl, name, type, ALL_CLIENT); else map_foreachinmap(soundeffect_sub, map_mapname2mapid(map), BL_PC, name, type); } else if(script_hasdata(st,8)) { // specified part of map Clique aqui para fazer o download deste arquivo
  9. Version 1.0

    28 downloads

    Esta pequena modificação no comando soundeffectall habilita o antigo modo de utilização do comando onde o som executava em todos os clientes conectados, mas sem alterar a forma atual de utilização do mesmo. O comando continua sendo: soundeffectall "<efeito>",<tipo>{,"<mapa>"}{,<x0>,<y0>,<x1>,<y1>}; A única diferença é que, caso o nome do mapa seja "todos_mapas", todos os clientes conectados ao servidor irão ouvir o efeito. Para implementar basta efetuar download e aplicar o diff ou efetuar uma simples alteração no script.c. Não esqueça de recompilar! Antes (r1852): @@ -11927,6 +11927,7 @@ } else if(!script_hasdata(st,5)) { // entire map const char *map = script_getstr(st,4); map_foreachinmap(soundeffect_sub, map_mapname2mapid(map), BL_PC, name, type); } else if(script_hasdata(st,8)) { // specified part of map Depois (r1852): @@ -11927,6 +11927,7 @@ } else if(!script_hasdata(st,5)) { // entire map const char *map = script_getstr(st,4); if (strcmp(map,"todos_mapas")==0) clif_soundeffectall(bl, name, type, ALL_CLIENT); else map_foreachinmap(soundeffect_sub, map_mapname2mapid(map), BL_PC, name, type); } else if(script_hasdata(st,8)) { // specified part of map

    Gratuito

  10. Altera pro sistema de alguma vers?o anterior usando um loop de sc_end mais simples...
  11. Nome do Arquivo: Red vs Blue Autor: Timexy Arquivo enviado: 10 Mar 2013 Categoria: Lan?amentos de Scripts (NPCs) Este ? o script do evento Red vs Blue que ficou em produ??o no RagnaRPOJECT at? a data de fechamento do Asgard. Estou disponibilizando para todos utilizarem, s? pe?o que citem a fonte ao adicionar em seus servidores (nada dentro do jogo, s? n?o quero ningu?m se gabando de que criou este script). A redistribui??o em outros canais de download est? vedada. Adicionei ao pacote as vers?es que tenho salva no meu computador, as demais revis?es se perderam com o tempo e entre as mudan?as de SVN. Tamb?m adicionei um GRF com os mapas utilizados pelo evento (e alguns que foram utilizados algum dia). Existe um modo chamado King of the Hill (imagine o mesmo que no TF2) que n?o cheguei a testar em produ??o, mas a base est? funcionando. Se quiser ativ?-lo procure pelas linhas comentadas em "Selecionando o Tipo da Arena (DM | KotH)" e "KING OF THE HILL - BETA". Hoje eu refaria todo o script, mas acredito que ainda funciona como um bom evento. Divirtam-se. Clique aqui para fazer o download deste arquivo
  12. Assim: - script PCLog -1,{ OnPCLoginEvent: query_sql "SELECT `logincount` FROM `login` WHERE `account_id` = " + getcharid(3),[email protected]_count; if ([email protected]_count > 1) end; mes "[ Boas vindas ]"; mes "Ol? "+strcharinfo(0)+", seja bem vindo ao -----RO!"; mes "Vejo que vo?? ? novo por aqui !"; mes "Irei lhe ajudar, pegue algum itens, para come?ar sua Jornada"; mes "Obrigado por jogar -----RO, estamos muito felizes com sua presen?a. :D"; getitem 7539,10; close; } Mas eu diria que com a vari?vel #novato, como j? est?, ? melhor, porque eventos especiais tem limites de concorr?ncia e em uma abertura de servidor, por exemplo, ou qualquer outro evento com v?rios jogadores entrando ao mesmo tempo, o NPC pode n?o "falar" com todo mundo.
  13. Version 3.0.16

    820 downloads

    Este é o script do evento Red vs Blue que ficou em produção no RagnaRPOJECT até a data de fechamento do Asgard. Estou disponibilizando para todos utilizarem, só peço que citem a fonte ao adicionar em seus servidores (nada dentro do jogo, só não quero ninguém se gabando de que criou este script). A redistribuição em outros canais de download está vedada. Adicionei ao pacote as versões que tenho salva no meu computador, as demais revisões se perderam com o tempo e entre as mudanças de SVN. Também adicionei um GRF com os mapas utilizados pelo evento (e alguns que foram utilizados algum dia). Existe um modo chamado King of the Hill (imagine o mesmo que no TF2) que não cheguei a testar em produção, mas a base está funcionando. Se quiser ativá-lo procure pelas linhas comentadas em "Selecionando o Tipo da Arena (DM | KotH)" e "KING OF THE HILL - BETA". Hoje eu refaria todo o script, mas acredito que ainda funciona como um bom evento. Divirtam-se.

    Gratuito

  14. Estava importando os dados em um banco do zero e o MySQL indicou erro nos comandos da tabela skill_unit_db. O problema est? em um dos ponto e v?rgula. Atual (rev 1829): REPLACE INTO `skill_unit_db` VALUES(3009,'0x86',NULL,'0','3','1000','enemy','0x018') REPLACE INTO `skill_unit_db` VALUES(3010,'0xfc',NULL,'0','1','1000','enemy','0x020');;Como deveria ser:REPLACE INTO `skill_unit_db` VALUES(3009,'0x86',NULL,'0','3','1000','enemy','0x018'); REPLACE INTO `skill_unit_db` VALUES(3010,'0xfc',NULL,'0','1','1000','enemy','0x020');
  15. Nome do Arquivo: API de Scripts para Notepad++ Autor: Timexy Arquivo enviado: 09 Mar 2013 Categoria: Lan?amentos de Ferramentas Uma "Linguagem definida pelo usu?rio" (API) de Notepad++ para real?ar comandos e termos utilizados pela linguagem de scripts do brAthena. Passos para ativar: Salvar e extrair o arquivo em seu computador; Abrir o Notepad++ Menu Linguagem -> Definir sua linguagem...; Importar... -> Selecionar o arquivo. Feito isso, no menu Linguagem vai aparecer "brAthena" no fim da lista, fora da ordem alfab?tica. Clique aqui para fazer o download deste arquivo