11

» WarCraft 3 / Захват урона юнита

И отследить, чем юнит наносит урон (атака, предмет, спелл, если он не прописан триггерно) тоже нельзя?(
11

» WarCraft 3 / Присвоение числа в зависимоси от цвета игрока

Кет:
Одна и та же переменная в одном вызове функции не может принимать разные значения. Почему нельзя использовать две переменные?
Вот, спасибо за ответ. Ключевое.
Я вообще не очень понимаю, что ты хочешь сделать такой функцией. Опиши ситуацию, пожалуйста.
Я хочу оптимизировать способность без использования локалок. Способность вида "юнит1 кинул дебаф на юнита2, и какие -то действия с юнит2 приносят профит юниту1, даже если действия не от юнит1". Ради этого приходится создавать отдельный громоздкий триггер с 2 массивами юнитов 1 и 2. Это и хочу уменьшить\убрать.
использование Integer A/B - дурной тон, свою переменную куда проще и удобнее создать.
Интежер А конечно только для примера, я использую свою переменную.
ssbbssc:
Действие - приказать юниту 1 продамажить юнит 2 нанося (переменная_массив)[номер игрока владельца кастинг юнита]
Вся мысль была в том, можно ли в редакторе сделать автоматическую подстановку значения переменной в зависимости от номера игрока. Т.е. при инициализации активировать триггер, который будет работать для всех остальных триггеров. Слишком жирно было бы, но а вдруг.
11

» WarCraft 3 / Присвоение числа в зависимоси от цвета игрока

Наверно слишком непонятно задал вопрос. К прикладному.
Мне нужно, чтобы применительно к call UnitDamageTargetBJ( N[Integer A], N[Integer A], 50, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_NORMAL ) переменная Integer A принимала разные значения для юнитов разных игроков и юнит игрока 1 дамажил юнита игрока 2, а не 2 -2. Возможно ли это?
Глобалка потому, что используется в нескольких триггерах, которые нельзя свести в один. Я как раз хочу избежать постоянного внесения данных об игроке и небольшой автоматизации вида Овнер юнита игрок 1 - значит Integer A для него всегда =1.
Если нет такого, значит буду делать на локалках.
З.Ы. Зачем сразу кидаться кактусами? Я с оперированием игроками раньше не сталкивался, поэтому и знания тут пока поверхностные.
11

» WarCraft 3 / Присвоение числа в зависимоси от цвета игрока

На гуи есть аналог GetConvertedPlаyerID(), для которого нужны условия (triggering player и т.д.). Как GetPlayerId() использовать с кастом скриптом? На set udg_asd = GetPlayerID() с целочисленной ругается , какой тип переменной должен быть? Если Игрок, то его не засунешь в индекс массива.
11

» WarCraft 3 / Конфликт кода

Ну вы и наваяли холивара :)
По сути, переделал на таймеры, только вот с ними еще не работал, а гайдов по работе с таймерами нет вообще
function New takes nothing returns nothing
    local unit BET = GetSpellTargetUnit()
    local unit BEC = GetSpellAbilityUnit()
    local integer BECount = 1
    local timer t = CreateTimer()
    call SetUnitMoveSpeed( BET, 500.00 )
    call TimerStart(t, 0.5, true, function New )
    loop
        exitwhen BECount > 20
        call TimerGetElapsed ( t )
        call IssuePointOrderLocBJ( BET, "move", GetRandomLocInRect(GetPlayableMapRect()) )
        call UnitDamageTargetBJ( BEC, BET, 5, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_NORMAL )
        set BECount = BECount + 1
    endloop
    call SetUnitMoveSpeed( BET, GetUnitDefaultMoveSpeed(BET) )
    call IssueImmediateOrderBJ( BET, "stop" )
    set BET = null
    set BEC = null
    set BECount = 0
    call DestroyTimer ( t )
endfunction
Сейчас вот в таком виде, но не работает) Наносит весь урон сразу, и завершается тоже сразу. Как поправить? Каждый раз стартовать таймер (засунуть его в цикл) не помогает
11

» WarCraft 3 / Конфликт кода

bj_forLoopAIndex на локалки не помогло, насчет оптимизации попозже подумаю.
Может ли быть конфликт с Custom Value, так в списке реакций на урон 6-7 триггеров? Или с каким действием\условием может быть конфликт, чтобы сузить круг подозреваемых?
Кстати заметил, что в лагах приказ цели двигаться в рандомную точку не выполняется, она продолжает делать что делала, может там баг какой?
11

» WarCraft 3 / Конфликт кода

Который из? Первый это только задержка снаряда до цели, он срабатывает один раз; который в цикле - ну хз, а как без него делать периодичность? Таймер, я думаю, куда сильнее нагружать будет. Не думаю что в нем проблема.
И почему на пустой карте все в порядке тогда?
С какой триггерной строкой может быть конфликт? Пробовал с самого старта карты, когда нет ни одного еще запущенного периодика или утечки памяти - все равно лаги.
11

» WarCraft 3 / Баф на умирающем юните

В данном триггере это была чисто перестраховка, кто ж знал, что переменная почему-то обрабатывается перед действием.
11

» WarCraft 3 / Баф на умирающем юните

Нет надо) В циклах без обнуления баг и ужас, надо или в начале триггера обнулять переменные или в конце.
11

» WarCraft 3 / Баф на умирающем юните

Обнуление же стояло после отхила, нужно для мультиплеера, хотя скорее просто перестраховка.
А вот почему при такой очередности сначала обнулялось?
Если вейт поставить, даже 0.1 сек, то работает и с обнулением. Спасибо.
11

» WarCraft 3 / Баф на умирающем юните

