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
)