freest
offline
Опыт:
442Активность: |
Проблема с группами
Решил сделать пассиву, при срабатывании, которой дамажит юнитов в радиусе 300 от цели и саму цель, проблема состоит в том , что урон не наносится и эффект не создается, проблему найти не смог;[
P.S. с группами только начал разбираться, поэтому не уверен в правильности кода... ((код jass
function Trig_Sunstrike_Conditions takes nothing returns boolean
return GetUnitAbilityLevelSwapped('A009', GetAttacker())== 1 endfunction function FilterUnit takes nothing returns boolean
return IsUnitType(GetFilterUnit(), UNIT_TYPE_GROUND) endfunction function Damage takes unit caster returns nothing
call DestroyEffect(AddSpecialEffectTargetUnitBJ("origin", GetEnumUnit(), "Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl")) call UnitDamageTargetBJ( caster, GetEnumUnit(), 250, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE ) endfunction function Trig_Sunstrike_Actions takes nothing returns nothing
local unit target = GetAttackedUnitBJ() local unit caster = GetAttacker() local real x = GetUnitX(target) local real y = GetUnitY(target) local group g = CreateGroup() local boolexpr b = function FilterUnit local integer chance = GetRandomInt(1, 100) if chance <= 10 then call GroupEnumUnitsInRange(g, x, y, 300, b) call ForGroup(g, function Damage) call DestroyGroup(g) set g = null set caster = null set target = null else call DestroyGroup(g) set g = null set target = null set caster = null endif endfunction function InitTrig_Sunstrike takes nothing returns nothing set gg_trg_Sunstrike = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Sunstrike, EVENT_PLAYER_UNIT_ATTACKED ) call TriggerAddCondition( gg_trg_Sunstrike, Condition( function Trig_Sunstrike_Conditions ) ) call TriggerAddAction( gg_trg_Sunstrike, function Trig_Sunstrike_Actions ) endfunction )) Отредактировано freest, 25.01.2012 в 14:06. |
25.01.2012, 13:33 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
youtube
сктыщь
offline
Опыт:
8,025Активность: |
вот попробуй примерно как то так Отредактировано youtube, 25.01.2012 в 14:34. |
25.01.2012, 13:50 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nerevar
I'll be back!
offline
Опыт:
18,352Активность: |
Один я не вижу события срабатывания триггера? |
25.01.2012, 13:51 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alpha
offline
Опыт:
7,387Активность: |
локальные переменные еще используешь в качестве глобальных |
25.01.2012, 13:57 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
freest
offline
Опыт:
442Активность: |
Nerevar:
Да, спасибо, случайно забыл про него)
Теперь, когда срабатывает пассива вар критует -___- |
25.01.2012, 14:02 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alpha
offline
Опыт:
7,387Активность: |
ты используешь функцию с принимаемыми аргументами некорректно.
Скинь весь код(с событием и поправками) - я исправлю и увидишь |
25.01.2012, 14:06 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
freest
offline
Опыт:
442Активность: |
((код jass
function Trig_Sunstrike_Conditions takes nothing returns boolean
return GetUnitAbilityLevelSwapped('A009', GetAttacker())== 1 endfunction function FilterUnit takes nothing returns boolean
return IsUnitType(GetFilterUnit(), UNIT_TYPE_GROUND) endfunction function Damage takes unit caster returns nothing
call DestroyEffect(AddSpecialEffectTargetUnitBJ("origin", GetEnumUnit(), "Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl")) call UnitDamageTargetBJ( caster, GetEnumUnit(), 250, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE ) endfunction function Trig_Sunstrike_Actions takes nothing returns nothing
local unit target = GetAttackedUnitBJ() local unit caster = GetAttacker() local group g = CreateGroup() local integer chance = GetRandomInt(1, 100) if chance <= 10 then call GetUnitsInRangeOfLocMatching(300, GetUnitLoc(target), Condition(function FilterUnit)) call ForGroup(g, function Damage) call DestroyGroup(g) set g = null set caster = null set target = null else call DestroyGroup(g) set g = null set target = null set caster = null endif endfunction function InitTrig_Sunstrike takes nothing returns nothing
set gg_trg_Sunstrike = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Sunstrike, EVENT_PLAYER_UNIT_ATTACKED ) call TriggerAddCondition( gg_trg_Sunstrike, Condition( function Trig_Sunstrike_Conditions ) ) call TriggerAddAction( gg_trg_Sunstrike, function Trig_Sunstrike_Actions ) endfunction )) немного поправил, вар критовать перестал, теперь абила не срабатывает ;[ |
25.01.2012, 14:18 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alpha
offline
Опыт:
7,387Активность: |
Работай через хеш, он на то и придуман Отредактировано alpha, 25.01.2012 в 14:41. |
25.01.2012, 14:32 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
youtube
сктыщь
offline
Опыт:
8,025Активность: |
alpha:
циклы не тру |
25.01.2012, 14:39 | #9
+0/−2
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alpha
offline
Опыт:
7,387Активность: |
код из пяти строк, тут трудно не понять
youtube:
нормально, может и не оптимально в плане производительности..
там забыл
:3
исправил
можно "exitwhen not a" между прочим) © Sc Отредактировано ScorpioT1000, 26.01.2012 в 02:53. |
25.01.2012, 14:39 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Kirya92
offline
Опыт:
107Активность: |
|
26.01.2012, 02:13 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alpha
offline
Опыт:
7,387Активность: |
Kirya92, почему не извлекли урок из сообщений в теме?
Вы дали код в котором лишние подгрузки и операции. К тому же еще и красиво обнулили целочисленную нужда в инициализации которой даже отсутствует.
Неплохое владение cjass'ом, а толковых знаний меньше, чем у рядовых пользователей этого языка-дополнения. |
26.01.2012, 02:55 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Kirya92
offline
Опыт:
107Активность: |
alpha, речь шла о работоспособности кода, а не о его производительности..) |
26.01.2012, 16:53 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
freest
offline
Опыт:
442Активность: |
Всем спасибо, все было проще ^_^ тему клоуз . |
30.01.2012, 10:22 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|