Звучит как бред. Помнится, вы говорили, что параметры в функцию передавать нельзя. Следующая ситуация, у меня будет огромная туча функций, в которых будет описываться произвольно заданные лагеря монстров. ( 1 вар.- два волка и один волк вожак; 2 вар. - три волка; 3 вар. - 2 кентавра; и так далее) Решил что видов лагеря на локацию будет ровно 5, поэтому на локацию по пять кемпов. Лагеря будут рандомится по формуле: set X = getRandomInt(i*5,i*5+5) - где i - это локация. Так вот, хочу все сделать в 2 строчки по циклу где буду переберать локации и рандомить для них спавны крипов. Как можно записать функции состава и спавна лагеря с использованием переменной X?
Как всегда, сразу в голове есть уже какая-то идея. Глобальная переменная X (integer) будет хранить номер, перед вызовом функции номер X будем рандомить: set X = getRandomInt(i*5,i*5+5). А в самой функции сверять номер. Является ли этот вариант оптимальным? а то мне уже кажется, что нет.
Заранее спасибо!

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

Можно ли в переменную занести вызов функции?
Есть три способа:

1.ExecuteFunc
может сломаться после обфускации некоторых оптимайзеров!
2.TriggerExecute
Тригер заносим в переменную, массив или сохраняем в хеш таблицу.
3.Boolexpr (Есть библиотека)
Функция привязываться к фильтру. Фильтр записывать по аналогии с пунктом 2.
Нужные атрибуты можно передавать через глобалки.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
24
5 лет назад
0
Уточнение, передавать параметры в функцию можно. Нельзя передавать параметры в каллбеки (это когда сама функция передается куда-то параметром).
0
26
5 лет назад
0
Создать группы из юнитов, которых с карты уберёшь, потом рандомить выбор группы и создавать юнитов того типа, которые есть в группе.
2
25
5 лет назад
Отредактирован Jack-of-shadow
2
Можно ли в переменную занести вызов функции?
Есть три способа:

1.ExecuteFunc
может сломаться после обфускации некоторых оптимайзеров!
2.TriggerExecute
Тригер заносим в переменную, массив или сохраняем в хеш таблицу.
3.Boolexpr (Есть библиотека)
Функция привязываться к фильтру. Фильтр записывать по аналогии с пунктом 2.
Нужные атрибуты можно передавать через глобалки.
Принятый ответ
0
28
5 лет назад
0
Не работает после обфускации оптимайзеров!
Работает, оптимайзер векса все строки с именами функций переделывает.
0
25
5 лет назад
0
PT153:
поправил)
0
28
5 лет назад
0
Jack-of-shadow, у меня из-за этого баг был, что строка "Restart" изменилась после обфускации, так как была функция с таким же именем.
0
29
5 лет назад
0
Такой большой текст, а язык программирования так и не указан.
На lua вариантов реализации много, но так как автор не указал ЯП, то предложу классичекский - структуры + хэштаблица.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.