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

📄 gtasagarageocx.ctl

📁 著名单机游戏 gta 圣安地列斯 的外挂 有兴趣的朋友可以看下!
💻 CTL
📖 第 1 页 / 共 4 页
字号:
End Property
Public Property Get cFP(ByVal iCarIdx As Integer) As Integer
    cFP = chkFP(iCarIdx).Value
End Property
Public Property Let cEP(ByVal iCarIdx As Integer, NewChecked As Integer)
    chkEP(iCarIdx).Value = NewChecked
End Property
Public Property Let cBP(ByVal iCarIdx As Integer, NewChecked As Integer)
    chkBP(iCarIdx).Value = NewChecked
End Property
Public Property Let cDP(ByVal iCarIdx As Integer, NewChecked As Integer)
    chkDP(iCarIdx).Value = NewChecked
End Property
Public Property Let cFP(ByVal iCarIdx As Integer, NewChecked As Integer)
    chkFP(iCarIdx).Value = NewChecked
End Property
Private Sub chkBP_Click(Index As Integer)
    If Not isInit Then
        isDirty = True
        RaiseEvent CarSpecsChanged(Index, 1, chkBP(Index).Value)
    End If
End Sub
Private Sub chkDP_Click(Index As Integer)
    If Not isInit Then
        isDirty = True
        RaiseEvent CarSpecsChanged(Index, 2, chkDP(Index).Value)
    End If
End Sub
Private Sub chkEP_Click(Index As Integer)
    If Not isInit Then
        isDirty = True
        RaiseEvent CarSpecsChanged(Index, 0, chkEP(Index).Value)
    End If
End Sub
Private Sub chkFP_Click(Index As Integer)
    If Not isInit Then
        isDirty = True
        RaiseEvent CarSpecsChanged(Index, 3, chkFP(Index).Value)
    End If
End Sub
Public Property Get Locked() As Integer
    Locked = chkLockGarage.Value
End Property
Public Property Let Locked(ByVal NewChecked As Integer)
    chkLockGarage.Value = NewChecked
End Property
Private Sub chkLockGarage_Click()
    If Not isInit Then RaiseEvent GarageLocked(chkLockGarage.Value)
End Sub
Private Sub cmdAllProof_Click()
On Error Resume Next
    Static iCtr As Integer
    isInit = True
    For iCtr = 0 To 3
        chkEP(iCtr).Value = vbChecked
        chkBP(iCtr).Value = vbChecked
        chkDP(iCtr).Value = vbChecked
        chkFP(iCtr).Value = vbChecked
    Next iCtr
    isInit = False
    isDirty = True
End Sub

Private Sub cmdCarPics_Click(Index As Integer)
On Error Resume Next
    Dim iNewCarID As Integer
    iNewCarID = -1
    If Not isCarPicsReady Then
        Load frmCarSelect 'if not already loaded. This form does not get unloaded until gtasa Control Center exits.
        Do Until isCarPicsReady
            DoEvents
        Loop
        frmCarSelect.Hide
    End If
    If cboSelectCar(Index).ListIndex > 0 Then
        frmCarSelect.PreSelectCarID ParkedCarMatrix(Index, cboSelectCar(Index).ListIndex)
    Else
        frmCarSelect.PreSelectCarID -1
    End If
    frmCarSelect.Show vbModal, Me
    DoEvents
    If frmCarSelect.isOKClicked Then iNewCarID = frmCarSelect.iSelectedID
    If iNewCarID > 0 Then cboSelectCar(Index).ListIndex = GarageListMatrix(Index, iNewCarID)
End Sub

