Напомните, как вызывается функция из code?
Не работает:
	local code c
	...
	call c() 

Принятый ответ

Есть еще ExecuteFunc
function MyFunction takes nothing returns nothing
    call BJDebugMsg("Test")
endfunction

function Test takes nothing returns nothing
    local string s = "MyFunction"
    call ExecuteFunc(s)
endfunction
Но тут уже не тип code и использует имя функции. В этом и указанных выше случаях возможность передачи аргументов отсутствует.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
17
4 года назад
0
как Filter(c), как Condition(c), или как Action триггера
0
32
4 года назад
0
Тип code по задумке используется лишь как аргумент к функциям калбекам, т.е function ForGroup takes group grp, CODE func ...
Чтобы дать понять интерпретатору что ты передаешь указатель на функцию а не её имя.
Но с появлением ретурн бага \ мемхака появились и новые возможности...
0
17
4 года назад
Отредактирован GetLocalPlayer
0
Есть еще ExecuteFunc
function MyFunction takes nothing returns nothing
    call BJDebugMsg("Test")
endfunction

function Test takes nothing returns nothing
    local string s = "MyFunction"
    call ExecuteFunc(s)
endfunction
Но тут уже не тип code и использует имя функции. В этом и указанных выше случаях возможность передачи аргументов отсутствует.
Принятый ответ
0
28
4 года назад
0
Никак не вызывается, code - funcrion <function name>, это никак нельзя вызвать только передать.
1
25
4 года назад
Отредактирован Jack-of-shadow
1
Я так понимаю автору нужно что то вроде этого: CodeLib или Save_Function

Обе библиотеки позволяют сохранить функцию, а затем вызвать ее по имени. Без использования мемхака и ExecuteFunc.
0
17
4 года назад
0
Обе библиотеки позволяют сохранить функцию, а затем вызвать ее по имени. Без использования мемхака и ExecuteFunc.
Обе требуют и cJass и JassHelper.
Вообще все это на луча нормальн делается. Пора уходить от жасс.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.