MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!

Participe do fórum, é rápido e fácil

MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!
MMORPG Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[Tutorial]Mudando Quantidade de Frame par 4x4[Dx8's]

2 participantes

Ir para baixo

[Tutorial]Mudando Quantidade de Frame par 4x4[Dx8's] Empty [Tutorial]Mudando Quantidade de Frame par 4x4[Dx8's]

Mensagem por guifs Seg 02 Set 2013, 09:53

Bom to sem tempo para explicar mais vou deixar como mudar,deposi é só vocês compararem.

Substituir a Public Sub DrawPlayer por:

Código:
Public Sub DrawPlayer(ByVal Index As Long)
Dim Anim As Byte, I As Long, X As Long, y As Long
Dim Sprite As Long, spritetop As Long
Dim Rec As RECT
Dim attackspeed As Long, slashon As Boolean
    
    ' If debug mode, handle error then exit out
    If Options.Debug = 1 Then On Error GoTo ErrorHandler

    Sprite = GetPlayerSprite(Index)

    If Sprite < 1 Or Sprite > NumCharacters Then Exit Sub

    ' speed from weapon
    If GetPlayerEquipment(Index, Weapon) > 0 Then
        attackspeed = Item(GetPlayerEquipment(Index, Weapon)).speed
    Else
        attackspeed = 1000
    End If
    
    If Not isAnimated(GetPlayerSprite(Index)) Then
        ' Reset frame
        Anim = 1
        
        ' Check for attacking animation
        If TempPlayer(Index).AttackTimer + (attackspeed / 2) > GetTickCount Then
            If TempPlayer(Index).Attacking = 1 Then
                slashon = True
                Anim = 3
            End If
        Else
            ' If not attacking, walk normally
            Select Case GetPlayerDir(Index)
                Case DIR_UP
                    If (TempPlayer(Index).yOffset > Then Anim = TempPlayer(Index).Step
                Case DIR_DOWN
                    If (TempPlayer(Index).yOffset < -8) Then Anim = TempPlayer(Index).Step
                Case DIR_LEFT
                    If (TempPlayer(Index).xOffset > Then Anim = TempPlayer(Index).Step
                Case DIR_RIGHT
                    If (TempPlayer(Index).xOffset < -8) Then Anim = TempPlayer(Index).Step
            End Select
        End If
    Else
        If TempPlayer(Index).AttackTimer + (attackspeed / 2) > GetTickCount Then
            If TempPlayer(Index).Attacking = 1 Then
                slashon = True
            End If
        End If
        
        If TempPlayer(Index).AnimTimer + 100 <= GetTickCount Then
            TempPlayer(Index).Anim = TempPlayer(Index).Anim + 1
            If TempPlayer(Index).Anim >= 2 Then TempPlayer(Index).Anim = 0
            TempPlayer(Index).AnimTimer = GetTickCount
        End If
        Anim = TempPlayer(Index).Anim
    End If

    ' Check to see if we want to stop making him attack
    With TempPlayer(Index)
        If .AttackTimer + attackspeed < GetTickCount Then
            .Attacking = 0
            .AttackTimer = 0
        End If
    End With

    ' Set the left
    Select Case GetPlayerDir(Index)
        Case DIR_UP
            spritetop = 3
        Case DIR_RIGHT
            spritetop = 2
        Case DIR_DOWN
            spritetop = 0
        Case DIR_LEFT
            spritetop = 1
    End Select

    With Rec
        .Top = spritetop * (Tex_Character(Sprite).height / 4)
        .Bottom = .Top + (Tex_Character(Sprite).height / 4)
        .Left = Anim * (Tex_Character(Sprite).width / 4)
        .Right = .Left + (Tex_Character(Sprite).width / 4)
    End With

    ' Calculate the X
    X = GetPlayerX(Index) * PIC_X + TempPlayer(Index).xOffset - ((Tex_Character(Sprite).width / 3 - 32) / 2)

    ' Is the player's height more than 32..?
    If (Tex_Character(Sprite).height) > 32 Then
        ' Create a 32 pixel offset for larger sprites
        y = GetPlayerY(Index) * PIC_Y + TempPlayer(Index).yOffset - ((Tex_Character(Sprite).height / 4) - 32)
    Else
        ' Proceed as normal
        y = GetPlayerY(Index) * PIC_Y + TempPlayer(Index).yOffset
    End If
    
    ' render player shadow
    Call DrawShadow(Sprite, X, y + 5)
    
    ' render the actual sprite
    If GetTickCount > TempPlayer(Index).StartFlash Then
        Call DrawSprite(Sprite, X, y, Rec)
        TempPlayer(Index).StartFlash = 0
    Else
        Call DrawSprite(Sprite, X, y, Rec, , , , , True)
    End If
    
    If GetPlayerEquipment(Index, Helmet) Then
        If Item(GetPlayerEquipment(Index, Helmet)).Paperdoll > 0 Then
            If Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width > Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height Then
                Select Case GetPlayerDir(Index)
                    Case DIR_UP
                        RenderTexture Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll), ConvertMapX((X + ((Tex_Character(Sprite).width / 3) / 2)) - (Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 6)), ConvertMapY((y + ((Tex_Character(Sprite).height / 4) / 2)) - (Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height / 2)), 0, 0, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 3, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 3, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height, D3DColorARGB(255 - Item(GetPlayerEquipment(Index, Helmet)).a, 255 - Item(GetPlayerEquipment(Index, Helmet)).R, 255 - Item(GetPlayerEquipment(Index, Helmet)).G, 255 - Item(GetPlayerEquipment(Index, Helmet)).B)
                    Case DIR_LEFT
                        RenderTexture Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll), ConvertMapX((X + ((Tex_Character(Sprite).width / 3) / 2)) - (Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 6)), ConvertMapY((y + ((Tex_Character(Sprite).height / 4) / 2)) - (Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height / 2)), 2 * (Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 3), 0, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 3, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 3, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height, D3DColorARGB(255 - Item(GetPlayerEquipment(Index, Helmet)).a, 255 - Item(GetPlayerEquipment(Index, Helmet)).R, 255 - Item(GetPlayerEquipment(Index, Helmet)).G, 255 - Item(GetPlayerEquipment(Index, Helmet)).B)
                        ' render the actual sprite
                        If GetTickCount > TempPlayer(Index).StartFlash Then
                            Call DrawSprite(Sprite, X, y, Rec)
                            TempPlayer(Index).StartFlash = 0
                        Else
                            Call DrawSprite(Sprite, X, y, Rec, , , , , True)
                        End If
                    Case DIR_RIGHT
                        RenderTexture Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll), ConvertMapX((X + ((Tex_Character(Sprite).width / 3) / 2)) - (Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 6)), ConvertMapY((y + ((Tex_Character(Sprite).height / 4) / 2)) - (Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height / 2)), Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 3, 0, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 3, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 3, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height, D3DColorARGB(255 - Item(GetPlayerEquipment(Index, Helmet)).a, 255 - Item(GetPlayerEquipment(Index, Helmet)).R, 255 - Item(GetPlayerEquipment(Index, Helmet)).G, 255 - Item(GetPlayerEquipment(Index, Helmet)).B)
                        ' render the actual sprite
                        If GetTickCount > TempPlayer(Index).StartFlash Then
                            Call DrawSprite(Sprite, X, y, Rec)
                            TempPlayer(Index).StartFlash = 0
                        Else
                            Call DrawSprite(Sprite, X, y, Rec, , , , , True)
                        End If
                    Case DIR_DOWN
                        RenderTexture Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll), ConvertMapX((X + ((Tex_Character(Sprite).width / 3) / 2)) - (Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 6)), ConvertMapY((y + ((Tex_Character(Sprite).height / 4) / 2)) - (Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height / 2)), 0, 0, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 3, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 3, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height, D3DColorARGB(255 - Item(GetPlayerEquipment(Index, Helmet)).a, 255 - Item(GetPlayerEquipment(Index, Helmet)).R, 255 - Item(GetPlayerEquipment(Index, Helmet)).G, 255 - Item(GetPlayerEquipment(Index, Helmet)).B)
                        ' render the actual sprite
                        If GetTickCount > TempPlayer(Index).StartFlash Then
                            Call DrawSprite(Sprite, X, y, Rec)
                            TempPlayer(Index).StartFlash = 0
                        Else
                            Call DrawSprite(Sprite, X, y, Rec, , , , , True)
                        End If
                End Select
            Else
                RenderTexture Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll), ConvertMapX((X + ((Tex_Character(Sprite).width / 3) / 2)) - (Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width / 2)), ConvertMapY((y + ((Tex_Character(Sprite).height / 4) / 2)) - (Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height / 2)), 0, 0, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).width, Tex_Aura(Item(GetPlayerEquipment(Index, Helmet)).Paperdoll).height, D3DColorARGB(255 - Item(GetPlayerEquipment(Index, Helmet)).a, 255 - Item(GetPlayerEquipment(Index, Helmet)).R, 255 - Item(GetPlayerEquipment(Index, Helmet)).G, 255 - Item(GetPlayerEquipment(Index, Helmet)).B)
                ' render the actual sprite
                If GetTickCount > TempPlayer(Index).StartFlash Then
                    Call DrawSprite(Sprite, X, y, Rec)
                    TempPlayer(Index).StartFlash = 0
                Else
                    Call DrawSprite(Sprite, X, y, Rec, , , , , True)
                End If
            End If
        End If
    End If


    If slashon Then Call DrawSlash(X, y, Index)
    
    ' Error handler
    Exit Sub
