Mono:Lua:mono invoke method
Revision as of 07:31, 18 December 2018 by Wangyujie96 (talk | contribs)
function mono_invoke_method(domain, method, instanseAddress, args): mono_readObject()??
Function Parameters[edit]
| 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[edit]
function my_mono_invoke_method(domain, method, args) --make it easier to call
local c=mono_method_getClass(method)
local instance = mono_class_findInstancesOfClassListOnly(domain,c)
instance = instance[1]
local params = mono_method_get_parameters(method)
if #args ~= #params.parameters then
print('ERROR:my_mono_invoke_method : wrong length of args')
return
end
local i
local args_t={}
for i=1, #params.parameters do
args_t[i] = {}
args_t[i].type = monoTypeToVartypeLookup[params.parameters[i].type]
args_t[i].value = args[i]
end
if method==nil or method==0 then
print('ERROR:my_mono_invoke_method : method==0')
return
end
if instance==nil or instance==0 then
print('ERROR:my_mono_invoke_method : instance==0')
return
end
local r=mono_invoke_method(domain, method, instance, args_t)
return r
end
local methodId = mono_findMethod('', 'PlayerStatsManager', 'TakeDamage') --find target method
my_mono_invoke_method('',methodId,{100.0})