14

» WarCraft 3 / Альтернатива Вкл/выкл триггера

Ну глобалки в условия триггера, не? Самое то. Что на гуи что на jass одинакого реализуется, включение и выключение триггеров, особые стреленые воробьи могут добавлять, удалять условие триггеру (jass only) триггер выполнить действия если все его условия вернут true (внезапно у триггера может быть неограниченное кол-во условий (Trigger Condition) ) но в 99% случаев достаточно глобалок для решения этой задачи.
Т.е. мое предложение было лучшим чтоль, ну ладненько.
14

» WarCraft 3 / Аура

Steal nerves:
Вы не правильно юзаете варкрафтоские переменные, например у вас событие с таймером. Он не дает каких либо варкрафтовским переменным данные (например, у вас на русском написано "Юнит триггера", это наверное GetTriggerUnit, но не существует его). Вам нужны какие-то данные от которых нужно отталкиваться, например берете группу и всех пикаете (есть GetEnumUnit() ). Когда вы всех пикаете через ForGroup, там перебирают всех через переменную GetEnumUnit
Если использовать другие события, то там аргументы передают. Например, юнит умирает (если не ошибаюсь) дает 4 переменные: TriggerUnit, убийца и умирающий. TriggerPlayer (если регистр события прикреплен на юнита, а не на игрока, то эта переменная не будет работать, не проверял). Хотя две переменные TriggerUnit и умирающий ссылаются на одного и того же юнита - умирающего юнита
Ну ты загнул, этот челик впервые берется за группы, а ты ему уже кидаешь лоу Jass, так низя делать
14

» WarCraft 3 / Библиотека или что-то типо этого

