Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Private Sub CharRender(ByVal charindex As Integer, ByVal PixelOffSetX As Integer, ByVal PixelOffSetY As Integer, ByRef Light() As Long)
- Dim Moved As Boolean
- Dim PartyIndexTrue As Boolean
- Dim ColorClan(0 To 3) As Long
- Dim Color(0 To 3) As Long
- Dim MismoChar As Boolean
- With CharList(charindex)
- If .Moving Then
- 'If needed, move left and right
- If .scrollDirectionX <> 0 Then
- .MoveOffsetX = .MoveOffsetX + ScrollPixelFrame * Sgn(.scrollDirectionX) * timerTicksPerFrame
- 'Start animations
- If .Body.Walk(.Heading).Speed > 0 Then .Body.Walk(.Heading).Started = 1
- .Alas.Walk(.Heading).Started = 1
- .Arma.WeaponWalk(.Heading).Started = 1
- .Escudo.ShieldWalk(.Heading).Started = 1
- Moved = True
- .AnimTime = 10
- 'Check if we already got there
- If (Sgn(.scrollDirectionX) = 1 And .MoveOffsetX >= 0) Or (Sgn(.scrollDirectionX) = -1 And .MoveOffsetX <= 0) Then
- .MoveOffsetX = 0
- .scrollDirectionX = 0
- End If
- End If
- 'If needed, move up and down
- If .scrollDirectionY <> 0 Then
- .MoveOffsetY = .MoveOffsetY + ScrollPixelFrame * Sgn(.scrollDirectionY) * timerTicksPerFrame
- 'Start animations
- If .Body.Walk(.Heading).Speed > 0 Then .Body.Walk(.Heading).Started = 1
- .Alas.Walk(.Heading).Started = 1
- .Arma.WeaponWalk(.Heading).Started = 1
- .Escudo.ShieldWalk(.Heading).Started = 1
- Moved = True
- .AnimTime = 10
- If (Sgn(.scrollDirectionY) = 1 And .MoveOffsetY >= 0) Or (Sgn(.scrollDirectionY) = -1 And .MoveOffsetY <= 0) Then
- .MoveOffsetY = 0
- .scrollDirectionY = 0
- End If
- End If
- End If
- If .Heading = 0 Then .Heading = 3
- If Moved = 0 Then
- 'Stop animations
- If .AnimTime = 0 Then
- .Moving = 0
- .Body.Walk(.Heading).FrameCounter = 1
- .Body.Walk(.Heading).Started = 0
- .Alas.Walk(.Heading).FrameCounter = 1
- .Alas.Walk(.Heading).Started = 0
- '[ANIM ATAK]
- If .Arma.WeaponAttack > 0 Then
- .Arma.WeaponAttack = .Arma.WeaponAttack - 0.2
- If .Arma.WeaponAttack <= 0 Then
- .Arma.WeaponWalk(.Heading).Started = 0
- .Arma.WeaponWalk(.Heading).FrameCounter = 1
- End If
- Else
- .Arma.WeaponWalk(.Heading).FrameCounter = 1
- .Arma.WeaponWalk(.Heading).Started = 0
- End If
- '[/ANIM ATAK]
- '[ANIM ESCUDO]
- If .Escudo.ShieldAttack > 0 Then
- .Escudo.ShieldAttack = .Escudo.ShieldAttack - 0.2
- If .Escudo.ShieldAttack <= 0 Then
- .Escudo.ShieldWalk(.Heading).Started = 0
- .Escudo.ShieldWalk(.Heading).FrameCounter = 1
- End If
- Else
- .Escudo.ShieldWalk(.Heading).FrameCounter = 1
- .Escudo.ShieldWalk(.Heading).Started = 0
- End If
- Else
- .AnimTime = .AnimTime - 1
- End If
- End If
- PixelOffSetX = PixelOffSetX + .MoveOffsetX
- PixelOffSetY = PixelOffSetY + .MoveOffsetY
- Velocidad = 0.5
- MismoChar = (UserCharIndex = charindex)
- If Not .Invisible Or MismoClan(charindex) Or MismoChar Or MismaParty(charindex) Or EsGm(UserCharIndex) Then
- If MismoChar Then
- If CharList(UserCharIndex).PartyIndex > 0 And CharList(UserCharIndex).Invisible Then
- PartyIndexTrue = True
- End If
- Else
- PartyIndexTrue = MismaParty(charindex, True)
- End If
- '[MaTeO 9]
- If .Heading = E_Heading.SOUTH Then
- If .Alas.Walk(.Heading).GrhIndex <> 0 Then
- Call DrawGrhtoSurface(.Alas.Walk(.Heading), PixelOffSetX + .Body.HeadOffset.x, PixelOffSetY + .Body.HeadOffset.y + 35, 1, 1, _
- White, 0)
- End If
- End If
- '[CUERPO]'
- Call DrawGrhtoSurface(.Body.Walk(.Heading), PixelOffSetX, PixelOffSetY, 1, 1, White, 0)
- '[CABEZA]'
- Call DrawGrhtoSurface(.Head.Head(.Heading), PixelOffSetX + .Body.HeadOffset.x, PixelOffSetY + .Body.HeadOffset.y, 1, 0, White)
- '[Casco]'
- If .Casco.Head(.Heading).GrhIndex <> 0 Then
- Call DrawGrhtoSurface(.Casco.Head(.Heading), PixelOffSetX + .Body.HeadOffset.x, PixelOffSetY + .Body.HeadOffset.y, 1, 0, White)
- End If
- '[MaTeO 9]
- If .Heading <> E_Heading.SOUTH Then
- If .Alas.Walk(.Heading).GrhIndex <> 0 Then
- Call DrawGrhtoSurface(.Alas.Walk(.Heading), PixelOffSetX + .Body.HeadOffset.x, PixelOffSetY + .Body.HeadOffset.y + IIf(.Heading _
- = E_Heading.NORTH, 35, 35), 1, 1, White, 0) 'El primer 25, es cuando esta mirando para arriba, el siguiente 20 es cuando esta mirando para izquierda o derecha ΒΏTa?, anda cambiando el "20"
- End If
- End If
- '[ARMA]'
- Dim xx As Integer
- If .Arma.WeaponWalk(.Heading).GrhIndex <> 0 Then
- If .Body.HeadOffset.y = -69 Then
- xx = 31
- ElseIf .Body.HeadOffset.y = -94 Then
- xx = 59
- ElseIf .Body.HeadOffset.y = -78 Then
- xx = 42
- ElseIf .Body.HeadOffset.y = -75 Then
- xx = 37
- ElseIf .Body.HeadOffset.y = -55 Then
- xx = 21
- ElseIf .Body.HeadOffset.y = -83 Then
- xx = 45
- ElseIf .Body.HeadOffset.y = -65 Then
- xx = 27
- ElseIf .Body.HeadOffset.y = -60 Then
- xx = 22
- ElseIf .Body.HeadOffset.y = -95 Then
- xx = 60
- ElseIf .Body.HeadOffset.y = -48 Then
- xx = 14
- ElseIf .Body.HeadOffset.y = -68 Then
- xx = 30
- ElseIf .Body.HeadOffset.y = -120 Then
- xx = 85
- ElseIf .Body.HeadOffset.y = -72 Then
- xx = 34
- ElseIf .Body.HeadOffset.y = -52 Then
- xx = 18
- ElseIf .Body.HeadOffset.y = -80 Then
- xx = 44
- ElseIf .Body.HeadOffset.y = -88 Then
- xx = 52
- ElseIf .Body.HeadOffset.y = -90 Then
- xx = 54
- ElseIf .Body.HeadOffset.y = -38 Then
- xx = 4
- ElseIf .Body.HeadOffset.y = -50 Then
- xx = 16
- ElseIf .Body.HeadOffset.y = -68 Then
- xx = 30
- Else
- xx = 0
- End If
- Call DrawGrhtoSurface(.Arma.WeaponWalk(.Heading), PixelOffSetX, PixelOffSetY - xx, 1, 1, White, 0)
- End If
- '[Escudo]'
- If .Escudo.ShieldWalk(.Heading).GrhIndex <> 0 Then
- If .Body.HeadOffset.y = -69 Then
- xx = 31
- ElseIf .Body.HeadOffset.y = -94 Then
- xx = 59
- ElseIf .Body.HeadOffset.y = -78 Then
- xx = 40
- ElseIf .Body.HeadOffset.y = -75 Then
- xx = 37
- ElseIf .Body.HeadOffset.y = -55 Then
- xx = 21
- ElseIf .Body.HeadOffset.y = -83 Then
- xx = 45
- ElseIf .Body.HeadOffset.y = -65 Then
- xx = 27
- ElseIf .Body.HeadOffset.y = -60 Then
- xx = 22
- ElseIf .Body.HeadOffset.y = -95 Then
- xx = 60
- ElseIf .Body.HeadOffset.y = -48 Then
- xx = 14
- ElseIf .Body.HeadOffset.y = -120 Then
- xx = 85
- ElseIf .Body.HeadOffset.y = -68 Then
- xx = 30
- ElseIf .Body.HeadOffset.y = -72 Then
- xx = 34
- ElseIf .Body.HeadOffset.y = -52 Then
- xx = 18
- ElseIf .Body.HeadOffset.y = -80 Then
- xx = 44
- ElseIf .Body.HeadOffset.y = -88 Then
- xx = 52
- ElseIf .Body.HeadOffset.y = -90 Then
- xx = 54
- ElseIf .Body.HeadOffset.y = -38 Then
- xx = 4
- ElseIf .Body.HeadOffset.y = -50 Then
- xx = 16
- ElseIf .Body.HeadOffset.y = -68 Then
- xx = 30
- Else
- xx = 0
- End If
- Call DrawGrhtoSurface(.Escudo.ShieldWalk(.Heading), PixelOffSetX, PixelOffSetY - xx, 1, 1, White, 0)
- End If
- If PartyIndexTrue Then
- If .Calculo > 0 Then
- Draw_Box PixelOffSetX, PixelOffSetY + 32, 45 + PixelOffSetX, PixelOffSetY + 28, Red
- Draw_Box PixelOffSetX, PixelOffSetY + 32, ((.Calculo / 100) * 45) + PixelOffSetX, PixelOffSetY + 28, Green
- End If
- End If
- If Nombres Then
- If Len(.Nombre) <> 0 Then
- Dim lCenter As Long
- Dim lCenterClan As Long
- If InStr(.Nombre, "<") > 0 And InStr(.Nombre, ">") > 0 Then
- Dim Line As String
- Line = Left$(.Nombre, InStr(.Nombre, "<") - 1)
- lCenter = (Text_GetWidth(UCase$(Line)) * 0.45) - cfonts.RowPitch + 4
- Dim sClan As String
- sClan = mid$(.Nombre, InStr(.Nombre, "<"))
- lCenterClan = (Text_GetWidth(UCase$(sClan)) * 0.5) - cfonts.RowPitch + 4
- If .Criminal = 1 Then
- 'ColorClan = RGB(255, 0, 0)
- ColorToArray ColorClan, CaosClan
- ElseIf .Criminal = 2 Then
- 'ColorClan = RGB(0, 255, 0)
- ColorToArray ColorClan, Caos
- ElseIf .Criminal = 3 Then
- 'ColorClan = RGB(0, 255, 0)
- ColorToArray ColorClan, White
- ElseIf .Criminal = 4 Then
- 'ColorClan = RGB(0, 255, 0)
- ColorToArray ColorClan, Real
- ElseIf .Criminal = 5 Then
- 'ColorClan = RGB(150, 150, 150)
- ColorToArray ColorClan, Tini
- Else
- 'ColorClan = RGB(0, 128, 255)
- ColorToArray ColorClan, RealClan
- End If
- If PartyIndexTrue Then
- 'ColorClan = RGB(0, 255, 0)
- ColorToArray ColorClan, Green
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, ColorClan)
- Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, ColorClan)
- Else
- Select Case .priv
- Case 0
- If .Invisible = True Then
- If .Criminal = 1 Then
- ElseIf .Criminal = 1 Then
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, CaosClan)
- ElseIf .Criminal = 2 Then
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Caos)
- ElseIf .Criminal = 3 Then
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, White)
- ElseIf .Criminal = 4 Then
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Real)
- ElseIf .Criminal = 5 Then
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Tini)
- Else
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, RealClan)
- End If
- Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, VerdeF)
- ElseIf .Criminal = 1 Then ' Crimi comun
- longToArray Color, ColoresPJ(50)
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Caos)
- Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, CaosClan)
- ElseIf .Criminal = 2 Then ' Templario
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Caos)
- Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, CaosClan)
- ElseIf .Criminal = 3 Then ' Templario
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, White)
- Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, RealClan)
- ElseIf .Criminal = 4 Then ' Clero
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Real)
- Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, RealClan)
- ElseIf .Criminal = 5 Then ' Namesis
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Tini)
- Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, CaosClan)
- Else
- longToArray Color, ColoresPJ(49)
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Real)
- Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, RealClan)
- End If
- Case 25 'admin
- longToArray ColorClan, D3DColorXRGB(255, 128, 64)
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, ColorClan)
- Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 45, sClan, ColorClan)
- Case Else 'el resto
- longToArray Color, ColoresPJ(.priv)
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Color)
- longToArray ColorClan, D3DColorXRGB(255, 128, 64)
- Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, ColorClan)
- End Select
- End If
- Else
- lCenter = (Text_GetWidth(UCase$(.Nombre)) * 0.45) - cfonts.RowPitch + 4
- If PartyIndexTrue Then
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Green)
- Else
- Select Case .priv
- Case 0
- If .Invisible = True Then
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, VerdeF)
- ElseIf .Criminal = 1 Then ' Crimi comun
- longToArray Color, ColoresPJ(50)
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, CaosClan)
- ElseIf .Criminal = 2 Then ' Caos
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Caos)
- ElseIf .Criminal = 3 Then ' Templario
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, White)
- ElseIf .Criminal = 4 Then ' Real
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Real)
- ElseIf .Criminal = 5 Then ' Namesis
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Tini)
- Else
- longToArray Color, ColoresPJ(49)
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, RealClan)
- End If
- Case 7
- longToArray Color, ColoresPJ(7)
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Color)
- Case Else
- longToArray Color, ColoresPJ(.priv)
- Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Color)
- End Select
- End If
- End If
- End If
- End If
- End If
- Velocidad = 1
- 'particulas para meditar
- Dim i As Long
- If .Particle_Count > 0 Then
- For i = 1 To .Particle_Count
- If .Particle_Group(i) > 0 Then
- Call Particle_Group_Render(.Particle_Group(i), PixelOffSetX, PixelOffSetY)
- End If
- Next i
- End If
- Call Dialogos.UpdateDialogPos(PixelOffSetX + .Body.HeadOffset.x, PixelOffSetY + .Body.HeadOffset.y, charindex)
- 'BlitFX (TM)
- If .FxIndex <> 0 Then
- If AoSetup.bTransparencia = 0 Then
- Call DrawGrhtoSurface(.Fx, PixelOffSetX + FxData(.FxIndex).OffsetX, PixelOffSetY + FxData(.FxIndex).OffsetY, 1, 1, White, 1, 0, 1)
- Else
- Call DrawGrhtoSurface(.Fx, PixelOffSetX + FxData(.FxIndex).OffsetX, PixelOffSetY + FxData(.FxIndex).OffsetY, 1, 1, White, 1)
- End If
- 'Check if animation is over
- If .Fx.Started = 0 Then .FxIndex = 0
- End If
- End With
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement