Advertisement
Guest User

Untitled

a guest
Sep 9th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VBScript 21.05 KB | None | 0 0
  1. Private Sub CharRender(ByVal charindex As Integer, ByVal PixelOffSetX As Integer, ByVal PixelOffSetY As Integer, ByRef Light() As Long)
  2.                        
  3.     Dim Moved             As Boolean
  4.     Dim PartyIndexTrue    As Boolean
  5.     Dim ColorClan(0 To 3) As Long
  6.     Dim Color(0 To 3)     As Long
  7.     Dim MismoChar         As Boolean
  8.  
  9.     With CharList(charindex)
  10.  
  11.         If .Moving Then
  12.                  
  13.             'If needed, move left and right
  14.            If .scrollDirectionX <> 0 Then
  15.            
  16.                 .MoveOffsetX = .MoveOffsetX + ScrollPixelFrame * Sgn(.scrollDirectionX) * timerTicksPerFrame
  17.  
  18.                 'Start animations
  19.                If .Body.Walk(.Heading).Speed > 0 Then .Body.Walk(.Heading).Started = 1
  20.                
  21.                 .Alas.Walk(.Heading).Started = 1
  22.                 .Arma.WeaponWalk(.Heading).Started = 1
  23.                 .Escudo.ShieldWalk(.Heading).Started = 1
  24.            
  25.                 Moved = True
  26.                 .AnimTime = 10
  27.                
  28.                 'Check if we already got there
  29.                If (Sgn(.scrollDirectionX) = 1 And .MoveOffsetX >= 0) Or (Sgn(.scrollDirectionX) = -1 And .MoveOffsetX <= 0) Then
  30.                     .MoveOffsetX = 0
  31.                     .scrollDirectionX = 0
  32.  
  33.                 End If
  34.  
  35.             End If
  36.  
  37.             'If needed, move up and down
  38.            If .scrollDirectionY <> 0 Then
  39.                 .MoveOffsetY = .MoveOffsetY + ScrollPixelFrame * Sgn(.scrollDirectionY) * timerTicksPerFrame
  40.                  
  41.                 'Start animations
  42.                If .Body.Walk(.Heading).Speed > 0 Then .Body.Walk(.Heading).Started = 1
  43.                 .Alas.Walk(.Heading).Started = 1
  44.                 .Arma.WeaponWalk(.Heading).Started = 1
  45.                 .Escudo.ShieldWalk(.Heading).Started = 1
  46.              
  47.                 Moved = True
  48.                 .AnimTime = 10
  49.                
  50.                 If (Sgn(.scrollDirectionY) = 1 And .MoveOffsetY >= 0) Or (Sgn(.scrollDirectionY) = -1 And .MoveOffsetY <= 0) Then
  51.                     .MoveOffsetY = 0
  52.                     .scrollDirectionY = 0
  53.  
  54.                 End If
  55.                
  56.             End If
  57.  
  58.         End If
  59.  
  60.         If .Heading = 0 Then .Heading = 3
  61.  
  62.         If Moved = 0 Then
  63.  
  64.             'Stop animations
  65.            If .AnimTime = 0 Then
  66.                 .Moving = 0
  67.                            
  68.                 .Body.Walk(.Heading).FrameCounter = 1
  69.                 .Body.Walk(.Heading).Started = 0
  70.                            
  71.                 .Alas.Walk(.Heading).FrameCounter = 1
  72.                 .Alas.Walk(.Heading).Started = 0
  73.  
  74.                 '[ANIM ATAK]
  75.                If .Arma.WeaponAttack > 0 Then
  76.                     .Arma.WeaponAttack = .Arma.WeaponAttack - 0.2
  77.  
  78.                     If .Arma.WeaponAttack <= 0 Then
  79.                         .Arma.WeaponWalk(.Heading).Started = 0
  80.                         .Arma.WeaponWalk(.Heading).FrameCounter = 1
  81.  
  82.                     End If
  83.  
  84.                 Else
  85.                     .Arma.WeaponWalk(.Heading).FrameCounter = 1
  86.                     .Arma.WeaponWalk(.Heading).Started = 0
  87.  
  88.                 End If
  89.  
  90.                 '[/ANIM ATAK]
  91.                '[ANIM ESCUDO]
  92.                If .Escudo.ShieldAttack > 0 Then
  93.                     .Escudo.ShieldAttack = .Escudo.ShieldAttack - 0.2
  94.  
  95.                     If .Escudo.ShieldAttack <= 0 Then
  96.                         .Escudo.ShieldWalk(.Heading).Started = 0
  97.                         .Escudo.ShieldWalk(.Heading).FrameCounter = 1
  98.  
  99.                     End If
  100.  
  101.                 Else
  102.                     .Escudo.ShieldWalk(.Heading).FrameCounter = 1
  103.                     .Escudo.ShieldWalk(.Heading).Started = 0
  104.  
  105.                 End If
  106.  
  107.             Else
  108.                 .AnimTime = .AnimTime - 1
  109.  
  110.             End If
  111.  
  112.         End If
  113.  
  114.         PixelOffSetX = PixelOffSetX + .MoveOffsetX
  115.         PixelOffSetY = PixelOffSetY + .MoveOffsetY
  116.        
  117.         Velocidad = 0.5
  118.         MismoChar = (UserCharIndex = charindex)
  119.  
  120.         If Not .Invisible Or MismoClan(charindex) Or MismoChar Or MismaParty(charindex) Or EsGm(UserCharIndex) Then
  121.              
  122.             If MismoChar Then
  123.                 If CharList(UserCharIndex).PartyIndex > 0 And CharList(UserCharIndex).Invisible Then
  124.                     PartyIndexTrue = True
  125.  
  126.                 End If
  127.  
  128.             Else
  129.                 PartyIndexTrue = MismaParty(charindex, True)
  130.  
  131.             End If
  132.  
  133.             '[MaTeO 9]
  134.            If .Heading = E_Heading.SOUTH Then
  135.                 If .Alas.Walk(.Heading).GrhIndex <> 0 Then
  136.                     Call DrawGrhtoSurface(.Alas.Walk(.Heading), PixelOffSetX + .Body.HeadOffset.x, PixelOffSetY + .Body.HeadOffset.y + 35, 1, 1, _
  137.                         White, 0)
  138.  
  139.                 End If
  140.  
  141.             End If
  142.              
  143.             '[CUERPO]'
  144.            Call DrawGrhtoSurface(.Body.Walk(.Heading), PixelOffSetX, PixelOffSetY, 1, 1, White, 0)
  145.                        
  146.             '[CABEZA]'
  147.            Call DrawGrhtoSurface(.Head.Head(.Heading), PixelOffSetX + .Body.HeadOffset.x, PixelOffSetY + .Body.HeadOffset.y, 1, 0, White)
  148.  
  149.             '[Casco]'
  150.            If .Casco.Head(.Heading).GrhIndex <> 0 Then
  151.                 Call DrawGrhtoSurface(.Casco.Head(.Heading), PixelOffSetX + .Body.HeadOffset.x, PixelOffSetY + .Body.HeadOffset.y, 1, 0, White)
  152.  
  153.             End If
  154.                    
  155.             '[MaTeO 9]
  156.            If .Heading <> E_Heading.SOUTH Then
  157.                 If .Alas.Walk(.Heading).GrhIndex <> 0 Then
  158.                     Call DrawGrhtoSurface(.Alas.Walk(.Heading), PixelOffSetX + .Body.HeadOffset.x, PixelOffSetY + .Body.HeadOffset.y + IIf(.Heading _
  159.                         = 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"
  160.  
  161.                 End If
  162.  
  163.             End If
  164.  
  165.             '[ARMA]'
  166.            Dim xx As Integer
  167.  
  168.             If .Arma.WeaponWalk(.Heading).GrhIndex <> 0 Then
  169.                 If .Body.HeadOffset.y = -69 Then
  170.                     xx = 31
  171.                 ElseIf .Body.HeadOffset.y = -94 Then
  172.                     xx = 59
  173.                 ElseIf .Body.HeadOffset.y = -78 Then
  174.                     xx = 42
  175.                 ElseIf .Body.HeadOffset.y = -75 Then
  176.                     xx = 37
  177.                 ElseIf .Body.HeadOffset.y = -55 Then
  178.                     xx = 21
  179.                 ElseIf .Body.HeadOffset.y = -83 Then
  180.                     xx = 45
  181.                 ElseIf .Body.HeadOffset.y = -65 Then
  182.                     xx = 27
  183.                 ElseIf .Body.HeadOffset.y = -60 Then
  184.                     xx = 22
  185.                 ElseIf .Body.HeadOffset.y = -95 Then
  186.                     xx = 60
  187.                 ElseIf .Body.HeadOffset.y = -48 Then
  188.                     xx = 14
  189.                 ElseIf .Body.HeadOffset.y = -68 Then
  190.                     xx = 30
  191.                 ElseIf .Body.HeadOffset.y = -120 Then
  192.                     xx = 85
  193.                 ElseIf .Body.HeadOffset.y = -72 Then
  194.                     xx = 34
  195.                 ElseIf .Body.HeadOffset.y = -52 Then
  196.                     xx = 18
  197.                 ElseIf .Body.HeadOffset.y = -80 Then
  198.                     xx = 44
  199.                 ElseIf .Body.HeadOffset.y = -88 Then
  200.                     xx = 52
  201.                 ElseIf .Body.HeadOffset.y = -90 Then
  202.                     xx = 54
  203.                 ElseIf .Body.HeadOffset.y = -38 Then
  204.                     xx = 4
  205.                 ElseIf .Body.HeadOffset.y = -50 Then
  206.                     xx = 16
  207.                 ElseIf .Body.HeadOffset.y = -68 Then
  208.                     xx = 30
  209.                 Else
  210.                     xx = 0
  211.  
  212.                 End If
  213.  
  214.                 Call DrawGrhtoSurface(.Arma.WeaponWalk(.Heading), PixelOffSetX, PixelOffSetY - xx, 1, 1, White, 0)
  215.  
  216.             End If
  217.  
  218.             '[Escudo]'
  219.            If .Escudo.ShieldWalk(.Heading).GrhIndex <> 0 Then
  220.                 If .Body.HeadOffset.y = -69 Then
  221.                     xx = 31
  222.                 ElseIf .Body.HeadOffset.y = -94 Then
  223.                     xx = 59
  224.                 ElseIf .Body.HeadOffset.y = -78 Then
  225.                     xx = 40
  226.                 ElseIf .Body.HeadOffset.y = -75 Then
  227.                     xx = 37
  228.                 ElseIf .Body.HeadOffset.y = -55 Then
  229.                     xx = 21
  230.                 ElseIf .Body.HeadOffset.y = -83 Then
  231.                     xx = 45
  232.                 ElseIf .Body.HeadOffset.y = -65 Then
  233.                     xx = 27
  234.                 ElseIf .Body.HeadOffset.y = -60 Then
  235.                     xx = 22
  236.                 ElseIf .Body.HeadOffset.y = -95 Then
  237.                     xx = 60
  238.                 ElseIf .Body.HeadOffset.y = -48 Then
  239.                     xx = 14
  240.                 ElseIf .Body.HeadOffset.y = -120 Then
  241.                     xx = 85
  242.                 ElseIf .Body.HeadOffset.y = -68 Then
  243.                     xx = 30
  244.                 ElseIf .Body.HeadOffset.y = -72 Then
  245.                     xx = 34
  246.                 ElseIf .Body.HeadOffset.y = -52 Then
  247.                     xx = 18
  248.                 ElseIf .Body.HeadOffset.y = -80 Then
  249.                     xx = 44
  250.                 ElseIf .Body.HeadOffset.y = -88 Then
  251.                     xx = 52
  252.                 ElseIf .Body.HeadOffset.y = -90 Then
  253.                     xx = 54
  254.                 ElseIf .Body.HeadOffset.y = -38 Then
  255.                     xx = 4
  256.                 ElseIf .Body.HeadOffset.y = -50 Then
  257.                     xx = 16
  258.                 ElseIf .Body.HeadOffset.y = -68 Then
  259.                     xx = 30
  260.                 Else
  261.                     xx = 0
  262.  
  263.                 End If
  264.              
  265.                 Call DrawGrhtoSurface(.Escudo.ShieldWalk(.Heading), PixelOffSetX, PixelOffSetY - xx, 1, 1, White, 0)
  266.  
  267.             End If
  268.                                
  269.             If PartyIndexTrue Then
  270.                 If .Calculo > 0 Then
  271.                                        
  272.                     Draw_Box PixelOffSetX, PixelOffSetY + 32, 45 + PixelOffSetX, PixelOffSetY + 28, Red
  273.                     Draw_Box PixelOffSetX, PixelOffSetY + 32, ((.Calculo / 100) * 45) + PixelOffSetX, PixelOffSetY + 28, Green
  274.                                    
  275.                 End If
  276.  
  277.             End If
  278.  
  279.             If Nombres Then
  280.                 If Len(.Nombre) <> 0 Then
  281.                     Dim lCenter     As Long
  282.                     Dim lCenterClan As Long
  283.  
  284.                     If InStr(.Nombre, "<") > 0 And InStr(.Nombre, ">") > 0 Then
  285.                                        
  286.                         Dim Line As String
  287.                         Line = Left$(.Nombre, InStr(.Nombre, "<") - 1)
  288.                         lCenter = (Text_GetWidth(UCase$(Line)) * 0.45) - cfonts.RowPitch + 4
  289.                                            
  290.                         Dim sClan As String
  291.                         sClan = mid$(.Nombre, InStr(.Nombre, "<"))
  292.                         lCenterClan = (Text_GetWidth(UCase$(sClan)) * 0.5) - cfonts.RowPitch + 4
  293.  
  294.                         If .Criminal = 1 Then
  295.                             'ColorClan = RGB(255, 0, 0)
  296.                            ColorToArray ColorClan, CaosClan
  297.                            
  298.                         ElseIf .Criminal = 2 Then
  299.                             'ColorClan = RGB(0, 255, 0)
  300.                            ColorToArray ColorClan, Caos
  301.                            
  302.                         ElseIf .Criminal = 3 Then
  303.                             'ColorClan = RGB(0, 255, 0)
  304.                            ColorToArray ColorClan, White
  305.                        
  306.                         ElseIf .Criminal = 4 Then
  307.                             'ColorClan = RGB(0, 255, 0)
  308.                            ColorToArray ColorClan, Real
  309.                            
  310.                         ElseIf .Criminal = 5 Then
  311.                             'ColorClan = RGB(150, 150, 150)
  312.                            ColorToArray ColorClan, Tini
  313.                         Else
  314.                             'ColorClan = RGB(0, 128, 255)
  315.                            ColorToArray ColorClan, RealClan
  316.  
  317.                         End If
  318.                                  
  319.                         If PartyIndexTrue Then
  320.                             'ColorClan = RGB(0, 255, 0)
  321.                            ColorToArray ColorClan, Green
  322.                             Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, ColorClan)
  323.                             Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, ColorClan)
  324.                         Else
  325.  
  326.                             Select Case .priv
  327.  
  328.                                 Case 0
  329.  
  330.                                     If .Invisible = True Then
  331.                                        
  332.                                         If .Criminal = 1 Then
  333.                                         ElseIf .Criminal = 1 Then
  334.                                             Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, CaosClan)
  335.                                         ElseIf .Criminal = 2 Then
  336.                                             Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Caos)
  337.                                         ElseIf .Criminal = 3 Then
  338.                                             Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, White)
  339.                                         ElseIf .Criminal = 4 Then
  340.                                             Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Real)
  341.                                         ElseIf .Criminal = 5 Then
  342.                                             Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Tini)
  343.                                         Else
  344.                                             Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, RealClan)
  345.                                         End If
  346.                                        
  347.                                         Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, VerdeF)
  348.                                        
  349.                                     ElseIf .Criminal = 1 Then ' Crimi comun
  350.                                        longToArray Color, ColoresPJ(50)
  351.                                         Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Caos)
  352.                                         Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, CaosClan)
  353.                                        
  354.                                     ElseIf .Criminal = 2 Then ' Templario
  355.                                        Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Caos)
  356.                                         Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, CaosClan)
  357.                                        
  358.                                        
  359.                                     ElseIf .Criminal = 3 Then ' Templario
  360.                                        Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, White)
  361.                                         Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, RealClan)
  362.                                        
  363.                                     ElseIf .Criminal = 4 Then ' Clero
  364.                                        Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Real)
  365.                                         Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, RealClan)
  366.                                            
  367.                                        
  368.                                     ElseIf .Criminal = 5 Then ' Namesis
  369.                                        Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Tini)
  370.                                         Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, CaosClan)
  371.                                        
  372.                                     Else
  373.                                         longToArray Color, ColoresPJ(49)
  374.                                         Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Real)
  375.                                         Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, RealClan)
  376.  
  377.                                     End If
  378.  
  379.                                 Case 25  'admin
  380.                                    longToArray ColorClan, D3DColorXRGB(255, 128, 64)
  381.                                     Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, ColorClan)
  382.                                     Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 45, sClan, ColorClan)
  383.                                                        
  384.                                 Case Else 'el resto
  385.                                    longToArray Color, ColoresPJ(.priv)
  386.                                     Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, Line, Color)
  387.                                                        
  388.                                     longToArray ColorClan, D3DColorXRGB(255, 128, 64)
  389.                                     Call Text_Draw(PixelOffSetX - lCenterClan, PixelOffSetY + 40, sClan, ColorClan)
  390.  
  391.                             End Select
  392.  
  393.                         End If
  394.  
  395.                     Else
  396.  
  397.                         lCenter = (Text_GetWidth(UCase$(.Nombre)) * 0.45) - cfonts.RowPitch + 4
  398.  
  399.                         If PartyIndexTrue Then
  400.                             Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Green)
  401.                         Else
  402.  
  403.                             Select Case .priv
  404.  
  405.                                 Case 0
  406.  
  407.                                     If .Invisible = True Then
  408.                                         Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, VerdeF)
  409.                                     ElseIf .Criminal = 1 Then ' Crimi comun
  410.                                        longToArray Color, ColoresPJ(50)
  411.                                         Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, CaosClan)
  412.                                     ElseIf .Criminal = 2 Then ' Caos
  413.                                        Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Caos)
  414.                                     ElseIf .Criminal = 3 Then ' Templario
  415.                                        Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, White)
  416.                                    
  417.                                     ElseIf .Criminal = 4 Then ' Real
  418.                                        Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Real)
  419.                                                  
  420.                                     ElseIf .Criminal = 5 Then ' Namesis
  421.                                        Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Tini)
  422.                                                    
  423.                                     Else
  424.                                         longToArray Color, ColoresPJ(49)
  425.                                         Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, RealClan)
  426.  
  427.                                     End If
  428.  
  429.                                 Case 7
  430.                                     longToArray Color, ColoresPJ(7)
  431.                                     Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Color)
  432.  
  433.                                 Case Else
  434.                                     longToArray Color, ColoresPJ(.priv)
  435.                                     Call Text_Draw(PixelOffSetX - lCenter, PixelOffSetY + 30, .Nombre, Color)
  436.  
  437.                             End Select
  438.  
  439.                         End If
  440.  
  441.                     End If
  442.  
  443.                 End If
  444.                          
  445.             End If
  446.  
  447.         End If
  448.    
  449.         Velocidad = 1
  450.        
  451.         'particulas para meditar
  452.        Dim i As Long
  453.  
  454.         If .Particle_Count > 0 Then
  455.  
  456.             For i = 1 To .Particle_Count
  457.  
  458.                 If .Particle_Group(i) > 0 Then
  459.                     Call Particle_Group_Render(.Particle_Group(i), PixelOffSetX, PixelOffSetY)
  460.  
  461.                 End If
  462.  
  463.             Next i
  464.  
  465.         End If
  466.  
  467.         Call Dialogos.UpdateDialogPos(PixelOffSetX + .Body.HeadOffset.x, PixelOffSetY + .Body.HeadOffset.y, charindex)
  468.  
  469.         'BlitFX (TM)
  470.        If .FxIndex <> 0 Then
  471.            
  472.             If AoSetup.bTransparencia = 0 Then
  473.                 Call DrawGrhtoSurface(.Fx, PixelOffSetX + FxData(.FxIndex).OffsetX, PixelOffSetY + FxData(.FxIndex).OffsetY, 1, 1, White, 1, 0, 1)
  474.             Else
  475.            
  476.                 Call DrawGrhtoSurface(.Fx, PixelOffSetX + FxData(.FxIndex).OffsetX, PixelOffSetY + FxData(.FxIndex).OffsetY, 1, 1, White, 1)
  477.                    
  478.             End If
  479.                                    
  480.             'Check if animation is over
  481.            If .Fx.Started = 0 Then .FxIndex = 0
  482.            
  483.         End If
  484.  
  485.     End With
  486.  
  487. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement