Добавлен
Мало информации об этом языке в интернете. Подскажите кто-нибудь, пожалуйста, мне 2 основных вещи: область видимости функций и передача аргументов.
  1. Области видимости (пусть есть 2 триггера, конвертированные Jass. Вопрос: видят ли они функции друг друга? если да, то какой приоритет (правила видимости)?)
  1. Кто-нибудь может написать структура функции, которая принимает аргументы? что-то типо
function gold takes "integer i" return nothing
Заранее спасибо.

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

Вложенных функций нет. Ты можешь вызывать лишь те функции, что были определены выше. blizzard,j и common.j подгружаются раньше скрипта карты, потому все функции оттуда доступны.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
5 лет назад
0
Похожие вопросы:

ответ
Вобщем озарение как всегда пришло внезапно - понял что GetSpellAbilityUnit срабатывает на дамми и записывает в массив его, а не цель щита. Просто передвинул махинации с дамми в конец функции Actions. Всё отменно работает. Всем спасибо все свободны
ответ
Naadir, что значит сохраняется но не компилится?
можно скрины кода а также пути к карте, игре и редактору
ответ
Очередной проект задохнулся за недостатком энтузиазма...
Ну почему же сразу "задохнулся"? АоС как жанр в целом может развиваться бесконечно, и любую версию после релизной можно воспринимать как финальную, пока не выйдет следующая.

Автору: вообще-то говоря, подобные вещи обычно публикуют в блогах. В QA (этом разделе) тоже можно, конечно, но вопросы обычно очень быстро пропадают из поля зрения пользователей сайта, а поиск продолжателя может занять значительное время.
Вообще, я бы глянул исходник интереса ради. Продолжать гарантированно не буду, но мб на досуге что-нибудь запилю/перепилю для развлечения и скину тебе. Впрочем, тоже не обещаю.

Остальных комментаторов хотелось бы попросить воздержаться от выкрикивания мнений без конструктива по существу.
ответ

А еще у меня там местами xpcall отладочный висит, там где я ловил косяки и не убрал его потом, без него код чуть проще становится, он нужен только для отлова ошибок и в моем случае вывода их на экран.

Это печально, новые костыли, а я уже обрадовался, что ничего обнулять и чистить не нужно =(
Не нужно обнулять локалки в функциях и все что ограниченного срока жизни, но всякие системы хранения данных они же либо глобальные либо в "локальном" скопе всей карты и, соответственно, живут пока загружена карта - там вручную подчищать надо, естественно. Можно делать это полу-автоматически как у меня, можно вручную когда становится известно что данные уже не нужны. Можно было бы использовать таблицу со слабыми ключами, но тогда возникает вопрос что использовать в качестве ключей - можно прямо на самого юнита вешать, чтобы когда игра его удалит из памяти, таблица почистилась сборщиком мусора, но нет гарантии что это будет работать и не будет вызывать десинки т.к. сборщику мусора синхронизация не указ.
Bergi_Bear:
но мне можно себе такой вариант забрать или надо ещё что-то дополнительно записать?
У меня библиотека отгорожена только ради того чтобы автоматизировать сборку мусора и создание новых таблиц при обращении по хендлу на который ничего нет.
Минимальный вариант, наверно, такой:
local HandleData = {} -- я использую локальные переменные в скопе карты, при этом важен порядок но доступ к ним идет чуть быстрее чем в глобальном скопе

function ForceUnit (u,a,d,s,flag)
  local data = HandleData[GetHandleId(u)]
  if (data==nil) then data = {} HandleData[GetHandleId(u)] = data end
  data.a = a
  data.d = d
  data.s = s
  data.flag = flag
  GroupAddUnit(gforce, u)
end
-- --------------
ForGroup(gforce, function()
  local u=GetEnumUnit()
  local h=GetHandleId(u)
  local data = HandleData[h]
  local a=data.a
  local d=data.d
  local s=data.s
  local flag=data.flag
  ...
end

1
17
5 лет назад
1
На сайте есть поиск тоже
  1. см раздел функции
function A takes integer i, real r, string s returns boolean
	return true
endfunction
0
16
5 лет назад
0
Vlod:
На сайте есть поиск тоже
  1. см раздел функции
function A takes integer i, real r, string s returns boolean
	return true
endfunction
А где можно найти справочник базовых функций?
2
29
5 лет назад
2
Если используете jngp, то там должна быть кнопка function list в редакторе триггеров, сконвертированных в код
Если стандартный, то в common.j в папке вара через текстовый редактор
0
16
5 лет назад
0
Msey:
Если используете jngp, то там должна быть кнопка function list в редакторе триггеров, сконвертированных в код
Если стандартный, то в common.j в папке вара через текстовый редактор
я еще случайно в инете нашел)))
Так а что по зоне видимости, я могу вызывать функции в одном скрипте, написанные в другом скрипте?
1
28
5 лет назад
Отредактирован PT153
1
Вложенных функций нет. Ты можешь вызывать лишь те функции, что были определены выше. blizzard,j и common.j подгружаются раньше скрипта карты, потому все функции оттуда доступны.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.