Jass не поддерживает функции как параметры других функций или я что-то не понимаю?
function getNextParameter takes code getVector3dForCurve, real oldParameter, real velocity returns real
        Vector3d pointOld = getVector3dForCurve(oldParameter)
        return .0 // TODO: Заглушка
    endfunction
АПД. Тут много полезной информации в разных ответах, но решение можно выбрать только одно...Технически, на вопрос есть конкретный ответ, о том, что в jass так нельзя. Но при этом есть полезная информация как это "нельзя" обойти.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
9
2 года назад
0
Как я понял, просто так нельзя. Но есть такая вещь.
0
22
2 года назад
0
map_maiker, Если без мемхака, то можно, например, через триггер, Используя TriggerAddCondition, которые принимает функции как аргументы, а для вызова испоьзовать TriggerEvualate. Передать параметры в функцию и возвращать можно через глобалки или хэш таблицу (повесив, например, id handle на триггер).
0
32
2 года назад
0
Есть имя функции - это как ты к ней обращаешься в коде, это имя низя использовать ни в качестве аргумента ни в качестве переменой.
Есть перемменая типа code - указатель на функцию, local code c = function myfunc, важное но жасс не поддерживает никаких действий с указателем на функции, ни сложения ни вычитание, ни массива, ни чего либо ещё. Вовсе это так сказать задумка для работы callback функционала,
Но существуют хитрости, на которых построен мемхак. К примеру можно получить из code - integer, функцией C2I...
Че собрался делать расскажи.
0
9
2 года назад
0
quq_CCCP, идея была вынести в библиотеку набор вспомогательных инструментов для работы с кривыми, векторами и прочим. Например, функция из стартового поста задумывалась для поиска такого параметра, что длина отрезка между старым и новым равна параметру velocity. То есть функция возвращающая точку для параметра задаётся отдельно и передаётся колбэком.
2
32
2 года назад
2
Jass не позволяет вызывать code через call, только через функциюс callback'ом или execute code, но это не то что нужно. Всё эти варианты структур и библиотек - работают не так как вы себе это представляете, jass статичен, нет у вас возможности создать функцию и размножить её, вызывая по индексу с разными параметрами, как то передать её тоже. Функция - объект, они создаются при запуске карты во время игры не изменены (ну кроме мемхака, но это отдельный случай).
0
18
2 года назад
0
По дефолту, именно так - нельзя. В функции, которая принимается как аргумент, не должно быть аргументов. Как в функции TimerStart
0
11
2 года назад
Отредактирован ArhiMEN
0
Если я правильно понимаю, то так можно делать в WURTS
0
9
2 года назад
0
Если я правильно понимаю, то так можно делать в WURTS
Вурст?
4
32
2 года назад
Отредактирован quq_CCCP
4
ArhiMEN, еще один - да не дают ваши надтстройки над жассом чето изменить, и вы не хотите этого пониать, свято веря что вот там то норм...
Как объявление локалок в любом месте функции в сижассе, что дало то - тонны глупых вопросов с глупыми ошибками, ибо в итоге это выглядило как
functiion xxx takes nothing returns nothing
local a = 0
//some code...
set a = 1
//some code
endfunction
Помните про такие вещи, и что зачастую решения предастовляймые надстройками вроде Cjass\vjass\wurst и тому подобные имеют ограничения и не делаю жасс ближе к с++ или луа, просто немного упрощают написание кода - но требует в замен большей внимательности.
Да и еще одно, проверяйте ваши решения на производительность, благо в мемхаке анрайза есть тест, то ваши вусрт решения могут очень даже оказатся пипец слоупочным костылем...
0
9
2 года назад
0
quq_CCCP, а без мемхака кроме счётчика хендлов есть способы проверить производительность? Ибо все условно муишные варианты что я придумал так или иначе хеш-таблицы юзают. Ну то есть обращение к хеш-таблицам вроде быстрое, накладных операций всё равно некоторое количество выходит.
0
32
2 года назад
0
map_maiker, нет нету, ну офк можите сделать и смотреть что лагает сильнее - но это такой себе тест...
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.