Я нашел такую функцию в гуи за 15 секунд, хотя не пользовался ей никогда. В чем проблема просто поискать?
Если даже это не помогло тебе, и ты не допетрил, что нужно делать то вот:
добавляешь в РО рабочим оба здания и А, и Б
в инициализации запрещаешь строить Б для всех игроков
триггер "игрок сделал улучшение" -> сделанное улучшение == (твое улучшение) -> разблокировать строительство Б для (игрок триггера) и заблокировать строительство здания А для (игрок триггера)
Я не знаю как условить, что урон был нанесен именно заклинанием. У меня получилось поджигать юнита при любом нанесении урона. В событие добавил только паладина, чтобы работало на всех нужно сделать отдельный триггер "юнит вошел в область (вся карта) -> добавить событие триггеру (gg_trg_DetectFireDamage). В триггере сообщения для дебага есть, можешь удалить. Если есть вопросы, помощь в освоении жасса - контакты в профиле, пиши.
Вот код, карту также прикрепил ниже
function Trig_DetectFireDamage_Conditions takes nothing returns boolean
return GetUnitTypeId(GetEventDamageSource()) == 'Hblm' //наш огненный... как там его... А, точно - еврей
endfunction
function TimerFire takes nothing returns nothing
local timer t = GetExpiredTimer()
local unit u = LoadUnitHandle(udg_HASH, GetHandleId(t),StringHash("fireUnit"))
local unit u2 = LoadUnitHandle(udg_HASH, GetHandleId(t),StringHash("fireSource"))
local trigger trig = LoadTriggerHandle(udg_HASH, GetHandleId(t),StringHash("fireTrigger"))
local integer count = LoadInteger(udg_HASH, GetHandleId(t),StringHash("fireСount"))
local real damage = LoadReal(udg_HASH, GetHandleId(t),StringHash("fireDamage"))
call DisplayTextToForce( GetPlayersAll(), "count" + I2S(count) )
call DisableTrigger( gg_trg_DetectFireDamage ) //выключаем триггер, чтоб опять не сработал и горение не зациклилось
//наносим урон. использую БЖ функцию, т.к. в нативке много непонятных страшных аргументов я не буду лезть в это дерьмо
call UnitDamageTargetBJ( u2, u, damage, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE )
call EnableTrigger( gg_trg_DetectFireDamage ) //вкл триггер
//какой нибудь эффект бахнуть к юниту
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Items\\AIfb\\AIfbSpecialArt.mdl",u, "head" ))
call SaveInteger(udg_HASH, GetHandleId(t),StringHash("fireСount"),count-1) //уменьшаем количество срабатываний
if count <= 1 then
call DisplayTextToForce( GetPlayersAll(), "destroy" )
call FlushChildHashtable(udg_HASH, GetHandleId(t))//очищаем хеш
call PauseTimer(t)
call DestroyTimer(t) //удаляем наш таймер, мол все, гореть больше не будет
endif
set t = null
set trig = null
set u = null
set u2 = null
endfunction
function Trig_DetectFireDamage_Actions takes nothing returns nothing
local timer t = LoadTimerHandle(udg_HASH, GetHandleId(GetTriggerUnit()),StringHash("fireTimer")) //загружаем таймер который будет переодически бить поджегом
call DisplayTextToForce( GetPlayersAll(), "1" )
if t == null then //если такого таймера нет, то создадим его
set t = CreateTimer()
call SaveTimerHandle(udg_HASH, GetHandleId(GetTriggerUnit()),StringHash("fireTimer"),t)
endif
call SaveReal(udg_HASH, GetHandleId(t),StringHash("fireDamage"),20) //урон
call SaveInteger(udg_HASH, GetHandleId(t),StringHash("fireСount"),3) //количество срабатываний
call SaveUnitHandle(udg_HASH, GetHandleId(t),StringHash("fireUnit"),GetTriggerUnit()) //юнит которому наносим урон
call SaveUnitHandle(udg_HASH, GetHandleId(t),StringHash("fireSource"),GetEventDamageSource()) //юнит от которого наносим урон
call SaveTriggerHandle(udg_HASH, GetHandleId(t),StringHash("fireTrigger"),GetTriggeringTrigger())
call TimerStart(t,1, true,function TimerFire) //переодический таймер в котором мы будем наносить урон
set t = null
endfunction
//===========================================================================
function InitTrig_DetectFireDamage takes nothing returns nothing
set gg_trg_DetectFireDamage = CreateTrigger( )
call TriggerRegisterUnitEvent( gg_trg_DetectFireDamage, gg_unit_Hpal_0001, EVENT_UNIT_DAMAGED )
call TriggerAddCondition( gg_trg_DetectFireDamage, Condition( function Trig_DetectFireDamage_Conditions ) )
call TriggerAddAction( gg_trg_DetectFireDamage, function Trig_DetectFireDamage_Actions )
endfunction
Для проверки фпс есть команда /fps - немного сверху в центре экрана будет надпись.
Лагает на каких картах? Если непонятные неоптимизированные кастомки, то естественно будет лагать.
Пуньк-сруньк, какии та англисикие букавы ничиво нипонятна.
Выбрать всех юнитов игрока (твой игрок) при условии (соответствующий юнит != рабочий) -> приказать (выбранный юнит) идти в (точка твоя) атакуя. Капец как сложно 2 строчки в ГУИ натыкать.
Drakemor_888, Сейчас проверил - карта работает. Скорее всего у тебя варик не патченный и имеет ограничение 8мб на карты. В интернете есть много способов его обойти, у меня кастомный гейм.длл. Кинуть в папку с вариком с заменой. Также можно использовать функционал коннектора Урины бот.
Если варик выдал тебе ошибку, то в чем проблема ее прочесть? Тебе черным по белому написано - нет такой функции Sleep(). В джассе есть функция TriggerSleepAction(), которая триггер на паузу ставит, скорее всего ее имеет ввиду автор. Такое могло произойти если автор на другой версии варкрафта сделал гайд.
Самым простым способом будет в РО в "графика - шкала выбора" поставить минусовое значение. это делается через шифт, может кто не знал. Хпбары будут скрыты у всех юнитов выбранного типа, поэтому он не подходит, если надо удалить хпбар только отдельного юнита.
Используй JNGP, там есть список всех функции с поиском, подсветка кода ну и много других плюх для кодинга. Также доступны всякие дополнения типо vJass'a для еретиков.
Лучше всего делать на 1.26, а еще лучше на ужапи. Почему именно эти версии? - это самые популярные версии на урина бот.
Нормально вопрос сначала составь, но я попытаюсь понять твою логику.
Событие: С начала игры прошло 60 сек //ты не написал при каких условиях должен срабатывать триггер, поэтому так
Условие: -
Действия:
Выбрать всех юнитов игрока (твой игрок) и сделать действия: //тут можно также установить условия выбора, например "соответсвующий юнит == пехотинец"
установить TempPoint == позиция(выбранный юнит)
Создать юнита (крип) в позиции (TempPoin)
call RemoveLocation(TempPoint)
Теперь около всех юнитов игрока будут спавниться крипы.
У любой ратуши есть способность "вернуть золото и древесину". Добавляешь работнику эту способность и все - он сам в себя возвращает ресурс.
Покопавшись в РО(способности "особые", в самом верху) можно найти еще 2 идентичные способности, но только для дерева и золота по отдельности.
Внимательно читаем содержание ресурса. Там сказано как его установить
Нажимаем большую зеленую кнопку "Скачать" и после загрузки выполняем действия по утановке, написанные в ресурсе.
Запускаем JNGP и проверяем русифицировались ли три горы. Если не сработало, то возможно у тебя несколько экземпляров варкрафта и нужно закинуть именно в тот, который привязан к JNGP (у меня такое было).
Наслаждаемся великим и могучим в тригорах!
Если ты выполнили все шаги инструкции - поздравляю, ты идиот, который не может пользоваться банальным поиском, и ему надо было писать инструкцию как это делать.
» WarCraft 3 / Изменение типа доступности, замена зданий при строительстве
Ред. IzobretatelBoom
» WarCraft 3 / Как сделать триггерный поджог?
Вот код, карту также прикрепил ниже
» WarCraft 3 / Проседает фпс. Как лечить?
разрабы дауны» WarCraft 3 / Проседает фпс. Как лечить?
Лагает на каких картах? Если непонятные неоптимизированные кастомки, то естественно будет лагать.
» WarCraft 3 / Простой атаки приказ для всех юнитов
» WarCraft 3 / Как закинуть Jass в w3m файл с помощью сторонней программы или языка программирования?
» WarCraft 3 / Есть ли возможность развернуть юнита вокруг своей оси?
» WarCraft 3 / Cruiser Command
» WarCraft 3 / Cruiser Command
» WarCraft 3 / Cruiser Command
» WarCraft 3 / Вывод сообщения на экран о количестве юнитов (I2S не работает в ИИ)
» WarCraft 3 / Как начать писать свой код ИИ?
» WarCraft 3 / Не запускает карты свыше 8мб. по локальной сети.
» WarCraft 3 / Как сделать полоску хп у юнита/здания невидимой?
» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT
Ред. IzobretatelBoom
» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT
Лучше всего делать на 1.26, а еще лучше на ужапи. Почему именно эти версии? - это самые популярные версии на урина бот.
» WarCraft 3 / ИИ
- если скилл наносит урон (молоток гнома например) - в радиусе от юнита есть враг, то применить к врагу скилл
- если скилл лечит (свет палыча) - в радиусе есть союзник и у союзника меньше 50%хп - применить способность к союзнику.
Ну и так далее к другим скиллам прописывать» WarCraft 3 / Создать крипов около армии и зданий!
» WarCraft 3 / Можно ли отлавливать исключения в vjass/jass/cjass?
Ред. IzobretatelBoom
» WarCraft 3 / Рабочие не относят дерево (как сделать)
Покопавшись в РО(способности "особые", в самом верху) можно найти еще 2 идентичные способности, но только для дерева и золота по отдельности.
Ред. IzobretatelBoom
» WarCraft 3 / Симулятор электромагнитного взаимодействия элементарных частиц в warcraft 3
Ред. IzobretatelBoom
» WarCraft 3 / Где найти русифицированный Jass new gen pack.
» WarCraft 3 / Немогу поиграть в allstars
» WarCraft 3 / Удаление области