theblueflame How do I cheat?
Reputation: 0
Joined: 21 Sep 2022 Posts: 1
|
Posted: Wed Sep 21, 2022 4:11 pm Post subject: {$lua} error |
|
|
i would get an error when running this it will tell me lua error in the script at line 2 (this is line to " {$lua} ") and one more error of " StardewValley.Game1::Update not available yet. Please try again later " so i dont know whats wrong with the code.
and also i cant seem to find DotNetDataCollector in task manager so i dont know if that means its not working
this is the code
[ENABLE]
{$lua}
if syntaxcheck then
return
end
-- thanks to aSwedishMagyar
function getStructureByName(structName)
local numStructs = getStructureCount() - 1
for i = 0,numStructs do
local struct = getStructure(i)
if struct.Name == structName then return struct end
end
return nil
end
function checkDotNetSymbol(hook)
errorOnLookupFailure(false)
if getAddress(hook)==0 then
reinitializeDotNetSymbolhandler()
if getAddress(hook)==0 then
showMessage(hook .. ' is not available yet. Please try again later')
error()
return false
end
end
return true
end
local function checkPointer(p)
local a = getAddressSafe(p)
if a == nil or a == 0 then
--print(p .. ' not found')
return -1
end
a = getAddressSafe('[' .. p .. ']')
if a == nil or a == 0 then
--print(p .. ' is 0')
return 0
end
return 1
end
local Offsetable = {}
Offsetable.__index = Offsetable
function Offsetable.get(s)
local r = s.extended
s.extended = s.base
return r
end
function Offsetable.add(s, m)
s.extended = '[' .. s.extended .. '+' .. m .. ']'
return s
end
function Offsetable.new(base)
local s = {}
s.base = '[' .. base .. ']'
s.extended = s.base
return setmetatable(s, Offsetable)
end
StructResolver = {}
StructResolver.__index = StructResolver
StructResolver.queue = {}
StructResolver.timer = nil
function StructResolver.resolve(_this)
if _this.done == true then
return true
end
if checkPointer(_this.base) ~= 1 then
return false
end
local o = Offsetable.new(_this.base)
for i=1,#_this.structs do
for j=1,#_this.structs[i].offsets do
o = o:add(_this.structs[i].offsets[j])
end
local a = getAddressSafe(o:get())
if a == nil or a == 0 then
return false
end
local struct = getStructureByName(_this.structs[i].name)
if struct then
struct.removeFromGlobalStructureList()
end
struct = createStructure(_this.structs[i].name)
struct.addToGlobalStructureList()
struct.fillFromDotNetAddress(a,false)
print('Updated struct ' .. _this.structs[i].name)
end
_this.done = true
return true
end
function StructResolver.resolveOrError(_this)
if _this:resolve() == false then
error()
end
end
function StructResolver.onTimer(timer)
for i=1,#StructResolver.queue do
StructResolver.queue[i]:resolve()
end
for i=1,#StructResolver.queue do
if StructResolver.queue[i].done == false then
return
end
end
writeBytes(getAddress('struct_update_status'), 1)
timer.destroy()
if StructResolver.timer ~= nil then
StructResolver.timer = nil
end
print('ok')
end
function StructResolver.async(base, structs)
for i=1,#StructResolver.queue do
if StructResolver.queue[i].base == base then
return false
end
end
table.insert(StructResolver.queue, StructResolver.new(base, structs))
if StructResolver.timer == nil then
StructResolver.timer = createTimer()
StructResolver.timer.Interval = 1000
StructResolver.timer.OnTimer = StructResolver.onTimer
end
return true
end
function StructResolver.clear()
while getStructureCount() > 0 do
getStructure(0).removeFromGlobalStructureList()
end
end
function StructResolver.shutdown()
if StructResolver.timer ~= nil then
StructResolver.timer.destroy()
StructResolver.timer = nil
writeBytes(getAddress('struct_update_status'), -1)
end
end
function StructResolver.new(base, structs)
local r = {}
r.base = base
r.structs = structs
r.done = false
return setmetatable(r, StructResolver)
end
_subscripts = {
'_hook_game1_',
'_hook_chatbox_',
'_hook_melee_weapon_',
}
local symbols = {
'StardewValley.Game1::Update',
'StardewValley.Game1::get_player',
'StardewValley.Game1::UpdateChatBox',
'StardewValley.Tools.MeleeWeapon::tickUpdate',
}
for i=1,#symbols do
if not checkDotNetSymbol(symbols[i]) then
return
end
end
local al = getAddressList()
if not al then
showMessage('Failed to get address list')
error()
end
for i=1,#_subscripts do
local mr = al.getMemoryRecordByDescription(_subscripts[i])
if not mr then
showMessage(string.format('failed to enable subscript %i (%s)', i, _subscripts[i]))
error()
end
mr.Active = true
end
StructResolver.async('game1_base_ptr', {
{ name = 'Game1', offsets = {} },
})
StructResolver.async('farmer_base_ptr', {
{ name = 'Farmer', offsets = {} },
{ name = 'teamRoot', offsets = {'farmer.teamRoot'} },
{ name = 'Team', offsets = {'farmer.teamRoot', 'teamRoot.value'} },
{ name = 'netInt', offsets = {'farmer.netSpeed'} },
{ name = 'netIntList', offsets = {'farmer.professions'} },
{ name = 'netDouble', offsets = {'farmer.teamRoot', 'teamRoot.value', 'Team.sharedDailyLuck'} },
{ name = 'netBool', offsets = {'farmer.Exhausted'} },
{ name = 'netString', offsets = {'farmer.name'} },
{ name = 'String', offsets = {'farmer.name', 'netString.value'} },
{ name = 'netFloat', offsets = {'farmer.scale'} },
})
StructResolver.async('wateringcan_base_ptr', {
{ name = 'WateringCan', offsets = {} },
})
StructResolver.async('chatbox_base_ptr', {
{ name = 'ChatBox', offsets = {} },
})
StructResolver.async('abigailgame_base_ptr', {
{ name = 'AbigailGame', offsets = {} },
})
StructResolver.async('minecartgame_base_ptr', {
{ name = 'MinecartGame',offsets = {} },
})
StructResolver.async('crop_base_ptr', {
{ name = 'Crop', offsets = {} },
})
StructResolver.async('object_base_ptr', {
{ name = 'Object', offsets = {} },
})
StructResolver.async('tool_base_ptr', {
{ name = 'Tool', offsets = {} },
})
StructResolver.async('melee_weapon_base_ptr', {
{ name = 'Weapon', offsets = {} },
})
{$asm}
globalalloc(struct_update_status,1)
struct_update_status:
db 0
[DISABLE]
{$lua}
if syntaxcheck then return end
StructResolver.shutdown()
StructResolver.clear()
local al = getAddressList()
if al then
for i=1,#_subscripts do
local mr = al.getMemoryRecordByDescription(_subscripts[i])
if mr then
mr.Active = false
end
end
end
{$asm}
|
|