Difference between revisions of "Mono:Lua:mono invoke method"

From Cheat Engine
Jump to navigation Jump to search
(Function Parameters)
m (Examples)
Line 32: Line 32:
 
== Examples ==
 
== Examples ==
 
<pre>
 
<pre>
  local methodId = mono_findMethod('', 'PlayerStatsManager', 'TakeDamage')
+
local methodId = mono_findMethod('', 'PlayerStatsManager', 'TakeDamage')
  local c = mono_method_getClass(methodId)
+
local c = mono_method_getClass(methodId)
   mono_class_findInstancesOfClass(nil,c,function(m)          -- asynchronously
+
 
    local fl = createFoundList(m)  
+
local params = mono_method_get_parameters(methodId)
    fl.initialize()
+
local args = {}
    if fl.Count >0 then
+
for i=1, #params.parameters do
      InstancesAddress=fl[0]
+
   args[i]={}
      mono_invoke_method('' , methodId , InstancesAddress , {{100}} )
+
  args[i].type=monoTypeToVartypeLookup[params.parameters[i].type]
    else
+
end
      print('Faild to find Instances')
+
args[1].value=100.0
    end
+
 
    fl.destroy()
+
mono_class_findInstancesOfClass(nil,c,function(m)          -- asynchronously
    m.destroy()
+
  local fl = createFoundList(m)  
    end
+
  fl.initialize()
    )
+
  if fl.Count >0 then
 +
    InstancesAddress=fl[0]
 +
    mono_invoke_method('' , methodId , InstancesAddress ,args)
 +
  else
 +
    print('Faild to find Instances')
 +
  end
 +
  fl.destroy()
 +
  m.destroy()
 +
  end
 +
  )
 
</pre>
 
</pre>

Revision as of 13:29, 17 December 2018

function mono_invoke_method(domain, method, instanseAddress, args): mono_readObject()??




Function Parameters

Parameter Type Description
domain string The namespace of the method
methodId integer The method's id
instanseAddress integer The address of instanse
args table The arguments

Examples

local methodId = mono_findMethod('', 'PlayerStatsManager', 'TakeDamage')
local c = mono_method_getClass(methodId)

local params = mono_method_get_parameters(methodId)
local args = {}
for i=1, #params.parameters do
  args[i]={}
  args[i].type=monoTypeToVartypeLookup[params.parameters[i].type]
end
args[1].value=100.0

mono_class_findInstancesOfClass(nil,c,function(m)          -- asynchronously
  local fl = createFoundList(m) 
  fl.initialize()
  if fl.Count >0 then
    InstancesAddress=fl[0]
    mono_invoke_method('' , methodId , InstancesAddress ,args)
  else
    print('Faild to find Instances')
  end
  fl.destroy()
  m.destroy()
  end
  )