ErrorHandler:
    HandleError "DrawPlayer", "modGraphics", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Sub
End Sub
Créditos eu.
Depois de fazer o tutorial oq vai acontecer? Sua engine que antes só lia 3 frames mai ler sprites normal de 4 frames.

obs:esse é o da prospekt,nunca mechi em Eo 3.0,mais deve ser a mesma coisa

Antes:
[Tutorial]Mudando Quantidade de Frame par 4x4[Dx8's] WunONp1

Depois:
[Tutorial]Mudando Quantidade de Frame par 4x4[Dx8's] KfsnUDZ


Última edição por guifs em Seg 02 Set 2013, 11:33, editado 1 vez(es)
guifs
guifs
Membro Vitalicio
Membro Vitalicio

Mensagens : 561

Ir para o topo Ir para baixo

[Tutorial]Mudando Quantidade de Frame par 4x4[Dx8's] Empty Re: [Tutorial]Mudando Quantidade de Frame par 4x4[Dx8's]

Mensagem por Ian Seg 02 Set 2013, 10:29

não testei mais deve funcionar e,e

por que não coloca uma imagem de exemplo ?
Ian
Ian
Membro Veterano
Membro Veterano

Mensagens : 1238

Ir para o topo Ir para baixo

[Tutorial]Mudando Quantidade de Frame par 4x4[Dx8's] Empty Re: [Tutorial]Mudando Quantidade de Frame par 4x4[Dx8's]

Mensagem por guifs Seg 02 Set 2013, 11:33

Pronto
guifs
guifs
Membro Vitalicio
Membro Vitalicio

Mensagens : 561

Ir para o topo Ir para baixo

[Tutorial]Mudando Quantidade de Frame par 4x4[Dx8's] Empty Re: [Tutorial]Mudando Quantidade de Frame par 4x4[Dx8's]

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

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