Page 1 of 1

[Request] Arrival Zero Earth

Posted: Mon Nov 14, 2022 10:32 am
by yavin03
Game Name: Arrival Zero Earth
Game Engine: Unity (?)
Game Version: 0.10.0
Options Required: Unit Health/Invulnerability/God Mode, Unlock Points, Exp Multiplier, Damage Multiplier
Steam Website:
Other Info:
Game is still in early access.Tried searching any value like unlock points with "all" value types in CE, but got no result.

Re: [Request] Arrival Zero Earth

Posted: Sun Jul 09, 2023 4:22 pm
by Alucard0Reborn
+1

Re: [Request] Arrival Zero Earth

Posted: Wed Jun 12, 2024 12:38 am
by Alucard0Reborn
+2? Game hit 1.0 in Jan, not updated since. Maybe someone could take a crack at it?

Re: [Request] Arrival Zero Earth

Posted: Wed Jun 12, 2024 12:21 pm
by Ash06
You can't edit variables, but you can invoke game functions
UnlockPointsManager.AddUnlockPoints(int amount); //Set Unlock Points
CoffinManager.AddCoffins(int amount); //Add more coffins
CoffinManager.EmptyOneCoffin();

Invoke

Code: Select all

local method = mono_findMethod('', 'UnlockPointsManager', 'AddUnlockPoints') --(domain, ClassName, MethodName)
local r = mono_invoke_method('', method, address, args)
Get Address

Code: Select all

d=mono_enumDomains()
a1=mono_enumAssemblies(d[1])
images={}
for i=1, #a1 do
  images[i]=mono_getImageFromAssembly(a1[i])
  if mono_image_get_name(images[i])=="Arrival" then --default = Assembly-CSharp
    classes=mono_image_enumClasses(images[i])
    for j=1, #classes do
      if classes[j].classname=="ClassName" then --change ClassName
        methods=mono_class_enumMethods(classes[j].class)
        for k=1,#methods do
          if methods[k].name=="MethodName" then --change MethodName
            local ad = mono_compile_method(methods[k].method)
            print(string.format("Adress : %.8x", ad))
            return
          end
        end
      end
    end
  end
end
Get Instance

Code: Select all

local method = mono_findMethod('', 'ClassName', 'MethodName')
local class = mono_method_getClass(method)
local instance = mono_class_findInstancesOfClassListOnly(domain,class)
instance = instance[1]
print(string.format("Adress : %.8x", instance))
ex for UnlockPointsManager.AddUnlockPoints(int amount); (untested, but should work)

Code: Select all

[enable]
{$lua}
if (syntaxcheck) then return end

LaunchMonoDataCollector()

local method = mono_findMethod('', 'UnlockPointsManager', 'AddUnlockPoints')
if method==nil or method==0 then
   print('Method not found')
   return
end

local class = mono_method_getClass(method)
local instances = mono_class_findInstancesOfClassListOnly('',class)
local instance = instances[3] --default 1
if instance==nil or instance==0 then
   print('Instance not found')
   return
end
print(string.format("Instance : %.8x", instance)) --debug

local params = mono_method_get_parameters(method)
local args = {}
args[1] = {}
args[1].type = monoTypeToVartypeLookup[params.parameters[1].type]
args[1].value = 200 --int amount

if #args ~= #params.parameters then
   print('Args Error')
   return
end

print('Launch method') --debug
local domain = mono_enumDomains()[1]
--mono_invoke_method_dialog ('', method, '') --debug
mono_invoke_method(domain, method, instance, args)

{$asm}
[disable]