⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 石器时代的客户端用 图片修改工具 源码VB下开发
💻 FRM
📖 第 1 页 / 共 5 页
字号:
            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 + -