por Profane ~ Sex Ago 14, 2015 1:59 am
Olá, vou dar a luz de como fazer esta mudança.
Primeiramente será necessário o uso do Visual Basic, é a ide de programação do Eclipse. Essa parte toda é do Client.
No modulo de gráficos , dependendo da sua Engine (Sendo Dx7 ou Dx8), procure por btlPlayer ou DrawPlayer. Essa "região" cuida de fazer com que o Jogador seja "emulado" em sua tela.
Nesta fuction, procure por :
- Código:
'Check for attacking animation
If Player(Index).AttackTimer + (attackspeed / 2) > GetTickCount Then
If Player(Index).Attacking = 1 Then
If VXFRAME = False Then
anim = 3
Else
anim = 2
End If
End If
Else
Isso demonstra que, ao apertar control (Player entrando na animação de combate) Sair do Estado atual para a Anim = 2, ou 3, depende de sua sprite ou se marco como base no VX.
É necessário entender como se faz uma Sprite, para que você projete as dimensões corretamente. +32x32? +64x32? ; Depende da sua base.
Fazendo o aumento da Sprite (Aumentando o Número de Quadros, ou Editando a Base que tens); edite o numero da Anim, ou se souber poderá adicionar mais dela usando um delay para que ele faça a mudança de vários quadros como por exemplo 4 , 5 , 6 ... 99 ... fazendo o golpe parecar cada vez mais realista.
Lembrando que caso aumente o número de quadros é necessário ajusta-lo na mesma function (DrawPlayer ou BtlPlayer); Nas linhas :
- Código:
With rec
.Top = spritetop * (Tex_Character(Sprite).Height / 4)
.Bottom = .Top + (Tex_Character(Sprite).Height / 4)
If VXFRAME = False Then
.Left = anim * (Tex_Character(Sprite).Width / 4)
.Right = .Left + (Tex_Character(Sprite).Width / 4)
Else
.Left = anim * (Tex_Character(Sprite).Width / 9)
.Right = .Left + (Tex_Character(Sprite).Width / 9)
End If
End With
E também..
- Código:
' 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 + Player(Index).yOffset - ((Tex_Character(Sprite).Height / 4) - 32)
Else
' Proceed as normal
y = GetPlayerY(Index) * PIC_Y + Player(Index).yOffset
End If
Antes de fazer tais adições e manípulamentos, procure estudar um pouco a renderização. Fazer uma adição de quadros para muitas sprites é algo trabalhoso.. na parte gráfica. Lembrando que para que o paperdoll funcione com perfeição é necessário que você vá na Function que cuida de renderizar o Paperdoll e também adicionar as mesmas mudanças para que o mesmo acompanhe o Player.
Espero ter ajudado.
Att