Мультикаст огра из доты
Как лучше реализовать мультикаст огра из доты лоад или из доты2?
Требуется универсальность, чтоб способность можно было использовать как угодно и мульткаст работал на все способности, а не только на базовые геройские.
Как я понимаю так или иначе нужен дамик который циклом должен кастовать копию способности , но как быть с предметами.Тут же вырисовывается проблема если дамик будет кастовать копию геройской способности , которая зависит от атрибутов. то урона от нее не будет, так как он не имеет атрибутов.
На сколько требуется все скиллы прописывать в массив , которые могут кастоваться мультикастом или игнорироваться ?
Мультикаст позволяет способностям и предметам героя срабатывать по нескольку раз за одно применение.
Радиус срабатывания предметов: 600
Шанс 2x Multicast: 75%/75%/75%
Шанс 3x Multicast: 0%/30%/30%
Шанс 4x Multicast: 0%/0%/15%
Или по такой формуле.
Способность позволяет герою быстро накладывать заклинания, повышая их эффективность. Дает шанс сотворить заклинание несколько раз за одно применение.
  • 40% шанс применить дважды.
  • 25% шанс использовать третий раз.
  • 15% шанс использовать четвертый раз.
Патч только 1.26



Views: 131

quq_CCCP #1 - 2 месяца назад 1
Голосов: +1 / -0
Ну либо для мультикастера заводим одельного дамми с маной, с атрибутами, но при каждом касте скидываем ему кд и ману ставим на макс (если разумеется каст не зависит от кол-ва текущей маны, иначе на кол-во реального героя).

Ну так же можно сделать дамми аналоги способностей для мульткаста, или юзать мемхак с принудительным кастом абилки (но это подходит лишь для дефолтных абилок).
dondonchakka #2 - 2 месяца назад (изм. ) 0
Голосов: +1 / -1
создай просто GetUnitTypeId(u) установи ему лвл как свой добавь ему свои предметы измени его юзер дату на 50 call SelectHeroSkill(u,'A000') call SetUnitAbilityLevel(u,'A000',твой уровень способности) и в ттриггере когда умирает если юзер дата 50 то удалить его из игры удалть предметы висящие на нем

call SetUnitUserData(u,50)