Melissa:
При каких-то там условиях в какой-то там ауре, если её настроить на обратные цели(были друж стали враж) - услоиве "имеет баф" не реагирует, если в способности всё по нулям выставлено. Поставь хотя бы 0.01 и проверь ещё раз
Несколько раз прочитал - не понял)
Суть спелла - аура смерти стандартная, на дружественные войска, если под этой аурой свой умирает, то регенит своим же под этой аурой половину своих максимальных хп, поделенных на число юнитов вокруг. 1 юнит - 50%, 2 юнита - по 25% каждому и т.д.
Так вот, не работает захват в переменную макс хп умирающего, т.к. не могу подобрать ключ, т.е. спецификацию юнита (триггеринг, матчинг, дайинг и пр. не работают). Какая должна быть в таком случае классификация? Или триггер срабатывает уже после смерти юнита, и соотв хп=0? Как тогда захватывать? В массив всех юнитов под аурой и потом извлекать оттуда?
Кстати, во второй части тригга условие аура на умирающем, и оно работает.
11

» WarCraft 3 / Баф на умирающем юните

Вот так оно выглядит сейчас, кроме триггеров на дамаг соурс, но они стандартные. Проблема теперь в том, что отряд создается, но здоровье умирающего юнита не захватывается - и, соответственно, не восстанавливается, через какую классификацию его захватывать?
Аура в условии не влияет, эффект на отряд есть.
Загруженные файлы
11

» WarCraft 3 / Баф на умирающем юните

А захватывать здоровье умирающего юнита через триггеринг юнит? Сделал через получение смерт. удара, но здоровье не восстанавливает, эффект нужный есть, т.е. здоровье не захватывается (через аттакед\тригг)
11

» WarCraft 3 / Триггерное заклинание: Массив и MUI

nvc123:
Массивы конечно зло
чито?
а что тогда не зло
массивы это основа математики и программировании
Вон выше на хэш да джасс уповают).
Ну ладно, вопрос закрыт, вопросов больше не имею)
11

» WarCraft 3 / Триггерное заклинание: Массив и MUI

Melissa:
Impertus:
Уровень баффа отловить нельзя. Так что хоть что-то придётся привязывать, переменную или способность.
Я сразу привязываю переменную HauntLevel к уровню пассивы атакующего, карту зачем прилагал(
как можно задавать сам индекс переменной-массива?)
что именно ты имеешь ввиду. Пример.
Переменная массив - Variable[Index]. Можно ли как-то задавать заранее (при старте игры)значения Index для, допустим, 6 значений в массиве - что индекс может быть от 1 до 6? Только громоздкими if-else-do и то на один раз?
З.Ы. Карту с решением прилагаю, может кому понадобится
Загруженные файлы
11

» WarCraft 3 / Триггерное заклинание: Массив и MUI

Всем спасибо, проблему решил за счет проверки на цвет/номер игрока как индекс в массиве переменных. Все работает как запланировано.
Вопрос вдогонку: как можно задавать сам индекс переменной-массива?)
З.Ы. Массивы конечно зло, но другого способа хранить инфо по одному спеллу, не используя множество переменных - пока не умею.
11

» WarCraft 3 / Триггерное заклинание: Массив и MUI

Ancient:
А не проще все тупо перенести на jass+hash, а не насиловать себе мозг массивами?
Конечно проще, только в джасс я пока что не умею, а без мультиплеера работает на отлично.
Melissa:
Заносим в группу, устанавливаем TIMEBUFF[Cv юнита]=скок надо, добавляем в группу Buffs и запускаем периодический триггер, который выбирает всех в группе Buffs, уменьшает их TIMEBUFF[Cv юнита] и устанавливать уровень способности баффа исходя из суммарного времени баффов и длительности 1 стака. например если бафф длится 5 единиц времени, то ставить уровень способности = TIMEBUFF[Cv юнита]/5 +1.
Стаки будут удаляться послойно, так что норм всё будет выглядеть
Это хорошо, только стаки вообще не привязаны к бафу. Т.е. можно быть на другом конце карты, и получать баф. Стаки силы+АС сохраняются пока не ударишь цель без дебафа. И сила добавляется триггерно, пробовал через способность, но ей почему-то уровни не меняло, несколько раз проверял, возможно потому что у героя уже есть такая же способность, только "герой" ранка и она перевешивает "воин" ранка.
Думаю не мучиться и поставить набор стаков только для кастера с запретом обновления\перекаста дебафа от других юнитов. Но может быть можно и с этим что-то сделать?
Еще есть вариант напихать кучу циклов с проверками на номер игрока, т.к. герой будет максимум один на игрока.
11

» WarCraft 3 / Вопрос с переменной Отряд

Спасибо, наконец-то заработал как надо) Так-то это только часть спелла, там еще 2 дамми создаются, но с этим посмотрим. Были сомнения, что не стоит ставить присвоение переменной в цикл =(.
11

» WarCraft 3 / Вопрос с переменной Отряд

Выбираются в 500 ренже все юниты, соотв условиям (не здания, не труп, алли к кастеру) добавляется абила, добавлятся в отряд-переменную, затем, через 10 сек, выбираются все юниты в отряде-переменной и убирается абилка, и юнит удаляется из отряда-переменной.
С массивом: создается отряд-массив-переменная, ключ массива - отдельная целочисленная переменная. Затем каждый юнит при переборе получает свой номер в массиве методом "добавление-ключ-ключ+1), естественно,все в циклах. Потом таким же перебором ключей в массиве удаляется абилка, как выше.
Вот тело триггера, вне карты, чтобы не загружать
Да, скрин не с массивом, просто текущее, много чего менял.
Загруженные файлы
11

» The Elder Scrolls / TES4: No Fast Travel

А как включать их обратно? :)))
После выкл аддона не работает фаст тревел