Suporte ao desenvolvimento de jogos!


    Como ajeitar o dano consecutivo do Npc Spell

    Compartilhe
    avatar
    Snoopy
    Iniciante
    Iniciante

    Mensagens : 56
    Créditos : 7

    Como ajeitar o dano consecutivo do Npc Spell

    Mensagem por Snoopy em Ter Mar 24, 2015 9:01 pm

    Bom galera, venho trazer aqui um tutorial de como ajeitar o dano da magia do npc ao qual o Motodark estava com esta dúvida.

    Explicando:

    Bom depois de você ter uma engine com Npc Spell System ou você implanta-lo você com certeza percebe que quando o npc usa a a magia em você dá diversos hits em uma só vez e as vezes causando até um lag muito chato na animação da magia.

    Começando:

    No Client-Side no modTypes procure:
    Código:
    Private Type MapNpcRec
        num As Long
        target As Long
        TargetType As Byte
        Vital(1 To Vitals.Vital_Count - 1) As Long
        Map As Long
        X As Byte
        Y As Byte
        Dir As Byte

    e abaixo de "Dir As Byte" adicione:
    Código:
    TmpSpell As Long

    É extremamente necessário que você faça o mesmo no servidor!


    Depois de fazer o mesmo no servidor, procure na Sub UpdateMapLogic:

    Código:
    ' Spell Casting

                                    For i = 1 To MAX_NPC_SPELLS
                                        If Npc(NPCNum).Spell(i) > 0 Then
                                            If MapNpc(mapnum).Npc(x).SpellTimer(i) + (Spell(Npc(NPCNum).Spell(i)).CastTime * 1000) < GetTickCount Then
                                                NpcSpellPlayer x, target, i
                                            End If
                                        End If
                                    Next
                                End If
     e troque por:



    Código:
    ' Spell Casting
                         
                                    For i = 1 To MAX_NPC_SPELLS
                                    MapNpc(mapnum).NPC(x).TmpSpell = Spell(i).CDTime - 1
                                        If NPC(NPCNum).Spell(i) > 0 Then
                                            If MapNpc(mapnum).NPC(x).TmpSpell = 0 Then
                                            If MapNpc(mapnum).NPC(x).SpellTimer(i) + (Spell(NPC(NPCNum).Spell(i)).CastTime * 1000) < GetTickCount Then
                                                NpcSpellPlayer x, target, i
                                                MapNpc(mapnum).NPC(x).TmpSpell = Spell(i).CDTime = Spell(i).CDTime
                                               
                                            End If
                                            End If
                                        End If
                                       
                                    Next
                                End If
    E pronto! Razz




    Nota: Todos os sistemas/edições que posto são programação básica pois não sou um experiente em VB6, posto porque acho que vai ajudar pessoas que não sabem o básico.

      Data/hora atual: Seg Nov 12, 2018 4:49 pm