» смотреть сюда
call IssueTargetOrder(dummy,"wandillusion",u) //52274
    call IssueTargetOrder(dummy,"absorb",u) //52529
    call IssueTargetOrder(dummy,"acidbomb",u) //52662
    call IssueTargetOrder(dummy,"acolyteharvest",u) //52185
    call IssueTargetOrder(dummy,"ambush",u) //52131
    call IssueTargetOrder(dummy,"ancestralspirit",u) //52490
    call IssueTargetOrder(dummy,"ancestralspirittarget",u) //52491
    call IssueTargetOrder(dummy,"animatedead",u) //52217
    call IssueTargetOrder(dummy,"antimagicshell",u) //52186
    call IssueTargetOrder(dummy,"attributemodskill",u) //52576
    call IssueTargetOrder(dummy,"auraunholy",u) //52215
    call IssueTargetOrder(dummy,"auravampiric",u) //52216
    call IssueTargetOrder(dummy,"avatar",u) //52086
    call IssueTargetOrder(dummy,"avengerform",u) //52531
    call IssueTargetOrder(dummy,"awaken",u) //52466
    call IssueTargetOrder(dummy,"banish",u) //52486
    call IssueTargetOrder(dummy,"barkskin",u) //52135
    call IssueTargetOrder(dummy,"barkskinon",u) //52136
    call IssueTargetOrder(dummy,"battleroar",u) //52099
    call IssueTargetOrder(dummy,"battlestations",u) //52099
    call IssueTargetOrder(dummy,"bearform",u) //52138
    call IssueTargetOrder(dummy,"berserk",u) //52100
    call IssueTargetOrder(dummy,"blackarrow",u) //52577
    call IssueTargetOrder(dummy,"blackarrowon",u) //52578
    call IssueTargetOrder(dummy,"blight",u) //52187
    call IssueTargetOrder(dummy,"blink",u) //52525
    call IssueTargetOrder(dummy,"blizzard",u) //52089
    call IssueTargetOrder(dummy,"bloodlust",u) //52101
    call IssueTargetOrder(dummy,"bloodluston",u) //52102
    call IssueTargetOrder(dummy,"board",u) //52043
    call IssueTargetOrder(dummy,"breathoffire",u) //52580
    call IssueTargetOrder(dummy,"breathoffrost",u) //52560
    call IssueTargetOrder(dummy,"build",u) //51994
    call IssueTargetOrder(dummy,"burrow",u) //52533
    call IssueTargetOrder(dummy,"cannibalize",u) //52188
    call IssueTargetOrder(dummy,"carrionscarabs",u) //52551
    call IssueTargetOrder(dummy,"carrionscarabsinstant",u) //52554
    call IssueTargetOrder(dummy,"carrionscarabsoff",u) //52553
    call IssueTargetOrder(dummy,"carrionscarabson",u) //52552
    call IssueTargetOrder(dummy,"carrionswarm",u) //52218
    call IssueTargetOrder(dummy,"chainlightning",u) //52119
    call IssueTargetOrder(dummy,"channel",u) //52600
    call IssueTargetOrder(dummy,"charm",u) //52581
    call IssueTargetOrder(dummy,"chemicalrage",u) //52663
    call IssueTargetOrder(dummy,"cloudoffog",u) //52473
    call IssueTargetOrder(dummy,"clusterrockets",u) //52652
    call IssueTargetOrder(dummy,"coldarrows",u) //52244
    call IssueTargetOrder(dummy,"coldarrowstarg",u) //52243
    call IssueTargetOrder(dummy,"controlmagic",u) //52474
    call IssueTargetOrder(dummy,"corporealform",u) //52493
    call IssueTargetOrder(dummy,"corrosivebreath",u) //52140
    call IssueTargetOrder(dummy,"coupleinstant",u) //52508
    call IssueTargetOrder(dummy,"coupletarget",u) //52507
    call IssueTargetOrder(dummy,"creepanimatedead",u) //52246
    call IssueTargetOrder(dummy,"creepdevour",u) //52247
    call IssueTargetOrder(dummy,"creepheal",u) //52248
    call IssueTargetOrder(dummy,"creephealoff",u) //52250
    call IssueTargetOrder(dummy,"creephealon",u) //52249
    call IssueTargetOrder(dummy,"creepthunderbolt",u) //52252
    call IssueTargetOrder(dummy,"creepthunderclap",u) //52253
    call IssueTargetOrder(dummy,"cripple",u) //52189
    call IssueTargetOrder(dummy,"curse",u) //52190
    call IssueTargetOrder(dummy,"curseoff",u) //52192
    call IssueTargetOrder(dummy,"curseon",u) //52191
    call IssueTargetOrder(dummy,"cyclone",u) //52144
    call IssueTargetOrder(dummy,"darkconversion",u) //52228
    call IssueTargetOrder(dummy,"darkportal",u) //52229
    call IssueTargetOrder(dummy,"darkritual",u) //52219
    call IssueTargetOrder(dummy,"darksummoning",u) //52220
    call IssueTargetOrder(dummy,"deathanddecay",u) //52221
    call IssueTargetOrder(dummy,"deathcoil",u) //52222
    call IssueTargetOrder(dummy,"deathpact",u) //52223
    call IssueTargetOrder(dummy,"decouple",u) //52509
    call IssueTargetOrder(dummy,"defend",u) //52055
    call IssueTargetOrder(dummy,"detectaoe",u) //52015
    call IssueTargetOrder(dummy,"detonate",u) //52145
    call IssueTargetOrder(dummy,"devour",u) //52104
    call IssueTargetOrder(dummy,"devourmagic",u) //52536
    call IssueTargetOrder(dummy,"disassociate",u) //52240
    call IssueTargetOrder(dummy,"disenchant",u) //52495
    call IssueTargetOrder(dummy,"dismount",u) //52470
    call IssueTargetOrder(dummy,"dispel",u) //52057
    call IssueTargetOrder(dummy,"divineshield",u) //52090
    call IssueTargetOrder(dummy,"doom",u) //52583
    call IssueTargetOrder(dummy,"drain",u) //52487
    call IssueTargetOrder(dummy,"dreadlordinferno",u) //52224
    call IssueTargetOrder(dummy,"drunkenhaze",u) //52585
    call IssueTargetOrder(dummy,"earthquake",u) //52121
    call IssueTargetOrder(dummy,"eattree",u) //52146
    call IssueTargetOrder(dummy,"elementalfury",u) //52586
    call IssueTargetOrder(dummy,"ensnare",u) //52106
    call IssueTargetOrder(dummy,"ensnareon",u) //52107
    call IssueTargetOrder(dummy,"entangle",u) //52147
    call IssueTargetOrder(dummy,"entangleinstant",u) //52148
    call IssueTargetOrder(dummy,"entanglingroots",u) //52171
    call IssueTargetOrder(dummy,"etherealform",u) //52496
    call IssueTargetOrder(dummy,"evileye",u) //52105
    call IssueTargetOrder(dummy,"faeriefire",u) //52149
    call IssueTargetOrder(dummy,"faeriefireon",u) //52150
    call IssueTargetOrder(dummy,"fanofknives",u) //52526
    call IssueTargetOrder(dummy,"farsight",u) //52122
    call IssueTargetOrder(dummy,"fingerofdeath",u) //52230
    call IssueTargetOrder(dummy,"firebolt",u) //52231
    call IssueTargetOrder(dummy,"flamestrike",u) //52488
    call IssueTargetOrder(dummy,"flamingarrows",u) //52174
    call IssueTargetOrder(dummy,"flamingarrowstarg",u) //52173
    call IssueTargetOrder(dummy,"flamingattack",u) //52540
    call IssueTargetOrder(dummy,"flamingattacktarg",u) //52539
    call IssueTargetOrder(dummy,"flare",u) //52060
    call IssueTargetOrder(dummy,"forceboard",u) //52044
    call IssueTargetOrder(dummy,"forceofnature",u) //52176
    call IssueTargetOrder(dummy,"forkedlightning",u) //52586
    call IssueTargetOrder(dummy,"freezingbreath",u) //52195
    call IssueTargetOrder(dummy,"frenzy",u) //52561
    call IssueTargetOrder(dummy,"frenzyon",u) //52562
    call IssueTargetOrder(dummy,"frostarmor",u) //52225
    call IssueTargetOrder(dummy,"frostarmoron",u) //52458
    call IssueTargetOrder(dummy,"frostnova",u) //52226
    call IssueTargetOrder(dummy,"getitem",u) //51981
    call IssueTargetOrder(dummy,"gold2lumber",u) //52233
    call IssueTargetOrder(dummy,"grabtree",u) //52511
    call IssueTargetOrder(dummy,"harvest",u) //52018
    call IssueTargetOrder(dummy,"heal",u) //52063
    call IssueTargetOrder(dummy,"healingspray",u) //52664
    call IssueTargetOrder(dummy,"healingward",u) //52109
    call IssueTargetOrder(dummy,"healingwave",u) //52501
    call IssueTargetOrder(dummy,"healoff",u) //52065
    call IssueTargetOrder(dummy,"healon",u) //52064
    call IssueTargetOrder(dummy,"hex",u) //52502
    call IssueTargetOrder(dummy,"holybolt",u) //52092
    call IssueTargetOrder(dummy,"howlofterror",u) //52588
    call IssueTargetOrder(dummy,"humanbuild",u) //51995
    call IssueTargetOrder(dummy,"immolation",u) //52177
    call IssueTargetOrder(dummy,"impale",u) //52555
    call IssueTargetOrder(dummy,"incineratearrow",u) //52670
    call IssueTargetOrder(dummy,"incineratearrowon",u) //52671
    call IssueTargetOrder(dummy,"inferno",u) //52232
    call IssueTargetOrder(dummy,"innerfire",u) //52066
    call IssueTargetOrder(dummy,"innerfireon",u) //52067
    call IssueTargetOrder(dummy,"invisibility",u) //52069
    call IssueTargetOrder(dummy,"lavamonster",u) //52667
    call IssueTargetOrder(dummy,"lightningshield",u) //52110
    call IssueTargetOrder(dummy,"load",u) //52046
    call IssueTargetOrder(dummy,"loadarcher",u) // 852142
    call IssueTargetOrder(dummy,"loadcorpse",u) //52050
    call IssueTargetOrder(dummy,"loadcorpseinstant",u) //52053
    call IssueTargetOrder(dummy,"locustswarm",u) //52556
    call IssueTargetOrder(dummy,"lumber2gold",u) //52234
    call IssueTargetOrder(dummy,"magicdefense",u) //52478
    call IssueTargetOrder(dummy,"magicleash",u) //52480
    call IssueTargetOrder(dummy,"manaburn",u) //52179
    call IssueTargetOrder(dummy,"manaflareon",u) //52512
    call IssueTargetOrder(dummy,"manashieldon",u) //52589
    call IssueTargetOrder(dummy,"massteleport",u) //52093
    call IssueTargetOrder(dummy,"mechanicalcritter",u) //52564
    call IssueTargetOrder(dummy,"metamorphosis",u) //52180
    call IssueTargetOrder(dummy,"militia",u) //52072
    call IssueTargetOrder(dummy,"militiaconvert",u) //52071
    call IssueTargetOrder(dummy,"militiaunconvert",u) //52651
    call IssueTargetOrder(dummy,"mindrot",u) //52565
    call IssueTargetOrder(dummy,"mirrorimage",u) //52123
    call IssueTargetOrder(dummy,"monsoon",u) //52591
    call IssueTargetOrder(dummy,"mount",u) //52469
    call IssueTargetOrder(dummy,"mounthippogryph",u) //52143
    call IssueTargetOrder(dummy,"nagabuild",u) //52467
    call IssueTargetOrder(dummy,"neutraldetectaoe",u) //52023
    call IssueTargetOrder(dummy,"neutralinteract",u) //52566
    call IssueTargetOrder(dummy,"neutralspell",u) //52630
    call IssueTargetOrder(dummy,"nightelfbuild",u) //51997
    call IssueTargetOrder(dummy,"orcbuild",u) //51996
    call IssueTargetOrder(dummy,"parasite",u) //52601
    call IssueTargetOrder(dummy,"parasiteon",u) //52602
    call IssueTargetOrder(dummy,"phaseshift",u) //52514
    call IssueTargetOrder(dummy,"phaseshiftinstant",u) //52517
    call IssueTargetOrder(dummy,"phaseshifton",u) //52515
    call IssueTargetOrder(dummy,"phoenixfire",u) //52481
    call IssueTargetOrder(dummy,"phoenixmorph",u) //52482
    call IssueTargetOrder(dummy,"poisonarrows",u) //52255
    call IssueTargetOrder(dummy,"poisonarrowstarg",u) //52254
    call IssueTargetOrder(dummy,"polymorph",u) //52074
    call IssueTargetOrder(dummy,"possession",u) //52196
    call IssueTargetOrder(dummy,"preservation",u) //52568
    call IssueTargetOrder(dummy,"purge",u) //52111
    call IssueTargetOrder(dummy,"rainofchaos",u) //52237
    call IssueTargetOrder(dummy,"rainoffire",u) //52238
    call IssueTargetOrder(dummy,"raisedead",u) //52197
    call IssueTargetOrder(dummy,"raisedeadon",u) //52198
    call IssueTargetOrder(dummy,"ravenform",u) //52155
    call IssueTargetOrder(dummy,"recharge",u) //52157
    call IssueTargetOrder(dummy,"rechargeon",u) //52158
    call IssueTargetOrder(dummy,"rejuvination",u) //52160
    call IssueTargetOrder(dummy,"renew",u) //52161
    call IssueTargetOrder(dummy,"renewon",u) //52162
    call IssueTargetOrder(dummy,"replenish",u) //52542
    call IssueTargetOrder(dummy,"replenishlife",u) //52545
    call IssueTargetOrder(dummy,"replenishlifeon",u) //52546
    call IssueTargetOrder(dummy,"replenishmana",u) //52548
    call IssueTargetOrder(dummy,"replenishmanaoff",u) //52550
    call IssueTargetOrder(dummy,"replenishmanaon",u) //52549
    call IssueTargetOrder(dummy,"replenishon",u) //52543
    call IssueTargetOrder(dummy,"request_hero",u) //52239
    call IssueTargetOrder(dummy,"requestsacrifice",u) //52201
    call IssueTargetOrder(dummy,"restoration",u) //52202
    call IssueTargetOrder(dummy,"restorationon",u) //52203
    call IssueTargetOrder(dummy,"resumebuild",u) //51999
    call IssueTargetOrder(dummy,"resumeharvesting",u) //52017
    call IssueTargetOrder(dummy,"resurrection",u) //52094
    call IssueTargetOrder(dummy,"returnresources",u) //52020
    call IssueTargetOrder(dummy,"revenge",u) //52241
    call IssueTargetOrder(dummy,"roar",u) //52164
    call IssueTargetOrder(dummy,"robogoblin",u) //52656
    call IssueTargetOrder(dummy,"root",u) //52165
    call IssueTargetOrder(dummy,"sacrifice",u) //52205
    call IssueTargetOrder(dummy,"sanctuary",u) //52569
    call IssueTargetOrder(dummy,"scout",u) //52181
    call IssueTargetOrder(dummy,"selfdestruct",u) //52040
    call IssueTargetOrder(dummy,"selfdestructon",u) //52041
    call IssueTargetOrder(dummy,"sentinel",u) //52182
    call IssueTargetOrder(dummy,"setrally",u) //51980
    call IssueTargetOrder(dummy,"shadowsight",u) //52570
    call IssueTargetOrder(dummy,"shadowstrike",u) //52527
    call IssueTargetOrder(dummy,"shockwave",u) //52125
    call IssueTargetOrder(dummy,"silence",u) //52592
    call IssueTargetOrder(dummy,"sleep",u) //52227
    call IssueTargetOrder(dummy,"slow",u) //52075
    call IssueTargetOrder(dummy,"slowon",u) //52076
    call IssueTargetOrder(dummy,"soulburn",u) //52668
    call IssueTargetOrder(dummy,"soulpreservation",u) //52242
    call IssueTargetOrder(dummy,"spellshield",u) //52571
    call IssueTargetOrder(dummy,"spellshieldaoe",u) //52572
    call IssueTargetOrder(dummy,"spellsteal",u) //52483
    call IssueTargetOrder(dummy,"spellstealon",u) //52484
    call IssueTargetOrder(dummy,"spies",u) //52235
    call IssueTargetOrder(dummy,"spiritlink",u) //52499
    call IssueTargetOrder(dummy,"spiritofvengeance",u) //52528
    call IssueTargetOrder(dummy,"spirittroll",u) //52573
    call IssueTargetOrder(dummy,"spiritwolf",u) //52126
    call IssueTargetOrder(dummy,"stampede",u) //52593
    call IssueTargetOrder(dummy,"standdown",u) //52113
    call IssueTargetOrder(dummy,"starfall",u) //52183
    call IssueTargetOrder(dummy,"stasistrap",u) //52114
    call IssueTargetOrder(dummy,"steal",u) //52574
    call IssueTargetOrder(dummy,"stomp",u) //52127
    call IssueTargetOrder(dummy,"stoneform",u) //52206
    call IssueTargetOrder(dummy,"submerge",u) //52604
    call IssueTargetOrder(dummy,"summonfactory",u) //52658
    call IssueTargetOrder(dummy,"summongrizzly",u) //52594
    call IssueTargetOrder(dummy,"summonphoenix",u) //52489
    call IssueTargetOrder(dummy,"summonquillbeast",u) //52595
    call IssueTargetOrder(dummy,"summonwareagle",u) //52596
    call IssueTargetOrder(dummy,"tankdroppilot",u) //52079
    call IssueTargetOrder(dummy,"tankloadpilot",u) //52080
    call IssueTargetOrder(dummy,"tankpilot",u) //52081
    call IssueTargetOrder(dummy,"taunt",u) //52520
    call IssueTargetOrder(dummy,"thunderbolt",u) //52095
    call IssueTargetOrder(dummy,"thunderclap",u) //52096
    call IssueTargetOrder(dummy,"tornado",u) //52597
    call IssueTargetOrder(dummy,"townbellon",u) //52082
    call IssueTargetOrder(dummy,"tranquility",u) //52184
    call IssueTargetOrder(dummy,"transmute",u) //52665
    call IssueTargetOrder(dummy,"vengeance",u) //52521
    call IssueTargetOrder(dummy,"vengeanceinstant",u) //52524
    call IssueTargetOrder(dummy,"vengeanceon",u) //52522
    call IssueTargetOrder(dummy,"volcano",u) //52669
    call IssueTargetOrder(dummy,"voodoo",u) //52503
    call IssueTargetOrder(dummy,"ward",u) //52504
    call IssueTargetOrder(dummy,"waterelemental",u) //52097
    call IssueTargetOrder(dummy,"wateryminion",u) //52598
    call IssueTargetOrder(dummy,"web",u) //52211
    call IssueTargetOrder(dummy,"webon",u) //52212
    call IssueTargetOrder(dummy,"whirlwind",u) //52128
    call IssueTargetOrder(dummy,"windwalk",u) //52129
    call IssueTargetOrder(dummy,"wispharvest",u) //52214
    call IssueTargetOrder(dummy,"scrollofspeed",u) //52285
    call IssueTargetOrder(dummy,"useslot1",u) //52008
    call IssueTargetOrder(dummy,"useslot2",u) //52009
    call IssueTargetOrder(dummy,"useslot3",u) //52010
    call IssueTargetOrder(dummy,"useslot4",u) //52011
    call IssueTargetOrder(dummy,"useslot5",u) //52012
    call IssueTargetOrder(dummy,"useslot6",u) //52013
    call IssueTargetOrder(dummy,"stunned",u) //51973
