Ну глобалки в условия триггера, не? Самое то. Что на гуи что на jass одинакого реализуется, включение и выключение триггеров, особые стреленые воробьи могут добавлять, удалять условие триггеру (jass only) триггер выполнить действия если все его условия вернут true (внезапно у триггера может быть неограниченное кол-во условий (Trigger Condition) ) но в 99% случаев достаточно глобалок для решения этой задачи.
Т.е. мое предложение было лучшим чтоль, ну ладненько.
Вы не правильно юзаете варкрафтоские переменные, например у вас событие с таймером. Он не дает каких либо варкрафтовским переменным данные (например, у вас на русском написано "Юнит триггера", это наверное GetTriggerUnit, но не существует его). Вам нужны какие-то данные от которых нужно отталкиваться, например берете группу и всех пикаете (есть GetEnumUnit() ). Когда вы всех пикаете через ForGroup, там перебирают всех через переменную GetEnumUnit
Если использовать другие события, то там аргументы передают. Например, юнит умирает (если не ошибаюсь) дает 4 переменные: TriggerUnit, убийца и умирающий. TriggerPlayer (если регистр события прикреплен на юнита, а не на игрока, то эта переменная не будет работать, не проверял). Хотя две переменные TriggerUnit и умирающий ссылаются на одного и того же юнита - умирающего юнита
Ну ты загнул, этот челик впервые берется за группы, а ты ему уже кидаешь лоу Jass, так низя делать
минимум группировок юнитов в частых таймерах или циклах
Так, это первое что я не делаю(скорее всего, ибо я не понял что здесь сказано
В таймерах я стараюсь использовать только одну группу, не создавая локалку каждый цикл, ты об этом? Diaboliko:
Подкину еды что ли
Вооот, вот это годноту ты закинул, спасибо. Пока вопрос закрывать не стоит, может еще кто-то что-то ответит, ну и ответ еще по поводу группировок. Diaboliko:
Подкину еды что ли
ПОсмотрел я вот эту еду, и задался вопросом, что лучше 1 глобальная группа, которой я объявляю литерал каждый тик, или создание новой локальной переменной, присваивание литерала и ее очистка, ммм?Кто мне ответит на этот вопрос?Мне по подсчетам у глобальной переменной больше тактов происходит
Хотя..., получается неизвестное кол-во тактов от уничтожения локальной группы и ее очистки от юнитов
call GroupEnumUnitsInRange(g, xn, yn, 90., Condition(function UCond))
Тоже безуспешно
Мддддддддддддддддеееееееееееееееееееееее, написал local group g, вместо local group g = CreateGroup()
ГГ, минус 2 часа жизни на этой ошибке, просто пизд*ц
Но еще 1 вопрос у меня есть, он попроще. Как мне создавать глобальные переменные, сейчас приходится через Ctrl+B списочек составлять
лол? массивы - это переменные, которые могут хранить множество значений одного типа (целочисленная, объект).
Структура может держать в себе набор переменных различных типов и функций-методов.
Где это одно и то же?
"Массивы", т.е. я могу взять много однотипных массивов, и затронуть различные типы, как это делает структура, читай внимательнее, плез.
если тебе звук нужен только для обладателя героя, то ты используешь вместо current camera view
position of hero[GetPlayerId(GetLocalPlayer())]
где hero - массив героев, индекс это номер игрока начиная с нуля
то есть hero[0] красный геро, hero[1] синий и т.д.
тогда это вернет позицию локального героя
Я опять ничерта не понял, какая же эта функция конченная. Ладно, вернемся к моей.
function PlayLocalSound takes string s integer p returns nothing
local sound snd
if GetLocalPlayer() != Player(p) then
set s = ""
endif
set snd = CreateSound(s,false, false, false,10,10,"")
call SetSoundChannel(snd,5)
call SetSoundVolume(snd,127)
call SetSoundPitch(snd, 1)
call StartSound(snd)
call KillSoundWhenDone(snd)
set snd = null
endfunction
Она ведь осталась неизменной, следовательно десинхрон останется, что поменять?
вот у красного игрока камера там где нужно, и его комп поставит правильную строку
а вот синий смотрит не туда, и его копм сделает пустую строку
оба компа создают звук, но у красного звук есть, а у синего звука нет потому что путь пустой
Хорошо, если бы я использовал вместо центра карты позицию героя каждого игрока(у них по 1 юниту), то?цикл использовался только для чего?Для назначения N-точек?
+Нужно было бы всовывать в цикл Условие и создавать N строк, и N раз запускать функцию звука, так?
ты не поймешь
но напишу еще раз: каждый компьютер (монитор, процессор) каждого игрока выполняет этот код
но каждый по своему, потому что камера у каждого в разном месте
Все, я понял как работает гетлокал, теперь мне нужна другая инфа, о loc, точнее о current camera.
ты не поймешь
но напишу еще раз: каждый компьютер (монитор, процессор) каждого игрока выполняет этот код
но каждый по своему, потому что камера у каждого в разном месте
Но нужно понять, ибо какой толк от гетлокал, если юзать его бездумно.
» WarCraft 3 / Альтернатива Вкл/выкл триггера
» Администрация XGM / Как вернуть аккаунт?
Ред. LainMikoroso
» WarCraft 3 / Аура
Ред. LainMikoroso
» WarCraft 3 / Библиотека или что-то типо этого
Diaboliko:
Diaboliko:
Хотя..., получается неизвестное кол-во тактов от уничтожения локальной группы и ее очистки от юнитов
» WarCraft 3 / Библиотека или что-то типо этого
» WarCraft 3 / Библиотека или что-то типо этого
Хотя может кто-то чето знает?
» WarCraft 3 / Библиотека или что-то типо этого
» WarCraft 3 / Не читает код ниже двух строк
Тоже безуспешно
Мддддддддддддддддеееееееееееееееееееееее, написал local group g, вместо local group g = CreateGroup()
ГГ, минус 2 часа жизни на этой ошибке, просто пизд*ц
Но еще 1 вопрос у меня есть, он попроще. Как мне создавать глобальные переменные, сейчас приходится через Ctrl+B списочек составлять
» WarCraft 3 / Я ранее задавал вопрос по поводу хештаблиц вс массивы
» WarCraft 3 / Я ранее задавал вопрос по поводу хештаблиц вс массивы
» WarCraft 3 / Я ранее задавал вопрос по поводу хештаблиц вс массивы
» WarCraft 3 / Сейчас бы закрыть вопрос по своему велению, мде
Да, профитнее, я сам ответил на свой вопрос
» WarCraft 3 / Сейчас бы закрыть вопрос по своему велению, мде
» WarCraft 3 / Сейчас бы закрыть вопрос по своему велению, мде
(второй вопрос все еще открыт)
» WarCraft 3 / И все же проблема с Preload осталась
» WarCraft 3 / И все же проблема с Preload осталась
» WarCraft 3 / И все же проблема с Preload осталась
» WarCraft 3 / Звук проигрывает только после повторного запуска способности
» WarCraft 3 / Звук повторяется пока не проиграешь другой, как остановить ето?
biridius:
» WarCraft 3 / Функция GetLocal вызывает дессинхрон
» WarCraft 3 / Функция GetLocal вызывает дессинхрон
local sound snd
if GetLocalPlayer() != Player(p) then
set s = ""
endif
set snd = CreateSound(s,false, false, false,10,10,"")
call SetSoundChannel(snd,5)
call SetSoundVolume(snd,127)
call SetSoundPitch(snd, 1)
call StartSound(snd)
call KillSoundWhenDone(snd)
set snd = null
endfunction
» WarCraft 3 / Функция GetLocal вызывает дессинхрон
+Нужно было бы всовывать в цикл Условие и создавать N строк, и N раз запускать функцию звука, так?
» WarCraft 3 / Функция GetLocal вызывает дессинхрон
» WarCraft 3 / Функция GetLocal вызывает дессинхрон
» WarCraft 3 / Функция GetLocal вызывает дессинхрон
biridius: МНе нужно объяснить только гетлокал, и все, я не понимаю как выводится айди для всех игроков сразу через гетлокал