AdicHelper?
Здравствуйте, в пустой карте есть код:
function present takes integer i returns integer
  return i
endfunction

function temp takes nothing returns nothing
  integer dot = 1
  dot = present(dot)
endfunction
Который останавливает компиляцию AdicHelper.
Если изменить temp на :
function temp takes nothing returns nothing
  integer dot = 1
  set dot = present(dot)
endfunction
То компилируется без проблем. В чем же подвох?

Лучший ответ:
Vlod, cJass немного багнут, по всей видимости, воспринимает dot как do.


Views: 1 031

XGM Bot #1 - 1 year ago 2
Голосов: +2 / -0
Похожие вопросы:

» ответ
Поставил расстояние 256 там, где вычисляются полярные координаты - всё заработало. То есть слишком маленькие значения нельзя, как 64, всё ясно. Тема закрыта.
» ответ
Вот как должен выглядеть полностью правильный триггер без утечек, единственная утечка создастся только при первом использовании, это я так понял переменная группы, ее обнулять нельзя, иначе скил будет работать только раз.
» ответ
~8gabriel8:
PhysCraft, он уже пробовал этот метод. Не подошёл из-за белых портретов.
Steal nerves, извини, обманул тебя. Чтобы сделать вынесение в отдельную поверхность, надо сначала удвоить вершины. Но только почему-то нормально не работает, часть вершин не удваивается.
Сейчас посмотрю, как с анимацией текстур работал.
А ведь ты не сделал копию анимаций, просто продублировал имеющиеся, дав им название с тэгом. Это не даст желаемого.

Извини, но пока путного не получается. Может быть опосля придёт умная мысля.
По идее всё равно надо делать реальную копию анимационного ряда, а не просто дать новое название тем же кадрам. Может быть ты в процессе копирования кадров согласишься, что легче создать кучу крестьянок с новыми моделями в РО и триггерно их заменять, чем одну почти такую же тяжёлую за счёт анимаций модель с тэгами. При этом не факт, что у неё с портретом будет порядок.
» ответ
Личный опыт:
  1. Заходить в карту чтобы скоротать время, пока друзья ещё не пришли/ ещё играют (в ту катку, с которой ты вылетел/крашнулся)
  1. Цель от данной игры:
(большинство рпг)
*1) Попытаться выбить что-то, что падает с одноразового босса, и свалить на рмк
*2) Помочь другу попытаться выбить что-то, что падает с в пункте 1
(большинство других карт)//(Те же тролли и эльфы)
[Больше психология и нежелание играть в неравных условиях]
*1) Этот эльф абузит что-либо!
*2) Эти эльфы собрались в войсе и абузят одну стенку на четверых! Делал так вчера :D
*3) Этот тролль играет с мх и всегда сразу находит любого эльфа на большой карте!
  1. Попытка поиграть во что-то, оборачивается чем-то плохим:
*1) Выбивается инэт/свет/ потолок падает на игрока
*2) Вырубается что-то из оборудования, в следствии чего пк зависает/уходит в ребут
*3) Крашит/Десинкает из вара
*4) Винда что-то непонятное выводит (Та же нехватка озу/бэды на харде)
  1. Определённый сегмент игроков, зовущийся троллями которые что и делают что по кд оскорбляют других, и подпалив игроков просто ливают.
  1. Отдельно насчёт игроков: цифры = пункты выше из шапки
Пункты 1, 2, 5, 6, 7, 8, 9, 10, 12 относятся больше к тому, что игроки с "ини" показывают друг другу зубы и соблюдают этот стиль общения на протяжении всей катки
Пункты 8,12 относятся к тем, с чем можно смириться и продолжить играть в мапу
Пункт 6 - для "Соло" карт, которые просто нельзя пройти в одного, не имея друзей ,что мной расценивается как просто потеря времени
Идеальной карты нет и небудет - вы не сможете совместить абсолютно все жанры, которые нравятся комьюнити - Одновременно ТД и РПГ я ещё не видел, не зря это разные жанры.
Если она и будет, то все наткнутся на лимит в 12 слотов, с которых гарена наврядли когда выйдет.

PT153 #2 - 1 year ago (изм. ) 0
Голосов: +0 / -0
Vlod, ты всегда пытаешься использовать переменную без значения. Это ошибка. Во втором случае ты пытаешь использовать не определённую переменную, о чём и говорит парсер. Скачай новый pjass.exe, он укажет и на ошибки в оставшися случаях.
NazarPunk #3 - 1 year ago (изм. ) 0
Голосов: +0 / -0
ты всегда пытаешься использовать переменную без значения. Это ошибка.
А в чём проблема переменной без значения?

zinc например позволял их объявлять.
local real x, y = 0.5, z
Vlod #4 - 1 year ago 0
Голосов: +0 / -0
PT153, поправил поправленное описание
PT153 #5 - 1 year ago (изм. ) 0
Голосов: +0 / -0
А в чём проблема переменной без значения?
При обращении к переменной без значения поток обрывается. Вот у массивов все ячейки имеют дефолтное значение, обычнве переменные нет.
Vlod, а какая ошибка?
NazarPunk #6 - 1 year ago (изм. ) 0
Голосов: +0 / -0
При обращении к переменной без значения поток обрывается.
Правда? А посему декларация переменных поток не сбрасывается?
Вот у массивов все ячейки имеют дефолтное значение
А не обращение к несуществующему элементу массива возвращало null?
PT153 #7 - 1 year ago 0
Голосов: +0 / -0
Правда?
В JASS так, даже последний pjass.exe это определяет.
А посему декларация переменных поток не сбрасывается?
Не понял.
А не обращение к несуществующему элементу массива возвращало null?
Все элементы массива по умолчанию заполнены нулями.
NazarPunk #8 - 1 year ago 0
Голосов: +0 / -0
Все элементы массива по умолчанию заполнены нулями.
Если б это было так, то простое объявление массива сжирало всю доступную память.
Vlod #9 - 1 year ago 0
Голосов: +0 / -0
PT153:
Vlod, ты всегда пытаешься использовать переменную без значения.
Теперь переменная имеет начальное значение. Хочу отметить, что компиляция кода:
function temp takes nothing returns nothing
  integer i
  i = present(i)
