Добавлен pAxsIs
Немного предыстории, недавно я решил перейти на JASS окончательно и бесповоротно, потому что когда начинаешь делать красивую анимацию на триггерах и даммиках, образуется такая течь, что играть становится невозможно
Итак, пара вопросов по JASS:
- Передача аргументов в функции идет по ссылке или по значению?
- Если по значению, то как передать по ссылке?
- Если локальная переменная возвращается из функции, то как ее обнулять (допустим возвращается тип unit)?
- Есть ли возможность передачи шаблонных аргументов в функцию?
- Не нашел информации по работе с массивами на JASS (только на cJass, Zinс), ссылочку пожалуйста. Интересует объявление\определение\ обращение\передача в функцию (по ссылке).
- Есть ли возможность "typedef"? "class"? массив ссылок?
- Документация, которая могла бы объяснить что делают некоторые нативки (на английском тоже нормально), пока приходится писать на гуи код, потом ковертировать, а потом искать аналоги нативок для BJ функций. (Двойная работа) Возможно есть способ не писать код дважды?
P.S. Честно все искал, но вот эти вопросы остались по-прежнему незакрыты. Спасибо за внимание.
Принятый ответ
всегда по ссылке для handle-типов, всегда по значению для остальных
изменить это невозможно
никак, использовать глобалку, куда сохранять локалку перед нулением
нет, нету
изменить это невозможно
никак, использовать глобалку, куда сохранять локалку перед нулением
нет, нету
ну или аналоги всего этого есть в продвинутых редакторах, не знаю, пусть те, кто ими пользуются, скажут
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
изменить это невозможно
никак, использовать глобалку, куда сохранять локалку перед нулением
нет, нету
Отредактирован GetLocalPlayer
Hate:
Отредактирован pAxsIs
Еще один доп вопрос: Разве vJASS и JASS не одно и тоже? Раньше когда читал так и думал.
Отредактирован pAxsIs
Отредактирован Raised
Отредактирован pAxsIs
Отредактирован GetLocalPlayer
pAxsIs:
Подробнее тут или тут, что больше нравится.
Отредактирован PT153
string нельзя изменить, при конкатенации создаётся новая строка в специальном месте и возвращается ссылка на неё (или берётся ссылка на получившуюся строку, если она была уже когда-то создана).
Больше о string.
2. Никак.
3. Никак, но обнулять нужно. Это обещали исправить в будущих патчах.
Обнулять нужно только тип handle и его наследников (string не наследник handle!).
Аргументы функции обнулять не нужно.
4. Что значит шаблонные? Значений по умолчанию у аргументов не может быть.
5. В JASS нельзя передавать массивы как аргументы, размер их фиксированный.
Нельзя создать массив типа code.
6. Структуры vJass, но они местами забагованы.
7. Все нативки есть в common.j и common.ai.
GetLocalPlayer уже скинул ссылку на мануал vJass, советую прочитать. Также советую прочитать самые последние ченжлоги упомянутые там.