Private Sub cmdClearMods_Click(Index As Integer)
On Error Resume Next
    isResetMods(Index) = True
    CopyMemory tNowParking.ParkingSlots(Index).intTuneArr(0), zeroTuneInt(0), 30&
    '&HFF 02 00 00
    '   3  2  1  0
    tNowParking.ParkingSlots(Index).bytTuneArr(0) = &H0 'keep zero.this is actually for stripe type. &H78 used for camper, &H3E used for cement truck etc.
    tNowParking.ParkingSlots(Index).bytTuneArr(1) = &H0 'keep zero
    tNowParking.ParkingSlots(Index).bytTuneArr(2) = &H2 'not really known yet
    tNowParking.ParkingSlots(Index).bytTuneArr(3) = 0 '&HFF (extras1. if no extras, ignored by game)
    '&H00 FF 00 FF
    '   7  6  5  4
    tNowParking.ParkingSlots(Index).bytTuneArr(4) = &HFE 'FF/0/1/2/3/4 Exhaust, body parts for bikes, etc. (keep &HFE, so that all bits are checked)
    tNowParking.ParkingSlots(Index).bytTuneArr(5) = &H0  '0, related with paint job
    tNowParking.ParkingSlots(Index).bytTuneArr(6) = &HFF 'paint job ordinal. FF/0/1/2/3
    tNowParking.ParkingSlots(Index).bytTuneArr(7) = &H0  'not known yet
    lblModStatus(Index).Caption = "Not Modded"
End Sub

Private Sub cmdEditMods_Click(Index As Integer)
On Error GoTo errEditMods
    Dim iModCtr As Integer
    Load frmMods
    If frmMods.DecodeMods(ParkedCarMatrix(Index, cboSelectCar(Index).ListIndex), _
                         tNowParking.ParkingSlots(Index).intTuneArr(), _
                         ParkedCars(ParkedCarMatrix(Index, cboSelectCar(Index).ListIndex)).sModsArr, _
                         tNowParking.ParkingSlots(Index).bytTuneArr(6)) Then
        frmMods.Show vbModal, UserControl.Parent
        DoEvents
        If frmMods.isOKClicked Then
            If frmMods.EncodeMods(tNowParking.ParkingSlots(Index).intTuneArr(), tNowParking.ParkingSlots(Index).bytTuneArr(6)) Then
                'check if is modded or not:
                isResetMods(Index) = True
                For iModCtr = 0 To 7
                    If tNowParking.ParkingSlots(Index).intTuneArr(iModCtr) <> -1 Or _
                       tNowParking.ParkingSlots(Index).intTuneArr(iModCtr + 7) <> -1 Then
                        isResetMods(Index) = False
                    End If
                Next iModCtr
                If tNowParking.ParkingSlots(Index).bytTuneArr(6) <> &HFF Then isResetMods(Index) = False
                If isResetMods(Index) Then
                   lblModStatus(Index).Caption = "Not Modded"
                Else
                   lblModStatus(Index).Caption = "Modded"
                End If
                isDirty = True
            Else
                MsgBox "Your Mod Selection could not be encoded." & vbCrLf & "Please read online garage again", vbInformation
            End If
        End If
    Else
        MsgBox "Current Mods could not be initialised." & vbCrLf & "Please read online garage again", vbInformation
    End If
CleanExitSub:
On Error Resume Next
    Unload frmMods
Exit Sub
errEditMods:
    MsgBox Err.Description, vbCritical, "Error on ModEdit"
    Err.Clear
End Sub

'*****************************************************************************************************
'                                    Car Colors:
'*****************************************************************************************************
Private Sub picMajor_DblClick(Index As Integer)
On Error Resume Next
    If Len(picMajor(Index).Tag) = 0 Then picMajor(Index).Tag = "0"
    Set fPick = New frmPickColor
    Load fPick
    iPickedColor = CInt(picMajor(Index).Tag)
    fPick.SetPickColor iPickedColor
    fPick.Show vbModal, UserControl.Parent
    DoEvents
    iPickedColor = fPick.iPickColor
    Unload fPick
    Set fPick = Nothing
    If iPickedColor <> CInt(picMajor(Index).Tag) Then
        picMajor(Index).Tag = iPickedColor
        picMajor(Index).BackColor = GTASAColors(iPickedColor).lngRGB
        isDirty = True
        RaiseEvent CarColorChanged(Index, iPickedColor, True)
    End If
End Sub
Private Sub picMinor_DblClick(Index As Integer)
On Error Resume Next
    If Len(picMinor(Index).Tag) = 0 Then picMinor(Index).Tag = "0"
    Set fPick = New frmPickColor
    Load fPick
    iPickedColor = CInt(picMinor(Index).Tag)
    fPick.SetPickColor iPickedColor
    fPick.Show vbModal, UserControl.Parent
    DoEvents
    iPickedColor = fPick.iPickColor
    Unload fPick
    Set fPick = Nothing
    If iPickedColor <> CInt(picMinor(Index).Tag) Then
        picMinor(Index).Tag = iPickedColor
        picMinor(Index).BackColor = GTASAColors(iPickedColor).lngRGB
        isDirty = True
        RaiseEvent CarColorChanged(Index, iPickedColor, True)
    End If
