XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Авто-каст способностей даваемых каждую минуту
Доброго утра вам.
У меня случилась такая проблема:
Делаю Птичку, которая должна бафать героя игрока различными бафами на автокасте.
Каждую минуту я отнимаю все способности у нее и даю одну случайную.
После этого, отдаю приказ на авто-каст Всех возможных способностей.
Но вот в чем проблема:
Птичка НЕ хочет бафать моего перса, несмотря на то, что я отдаю приказ на авто-баф.
» раскрыть
Код:
function Trig_GiveRandMagic_A takes nothing returns nothing
    local integer i=1
    
    loop
    exitwhen i>7
      call UnitRemoveAbility(GetEnumUnit(), udg_MagicLetyn[i])
    set i=i+1
    endloop
    call UnitAddAbility(GetEnumUnit(), udg_MagicLetyn[GetRandomInt(1,7)])
    call IssueImmediateOrder(GetEnumUnit(), OrderId2String(852076))
    call IssueImmediateOrder(GetEnumUnit(), OrderId2String(852067))
    call IssueImmediateOrder(GetEnumUnit(), OrderId2String(852102))
    call IssueImmediateOrder(GetEnumUnit(), OrderId2String(852064))
    call IssueImmediateOrder(GetEnumUnit(), OrderId2String(852212))
endfunction

function Trig_GiveRandMagic_Actions takes nothing returns nothing
    call ForGroupBJ( GetUnitsOfTypeIdAll('ehip'), function Trig_GiveRandMagic_A )
endfunction

//===========================================================================
function InitTrig_GiveRandMagic takes nothing returns nothing
    set gg_trg_GiveRandMagic = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_GiveRandMagic, 10.00 )
    call TriggerAddAction( gg_trg_GiveRandMagic, function Trig_GiveRandMagic_Actions )
endfunction


Комментарии:
Птичка является его юнитом, со способностью москиты.
2 из 7 способностей являются, сами по себе: Вост. маны, рудник и Скорость бега пасивка.
Старый 04.08.2012, 13:46
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Xipxop, зачем автокаст? сам отдавай приказ повесить бафф,если автокаст не пашет - и не будет проблем никаких
Старый 04.08.2012, 13:52
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Ну а если эти бафы есть только на автокастовых заклинаний?
Старый 04.08.2012, 13:58
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
Xipxop,
и что их теперь нельзя самому применять? глупость говоришь
Старый 04.08.2012, 14:12
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Тогда если их самому применять, то придется иметь цель.
А искать в области всех юнитов, да и еще с условием, что это тот же игрок, что и игрок птички, это будет вызывать задержки, утечки (Тк переодически будет вызываться).

Нельзя ли просто дать птичке способность, поставить на автокаст и она сама юзнет на всех юнитов в области (где в целях стоит только НЕ сам воин и Войска игрока)
Старый 04.08.2012, 14:22
quq_CCCP
Я белый и пушистый!
online
Опыт: 93,024
Активность:
Xipxop, сфера молний предмет не пробовал? пихаеш туда свой автокаст, настраиваеш шанс, и заставляеш юнита атаковать вот и всё!!!
Старый 04.08.2012, 14:23
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
quq_CCCP:
Xipxop, сфера молний предмет не пробовал? пихаеш туда свой автокаст, настраиваеш шанс, и заставляеш юнита атаковать вот и всё!!!
Xipxop:
Тогда если их самому применять, то придется иметь цель.
А искать в области всех юнитов, да и еще с условием, что это тот же игрок, что и игрок птички, это будет вызывать задержки, утечки (Тк переодически будет вызываться).
опять не читаешь
автор хочет без поиска конкретной цели вешать баф
чтоб птица сама искала и вешала
Старый 04.08.2012, 14:44
quq_CCCP
Я белый и пушистый!
online
Опыт: 93,024
Активность:
16GB, Ну а чем не вариант через атаку? это самое простое если она будет атаковать противников, ну а для положительных бафов для союзников пододёт скилл на основе "InnerFire", и через триггеров когда он кастует скилл и на кого ну и вешать другие баффы триггерно.

