脚本显示模块.bas
上传用户:pcw2004
上传日期:2022-02-02
资源大小:743k
文件大小:5k
源码类别:

DirextX编程

开发平台:

Visual Basic

  1. Attribute VB_Name = "脚本显示模块"
  2. Option Explicit
  3. Public mRECT As RECT
  4. Public Type TextInfo
  5.     tRECT As RECT
  6.     mStr As String
  7.     FunctionName As String
  8.     mColor As Long
  9.     Type As Integer
  10. End Type
  11. Public StrCount As Integer
  12. Public StrInfo() As TextInfo
  13. Public Sub DrawScript()
  14.     Dim i As Integer
  15.     Dim j As Integer
  16.     For i = 0 To StrCount
  17.         mRECT.Left = 15
  18.         mRECT.Top = 15
  19.         mRECT.Right = 400
  20.         mRECT.bottom = 200
  21.         If StrInfo(i).Type = 0 Then
  22.             D3DX.DrawText D3DFont, D3DColorRGBA(255, 255, 255, 255), StrInfo(i).mStr, StrInfo(i).tRECT, DT_LEFT
  23.         ElseIf StrInfo(i).Type = 1 Then
  24.             If Mouse.Button1Down = True And MouseX > StrInfo(i).tRECT.Left And MouseX < StrInfo(i).tRECT.Right And _
  25.                MouseY > StrInfo(i).tRECT.Top And MouseY < StrInfo(i).tRECT.bottom Then
  26.                 D3DX.DrawText D3DFont1, D3DColorRGBA(255, 0, 0, 255), StrInfo(i).mStr, StrInfo(i).tRECT, DT_LEFT
  27.             Else
  28.                 D3DX.DrawText D3DFont1, D3DColorRGBA(255, 255, 0, 255), StrInfo(i).mStr, StrInfo(i).tRECT, DT_LEFT
  29.             End If
  30.             
  31.         End If
  32.     Next
  33.     
  34.     mRECT.Left = 350
  35.     mRECT.Right = mRECT.Left + 100
  36.     mRECT.Top = 15
  37.     mRECT.bottom = 40
  38.     D3DX.DrawText D3DFont, D3DColorRGBA(255, 0, 255, 255), "FPS " & StrCount, mRECT, DT_LEFT
  39.     
  40. End Sub
  41. Public Sub GetText(Str As String)
  42.     Dim SS As Variant, LenStr As Integer
  43.     Dim Str1 As String
  44.     Dim Work As Boolean, FunWork As Boolean
  45.     Dim i As Integer, j As Integer
  46.     Dim Len1 As Integer
  47.     StrCount = 0
  48.     ReDim StrInfo(StrCount)
  49.     SS = Split(Str, vbCrLf)
  50.     For i = 0 To UBound(SS)
  51.         LenStr = 0
  52.         Len1 = 15
  53.         If SS(i) <> "" Then
  54.             StrCount = StrCount + 1
  55.             ReDim Preserve StrInfo(StrCount)
  56.             StrInfo(StrCount).tRECT.Left = Len1
  57.             StrInfo(StrCount).tRECT.Top = 15 + i * 15
  58.             StrInfo(StrCount).tRECT.bottom = StrInfo(StrCount).tRECT.Top + 35
  59.         End If
  60.         Do While LenStr <= Len(SS(i))
  61.             DoEvents
  62.             LenStr = LenStr + 1
  63.             Str1 = Mid(SS(i), LenStr, 1)
  64.             If Str1 = "<" Then
  65.                 FrmMain.Label2.Caption = StrInfo(StrCount).mStr
  66.                 Len1 = Len1 + FrmMain.Label2.Width
  67.                 StrCount = StrCount + 1
  68.                 ReDim Preserve StrInfo(StrCount)
  69.                 StrInfo(StrCount).tRECT.Left = Len1
  70.                 StrInfo(StrCount).tRECT.Top = 15 + i * 15
  71.                 StrInfo(StrCount).tRECT.bottom = StrInfo(StrCount).tRECT.Top + 12
  72.                 StrInfo(StrCount).Type = 1
  73.                 Work = True
  74.             ElseIf Str1 = "/" Then
  75.                 If Mid(SS(i), LenStr + 1, 1) <> "/" Then
  76.                     If Work = True Then FunWork = True
  77.                 End If
  78.             ElseIf Str1 = "" Then
  79.             ElseIf Str1 = ">" Then
  80.                 Work = False
  81.                 FunWork = False
  82.                 FrmMain.Label2.Caption = StrInfo(StrCount).mStr
  83.                 Len1 = Len1 + FrmMain.Label2.Width
  84.                 StrCount = StrCount + 1
  85.                 ReDim Preserve StrInfo(StrCount)
  86.                 StrInfo(StrCount).tRECT.Left = Len1
  87.                 StrInfo(StrCount).tRECT.Top = 15 + i * 15
  88.                 StrInfo(StrCount).tRECT.bottom = StrInfo(StrCount).tRECT.Top + 12
  89.             Else
  90.                 If Work = True Then
  91.                     If FunWork = True Then
  92.                         StrInfo(StrCount).FunctionName = StrInfo(StrCount).FunctionName & Str1
  93.                     Else
  94. '                        MsgBox Str1
  95.                         StrInfo(StrCount).mStr = StrInfo(StrCount).mStr & Str1
  96.                         FrmMain.Label2.Caption = StrInfo(StrCount).mStr
  97.                         StrInfo(StrCount).tRECT.Right = StrInfo(StrCount).tRECT.Left + FrmMain.Label2.Width
  98.                     End If
  99.                 Else
  100. '                    MsgBox Str1
  101.                     StrInfo(StrCount).mStr = StrInfo(StrCount).mStr & Str1
  102.                     FrmMain.Label2.Caption = StrInfo(StrCount).mStr
  103.                     StrInfo(StrCount).tRECT.Right = StrInfo(StrCount).tRECT.Left + FrmMain.Label2.Width
  104.                 End If
  105.             End If
  106.         Loop
  107.     Next
  108.                 
  109. End Sub
  110. Public Function GetFunNum(mNpc As Integer, FunName As String) As Integer
  111.     Dim i As Integer
  112.     For i = 1 To NPCInfo(mNpc).ScriptCount
  113.         If UCase(NPCInfo(mNpc).Script(i).ScriptName) = UCase(FunName) Then
  114.             GetFunNum = i
  115.             Exit For
  116.             Exit Function
  117.         End If
  118.     Next
  119. End Function