endfunction
И так не вызывает ошибок. Хотя поток и оборвется при исполнении.
Обратите внимание на название переменной в вопросе
PT153 #10 - 1 year ago (изм. ) 0
Голосов: +0 / -0
Если б это было так, то простое объявление массива сжирало всю доступную память.
Что за чушь? Объявление массива аллоцирует под него место и заполняет нулями (как calloc в C). Потому начальные значения у массива есть false, 0, 0. и null. Для обычной переменной заполнения нулями не происходит, потому там может быть что угодно. Использование переменной без установленного значения (которое может быть присвоено во время определения переменной или после) обрывает поток.

И так не вызывает ошибок.
Потому что используете старый pjass.exe, используйте новый.
То компилируется без проблем. В чем же подвох?
Если писать на cJass, то надо писать на cJass. Верно будет так.

cJass

void temp() {
  integer dot = 1
  dot = present(dot)
{

JASS\vJass

function temp takes nothing returns nothing
  local integer dot = 1
  set dot = present(dot)
endfunction
NazarPunk #11 - 1 year ago 0
Голосов: +0 / -0
Объявление массива аллоцирует под него место и заполняет нулями (как calloc в C).
А почему нолями, а не null?
PT153 #12 - 1 year ago (изм. ) 0
Голосов: +0 / -0
А почему нолями, а не null?
Выше пояснил. 0 = false = null, в том же vJass в структурах (что являются integer) идёт сравнение с null. JASS не ругается.
NazarPunk #13 - 1 year ago 0
Голосов: +0 / -0
Выше пояснил. 0 = false = null, в том же vJass в структурах (что являются integer) идёт сравнение с null.
А почему он тогда ругается на false > null?
PT153 #14 - 1 year ago (изм. ) 0
Голосов: +0 / -0
А почему он тогда ругается на false > null?
Ну этого сказать не могу, но инты с null JASS норм сравнивает.
Это ещё зависит от версии pjass.exe, последний может быть на это не реагирует.
Vlod #15 - 1 year ago 0
Голосов: +0 / -0
PT153:
Vlod:
Потому что используете старый pjass.exe, используйте новый.
То компилируется без проблем. В чем же подвох?
Если писать на cJass, то надо писать на cJass. Верно будет так...
Спасибо, скачал. Новый pjass не решил проблему. Код на сjass
nothing temp() {
  integer dot = 1
  dot = present(dot)
}
также вызывает ошибку компиляции
NazarPunk #16 - 1 year ago 0
Голосов: +0 / -0
Vlod, переходите на новый патч с lua или на zinc. Они всяко круче cjass.
Hate #17 - 1 year ago 0
Голосов: +0 / -0
так какую ошибку, скрин хотяб вбрось
Vlod #18 - 1 year ago 0
Голосов: +0 / -0
Например, изначальный блок кода:
nothing temp() {
  integer dot = 1
  dot = present(dot)
}

nothing temp2() {
  integer i = 1
  i = present(i)
}
На момент ошибки:
Compiling is stopped
Critical error: unclosed block
Прикрепленные файлы
NazarPunk #19 - 1 year ago 0
Голосов: +0 / -0
Прикрепленные файлы
PT153 #20 - 1 year ago (изм. ) 0
Голосов: +0 / -0
Они всяко круче cjass.
cJass представляет мощный препроцессор. Ни Lua, ни Zinc такого не имеют.
Vlod #21 - 1 year ago (изм. ) 0
Голосов: +0 / -0
PT153 #22 - 1 year ago (изм. ) 0
Голосов: +0 / -0
Vlod, а какие опции cJass включены?
Vlod #23 - 1 year ago 0
Голосов: +0 / -0
их комбинация ничего не дала
Прикрепленные файлы
PT153 #24 - 1 year ago 0
Голосов: +0 / -0
Vlod, попробуй отключить всё, кроме AdicParser.
pjass.exe новый стоит?
Vlod #25 - 1 year ago 0
Голосов: +0 / -0
PT153:
Vlod, попробуй отключить всё, кроме AdicParser.
pjass.exe новый стоит?
ага, пока все печально кушает всё, кроме dot
PT153 #26 - 1 year ago 0
Голосов: +0 / -0
Vlod, а если изменить имя dot на другое?
Vlod #27 - 1 year ago 0
Голосов: +0 / -0
PT153, то работает
PT153 #28 - 1 year ago 0
Голосов: +0 / -0

Vlod, cJass немного багнут, по всей видимости, воспринимает dot как do.
Vlod #29 - 1 year ago (изм. ) 0
Голосов: +0 / -0
жаль, что отключить кастомные циклы нельзя.
PT153, нужно ли и кому сообщать о найденном баге?
PT153 #30 - 1 year ago (изм. ) 0
Голосов: +0 / -0
Vlod, напиши под статьёй про циклы, но я не думаю, что cJass кто-то будет править.
Vlod #31 - 1 year ago 0
Голосов: +0 / -0
PT153, всё может быть)