End Sub
'*****************************************************************************************************
'                                    Car ID:
'*****************************************************************************************************
Public Sub AddCar(ByVal sCarName As String)
On Error Resume Next
    cboSelectCar(0).AddItem sCarName
    cboSelectCar(1).AddItem sCarName
    cboSelectCar(2).AddItem sCarName
    cboSelectCar(3).AddItem sCarName
End Sub
Public Property Get CarID(ByVal iCarIdx As Integer) As Integer
    CarID = cboSelectCar(iCarIdx).ListIndex
End Property
Public Property Let CarID(ByVal iCarIdx As Integer, ByVal iNewID As Integer)
    cboSelectCar(iCarIdx).ListIndex = iNewID
End Property
Private Sub cboSelectCar_Click(Index As Integer)
    If Not isInit Then SetVisibility
    If cboSelectCar(Index).ListIndex < 0 Then Exit Sub 'combo box bug
    If Not isInit Then
        If cboSelectCar(Index).ListIndex = 0 Then 'no car
            picMajor(Index).Tag = 0
            picMajor(Index).BackColor = GTASAColors(0).lngRGB
            picMinor(Index).Tag = 0
            picMinor(Index).BackColor = GTASAColors(0).lngRGB
            cmdEditMods(Index).Enabled = False
        Else
            'set colors from cfg
            picMajor(Index).Tag = CInt(ParkedCars(ParkedCarMatrix(Index, cboSelectCar(Index).ListIndex)).MajorColor)
            picMajor(Index).BackColor = GTASAColors(CInt(picMajor(Index).Tag)).lngRGB
            picMinor(Index).Tag = CInt(ParkedCars(ParkedCarMatrix(Index, cboSelectCar(Index).ListIndex)).MinorColor)
            picMinor(Index).BackColor = GTASAColors(CInt(picMinor(Index).Tag)).lngRGB
            cmdEditMods(Index).Enabled = ParkedCars(ParkedCarMatrix(Index, cboSelectCar(Index).ListIndex)).isHasMods
        End If
        isDirty = True
        isReparkNeeded = True
        isResetMods(Index) = True
        lblModStatus(Index).Caption = "Not Modded"
        SetVisibility
        RaiseEvent CarIDChanged(Index, cboSelectCar(Index).ListIndex)
    End If
