-
Content Count
4 -
Joined
-
Last visited
Posts posted by Chengue
-
-
Nops, its a client limitation (i gues) ask gravity.
-
Hello.
Its a no way to do this on NPC script command, maybe on item_db item script or source modification
Insert it on a some id item_db entry:
Script: <" if(BaseLevel > 99) {bonus bMaxHPrate,30;} ">
Cya
-
That's it.
https://github.com/chengue96/requests/blob/master/scripts/event_tarot.txt
prontera,128,329,4 script Evento do Destino 4_M_BARD,{ mes "[Evento do Destino]"; mes "Olá "+strcharinfo(0); mes "Está afim de testar sua sorte nas cartas? Fique atento quando anunciar o início do evento."; next; switch(select("Participar do evento", ( getgroupid() >= $@lvminGM ? ( !$tarot_status ? "Ligar":"Desligar")+" Evento":"") , "Premiação", "Não quero participar")){ case 1: // = Se evento não ativo if (!$tarot_status){ mes "[Evento do Destino]"; mes "Senhor"+(Sex? "":"a")+", no momento o evento não está atívo! Nós avisaremos quando o evento começar."; close; } // = Verifica se o nome do personagem já está no array for (set .@i,0; .@i < getarraysize($@tarot_participantes$); set .@i,.@i + 1) { if ( $@tarot_participantes$[.@i] == strcharinfo(0) ) { mes "[Evento do Destino]"; mes "Tenha calma "+strcharinfo(0)+"! Nós ainda não estamos prontos para você, aguarde um momento."; next; warp "force_1-1",100,100; close; } } mes "[Evento do Destino]"; mes "Tudo certo, anotei a sua participação aqui! Em breve você será chamado para que o evento seja iniciado."; // = Adiciona o nome do personagem ao array set $@tarot_participantes$[getarraysize($@tarot_participantes$)], strcharinfo(0); //message strcharinfo(0), strnpcinfo(1)+" Meus parabéns! Você se registrou com êxito para participar do evento."; //announce strnpcinfo(1)+" <"+strcharinfo(0)+"> registrou-se para participar do evento!",bc_all; next; warp "force_1-1",100,100; close; case 2: if( agitcheck() || agitcheck2() ){ mes "[Evento do Destino]"; mes "Neste momento a Guerra do Emperium está atíva e não é possível dar início ao evento!"; close; } mes "[Evento do Destino]"; mes "Olá, Game-Master! Você tem certeza que deseja "+( !$tarot_status ? "Ligar":"Desligar")+" o evento?"; if(select("Não:Tenho certeza") == 1) close; if ( !$tarot_status ){ donpcevent "Tarot Event::OnStart"; }else donpcevent "Tarot Event::OnStop"; close; end; case 3: mes "[Evento do Destino]"; mes "O participante que não for atingido pela carta 'Coma' receberá pontos de evento e recompensas aleatórias."; close; case 4: close; } OnInit: // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //set "[Evento do Destino]", "^800000"+strnpcinfo(1)+"^000000"; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - setarray $@mapeventtarot$, "poring_w01", 102, 71; // = Configuração do mapa do evento // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set $@mintarot_participantes,2; // = Número mínimo de participantes para iniciar o evento // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set $@lvminGM, 60; // = Level mínimo de GM para ligar/desligar o evento // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // = ATENÇÃO: CADA ITEM TEM SUA QUANTIDADE // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - callfunc ("resetEventoTarot", $@tarot_participantes$, $@mapeventtarot$[0]); setarray .mapflag,0,1,7,8,13,22,33,34,12; for (set .@m,0; .@m < getarraysize(.mapflag); set .@m, .@m + 1){ setmapflag $@mapeventtarot$[0], .mapflag[.@m]; } end; } - script Tarot Event -1,{ // = Início automático OnWhisperGlobal: input @pass; if(@pass != 1324) end; OnClock0500: OnClock1700: // = Início manual OnStart: set $tarot_status,1; announce "[NPC] Evento do Destino: As inscrições para o evento estão abertas! Vocês tem 5 minutos para participar. Digite @evt para participar.",bc_all; sleep 60000; announce "[NPC] Evento do Destino: As inscrições para o evento estão abertas! Vocês tem 4 minutos para participar. Digite @evt para participar.",bc_all; sleep 60000; announce "[NPC] Evento do Destino: As inscrições para o evento estão abertas! Vocês tem 3 minutos para participar. Digite @evt para participar.",bc_all; sleep 60000; announce "[NPC] Evento do Destino: As inscrições para o evento estão abertas! Vocês tem 2 minutos para participar. Digite @evt para participar.",bc_all; sleep 60000; announce "[NPC] Evento do Destino: As inscrições para o evento estão abertas! Vocês tem 1 minuto para participar. Digite @evt para participar.",bc_all; sleep 60000; if ( getarraysize($@tarot_participantes$) < $@mintarot_participantes ){ announce "As inscrições para o Evento do Destino não foram suficientes para iniciar.",bc_all; callfunc ("resetEventoTarot", $@tarot_participantes$, $@mapeventtarot$[0]); end; } announce "[NPC] Evento do Destino: As inscrições para o evento foram encerradas. Boa sorte a todos os participantes!",bc_all; set $tarot_status,0; for(set .@p, 0; .@p < getarraysize($@tarot_participantes$); set .@p, .@p + 1){ if ( isloggedin(getcharid(3, $@tarot_participantes$[.@p])) ){ warpchar $@mapeventtarot$[0], atoi($@mapeventtarot$[1]), atoi($@mapeventtarot$[2]), getcharid(0, $@tarot_participantes$[.@p]); }else{ deletearray $@tarot_participantes$[.@p], 1; } } sleep 8000; sleep2 1500; donpcevent "[GM]Tyr::OnSpeak"; end; OnReturn: while( getarraysize($@tarot_participantes$) > 1){ // = Enquanto o total de participantes for maior que 1 // sleep 1000; for(set .@p,0;.@p<getarraysize($@tarot_participantes$);set .@p,.@p+1){ sleep2 1000; if(getmapusers("poring_w01") == 1){goto Vencer;} attachrid(getcharid(3,$@tarot_participantes$[.@p])); if( strcharinfo(3) == $@mapeventtarot$[0] ){ set .@CARDs,522+rand(1,14); specialeffect2 .@CARDs, strcharinfo(0); if( .@CARDs == 531 ){ deletearray $@tarot_participantes$[.@p], 1; percentheal -99,-99; sleep2 1500; warp "SavePoint",0,0; } } detachrid; } } sleep 2000; Vencer: if ( getarraysize($@tarot_participantes$)){ attachrid(getcharid(3, $@tarot_participantes$[0])); // = Atacha o account_id apartir do nome if ( strcharinfo(3) == $@mapeventtarot$[0] ){ announce "[NPC] Evento do Destino: O vencedor do evento é o jogador '"+$@tarot_participantes$[0]+"' parabéns!",bc_all; getitem 7227,1; set #evento,#evento+10; } detachrid; } callfunc ("resetEventoTarot", $@tarot_participantes$, $@mapeventtarot$[0]); end; // = Encerra o Evento OnStop: //announce "["+strnpcinfo(1)+"] Evento encerrado!",bc_all; callfunc ("resetEventoTarot", $@tarot_participantes$, $@mapeventtarot$[0]); end; } - script tarot_events -1,{ // = Se o participante que deslogou ou morreu estiver no mapa do evento, seu nome será retirado do array de tarot_participantes OnPCLogoutEvent: if ( strcharinfo(3) == $@mapeventtarot$[0] ){ for (set .@i,0; .@i < getarraysize($@tarot_participantes$); set .@i,.@i + 1) { if ( $@tarot_participantes$[.@i] == strcharinfo(0) ){ deletearray $@tarot_participantes$[.@i], 1; break; } } } end; } poring_w01,102,73,1 script [GM]Tyr 871,{ mes "[Organizadora de Eventos]"; mes "Jogadores na disputa..."; for (set .@i,0; .@i < getarraysize($@tarot_participantes$); set .@i,.@i + 1) { mes (.@i+1)+" - "+$@tarot_participantes$[.@i]; } close; end; OnSpeak: setarray .msgs$, "Usarei a habilidade 'Destino nas Cartas' em cada um de vocês.", "As rodadas serão de acordo com a ordem de inscrição no evento.", "O vencedor será o último a sobreviver!", "Boa sorte a todos os participantes!", "TAROOOW!"; for ( set .@i,0; .@i < getarraysize(.msgs$); set .@i, .@i+1 ){ npctalk .msgs$[.@i]; sleep 3000; } donpcevent "Tarot Event::OnReturn"; end; OnInit: setarray .x[0],94,105,99,110; setarray .y[0],68; npcspeed 195; initnpctimer; end; OnTimer1000: emotion rand(34,45); for(set .c,0;.c<getarraysize(.x); set .c,.c+1){ npcwalkto .x[.c],.y[0]; sleep 3500; } initnpctimer; end; } // = Reseta parâmetros function script resetEventoTarot { // @param0 = array dos tarot_participantes // @param1 = map event deletearray getarg(0); set $tarot_status,0; mapwarp getarg(1), "prontera",156,183; return; }
Please edit the claim at line 177.
Varias Dúvidas
in Suporte a Script
Posted
Google é o seu melhor amigo, nunca esqueça de tentar utilizá-lo pois geralmente as respostas estão aí na nossa frente.
Sobre o Gospel & Destino nas Cartas:
Dê uma olhada no repositório do rAthena, eles tem essa correção, que inclusive não me recordo se aplicaram aqui no Hercules, mas essas modificações podem ser feitas por aqui também, só dê uma olhada na compatibilidade e se for necessário, adapte o código de acordo com o que está acima, sempre funciona.
https://github.com/rathena/rathena/commit/894d6f2fe64a401a62ceb57ec48f803e1e7f72be
Sobre a limitação de fala:
Isso é uma limitação do seu hexed, dê uma olhada no limite de linhas aplicado nele, o emulador raramente tem algo a ver com isso, ao menos que esteja tentando falar um livro, aí realmente não da.
Sobre o item utilizável:
Coloque uma verificação baseada em script no arquivo, verificando a quantidade de Zenys antes de utilizá-lo. Não há uma forma pronta de fazer isso.
Sobre a inserção de ícones de buffs no cliente:
Isso é possível, mas são necessárias várias modificações avançadas que provavelmente você não iria conseguir fazer e muito menos fazer a manutenção desses arquivos com o tempo e atualizações, portanto é melhor deixar isso para lá.
Sobre os demais assuntos não mencionados:
Todos são modificações na Source e você pode dar uma olhada no Google, use suas pesquisas em inglês e você verá que boa parte tem algum começo para você se aventurar, mas recorde-se de que são modificações que não são aconselhadas pois requerem um conhecimento avançado.