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

DirextX编程

开发平台:

Visual Basic

  1. Attribute VB_Name = "脚本显示模块"
  2. Option Explicit
  3. Public Type TextInfo
  4.     tRECT As RECT
  5.     mStr As String
  6.     FunctionName As String
  7.     mColor As Long
  8.     Type As Integer
  9. End Type
  10. Public StrCount As Integer
  11. ' Download by http://www.codefans.net
  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 D3DFont2, 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 Mouse.X > StrInfo(i).tRECT.Left And Mouse.X < StrInfo(i).tRECT.Right And _
  25.                Mouse.Y > StrInfo(i).tRECT.Top And Mouse.Y < 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.     
  35. End Sub
  36. Public Sub GetText(Str As String)
  37.     Dim SS As Variant, LenStr As Integer
  38.     Dim Str1 As String
  39.     Dim Work As Boolean, FunWork As Boolean
  40.     Dim i As Integer, j As Integer
  41.     Dim Len1 As Integer
  42.     StrCount = 0
  43.     ReDim StrInfo(StrCount)
  44.     SS = Split(Str, vbCrLf)
  45.     For i = 0 To UBound(SS)
  46.         LenStr = 0
  47.         Len1 = 15
  48.         If SS(i) <> "" Then
  49.             StrCount = StrCount + 1
  50.             ReDim Preserve StrInfo(StrCount)
  51.             StrInfo(StrCount).tRECT.Left = Len1
  52.             StrInfo(StrCount).tRECT.Top = 15 + i * 15
  53.             StrInfo(StrCount).tRECT.bottom = StrInfo(StrCount).tRECT.Top + 35
  54.         End If
  55.         Do While LenStr <= Len(SS(i))
  56.             DoEvents
  57.             LenStr = LenStr + 1
  58.             Str1 = Mid(SS(i), LenStr, 1)
  59.             If Str1 = "<" Then
  60.                 FrmMain.Label2.Caption = StrInfo(StrCount).mStr
  61.                 Len1 = Len1 + FrmMain.Label2.Width
  62.                 StrCount = StrCount + 1
  63.                 ReDim Preserve StrInfo(StrCount)
  64.                 StrInfo(StrCount).tRECT.Left = Len1
  65.                 StrInfo(StrCount).tRECT.Top = 15 + i * 15
  66.                 StrInfo(StrCount).tRECT.bottom = StrInfo(StrCount).tRECT.Top + 12
  67.                 StrInfo(StrCount).Type = 1
  68.                 Work = True
  69.             ElseIf Str1 = "/" Then
  70.                 If Mid(SS(i), LenStr + 1, 1) <> "/" Then
  71.                     If Work = True Then FunWork = True
  72.                 End If
  73.             ElseIf Str1 = "" Then
  74.             ElseIf Str1 = ">" Then
  75.                 Work = False
  76.                 FunWork = False
  77.                 FrmMain.Label2.Caption = StrInfo(StrCount).mStr
  78.                 Len1 = Len1 + FrmMain.Label2.Width
  79.                 StrCount = StrCount + 1
  80.                 ReDim Preserve StrInfo(StrCount)
  81.                 StrInfo(StrCount).tRECT.Left = Len1
  82.                 StrInfo(StrCount).tRECT.Top = 15 + i * 15
  83.                 StrInfo(StrCount).tRECT.bottom = StrInfo(StrCount).tRECT.Top + 12
  84.             Else
  85.                 If Work = True Then
  86.                     If FunWork = True Then
  87.                         StrInfo(StrCount).FunctionName = StrInfo(StrCount).FunctionName & Str1
  88.                     Else
  89.                         StrInfo(StrCount).mStr = StrInfo(StrCount).mStr & Str1
  90.                         FrmMain.Label2.Caption = StrInfo(StrCount).mStr
  91.                         StrInfo(StrCount).tRECT.Right = StrInfo(StrCount).tRECT.Left + FrmMain.Label2.Width
  92.                     End If
  93.                 Else
  94.                     StrInfo(StrCount).mStr = StrInfo(StrCount).mStr & Str1
  95.                     FrmMain.Label2.Caption = StrInfo(StrCount).mStr
  96.                     StrInfo(StrCount).tRECT.Right = StrInfo(StrCount).tRECT.Left + FrmMain.Label2.Width
  97.                 End If
  98.             End If
  99.         Loop
  100.     Next
  101.                 
  102. End Sub
  103. 'Public Function GetFunNum(FunName As String) As Integer
  104. '    Dim i As Integer
  105. '    For i = 1 To NPCInfo(SelNpcNum).ScriptCount
  106. '        If NPCInfo(SelNpcNum).Script(i).ScriptName = FunName Then
  107. '            GetFunNum = i
  108. '            Exit For
  109. '            Exit Function
  110. '        End If
  111. '    Next
  112. 'End Function