XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
ARHUI

offline
Опыт: 3,341
Активность:
вызов функции, указанной в строке
в php можно так

Код:
$foo = "phpinfo";   
    $foo();


а в jass есть подобные возможности?

Кстати ещё вопрос
Код:
call SetPlayerTechMaxAllowed(whichPlayer, unitId, -1)


unitid это integer однако из gui в jass оно успешно ковертируется в строку вида 'N001' причем попытки сделать так
Код:
local string str = "N001"
    local integer unitid = S2I(str)
    call  SetPlayerTechMaxAllowed(Player(0), unitid, -1)



не увенчались успехом

ARHUI добавил:
Если передавать туда строку - то несоответствие типов...
Старый 18.12.2010, 02:40
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
set string s="jassinfo"
call ExecuteFunc(s) //Напрямую передавать параметры нельзя!
Это не строка. Одинарные кавычки в jass означают целочисленное, записанное в 256сс, соответственно:
call  SetPlayerTechMaxAllowed(Player(0), 'N001', -1) //правильно
call  SetPlayerTechMaxAllowed(Player(0), "N001", -1) //неправильно

Отредактировано Hellfim, 18.12.2010 в 03:00.
Старый 18.12.2010, 02:47
ARHUI

offline
Опыт: 3,341
Активность:
не понял -

set string s="jassinfo"
call ExecuteFunc(s) //Напрямую передавать параметры нельзя!

тоесть по сути я могу только процедуры запускать? Если нет, то как туда параметр передать? Вставить в качестве аргументов udg_arguments[...]?

допустим у меня 10 юнитов каждый из них имеет переменную N001,N002,...,N010 я в цикле получаю строки "N001" ... "N010" как мне их привести к допустимому типу?
Старый 18.12.2010, 03:41
ScorpioT1000
Работаем
offline
Опыт: отключен
в глобалке.
ScorpioT1000 добавил:
ScorpioT1000 добавил:
допустим у меня 10 юнитов каждый из них имеет переменную N001,N002,...,N010 я в цикле получаю строки "N001" ... "N010" как мне их привести к допустимому типу?
там тип int, к чему ещё надо приводить?
ScorpioT1000 добавил:
а, понял, есть наработки типа xgm.ru/forum/showpost.php?p=212729&postcount=31 , но она работает брутфорсом, придумай другое решение
Старый 18.12.2010, 03:50
DioD

offline
Опыт: 45,134
Активность:
если не хотим эксикат по строке то вешаем на строку номер массива кондишинов и вызывает действия через кондишин.
Старый 18.12.2010, 13:41
ScorpioT1000
Работаем
offline
Опыт: отключен
в кондишенах слипы не работают)
Старый 18.12.2010, 14:03
ARHUI

offline
Опыт: 3,341
Активность:
Спасибо), насчет unitId спрашивал чтобы код стал меньше, но всё ведёт к тому, что обычным способом работать будет быстрее....
Старый 18.12.2010, 14:47
DioD

offline
Опыт: 45,134
Активность:
вейты НЕ НУЖНЫ.
Старый 18.12.2010, 16:52
ARHUI

offline
Опыт: 3,341
Активность:
По поаоду перевода из ascii в hex, я правильно понимаю что никаких функций типа javascripтовского charCodeAt() в jass нет, но тогда только перебор значений на совпадение?
ARHUI добавил:
можно делать S2I(I2S('N001')) это вернёт число в десятичной системе...
ARHUI добавил:
или можно сразу писать 'N001'?
Старый 18.12.2010, 18:17
ScorpioT1000
Работаем
offline
Опыт: отключен
DioD, в некоторых случаях проще написать Sleep(100), чем создавать систему таймеров и собственный стек с событиями и кучей функций
ScorpioT1000 добавил:
ARHUI, если бы ты изучал базу статей, а не базу пользователей, готовых откликнуться на твои мольбы, то узнал бы, что оператор апострофа понимается как константный интежер
Старый 19.12.2010, 20:04
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 01:51.