Отредактировано Nerevar, 04.08.2012 в 14:59.
Старый 04.08.2012, 14:52
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Цитата:
Сообщение от quq_CCCP
~~16GB~~, Ну а чем не вариант через атаку? это самое простое если она будет атаковать противников, ну а для положительных бафов для союзников пододёт скилл на основе "InnerFire", и через триггеров когда он кастует скилл и на кого ну и вешать другие баффы триггерно.


И тут снова цель...
Ведь как то можно Чтобы птичка кастовала сама эти способности без цели?

Или, тогда по вашему:

Как тогда без утечно каждые 60 секунд, находить в области от Птички (300) Героев, Но чтобы у этих героев был Один Игрок (Овнер птички Игрок 1, то Герой должен быть Игрок1 !!)
Старый 04.08.2012, 15:00
quq_CCCP
Я белый и пушистый!
online
Опыт: 93,024
Активность:
Xipxop, ну тут то чо сложного щяс напишу тебе код...
Старый 04.08.2012, 15:03
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Xipxop:
Тогда если их самому применять, то придется иметь цель.
А искать в области всех юнитов, да и еще с условием, что это тот же игрок, что и игрок птички, это будет вызывать задержки, утечки (Тк переодически будет вызываться).
16GB:
автор хочет без поиска конкретной цели вешать баф
чтоб птица сама искала и вешала
quq_CCCP, для атаки все равно нужна цель будет а автор не может так сделать=/
но через цель офк самый норм вариант
что там сложного - в периодике пикать группу вокруг птичек и бафать рандомного из группы,подчищая все за собой^^
Старый 04.08.2012, 15:03
quq_CCCP
Я белый и пушистый!
online
Опыт: 93,024
Активность:
Xipxop, Держи...
» Пример
((код jass
globals
group bj_BIRDS
endglobals
function Group_Add_Hero_Buff_Conditions takes nothing returns boolean
return IsUnitType( GetFilterUnit( ), UNIT_TYPE_HERO ) and GetUnitState( GetFilterUnit( ), UNIT_STATE_LIFE ) > 0.00 and GetOwningPlayer( GetFilterUnit( ) ) == bj_groupEnumOwningPlayer
endfunction
function CastBuff takes nothing returns nothing
local unit caster = GetEnumUnit( )
local unit hero
local group grp = CreateGroup( )
local boolexpr e = Condition( function Group_Add_Hero_Buff_Conditions )

set bj_groupEnumOwningPlayer = GetOwningPlayer( caster )
call GroupEnumUnitsInRange( grp, GetUnitX( caster ), GetUnitY( caster ), 300.00, e )

set hero = FirstOfGroup( grp )

call DestroyBoolExpr( e )
call DestroyGroup( grp )

if hero != null then
call IssueTargetOrder( caster, "Твой приказ", hero )
endif

set caster = null
set hero = null
set grp = null
set e = null
endfunction
function Trig_Add_Hero_Buff_Actions takes nothing returns nothing
call ForGroup( bj_BIRDS, function CastBuff )
endfunction
===========================================================================
function InitTrig_Add_Hero_Buff takes nothing returns nothing
set gg_trg_Add_Hero_Buff = CreateTrigger( )
call TriggerRegisterTimerEvent( gg_trg_Add_Hero_Buff, 60.00, true )
call TriggerAddAction( gg_trg_Add_Hero_Buff, function Trig_Add_Hero_Buff_Actions )
endfunction
))
тупо создать триггер с названием Add Hero Buff, конвертировать в текст и удалить от туда всё, а затем копировать туда этот код..
Если нету JNGP то создаёш глобальную группу BIRDS и меняеш bj_BIRDS на udg_BIRDS ну и добавляй в группу всех созданных птиц и удаляй убитых, вот и всё...
Старый 04.08.2012, 15:19
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Спасибо тебе большое quq_CCCP!
Все работает отлично.

Тема закрыта

Старый 04.08.2012, 17:03
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 16:48.