📄 form1.frm
字号:
MyReal.Compress = MyReal.Compress Xor &HFF
MyReal.RealNotKnow = MyReal.RealNotKnow Xor &HFF
MyReal.width = MyReal.width Xor &HFFFFFFFF
MyReal.height = MyReal.height Xor &HFFFFFFFF
MyReal.datalen = MyReal.datalen Xor &HFFFFFFFF
If Index > 6 Then
MyReal.datalen = MyReal.datalen - 9
MyReal.height = MyReal.height + 9
MyReal.width = MyReal.width + MyReal.height
End If
End If
Text7(0).Text = Chr(MyReal.hwnd(1)) + Chr(MyReal.hwnd(2))
Text7(1).Text = MyReal.Compress
Text7(2).Text = MyReal.RealNotKnow
Text7(3).Text = MyReal.width
Text7(4).Text = MyReal.height
Adrn_BMP_Decrypt MyReal.datalen - 16, FileNum, Addr + 16, MyReal.width, MyReal.height, MyReal.Compress
Text7(5).Text = MyReal.datalen
Else
MsgBox "数据错误!"
End If
Close FileNum
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
Private Sub Label20_Click()
AdrnIndex(Val(Text3.Text) - 1).Num = Text2(0).Text
AdrnIndex(Val(Text3.Text) - 1).Addr = Text2(1).Text
AdrnIndex(Val(Text3.Text) - 1).datalen = Text2(2).Text
AdrnIndex(Val(Text3.Text) - 1).X = Text2(3).Text
AdrnIndex(Val(Text3.Text) - 1).Y = Text2(4).Text
AdrnIndex(Val(Text3.Text) - 1).width = Text2(5).Text
AdrnIndex(Val(Text3.Text) - 1).height = Text2(6).Text
AdrnIndex(Val(Text3.Text) - 1).EastCover = Text2(7).Text
AdrnIndex(Val(Text3.Text) - 1).SouthCover = Text2(8).Text
AdrnIndex(Val(Text3.Text) - 1).ObstacleFlags = Text2(10).Text
AdrnIndex(Val(Text3.Text) - 1).MapNum = Text2(9).Text
MsgBox "修改成功"
End Sub
Private Sub Label22_Click()
SpradrnIndex(Val(Text5) - 1).AnimationNum = Text4(0).Text
SpradrnIndex(Val(Text5) - 1).Addr = Text4(1).Text
SpradrnIndex(Val(Text5) - 1).ActionNum = Text4(2).Text
SpradrnIndex(Val(Text5) - 1).SpradrnNotKnow = Text4(3).Text
List2.List(Val(Text5) - 1) = Text4(0).Text
MsgBox "修改成功"
End Sub
Private Sub List1_DblClick()
If ShowPic = True Then
Dim i As Long
For i = 0 To UBound(AdrnIndex)
If Val(List1.List(List1.ListIndex)) = AdrnIndex(i).Num Then
Exit For
End If
Next i
Text3.Text = i + 1
ShowAdrn i
End If
End Sub
Private Sub List2_DblClick()
ShowSpr List2.ListIndex
Text5.Text = List2.ListIndex + 1
List1.ListIndex = 0
List1_DblClick
End Sub
Private Sub Timer2_Timer()
If List1.ListIndex + 1 = List1.ListCount Then
If Check2.Value = 0 Then
Timer1.Enabled = False
Exit Sub
Else
List1.ListIndex = 0
End If
Else
List1.ListIndex = List1.ListIndex + 1
End If
ShowAdrn Val(List1.List(List1.ListIndex))
End Sub
Private Sub Timer1_Timer()
If List1.ListIndex + 1 = List1.ListCount Then
If Check2.Value = 0 Then
Timer1.Enabled = False
Command5.Enabled = False
Command6.Enabled = False
Command7.Enabled = True
Exit Sub
Else
List1.ListIndex = 0
End If
Else
List1.ListIndex = List1.ListIndex + 1
End If
List1_DblClick
End Sub
Private Sub UpDown1_DownClick()
If List2.ListCount = 0 Then Exit Sub
Dim i As Long
If List2.ListIndex + 1 >= List2.ListCount Then
List2.ListIndex = 0
Else
List2.ListIndex = List2.ListIndex + 1
End If
Text5.Text = List2.ListIndex
List2_DblClick
End Sub
Private Sub UpDown1_UpClick()
If List2.ListCount = 0 Then Exit Sub
Dim i As Long
If List2.ListIndex - 1 < 0 Then
List2.ListIndex = List2.ListCount - 1
Else
List2.ListIndex = List2.ListIndex - 1
End If
Text5.Text = List2.ListIndex
List2_DblClick
End Sub
Private Sub UpDown2_DownClick()
Dim i As Long
If Val(Text8.Text) + 1 > Val(Text4(2).Text) Then
Text8.Text = 1
Else
Text8.Text = Trim(str(Val(Text8.Text) + 1))
End If
ShowSpr List2.ListIndex
List1.ListIndex = 0
List1_DblClick
End Sub
Private Sub UpDown2_UpClick()
Dim i As Long
If Val(Text8.Text) - 1 < 1 Then
Text8.Text = Text4(2).Text
Else
Text8.Text = Trim(str(Val(Text8.Text) - 1))
End If
ShowSpr List2.ListIndex
List1.ListIndex = 0
List1_DblClick
End Sub
Private Sub UpDown3_DownClick()
If Val(Text3.Text) < Val(Label5.Caption) Then
Text3.Text = Val(Text3.Text) + 1
Else
Text3.Text = 1
End If
ShowAdrn Val(Text3.Text - 1)
End Sub
Private Sub UpDown3_UpClick()
If Val(Text3.Text) > 1 Then
Text3.Text = Val(Text3.Text) - 1
Else
Text3.Text = Val(Label5.Caption)
End If
ShowAdrn Val(Text3.Text - 1)
End Sub
Sub ShowSpr(Index As Long)
Dim FileName As String
Dim TempStr As String
Dim Current_ActionNum As Long
Current_ActionNum = Val(Text8.Text - 1)
Text4(0).Text = SpradrnIndex(Index).AnimationNum
Text4(1).Text = SpradrnIndex(Index).Addr
Text4(2).Text = SpradrnIndex(Index).ActionNum
Text4(3).Text = SpradrnIndex(Index).SpradrnNotKnow
Dim MySpr As Spr
Dim Addr As Long
Addr = SpradrnIndex(Index).Addr + 1
'打开文件
Open Text1.Text & "\spr.bin" For Binary Access Read As #4
'读指定动作
For A = 0 To SpradrnIndex(Index).ActionNum - 1
Get #4, Addr, MySpr
Addr = Addr + Len(MySpr) + (MySpr.Number * 10)
If Current_ActionNum = A Then Exit For
Next
Text6(0).Text = MySpr.Direction
Text6(1).Text = MySpr.ActionFlags
Text6(2).Text = MySpr.Time
Text6(3).Text = MySpr.Number
List1.Clear
If MySpr.Number > 0 Then
ReDim buff(1 To 10) As Byte
ReDim MySequence(1 To MySpr.Number) As Sequence
For A = 1 To MySpr.Number
Get #4, , buff
CopyMemory MySequence(A), buff(1), 10
List1.AddItem MySequence(A).PictureNum
' Text4.Text = MySequence(A).SequenceNotKnow(1) & MySequence(A).SequenceNotKnow(2) & _
' MySequence(A).SequenceNotKnow(3) & MySequence(A).SequenceNotKnow(4) _
' & MySequence(A).SequenceNotKnow(5) & MySequence(A).SequenceNotKnow(6)
Next
End If
Close #4
End Sub
Private Sub UpDown4_DownClick()
Dim i As Long
If Val(Text3.Text) + 1 >= Label5.Caption Then Exit Sub
For i = Val(Text3.Text) - 1 To Label5.Caption - 1
If AdrnIndex(i).MapNum > 0 Then
Text2(9).Text = AdrnIndex(i).MapNum
Text3.Text = i
ShowAdrn i
Exit For
End If
Next
End Sub
Private Sub UpDown4_UpClick()
Dim i As Long
If Val(Text3.Text) - 1 < 1 Then Exit Sub
For i = Val(Text3.Text) - 1 To 0 Step -1
If AdrnIndex(i).MapNum > 0 Then
Text2(9).Text = AdrnIndex(i).MapNum
Text3.Text = i
ShowAdrn i
Exit For
End If
Next
End Sub
Private Sub SaveData(Index As Long)
Dim AdrnFileNum, RealFileNum, FileNum As Long '定义文件号
Dim AdrnData As adrn '定义一个Adrn数据块
'抽取出Adrn数据
AdrnFileNum = FreeFile '申请Adrn文件号
Open Text1.Text & "\adrn.bak" For Binary As AdrnFileNum
RealFileNum = FreeFile '申请Real文件号
Open Text1.Text & "\real.bak" For Binary Access Write As RealFileNum
AdrnData = AdrnIndex(Index)
AdrnData.Addr = LOF(RealFileNum)
'抽取出Real数据
Dim MyReal As Real
Dim buff() As Byte
FileNum = FreeFile
Open Text1.Text & "\real.bin" For Binary Access Read As FileNum
ReDim buff(1 To AdrnIndex(Index).datalen) As Byte
Get FileNum, AdrnIndex(Index).Addr + 1, buff
If Check1.Value = 0 Then
CopyMemory MyReal, buff(1), 16
If MyReal.Compress >= 254 Then
MyReal.Compress = MyReal.Compress Xor &HFF
MyReal.RealNotKnow = MyReal.RealNotKnow Xor &HFF
MyReal.width = MyReal.width Xor &HFFFFFFFF
MyReal.height = MyReal.height Xor &HFFFFFFFF
MyReal.datalen = MyReal.datalen Xor &HFFFFFFFF
If Index > 6 Then
MyReal.datalen = MyReal.datalen - 9
MyReal.height = MyReal.height + 9
MyReal.width = MyReal.width + MyReal.height
End If
End If
CopyMemory buff(1), MyReal, 16
Else
CopyMemory MyReal, buff(1), 16
If MyReal.Compress <= 1 Then
If Index > 6 Then
MyReal.width = MyReal.width - MyReal.height
MyReal.height = MyReal.height - 9
MyReal.datalen = MyReal.datalen + 9
End If
MyReal.Compress = MyReal.Compress Xor &HFF
MyReal.RealNotKnow = MyReal.RealNotKnow Xor &HFF
MyReal.width = MyReal.width Xor &HFFFFFFFF
MyReal.height = MyReal.height Xor &HFFFFFFFF
MyReal.datalen = MyReal.datalen Xor &HFFFFFFFF
End If
CopyMemory buff(1), MyReal, 16
End If
Close FileNum
If LOF(RealFileNum) = 0 Then
Put RealFileNum, , buff
Else
Put RealFileNum, LOF(RealFileNum) + 1, buff
End If
If Check1.Value = 1 Then
If Index > 6 Then
AdrnData.Addr = AdrnData.Addr - 9
AdrnData.datalen = AdrnData.datalen + 9
End If
AdrnData.Num = AdrnData.Num Xor &HFFFFFFFF
AdrnData.Addr = AdrnData.Addr Xor &HFFFFFFFF
AdrnData.datalen = AdrnData.datalen Xor &HFFFFFFFF
AdrnData.X = AdrnData.X Xor &HFFFFFFFF
AdrnData.Y = AdrnData.Y Xor &HFFFFFFFF
AdrnData.width = AdrnData.width Xor &HFFFFFFFF
AdrnData.height = AdrnData.height Xor &HFFFFFFFF
AdrnData.EastCover = AdrnData.EastCover Xor &HFF
AdrnData.SouthCover = AdrnData.SouthCover Xor &HFF
End If
If LOF(AdrnFileNum) = 0 Then
Put AdrnFileNum, , AdrnData
Else
Put AdrnFileNum, LOF(AdrnFileNum) + 1, AdrnData
End If
Close AdrnFileNum
Close RealFileNum
End Sub
Private Sub SaveSprData(Index As Long)
Dim SprFileNum, SprAdrnFileNum, FileNum As Integer '定义文件号
Dim SprAdrnData As Spradrn '定义一个Spr数据块
SprAdrnData = SpradrnIndex(Index)
'抽取出Spr数据
SprFileNum = FreeFile '申请Spr文件号
Open Text1.Text & "\spr.bak" For Binary As SprFileNum
'抽取出SprAdrn数据
SprAdrnFileNum = FreeFile '申请SprAdrn文件号
Open Text1.Text & "\spradrn.bak" For Binary As SprAdrnFileNum
'
' If Index > 43 Then
' SprAdrnData.AnimationNum = 110000 + Index - 44
' Else
' SprAdrnData.AnimationNum = 102003 + Index
' End If
SprAdrnData.Addr = LOF(SprFileNum)
If LOF(SprAdrnFileNum) = 0 Then
Put SprAdrnFileNum, , SprAdrnData
Else
Put SprAdrnFileNum, LOF(SprAdrnFileNum) + 1, SprAdrnData
End If
Close SprAdrnFileNum
'抽取出Spr数据
Dim Current_ActionNum As Long
Current_ActionNum = 0
Dim MySpr As Spr
Dim Addr As Long
Addr = SpradrnIndex(Index).Addr + 1
FileNum = FreeFile
'打开文件
Open Text1.Text & "\spr.bin" For Binary Access Read As FileNum
Dim i As Long
Dim j As Long
Dim ActionNum As Long
Dim PictureNo() As Long
Dim PictureNum As Long
ReDim Preserve PictureNo(0 To PictureNum)
For ActionNum = 0 To SprAdrnData.ActionNum - 1
'读指定动作
For i = 0 To SpradrnIndex(Index).ActionNum - 1
Get FileNum, Addr, MySpr
Addr = Addr + Len(MySpr) + (MySpr.Number * 10)
If Current_ActionNum = i Then Exit For
Next
If LOF(SprFileNum) = 0 Then
Put SprFileNum, , MySpr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -