Zombak2500
offline
Опыт:
1,855Активность: |
Вакуум
Не работает, вот код:
INFO
uca = caster ability ula = level ability ra = region of ability ENDINFO function Trig_Vacuum_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A006' endfunction function Trig_Untitled_Trigger_Null takes nothing returns nothing
endfunction function Trig_Vacuum_Action takes nothing returns nothing
Locals local unit uca local integer ula local location ra End Locals Sets set uca = GetSpellAbilityUnit() set ula = GetUnitAbilityLevel(uca,'A006') set ra = GetSpellTargetLoc() End Sets Start Effect call AddSpecialEffectLocBJ( ra , "Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl" ) call PolledWait( 0.30 ) call DestroyEffectBJ( GetLastCreatedEffectBJ() ) End Effect Creat Group call ForGroupBJ( GetUnitsInRangeOfLocAll(ula*50, ra ), function Trig_Untitled_Trigger_Null ) if IsPlayerEnemy(GetOwningPlayer(uca), GetOwningPlayer(GetEnumUnit())) then call SetUnitPositionLoc( GetEnumUnit(), ra ) call UnitDamageTargetBJ(uca, GetEnumUnit(), ula*50, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FORCE ) endif endfunction function InitTrig_Vacuum takes nothing returns nothing
set gg_trg_Vacuum = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Vacuum, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_Vacuum, Condition( function Trig_Vacuum_Conditions ) ) call TriggerAddAction( gg_trg_Vacuum, function Trig_Vacuum_Action ) endfunction Тригер должен делать вот что: Выделять всех в круге(пустышка БЛИЗЗАРД скилл) и всех врагов в центр |
28.01.2010, 14:48 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Лол. Действия притягивания должны быть в функций которую вызывает ФорГруп. Да и вообще тут все медленно и утечно. |
28.01.2010, 16:30 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zombak2500
offline
Опыт:
1,855Активность: |
Покажи как надо |
28.01.2010, 16:31 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Trig_Untitled_Trigger_Null вот сюда вставляешь if IsPlayerEnemy(GetOwningPlayer(uca),
GetOwningPlayer(GetEnumUnit())) then call SetUnitPositionLoc( GetEnumUnit(), ra ) call UnitDamageTargetBJ(uca, GetEnumUnit(), ula*50, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FORCE ) endif DoctorGester добавил: Соответственно придется либо вставлять глобалки, либо делать вместо ФорГрупа брутфорс |
28.01.2010, 16:34 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zombak2500
offline
Опыт:
1,855Активность: |
глобалки меня не устраивают скажи плиз что нужно написать для брутфорса |
28.01.2010, 16:36 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
|
28.01.2010, 16:43 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zombak2500
offline
Опыт:
1,855Активность: |
» То есть так
INFO
uca = caster ability ula = level ability ra = region of ability ENDINFO function Trig_Vacuum_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A006' endfunction function Trig_Vacuum_Action takes nothing returns nothing
Locals local unit uca local integer ula local location ra End Locals Sets set uca = GetSpellAbilityUnit() set ula = GetUnitAbilityLevel(uca,'A006') set ra = GetSpellTargetLoc() End Sets Start Effect call AddSpecialEffectLocBJ( ra , "Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl" ) call PolledWait( 0.30 ) call DestroyEffectBJ( GetLastCreatedEffectBJ() ) End Effect Creat Group local group g = CreateGroup() local unit u call GroupEnumUnitsInRange(parameters) set u = FirstOfGroup(g) loop exitwhen u = null call GroupRemoveUnit(g,u) if IsPlayerEnemy(GetOwningPlayer(uca), GetOwningPlayer(GetEnumUnit())) then call SetUnitPositionLoc( GetEnumUnit(), ra ) call UnitDamageTargetBJ(uca, GetEnumUnit(), ula*50, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FORCE ) endif set u = FirstOfGroup(g) endloop endfunction function InitTrig_Vacuum takes nothing returns nothing set gg_trg_Vacuum = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Vacuum, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_Vacuum, Condition( function Trig_Vacuum_Conditions ) ) call TriggerAddAction( gg_trg_Vacuum, function Trig_Vacuum_Action ) endfunction |
28.01.2010, 16:48 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
GetEnumUnit замени на u и локалки перенеси вверх функции |
28.01.2010, 16:50 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
если вас не устраивают глобалки вам совершенно не нужен джаз.
брутфорс группы совершенно бессмысленное с точки зрения производительности и логики занятие. |
28.01.2010, 16:50 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
В моей карте используется брутфорс при попадании снаряда в юнита и ничего, производительность нормальная. А ему требуется всего лишь на применение спела. Ах да автор почитай статью сергея о утечках. |
28.01.2010, 16:54 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zombak2500
offline
Опыт:
1,855Активность: |
DoctorGester:
GroupEnumUnitsInRange takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing как узнать filter ,и вообще что это такое
p.s. уток уберу
Zombak2500 добавил: на вопрос ответьте плЫз Отредактировано Zombak2500, 28.01.2010 в 17:17. |
28.01.2010, 17:24 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Просто поставь null |
28.01.2010, 17:27 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zombak2500
offline
Опыт:
1,855Активность: |
Всё, всем спасибо выкладываю готовый тригер:
» Vacuum
INFO
uca = caster ability ula = level ability ra = region of ability g = группа u = юниты x,y,R = координаты центра скила и радиус выделения ENDINFO function Trig_Vacuum_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A006' endfunction function Trig_Vacuum_Action takes nothing returns nothing
Locals local unit uca local integer ula local location ra local group g local unit u local real x local real y local real R End Locals Sets set g = CreateGroup() set uca = GetSpellAbilityUnit() set ula = GetUnitAbilityLevel(uca,'A006') set ra = GetSpellTargetLoc() set x = GetLocationX(ra) set y = GetLocationY(ra) set R = ula*50 + 200 End Sets Start Effect call AddSpecialEffectLocBJ( ra , "Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl" ) call PolledWait( 0.30 ) call DestroyEffectBJ( GetLastCreatedEffectBJ() ) End Effect call GroupEnumUnitsInRange(g,x,y,R,null) set u = FirstOfGroup(g) loop exitwhen u == null call GroupRemoveUnit(g,u) if IsPlayerEnemy(GetOwningPlayer(uca), GetOwningPlayer(u)) then call SetUnitPositionLoc( u, ra ) call UnitDamageTargetBJ(uca, u, R, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FORCE ) endif set u = FirstOfGroup(g) endloop NULLALL set g = null set uca = null set ula = 0 set ra = null set x = 0 set y = 0 set R = 0 ENDNULLALL endfunction function InitTrig_Vacuum takes nothing returns nothing set gg_trg_Vacuum = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Vacuum, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_Vacuum, Condition( function Trig_Vacuum_Conditions ) ) call TriggerAddAction( gg_trg_Vacuum, function Trig_Vacuum_Action ) endfunction DoctorGester, биг спс ,что помог разобратьвся
DioD, одна дурацкая критика не чем не помог=флуд и набивание экспы О ВЕЛИКИЙ МОДЕРАТОР ЗАКРОЙ ТЕМУ ) Отредактировано Zombak2500, 28.01.2010 в 17:53. |
28.01.2010, 17:41 | #13
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Переменные обнули в конце и точку с группой удали
DoctorGester добавил: И бж старайся не использовать |
28.01.2010, 17:47 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zombak2500
offline
Опыт:
1,855Активность: |
А да) утки спс)
Zombak2500 добавил: На бж забил когда в JNGP увидел кнопку функцион лист. всё скрипт доделал можете брать кому надо) ещё раз спс |
28.01.2010, 17:54 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|