минимум группировок юнитов в частых таймерах или циклах
Так, это первое что я не делаю(скорее всего, ибо я не понял что здесь сказано
В таймерах я стараюсь использовать только одну группу, не создавая локалку каждый цикл, ты об этом?
Diaboliko:
Подкину еды что ли
Вооот, вот это годноту ты закинул, спасибо. Пока вопрос закрывать не стоит, может еще кто-то что-то ответит, ну и ответ еще по поводу группировок.
Diaboliko:
Подкину еды что ли
ПОсмотрел я вот эту еду, и задался вопросом, что лучше 1 глобальная группа, которой я объявляю литерал каждый тик, или создание новой локальной переменной, присваивание литерала и ее очистка, ммм?Кто мне ответит на этот вопрос?Мне по подсчетам у глобальной переменной больше тактов происходит
Хотя..., получается неизвестное кол-во тактов от уничтожения локальной группы и ее очистки от юнитов
14

» WarCraft 3 / Библиотека или что-то типо этого

Тут есть пара ссылок, по которым можно найти ещё ссылки etc
И заметная часть обсуждений по ним будет связана с производительностью скрипта карты.
Но там ведь чисто экзекьют, и больше ничего...
14

» WarCraft 3 / Библиотека или что-то типо этого

"Прожорливость" в каждом конкретном случае своя, универсального "бенчмарка для любого кода" не существует.
А жаль
Хотя может кто-то чето знает?
14

» WarCraft 3 / Библиотека или что-то типо этого

/fps конечно тоже хорошо, но нужны оч маленькие числа, чтобы прям загоняться конкретно
14

» WarCraft 3 / Не читает код ниже двух строк

call GroupEnumUnitsInRange(g, xn, yn, 90., Condition(function UCond))
Тоже безуспешно
Мддддддддддддддддеееееееееееееееееееееее, написал local group g, вместо local group g = CreateGroup()
ГГ, минус 2 часа жизни на этой ошибке, просто пизд*ц
Но еще 1 вопрос у меня есть, он попроще. Как мне создавать глобальные переменные, сейчас приходится через Ctrl+B списочек составлять
14

» WarCraft 3 / Я ранее задавал вопрос по поводу хештаблиц вс массивы

лол? массивы - это переменные, которые могут хранить множество значений одного типа (целочисленная, объект).
Структура может держать в себе набор переменных различных типов и функций-методов.
Где это одно и то же?
"Массивы", т.е. я могу взять много однотипных массивов, и затронуть различные типы, как это делает структура, читай внимательнее, плез.
14

» WarCraft 3 / Я ранее задавал вопрос по поводу хештаблиц вс массивы

для этого есть мануалы которые вы читали..
Но там ведь немного строк по синтаксису, неужели это все?
14

» WarCraft 3 / Я ранее задавал вопрос по поводу хештаблиц вс массивы

структуры это те же самые массивы, только в более удобной оболочке
зачем вам знать отличия в синтаксисе вообще?
Чтобы перейти на чистый vJass, не?
14

» WarCraft 3 / Сейчас бы закрыть вопрос по своему велению, мде

GF RaiseD:
Используй следующую конструкцию:
globals
   unit enumUnit
   group filterGroup
endglobals

loop
   set enumUnit = FirstOfGroup(filterGroup)
exitwhen enumUnit == null
   call UnitDamageTarget(arguments)
   call GroupRemoveUnit(filterGroup,enumUnit)
endloop
(она проaитнее ForGroup?)
Да, профитнее, я сам ответил на свой вопрос
14

» WarCraft 3 / Сейчас бы закрыть вопрос по своему велению, мде

GF RaiseD:
Что конкретно ты пытаешься сделать?
выбрать юнитов в группе и нанести урон(хочу устанавливать коэффицент урона через аргумент)
14

» WarCraft 3 / Сейчас бы закрыть вопрос по своему велению, мде

лучше объясни что конкретно ты пытаешься сделать. Не дублируй вопросы, это плохо.
Ничего необычного, просто пытаюсь схитрить на аргументах.
(второй вопрос все еще открыт)
14

» WarCraft 3 / И все же проблема с Preload осталась

Hate:
call PreloadSound("XXX.mp3")
call PreloadSound("XXX.mp3")
call PreloadSound("XXX.mp3")
Лоооооооооооооол, серьезно?Ну это даже не смешно!!!
14

» WarCraft 3 / Звук проигрывает только после повторного запуска способности

Hate:
именно прелоад звуков и нужен
у меня валялась такая функция
void PreloadSound(string s){ //подгрузка звука 3D
        sound snd = CreateSound(s,false,true,true,10,10,"CombatSoundsEAX")
            SetSoundChannel(snd,5)
            SetSoundVolume(snd,127)
            SetSoundPitch(snd, 1)
            SetSoundDistances(snd,999999,99999)
            SetSoundDistanceCutoff(snd,99999)
            SetSoundConeAngles(snd,0.0,0.0,127)
            SetSoundConeOrientation(snd,0.0,0.0,0.0)
            SetSoundPosition(snd,0.0,0.0,50.0)
            StartSound(snd)
            StopSound(snd, false, false)
        snd = null
    }
Если я задам громкость 127, а потом в другой функции поставлю громкость проигрыша 55, то все норм будет?Проиграет с первого раза?
14

» WarCraft 3 / Звук повторяется пока не проиграешь другой, как остановить ето?

Вопрос решен, не то сохранение запустил во время теста, лул
biridius:
call KillSoundWhenDone(snd)
она же была в той функции PlayLocalSound?
Ага
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

не остается
десинк не в этой функции а в твоем гуи триггере
В очередной раз я не понял где ошибка в гуитриггере
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

biridius:
если тебе звук нужен только для обладателя героя, то ты используешь вместо 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
Она ведь осталась неизменной, следовательно десинхрон останется, что поменять?
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

вот у красного игрока камера там где нужно, и его комп поставит правильную строку
а вот синий смотрит не туда, и его копм сделает пустую строку
оба компа создают звук, но у красного звук есть, а у синего звука нет потому что путь пустой
Хорошо, если бы я использовал вместо центра карты позицию героя каждого игрока(у них по 1 юниту), то?цикл использовался только для чего?Для назначения N-точек?
+Нужно было бы всовывать в цикл Условие и создавать N строк, и N раз запускать функцию звука, так?
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

ты не поймешь
но напишу еще раз: каждый компьютер (монитор, процессор) каждого игрока выполняет этот код
но каждый по своему, потому что камера у каждого в разном месте
Все, я понял как работает гетлокал, теперь мне нужна другая инфа, о loc, точнее о current camera.
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

biridius:
ты не поймешь
но напишу еще раз: каждый компьютер (монитор, процессор) каждого игрока выполняет этот код
но каждый по своему, потому что камера у каждого в разном месте
Но нужно понять, ибо какой толк от гетлокал, если юзать его бездумно.
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

вот это код, в котором ты NecromancerPissed2 меняешь на свой звук и вставляешь в свою карту
Ты не представляешь как я себя сдерживаю чтобы не сорваться от твоих миссов. Еще раз повторяю, я понимаю все, кроме использования GetLocal
biridius:
вот это код, в котором ты NecromancerPissed2 меняешь на свой звук и вставляешь в свою карту
GetPlayerId(GetLocalPlayer()) вместо целого в той функции.
МНе нужно объяснить только гетлокал, и все, я не понимаю как выводится айди для всех игроков сразу через гетлокал