End Sub
'*****************************************************************************************************
'                                    Initialisation:
'*****************************************************************************************************
Public Function SetIniVals(ByVal iCarIdx As Integer, ByVal sINISetting As String) As Boolean
On Error GoTo errSetIniVals
    Dim sTokens() As String
    Dim iModCtr As Integer
    isInit = True
    SetIniVals = False
    sTokens = Split(sINISetting, ",")
    '"0,1,1,1,1,1,0,0"
    If chkLockGarage.Value = vbUnchecked Then chkLockGarage.Value = CInt(sTokens(0))
    If CInt(sTokens(1)) < 400 Then
        cboSelectCar(iCarIdx).ListIndex = 0
    Else
        cboSelectCar(iCarIdx).ListIndex = GarageListMatrix(iCarIdx, CInt(sTokens(1)))
    End If
    chkEP(iCarIdx).Value = CInt(sTokens(2))
    chkDP(iCarIdx).Value = CInt(sTokens(3))
    chkBP(iCarIdx).Value = CInt(sTokens(4))
    chkFP(iCarIdx).Value = CInt(sTokens(5))
    picMajor(iCarIdx).BackColor = GTASAColors(CInt(sTokens(6))).lngRGB
    picMajor(iCarIdx).Tag = CInt(sTokens(6))
    picMinor(iCarIdx).BackColor = GTASAColors(CInt(sTokens(7))).lngRGB
    picMinor(iCarIdx).Tag = CInt(sTokens(7))
    If UBound(sTokens) > 30 Then
        With tNowParking.ParkingSlots(iCarIdx)
            .lngAngle = CLng("&H" & sTokens(8))
            .intTuneArr(0) = CInt("&H" & sTokens(9))
            .intTuneArr(1) = CInt("&H" & sTokens(10))
            .intTuneArr(2) = CInt("&H" & sTokens(11))
            .intTuneArr(3) = CInt("&H" & sTokens(12))
            .intTuneArr(4) = CInt("&H" & sTokens(13))
            .intTuneArr(5) = CInt("&H" & sTokens(14))
            .intTuneArr(6) = CInt("&H" & sTokens(15))
            .intTuneArr(7) = CInt("&H" & sTokens(16))
            .intTuneArr(8) = CInt("&H" & sTokens(17))
            .intTuneArr(9) = CInt("&H" & sTokens(18))
            .intTuneArr(10) = CInt("&H" & sTokens(19))
            .intTuneArr(11) = CInt("&H" & sTokens(20))
            .intTuneArr(12) = CInt("&H" & sTokens(21))
            .intTuneArr(13) = CInt("&H" & sTokens(22))
            .intTuneArr(14) = CInt("&H" & sTokens(23))
            .bytTuneArr(0) = CByte("&H" & sTokens(24))
            .bytTuneArr(1) = CByte("&H" & sTokens(25))
            .bytTuneArr(2) = CByte("&H" & sTokens(26))
            .bytTuneArr(3) = CByte("&H" & sTokens(27))
            .bytTuneArr(4) = CByte("&H" & sTokens(28))
            .bytTuneArr(5) = CByte("&H" & sTokens(29))
            .bytTuneArr(6) = CByte("&H" & sTokens(30))
            .bytTuneArr(7) = CByte("&H" & sTokens(31))
            isResetMods(iCarIdx) = True
            For iModCtr = 0 To 7
                If .intTuneArr(iModCtr) <> -1 Or _
                   .intTuneArr(iModCtr + 7) <> -1 Then
                    isResetMods(iCarIdx) = False
                End If
            Next iModCtr
            If .bytTuneArr(6) <> &HFF Then isResetMods(iCarIdx) = False
            If isResetMods(iCarIdx) Then
               lblModStatus(iCarIdx).Caption = "Not Modded"
            Else
               lblModStatus(iCarIdx).Caption = "Modded"
            End If
        End With
    Else
        isResetMods(iCarIdx) = True
        lblModStatus(iCarIdx).Caption = "Not Modded"
    End If
    'also populate as now parking (these are the values shown in the ocx)
    With tNowParking.ParkingSlots(iCarIdx)
        .intCarCode = ParkedCarMatrix(iCarIdx, cboSelectCar(iCarIdx).ListIndex)
        .intSpecials = (chkDP(iCarIdx).Value * 8) + (chkEP(iCarIdx).Value * 4) + (chkFP(iCarIdx).Value * 2) + chkBP(iCarIdx).Value
        .bytMajorColor = CByte(picMajor(iCarIdx).Tag)
        .bytMinorColor = CByte(picMinor(iCarIdx).Tag)
    End With
    CopyMemory tLastParking, tNowParking, Len(tNowParking)
    isInit = False
    isReparkNeeded = True
    isDirty = False
    SetVisibility
    SetIniVals = True
Exit Function
errSetIniVals:
    isInit = False
    Err.Clear
End Function
Public Function GetIniVals(ByVal iCarIdx As Integer) As String
On Error GoTo errGetIniValues
    Dim iModCtr As Integer
    GetIniVals = chkLockGarage.Value & "," & ParkedCarMatrix(iCarIdx, cboSelectCar(iCarIdx).ListIndex) & "," & _
            chkEP(iCarIdx).Value & "," & chkDP(iCarIdx).Value & "," & chkBP(iCarIdx).Value & "," & _
            chkFP(iCarIdx).Value & "," & picMajor(iCarIdx).Tag & "," & picMinor(iCarIdx).Tag
    With tNowParking.ParkingSlots(iCarIdx)
        GetIniVals = GetIniVals & "," & UCase(Hex(.lngAngle))
        For iModCtr = 0 To 14
            GetIniVals = GetIniVals & "," & UCase(Hex(.intTuneArr(iModCtr)))
        Next iModCtr
        For iModCtr = 0 To 7

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -