Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
|
30.09.2012, 21:29 | #21
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
|
30.09.2012, 22:57 | #22
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
pAxsIs
offline
Опыт:
2,389Активность: |
ADOLF:
Я только начал изучать jass, поэтому я не понимаю твой код, он написан не на стандартном jass, либо на стандартном, но с использованием библиотек (предположение), я не шарю в видах :) pAxsIs добавил:
Все я понял) улыбашка, как обычно все разжевал) спасибо всем диоду и улыбашке, можно и Адольфу за старания) Просто я смотрел на последний код который я написал, а вы о первом) последний ведь верный? Вот конечный код тему можно уже закрывать) давно пора вроде как. ((код jass
function Trig_First_act_Conditions takes nothing returns boolean
if GetSpellAbilityId() == 'A000' then call SetUnitFacingToFaceUnitTimed( GetSpellAbilityUnit(), GetSpellTargetUnit(), 0.00 ) call EnableTrigger( gg_trg_Second_act ) set udg_Units[1] = GetSpellAbilityUnit() set udg_Units[2] = GetSpellTargetUnit() endif return false endfunction ===========================================================================
function InitTrig_First_act takes nothing returns nothing local integer index = 0 set gg_trg_First_act = CreateTrigger( ) loop call TriggerRegisterPlayerUnitEvent(gg_trg_First_act, Player( index ), EVENT_PLAYER_UNIT_SPELL_EFFECT, null) set index = index + 1 exitwhen index == 8 endloop call TriggerAddCondition( gg_trg_First_act, Condition( function Trig_First_act_Conditions ) ) endfunction )) Если этот код нормальный, то все опрос закончен. |
01.10.2012, 01:05 | #23
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
Этот код не нормальный, т.к. вызывает BJ функции с утечками. |
01.10.2012, 11:11 | #24
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
pAxsIs
offline
Опыт:
2,389Активность: |
ADOLF:
Ткни меня пожалуйста на BJ функцию, где она в этом коде? |
01.10.2012, 11:48 | #25
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,598Активность: |
pAxsIs, вот эта функция SetUnitFacingToFaceUnitTimed
((код jass
function SetUnitFacingToFaceUnitTimed takes unit whichUnit, unit target, real duration returns nothing
local location unitLoc = GetUnitLoc(target) call SetUnitFacingToFaceLocTimed(whichUnit, unitLoc, duration) тоже BJ функция
call RemoveLocation(unitLoc) endfunction )) quq_CCCP добавил: ADOLF, ну а де тут утечки, локейшены удаляются, но тока куча ненужных действий и всякой чепухи с локейшенами... |
01.10.2012, 12:01 | #26
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
pAxsIs
offline
Опыт:
2,389Активность: |
Так лучше?
((код jass
function Trig_First_act_Conditions takes nothing returns boolean
if GetSpellAbilityId() == 'A000' then local location unitLoc = GetUnitLoc(GetSpellAbilityUnit()) call SetUnitFacingTimed(GetSpellAbilityUnit(), AngleBetweenPoints(unitLoc, GetSpellTargetUnit()), 0.00) call RemoveLocation(unitLoc) call EnableTrigger( gg_trg_Second_act ) set udg_Units[1] = GetSpellAbilityUnit() set udg_Units[2] = GetSpellTargetUnit() endif return false endfunction =========================================================================== function InitTrig_First_act takes nothing returns nothing local integer index = 0 set gg_trg_First_act = CreateTrigger( ) loop call TriggerRegisterPlayerUnitEvent(gg_trg_First_act, Player( index ), EVENT_PLAYER_UNIT_SPELL_EFFECT, null) set index = index + 1 exitwhen index == 8 endloop call TriggerAddCondition( gg_trg_First_act, Condition( function Trig_First_act_Conditions ) ) endfunction )) |
01.10.2012, 12:49 | #27
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,598Активность: |
pAxsIs, а с какого х локальная переменная после if? |
01.10.2012, 12:49 | #28
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
pAxsIs
offline
Опыт:
2,389Активность: |
Я думал так можно, прям как цикл в событии))
Ну ладно вот так тогда: ((код jass
function Trig_First_act_Conditions takes nothing returns boolean
local location unitLoc = GetUnitLoc(GetSpellAbilityUnit()) if GetSpellAbilityId() == 'A000' then call SetUnitFacingTimed(GetSpellAbilityUnit(), AngleBetweenPoints(unitLoc, GetSpellTargetUnit()), 0.00) call RemoveLocation(unitLoc) call EnableTrigger( gg_trg_Second_act ) set udg_Units[1] = GetSpellAbilityUnit() set udg_Units[2] = GetSpellTargetUnit() endif return false endfunction =========================================================================== function InitTrig_First_act takes nothing returns nothing local integer index = 0 set gg_trg_First_act = CreateTrigger( ) loop call TriggerRegisterPlayerUnitEvent(gg_trg_First_act, Player( index ), EVENT_PLAYER_UNIT_SPELL_EFFECT, null) set index = index + 1 exitwhen index == 8 endloop call TriggerAddCondition( gg_trg_First_act, Condition( function Trig_First_act_Conditions ) ) endfunction )) |
01.10.2012, 12:52 | #29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,598Активность: |
pAxsIs, сall RemoveLocation(unitLoc) после endif ставить нужно |
01.10.2012, 13:03 | #30
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
pAxsIs
offline
Опыт:
2,389Активность: |
я туплю с утра)
Думал написать после endif, но решил, что и так удалит. Забыл, что может и не выполниться условие) P.S. как можно это забыть... Ну а теперь?) ((код jass
function Trig_First_act_Conditions takes nothing returns boolean
local location unitLoc = GetUnitLoc(GetSpellAbilityUnit()) if GetSpellAbilityId() == 'A000' then call SetUnitFacingTimed(GetSpellAbilityUnit(), AngleBetweenPoints(unitLoc, GetSpellTargetUnit()), 0.00) call EnableTrigger( gg_trg_Second_act ) set udg_Units[1] = GetSpellAbilityUnit() set udg_Units[2] = GetSpellTargetUnit() endif call RemoveLocation(unitLoc) return false endfunction ===========================================================================
function InitTrig_First_act takes nothing returns nothing local integer index = 0 set gg_trg_First_act = CreateTrigger( ) loop call TriggerRegisterPlayerUnitEvent(gg_trg_First_act, Player( index ), EVENT_PLAYER_UNIT_SPELL_EFFECT, null) set index = index + 1 exitwhen index == 8 endloop call TriggerAddCondition( gg_trg_First_act, Condition( function Trig_First_act_Conditions ) ) endfunction )) То есть функция Condition от Action почти не отличается, внутри каждой функции можно выполнять действия (любые, которые в принципе можно), верно? pAxsIs добавил:
Кстати я только щас понял, Адольфа :D спасибо) Вопрос: Принципиально важно в функции использовать переменные: ((код jass
SetUnitFacingTimed (udg_Units[1], 57.297469 * Atan2(GetUnitY(udg_Units[2])-GetUnitY(udg_Units[1]),GetUnitX(udg_Units[2])-GetUnitX(udg_Units[1])), 0.);
)) или можно: ((код jass
SetUnitFacingTimed (GetSpellAbilityUnit(), 57.297469 * Atan2(GetUnitY(GetSpellTargetUnit())-GetUnitY(GetSpellAbilityUnit()),GetUnitX(GetSpellTargetUnit())-GetUnitX(GetSpellAbilityUnit())), 0.); )) И кстати если и использовать в функции, переменные, то лучше локальные для mui ИМХО |
01.10.2012, 13:26 | #31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
если функция вызывается раза 1-2, то локалка не особо критична, а вот если там 10 вызовов GetTriggerUnit() то стоит. |
01.10.2012, 13:37 | #32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
не вижу смысла вызывать точку когда можно на прямую обращатся к координатам |
01.10.2012, 14:46 | #33
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
pAxsIs
offline
Опыт:
2,389Активность: |
DioD:
ну да лучше через координаты, но конечный вопрос был другой. Спасибо за помощь диод :)
|
01.10.2012, 14:54 | #34
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
в данном коде переменные только для тебя, они для хранения данных не используются, однако если ты захочешь использовать градусы где-то еще их будет смысл сохранить чтобы не считать дважды. |
01.10.2012, 15:11 | #35
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
pAxsIs
offline
Опыт:
2,389Активность: |
DioD:
Все понял (ответ ясен). Спасибо еще раз DioD. |
01.10.2012, 15:19 | #36
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|