--=== ===-- --=== Original done by Tsutomu ===-- --=== Version 1.3 patch 4.0.2.2436 ===-- --=== Updated by lisa & rv55 ===-- --=== ===-- local percentIncrease = 19 -- Percent to increase speed. (19% is 'safe') local maximumSpeedAllowed = 200 -- Maximum allowed speed by the function. local minimumSpeedAllowed = 30 -- Minimum allowed speed by the function. local baseSpeedOffset -- Currently 0x1494 local function getBaseSpeedOffset() if baseSpeedOffset == nil then local pattern = string.char( 0xD9, 0x9E, 0xFF, 0xFF, 0xFF, 0xFF, 0x8B, 0xCE, 0xE8, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x9E, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8) local mask = "xx????xxx????xx????x" local offset = 2 local startloc = 0x6C0000 local found = findPatternInProcess(getProc(), pattern, mask, startloc) + offset if found ~= 0 then baseSpeedOffset = memoryReadInt(getProc(), found) end end return baseSpeedOffset end function speed(_speed) -- Current base speed, includes buff effects. local baseSpeed = memoryReadFloat(getProc(), addresses.playerCraftLevelBase + getBaseSpeedOffset()); -- Check for string value "off" or "on" if type(_speed) ~= "number" then _speed = string.lower(tostring(_speed)) if _speed == "on" then _speed = baseSpeed * (1+percentIncrease/100) elseif _speed == "off" then _speed = baseSpeed else printf("Incorrect usage of function speed().\n") _speed = nil end end -- Default speed = base speed + 19% if _speed == nil then _speed = baseSpeed * (1+percentIncrease/100) end -- Make sure value is between allowed limits if _speed > maximumSpeedAllowed or minimumSpeedAllowed > _speed then if _speed > maximumSpeedAllowed then _speed = maximumSpeedAllowed elseif minimumSpeedAllowed > _speed then _speed = minimumSpeedAllowed end printf("Speed outside of allowed values, %d to %d. Reset to #d.\n", minimumSpeedAllowed, maximumSpeedAllowed, _speed) end -- Give warning that high speed might cause pull backs if _speed > baseSpeed * (1+percentIncrease/100) then print("Speed is too high and may cause pull-back. Consider using speed(\"on\") to set it to optimal speed.") end -- Get sp text to use in message. local sp if math.floor(_speed) == math.floor(baseSpeed) then sp = "normal" elseif _speed > baseSpeed then sp = "fast" elseif baseSpeed > _speed then sp = "slow" end -- Change the speed. local playerAddress = memoryReadIntPtr(getProc(), addresses.staticbase_char, addresses.charPtr_offset); if playerAddress ~= 0 then local mountaddress = memoryReadInt(getProc(), playerAddress + addresses.charPtrMounted_offset) or 0 if mountaddress == 0 then memoryWriteFloat(getProc(), playerAddress + addresses.pawnSpeed_offset, _speed); else memoryWriteFloat(getProc(), mountaddress + addresses.pawnSpeed_offset, _speed); end printf("Speed set to how you like it, %s (%g)\n", sp, sprintf("%.2f",_speed)) end end function speedoff() speed("off") end