Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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
Advertisement