Ralle1976 icon

GWA2-Inscription-Update Example by Ralle1976

Ralle1976 | PRO | 09/23/16 09:12:27 AM UTC | 0 ⭐ | 12486 👁️ | Never ⏰ | []
AutoIt |

4.33 KB

|

None

|

0 👍

/

0 👎

#include <Array.au3>
#include <File.au3>
#include <String.au3>
 
;Declaring an enum and filling an array so it's easier to compare items instead of large strings.
Local Enum $DecVars, $SetValue, $DllStructSet, $Scan, $Function
Local $FileArray
Local $LineChecks[5][2]
 
$LineChecks[$DecVars][0] =  @CRLF & ";======================================================================" & _
        @CRLF & "Global $mUpgradeItem = DllStructCreate('ptr;dword;dword;dword;dword')" & _
        @CRLF & "Global $mUpgradeItemPtr = DllStructGetPtr($mUpgradeItem)" & _
        @CRLF &";======================================================================" & @CRLF
$LineChecks[$DecVars][1] =  "Global $mUpgradeItem = DllStructCreate('ptr;dword;"
 
$LineChecks[$SetValue][0] =     "   ;======================================================================" & _
        @CRLF & "   SetValue('UpgradeItemFunction','0x004574D0')" & _
        @CRLF & "   ;======================================================================" & @CRLF
$LineChecks[$SetValue][1] =     "SetValue('UpgradeItemFunction','0x004574D0')"
 
$LineChecks[$DllStructSet][0] =     "   ;======================================================================" & _
        @CRLF & "   DllStructSetData($mUpgradeItem, 1, GetValue('CommandUpgradeItem'))" & _
        @CRLF & "   ;======================================================================" & @CRLF
$LineChecks[$DllStructSet][1] =     "DllStructSetData($mUpgradeItem, 1, GetValue('CommandUpgradeItem'))"
 
$LineChecks[$Scan][0] =     "   ;======================================================================" & _
        @CRLF & "   _('ScanUpgradeFunction:')" & _
        @CRLF & "   AddPattern('8B410C568B71088B')" & _
        @CRLF & "   ;======================================================================" & @CRLF
$LineChecks[$Scan][1] =     "_('ScanUpgradeFunction:')"
 
$LineChecks[$Function][0] =     ";======================================================================" & _
        @CRLF & @CRLF & ";~ Description: Applies a mod to an item." & _
        @CRLF & "Func UpgradeItem($aWeaponItemId,$aModItemId,$aModType)" & _
        @CRLF & "   DllStructSetData($mUpgradeItem,2,0)" & _
        @CRLF & "   DllStructSetData($mUpgradeItem,3,$aModType)" & _
        @CRLF & "   DllStructSetData($mUpgradeItem,4,$aWeaponItemId)" & _
        @CRLF & "   DllStructSetData($mUpgradeItem,5,$aModItemId)" & _
        @CRLF & @CRLF & "   Enqueue($mUpgradeItemPtr,0x14)" & _
        @CRLF & @CRLF & "   sleep(2000)" & _
        @CRLF & "   sendpacket(0x4, 0x7C)" & _
        @CRLF & "EndFunc   ;==>UpgradeItem" & _
        @CRLF & ";======================================================================" & @CRLF & @CRLF
$LineChecks[$Function][1] =     "Func UpgradeItem("
 
;Filling a second array with enum values to get prior lines
Local $pLineChecks[5]
$pLineChecks[$DecVars] =    "Local $mMakeAgentArrayPtr = DllStructGetPtr($mMakeAgentArray)"
$pLineChecks[$SetValue] =   "SetValue('ClickToMoveFix', '0x' & Hex(GetScannedAddress(";edit that
$pLineChecks[$DllStructSet] =   "DllStructSetData($mMakeAgentArray, 1, GetValue('CommandMakeAgentArray'))"
$pLineChecks[$Scan] =   "_('ScanClickToMoveFix:')"
$pLineChecks[$Function] =   "Func SalvageMod"
 
;Grabbing the file
Local $FileName = FileOpenDialog("Open", @ScriptDir, "Autoit (*.au3)")
IF @error Then Exit
Local $____String__to_Search = StringReplace(FileRead($FileName), @CRLF, " ")
Local $FileReadToArray = _FileReadToArray($FileName, $FileArray, 1)
IF $FileReadToArray = 0 Or @error Then Exit
Local $change_some = False
For $i = 0 To 4
    If StringInStr($____String__to_Search, $LineChecks[$i][1], 2)  = 0 Then
        Local $Index = SearchInArray($pLineChecks[$i])
        If $Index > -1 Then
            $Index = ((StringInStr($FileArray[$Index -1], ';~ Description:', 2) > 0) ? ($Index -1) : ($Index))
            $FileArray[$Index] = $LineChecks[$i][0] & $FileArray[$Index] & ((StringInStr($FileArray[$Index -1], ';~ Description:', 2) > 0) ? (@CRLF) : (''))
            $change_some = True
        EndIf
    EndIf
Next
;~ ConsoleWrite(_ArrayToString($FileArray, @CRLF))
If $change_some Then
    Local $NewFileName = ((StringInStr($FileName,  "_Inscribe.au3", 2) > 0) ? ($FileName) : (StringTrimRight($FileName, 4) & "_Inscribe.au3"))
    Local $FileWriteFromArray = _FileWriteFromArray($NewFileName, $FileArray, 1)
    If $FileWriteFromArray = 0 Or @Error Then Exit
EndIf
 
Func SearchInArray($ToSearchFor = "")
For $i = 1 TO $FileArray[0]
    If StringInStr($FileArray[$i], $ToSearchFor) Then Return $i
Next
Return -1
EndFunc

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