EO 2.0 - Healar NPC Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

EO 2.0 - Healar NPC

2 participantes

Ir para baixo

EO 2.0 - Healar NPC Empty EO 2.0 - Healar NPC

Mensagem por EpicMelanie Qua Abr 06, 2016 4:46 pm

[OBS: Não é uma "correção" mas sim uma forma de evitar que isso aconteça.]
Bug: Quando alguém usa magias de cura no NPC, o "HP Base" dele aumenta. por exemplo, um npc possui 100/100, se eu usar uma magia que cure 100 ele ficará com 200/200.

Solução: Impedir o lançamento de magias de cura em npcs.
Método:
~Server Side~

No Modcombat, em SpellNpc_Effect procure por:
 

Código:
SendAnimation mapNum, Spell(spellnum).SpellAnim, 0, 0, TARGET_TYPE_NPC, index
        SendActionMsg mapNum, sSymbol & Damage, Colour, ACTIONMSG_SCROLL, MapNpc(mapNum).Npc(index).x * 32, MapNpc(mapNum).Npc(index).y * 32




E Substitua por:

Código:
 SendAnimation mapNum, Spell(SpellNum).SpellAnim, 0, 0, TARGET_TYPE_NPC, Index
        SendActionMsg mapNum, "Falhou", Colour, ACTIONMSG_SCROLL, MapNpc(mapNum).NPC(Index).x * 32, MapNpc(mapNum).NPC(Index).y * 32

Isso fará com que a animação de cura, e o texto exibindo o dano não sejam enviados. No lugar disso, o client exibirá uma mensagem: "Falhou!".

Agora,um pouco abaixo você encontrará:

Código:
If increment Then
            MapNpc(mapNum).Npc(index).Vital(Vital) = MapNpc(mapNum).Npc(index).Vital(Vital) + Damage
            If Spell(spellnum).Duration > 0 Then
                AddHoT_Npc mapNum, index, spellnum
            End If
        ElseIf Not increment Then
            MapNpc(mapNum).Npc(index).Vital(Vital) = MapNpc(mapNum).Npc(index).Vital(Vital) - Damage
        End If
    End If


Substitua por:

Código:
 If increment Then
        PlayerMsg Index, "Você não pode curar um NPC.", BrightRed
        ElseIf Not increment Then
            MapNpc(mapNum).NPC(Index).Vital(Vital) = MapNpc(mapNum).NPC(Index).Vital(Vital) - Damage
        End If
    End If


Isso cancelará a cura e exibirá uma mensagem no chat do jogador:
"Você não pode curar um NPC"
EpicMelanie
EpicMelanie
Novato
Novato

Mensagens : 12
Créditos : 5

Ir para o topo Ir para baixo

EO 2.0 - Healar NPC Empty Re: EO 2.0 - Healar NPC

Mensagem por Profane ~ Dom Abr 10, 2016 2:37 pm

Boa analise!

Porém a NpcSpawn, ao gerar o Npc ele seta usando o HpTo o valor X de Hp do npc, contido em seu ID.

Não seria melhor dar continuidade nisso e apenas analisar o valor base, e caso seja maior apenas definir o valor base novamente? xD Fica a dica para quando estiver desenvolvendo.

Não tentar modificar bruscamente algo so porque existe uma pequena falha >< corrigir ela sempre será melhor ><.

_________________
"Mistress of shattered hopes and forever broken dreams"
Profane ~
Profane ~
Colaborador
Colaborador

Mensagens : 818
Créditos : 130

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos