Jump to content

  •  

Kurare

Member Since 08 Dec 2014
Offline Last Active May 31 2017 01:19 PM
-----

#59795 Reduzir dano de Reflect

Posted by Kurare on 09 July 2015 - 12:21 AM

Fica na função battle_reflect_damage

    NORMALIZE_RDAMAGE(damage * sc->data[SC_REFLECTSHIELD]->val2 / 100);    rdamage = min(status_get_max_hp(target),damage);//colocar aqui#ifndef RENEWAL	rdelay = clif->delay_damage(tick+delay,src, src, status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4);#else	rdelay = clif->skill_damage(src, src, tick, delay, status_get_dmotion(src), rdamage, 1, CR_REFLECTSHIELD, 1, 4);#endif



#59794 [PEDIDO]

Posted by Kurare on 08 July 2015 - 11:54 PM

Olá,

seguindo a política de não dar nada pronto vou explicar o que você vai precisar, quanto a parte de script:

 

Dois eventos: 

OnPCKillEvent : é chamado para um jogador quando mata outro, a variável (parâmetro) killerrid passa a conter o gid do jogador morto.

OnPCDieEvent: é chamado para o jogador quando ele morre, a variável killerrid passa a conter o gid do 'assassino' do mesmo.

 

E você deve usar as seguintes funções de scripts:

rid2name( variavel[color=rgb(0,0,255);]numérica ) - [/color][color=rgb(0,0,0);]transforma o id em nome, variavel ([/color][color=rgb(75,0,130);]killerrid [/color][color=rgb(0,0,0);]no caso) em um nome[/color]

[color=#0000ff]dispbottom "texto"- [/color][color=#000000]mostra uma mensagem no chat na cor do chat de guild, só para o jogador[/color]

[color=#000000]ou [/color][color=rgb(0,0,255);]message "texto" - [/color][color=#000000]mostra uma mensagem no chat e em cima da cabeça do mesmo em cor normal só para o jogador.[/color]

 

[color=#000000]O mesmo NPC pode conter os dois labels/eventos e não deve estar em um mapa acredito eu, por conta do check_near,[/color]

pra tanto na hora de definir o mesmo você pode só por um - no local e na classe assim:

 

-<tab>script<tab>NPCTESTE<tab>-,{<script>} 

quanto à parte do comando, você deveria usar o comando

[color=#0000cd] bindatcmd - [/color][color=#000000]liga um comando ao label do npc[/color]

ex:  

 

OnInit:bindatcmd "@allinfo",strnpcinfo(3)+"::OnInfo";end; 

[color=rgb(0,0,0);]assim, você pode no label definir o que você deseja, setar uma variável por exemplo.[/color]




#55847 erro ao ser atacado

Posted by Kurare on 01 May 2015 - 12:21 AM

Da forma que está não dá pra saber qual o erro que você tomou, o arquivo que falta, etc.

O que o JulioCF sugeriu é que você rediffe o seu executável desmarcando a opção : Ignore Missing File Error

Não adianta pegar o arquivo da pasta do jogo, tem que pegar o 2014-03-05bRagexe.exe 'limpo' sem ser o patched 

e depois aplicar o diff que você aplicou, mas sem a opção  Ignore Missing File Error

 

Tentei explicar de uma forma que você entendesse.




#55844 Npcs que andam, duvida

Posted by Kurare on 30 April 2015 - 11:57 PM

É possível das duas formas, tanto com NPC tanto com MOB:
 
unitwalk <GID>,<x>,<y>;
unitwalk <GID>,<target_GID>;
 
Para obter o GID do MOB você deve setar uma variável com o return da função, ou seja:
 
set .@mob_id, monster "Prontera",150,150,"Poring",1002,1;
 
E depois usar a variável para conduzir o mesmo:
 
unitwalk .@mob_id,150,160;
 
Lembro que o .@ como prefixo de variável, faz com que a mesma seja de escopo, ou seja, ao finalizar o script ela será apagada, então se
o trigger do comando de walk for localizado em outro momento, você deverá usar outro tipo de variável, podendo ser de NPC com o prefixo "." [color=rgb(0,0,0);](.mob_id) ou então "[/color]$@" ($@mob_id), que será uma váriavel global temporária, ou até mesmo uma array no NPC em caso de múltiplos mobs.