подробнее в этой теме xgm.guru/p/wc3/linkenspheredota2anime если вникнешь то очень хорошо станет и быстрее чем через ифы каждый раз прописывать под каждую способность

только убери call IssueTargetOrder(dummy,"useslot1",u) 52008
call IssueTargetOrder(dummy,"useslot2",u) 52009
call IssueTargetOrder(dummy,"useslot3",u) 52010
call IssueTargetOrder(dummy,"useslot4",u) 52011
call IssueTargetOrder(dummy,"useslot5",u) 52012
call IssueTargetOrder(dummy,"useslot6",u) 52013
вообщем на свой вкуус настроишь

я бы тебе сделал но при условии что ты примешь меня в команду, а то одному скучно

не забудь указать размер даммика как 0.01
Daro #3 - 2 месяца назад 0
Голосов: +0 / -0
quq_CCCP, Не очень то хочется создавать еще дамми героев.Но опять же проблема
пришлось мультикаст сделать фиксированным от точки, который не следует за героем , а кастит там где он был, некоторые касты не работают непонятно или даммик что-то не успевает повернуться развернуться или не дотягивается.
На способности которые паузят основного кастера (рывок в точку) мультикаст почему-то не срабатывает никак.А еще время жизни даммика должно тоже определять каждый раз, порой спеллы зависят того жив кастер/дамикастер.
dondonchakka, Не особо разобрался с твоим кодом, но зачем ты пытаешься кастить все приказы в цель , когда можно сохранить текущий приказ юнита GetUnitCurrentOrder(caster).С лишними дамми героями может много багов возникнуть ,видимо придется все ж еще больше костылить, так параметры которые завязаны герое обнуляются, урон тоже в 0. но пока я не придумал другой вариант.
Нужно как-то сохранить все данные от героя.
я бы тебе сделал но при условии что ты примешь меня в команду, а то одному скучно
Какую команду?Нет никакой команды.

