У меня в мапе есть такие. Правда для изображения зарядов и их перезарядки я использую плавающий текст над героем) В основе способность без кд. Если зарядов нет то я стоплю её каст и пишу сообщение об ошибки "Не осталось зарядов". Так что реализовать можно причем разными способами)
Кстати с удалением добавлением способности можно попробовать думаю должно получится...
Да действительно. Такая проблема только с предметом у которого стоит спеллбук.
Сейчас я попробовал другие способности и они сохраняют свой кд без проблем. Видимо придется отказаться от использования спелл бука.
Если это источники света удали их через Model Editor во вкладке nodes по идеи должно помочь если ты хочешь избавится от зеленого свечения) Хотя может это "свечения" запекли в текстурку
function msc_check_item_for_id takes unit u, integer o_id, integer it_id returns boolean
set o_id = o_id - 852008
if o_id>=0 and o_id<=5 then
return GetItemTypeId ( UnitItemInSlot ( u, o_id ) ) == it_id
endif
return false
endfunction
оно тебе надо проверять, стоят ли проверки безопасности в функции?)
Спс все работает)
Незнаю у меня проблем нет. Предмет работает нормально. Снимает стан и при этом сам предмет проюзывается без проблем.
вот так вот я извратился
function msc_check_item_for_id takes unit u, integer o_id, integer it_id returns boolean
local boolean flag
set o_id = o_id - 852008
set flag = GetItemTypeId ( UnitItemInSlot ( u, o_id ) ) == it_id
return flag
endfunction
function Trig_UndisableStone_Conditions takes nothing returns boolean
return msc_check_item_for_id ( GetTriggerUnit (), GetIssuedOrderId (), 'Pr0Z' )
endfunction
function Trig_UndisableStone_Actions takes nothing returns nothing
local unit u = GetTriggerUnit ()
call UnitRemoveBuffs ( u, false, true )
set u = null
endfunction
//===========================================================================
function InitTrig_UndisableStone takes nothing returns nothing
set gg_trg_UndisableStone = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_UndisableStone, EVENT_PLAYER_UNIT_ISSUED_ORDER )
call TriggerAddCondition( gg_trg_UndisableStone, Condition( function Trig_UndisableStone_Conditions ) )
call TriggerAddAction( gg_trg_UndisableStone, function Trig_UndisableStone_Actions )
endfunction
dave_wwid, прикрепляя к "cylinder02" ээфект работает когда модель перемещается в оба направления но изза вращения эффект отображается некорректно. Если прикреплять к другим костям то эффект ленты как и раньше появляется ток когда снаряд движется задом на перед.
Проблему решил поставив в материале галочку на twoside
DISBTN иконкам нужно прописывать путь: ReplaceableTextures\CommandButtonsDisabled\DISBTNимяиконки.blp
У BTNимяиконки путь можно не трогать. Ну и имяиконки у них должно быть одинаковым конечно же
quq_CCCP, это не ии а просто тупо спаун мобов вокруг босса) типо его постоянная свита) Там есть команда на атаку но она сделана тупо для того чтобы заспауненые войны не тупили в сторонке а бежали к своему главному атакую противников по дороге) Впринципе можно воткнуть тригер смерти в переодик с ветвлением но в будующем мне все равно придется юзать тригер на смерть для создания взрыва на месте юнита и не только.
Я нашел решение просто изменил структуру кода) теперь все ок) Спасибо всем кто отозвался.
EnergyFrost, может и можно но мне надо будет передать через хэш в ту функцию юнита ( босса ), группу и лимит юнитов, а через екзекут такое дело не проканает. Так что видимо придется какой-то дикий костыли иззобретать) Ну и собсо как я понял предопределить функцию нельзя в Жассе а жаль)
собственно, не проще делать систему с массивом и перебором, чем делать такой костыль?
один триггер на смерть, и не зачем нужно будет делать такие обходные маневры
не совсем понял что ты имеешь в виду с перебором массива и зачем он здесь.
Функция ( которая нижняя ) спаунит юнита и добовляет его в группу которая используется для других скиллов босса и создает для этого юнита тригер смерти который служит для того чтобы удалить юнита из группы, и запустить таймер на спаун нового такого же юнита..
во первых, с точки зрения дизайна зачем так делать?
во вторых, можно делать экзекут функции, если обстоятельства позволяют
экзекут сделать нельзя функция передается в таймер.
function BOSSgnoll_comander_mob_death takes nothing returns nothing
local unit u = GetTriggerUnit ()
local trigger trig = GetTriggeringTrigger ()
local group gr = LoadGroupHandle ( HASH, GetHandleId ( trig ), 'ugrp' )
local timer t = CreateTimer ()
call TimerStart ( t, 30.0, false, function BOSSgnoll_comander_add_spawn ) //собсно то самое проблемное место
call GroupRemoveUnit ( gr, u )
call FlushChildHashtable ( HASH, GetHandleId ( trig ) )
call DestroyTrigger ( trig )
set u = null
set trig = null
set t = null
endfunction
function BOSSgnoll_comander_add_spawn takes nothing returns nothing
local timer t = GetExpiredTimer ()
local integer t_id = GetHandleId ( t )
local unit u = LoadUnitHandle ( HASH, t_id, 'unit' )
local integer lim = LoadInteger ( HASH, t_id, 'ulim' )
local group gr = LoadGroupHandle ( HASH, t_id, 'ugrp' )
local real dist
local real ang
local real x = GetUnitX ( u )
local real y = GetUnitY ( u )
local unit u_new
local integer cnt = CountUnitsInGroup ( gr )
local trigger trig = null
local location land = null
local real x_land
local real y_land
if ( cnt < lim ) then
set dist = GetRandomReal ( 800, 1600 )
set ang = GetRandomReal ( 0, 360 )
set land = msc_get_landinglocation ( x, y, dist, ang, 50, 0, 0 )
set x_land = GetLocationX ( land )
set y_land = GetLocationY ( land )
call RemoveLocation ( land )
set dist = msc_dist_between ( x, x_land, y, y_land )
set ang = ang_beetwen ( x, x_land, y, y_land )
set x = msc_polar_x ( GetUnitX ( u ), dist, ang )
set y = msc_polar_y ( GetUnitY ( u ), dist, ang )
set u_new = CreateUnit ( GetOwningPlayer ( u ), 'n005', x, y, ang - 180 )
call IssuePointOrder ( u_new, "attack", GetUnitX ( u ), GetUnitY ( u ) )
call SpawnManager.add_to_group ( u_new )
call msc_fade_effect ( u_new, 3.0, -1, null )
set trig = CreateTrigger ()
call TriggerRegisterUnitEvent( trig, u_new, EVENT_UNIT_DEATH )
call TriggerAddAction( trig, function BOSSgnoll_comander_mob_death )
call SaveGroupHandle ( HASH, GetHandleId ( trig ), 'ugrp', gr )
call SaveTimerHandle ( HASH, GetHandleId ( trig ), 'time', t )
call GroupAddUnit ( gr, u_new )
endif
set t = null
set u = null
set u_new = null
set trig = null
endfunction
Собственно модель взята с самого сайта xgm) Модель гнома в черной шляпе именно она мне нужна. При выборе её в редакторе редактор перестает отвечать и вылетает ( сообщения об ошибки нет ). Модель я не менял. Пробовал переписать путь к текстурам не помогло.
Используй как пустышку "Безумие" у троллей с длительностью 0.01 оно применяется мгновенно, а потом даммиком накладывай на кастера кровожадность. Правда эта способность без цели. Возможно ещё канал с длительностью 0.01 для каста на цель и опять же даммиком накладываешь кровожадность.
Может я что-то не так делаю но когда я ставлю в маг уроне отрицательное значение он вообще перестает наносится. Какую графу и как изменять не подскажите?
Ред. EvilPenguin
» WarCraft 3 / Способность с зарядами.
» WarCraft 3 / Способность с зарядами.
Кстати с удалением добавлением способности можно попробовать думаю должно получится...
» WarCraft 3 / Сохранение кд у предметов
Сейчас я попробовал другие способности и они сохраняют свой кд без проблем. Видимо придется отказаться от использования спелл бука.
» WarCraft 3 / Проблема с освещением
» WarCraft 3 / ID приказа при использовании предмета
biridius: А какое событие ты используешь?
Ред. EvilPenguin
» WarCraft 3 / ID приказа при использовании предмета
Незнаю у меня проблем нет. Предмет работает нормально. Снимает стан и при этом сам предмет проюзывается без проблем.
вот так вот я извратился
» WarCraft 3 / Абилки которые можно кастовать сквозь стан
» WarCraft 3 / Событие на получение урона
Может попробовать через хэш-табу передовать)
» WarCraft 3 / Событие на получение урона
» WarCraft 3 / Событие на получение урона
» WarCraft 3 / Временное случайное событие
Хотя я походу не понял чего именно хочет автор поста
» WarCraft 3 / След который остовляет модель...
Проблему решил поставив в материале галочку на twoside
» WarCraft 3 / След который остовляет модель...
» WarCraft 3 / Не работает DISBTN модели
У BTNимяиконки путь можно не трогать. Ну и имяиконки у них должно быть одинаковым конечно же
» WarCraft 3 / Forward декларация функции в Jass
Я нашел решение просто изменил структуру кода) теперь все ок) Спасибо всем кто отозвался.
» WarCraft 3 / Forward декларация функции в Jass
» WarCraft 3 / Forward декларация функции в Jass
» WarCraft 3 / Forward декларация функции в Jass
Функция ( которая нижняя ) спаунит юнита и добовляет его в группу которая используется для других скиллов босса и создает для этого юнита тригер смерти который служит для того чтобы удалить юнита из группы, и запустить таймер на спаун нового такого же юнита..
» WarCraft 3 / Forward декларация функции в Jass
Ред. EvilPenguin
» WarCraft 3 / Не работает модель? - Вам сюда!
» WarCraft 3 / Как сделать способность мгновенной?
» WarCraft 3 / Мигалка у баффов перед исчезновением
» WarCraft 3 / Угол крена
» WarCraft 3 / Снижение магического сопротивление