Difference between revisions of "Mono:Lua:mono invoke method"
Jump to navigation
Jump to search
Wangyujie96 (talk | contribs) (→Function Parameters) |
Wangyujie96 (talk | contribs) m (→Examples) |
||
Line 32: | Line 32: | ||
== Examples == | == Examples == | ||
<pre> | <pre> | ||
− | + | local methodId = mono_findMethod('', 'PlayerStatsManager', 'TakeDamage') | |
− | + | local c = mono_method_getClass(methodId) | |
− | mono_class_findInstancesOfClass(nil,c,function(m) -- asynchronously | + | |
− | + | 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 | ||
+ | ) | ||
</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 )