вот основное действие мультикаст, получает работает полностью на РО скиллы
set MirrorDummy = CreateUnit(GetOwningPlayer(caster),'u00O', x1 ,y1 , angle)
call UnitApplyTimedLife(MirrorDummy , 'BTLF', life)
if GetUnitAbilityLevel(MirrorDummy,abil) == 0 then
call UnitAddAbility(MirrorDummy,abil)
endif

call SetUnitAbilityLevel(MirrorDummy,abil,lvl)
call UnitShareVision(MirrorDummy,GetOwningPlayer(target),true)

if RectContainsCoords(bj_mapInitialPlayableArea, xtarg, ytarg) then

// call DisplayTextToForce( GetPlayersAll(), "cast point" )
call IssuePointOrder(MirrorDummy, order ,xtarg,ytarg)

endif
//иммун
if target != null and GetWidgetLife( target ) > 0.405 then
// call IssueTargetOrder( MirrorDummy, order, target)
call IssueTargetOrderById( MirrorDummy, order2, target)
// call DisplayTextToForce( GetPlayersAll(), "cast target" )
call IssueImmediateOrder( MirrorDummy, order)
// call DisplayTextToForce( GetPlayersAll(), "none" )
call UnitShareVision(MirrorDummy,GetOwningPlayer(target),false)
endif
Daro #4 - 2 месяца назад (изм. ) 0
Голосов: +0 / -0
Спустя немного тестов, в итоге попробовал переделать касты от дамми героя с характеристиками , в итоге моя система оказалась ненадежна. Дамми герой кастит порой через раз или только в близи, если наш основной кастер не двигается.Да еще потом дамми герои отображаются на экране стастики когда выходишь из игры... что просто ужасно.