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

ответ
роюсь в common.j
нашел FirstOfGroup
я так понимаю, можно гнать через Loop удаляя каждый раз этого первого из группы?
ответ
Что ж, информация по ссылке оказалась исчерпывающей. Резюмируя, оставлю здесь некоторые пояснения. Параметр metaKey даёт возможность отлавливать события нажатия комбинаций клавиш CTRL+Q, ALT+F6, SHIFT+5 и т.п. Параметр принимает код комбо-клавиши, ими могут быть: SHIFT (1), CTRL (2), ALT (4), WIN (8); а так же их суммы: SHIFT+CTRL (3), SHIFT+ALT (5), SHIFT+CTRL+ALT (7) и так далее. Если комбо-клавиша не нужна, то в параметр нужно передать 0.
ответ
Что мешает просто взять и изменить уровень этой абилки у юнита? Это всегда работало.
ответ
Все что есть коснанты являет разрешеным а остальные пока напрямую обратить нельзя (некоторые работали) Моли близзарду чтобы все равкод поля открыли
ответ
сорян за некропост, но дам ответ на данный вопрос, т.к. появились нужные знания
эта функция утечна на 1.26, а точнее сам локальный звук, поэтому лучше юзать глобалки заготовленные и ресайкл систему, но там настолько ущербная утечка, что её можно и проигнорить в принципе

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

Vlod, 1.26? Точно?
В прошлом году еще сделали - Warcraft III - Lua
А, ну так это не jass же.
28
Jass не поддерживает функции как параметры других функций
JASS нет, vJass да, реализация через триггеры и массивы.
9
> Jass не поддерживает функции как параметры других функций
JASS нет, vJass да, реализация через триггеры и массивы.
Чуть выше написал про функциональные интерфейсы, это оно?
32
Екзекут триггера достаточно ресурсоемкий, для динамических действий не желателен.
18
А, ну так это не jass же.
я про jass вам ничего и не говорил
9
А, ну так это не jass же.
я про jass вам ничего и не говорил
Так я же про jass.
28
Чуть выше написал про функциональные интерфейсы, это оно?
Да.
quq_CCCP:
Екзекут триггера достаточно ресурсоемкий, для динамических действий не желателен.
И что? Всё равно быстрее и надёжнее экзекут функа. Тем более, что обычно используется .evaluate(), который ещё быстрее.
32
Примерно в 10 раз разница с call, можешь сам проверить.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.