2 jul
2019

AdicHelper?

Added by
Здравствуйте, в пустой карте есть код:
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
То компилируется без проблем. В чем же подвох?

Answer

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

Shown only a small set of comments around the pointed one. Go to actual.
0
Голосов: 0
nazarpunk - 3 years ago
0
Голосов: 0
Объявление массива аллоцирует под него место и заполняет нулями (как calloc в C).
А почему нолями, а не null?
0
Голосов: 0
PT153 - 3 years ago
Edited by
0
Голосов: 0
А почему нолями, а не null?
Выше пояснил. 0 = false = null, в том же vJass в структурах (что являются integer) идёт сравнение с null. JASS не ругается.
0
Голосов: 0
nazarpunk - 3 years ago
0
Голосов: 0
Выше пояснил. 0 = false = null, в том же vJass в структурах (что являются integer) идёт сравнение с null.
А почему он тогда ругается на false > null?
0
Голосов: 0
PT153 - 3 years ago
Edited by
0
Голосов: 0
А почему он тогда ругается на false > null?
Ну этого сказать не могу, но инты с null JASS норм сравнивает.
Это ещё зависит от версии pjass.exe, последний может быть на это не реагирует.
0
Голосов: 0
Vlod - 3 years ago
0
Голосов: 0
PT153:
Vlod:
Потому что используете старый pjass.exe, используйте новый.
То компилируется без проблем. В чем же подвох?
Если писать на cJass, то надо писать на cJass. Верно будет так...
Спасибо, скачал. Новый pjass не решил проблему. Код на сjass
nothing temp() {
  integer dot = 1
  dot = present(dot)
}
также вызывает ошибку компиляции
0
Голосов: 0
nazarpunk - 3 years ago
0
Голосов: 0
Vlod, переходите на новый патч с lua или на zinc. Они всяко круче cjass.
0
Голосов: 0
Vlod - 3 years ago
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
Uploaded files
0
Голосов: 0
nazarpunk - 3 years ago
0
Голосов: 0
А куда букву дели?
Uploaded files
0
Голосов: 0
PT153 - 3 years ago
Edited by
0
Голосов: 0
Они всяко круче cjass.
cJass представляет мощный препроцессор. Ни Lua, ни Zinc такого не имеют.
0
Голосов: 0
Vlod - 3 years ago
Edited by
0
Голосов: 0
Shown only a small set of comments around the pointed one. Go to actual.
To leave a comment please sign in to the site.