![]()
Hate
конь вакуумный
![]() ![]() offline
Опыт:
42,743Активность: |
|
![]() |
#21
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
99,989Активность: |
|
![]() |
#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 )) Если этот код нормальный, то все опрос закончен. |
![]() |
#23
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
99,989Активность: |
Этот код не нормальный, т.к. вызывает BJ функции с утечками. |
![]() |
#24
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
pAxsIs
![]() ![]() offline
Опыт:
2,389Активность: |
ADOLF:
Ткни меня пожалуйста на BJ функцию, где она в этом коде? |
![]() |
#25
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
95,470Активность: |
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, ну а де тут утечки, локейшены удаляются, но тока куча ненужных действий и всякой чепухи с локейшенами... |
![]() |
#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 )) |
![]() |
#27
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
95,470Активность: |
pAxsIs, а с какого х локальная переменная после if? |
![]() |
#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 )) |
![]() |
#29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
95,470Активность: |
pAxsIs, сall RemoveLocation(unitLoc) после endif ставить нужно |
![]() |
#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 ИМХО |
![]() |
#31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hate
конь вакуумный
![]() ![]() offline
Опыт:
42,743Активность: |
если функция вызывается раза 1-2, то локалка не особо критична, а вот если там 10 вызовов GetTriggerUnit() то стоит. |
![]() |
#32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,184Активность: |
не вижу смысла вызывать точку когда можно на прямую обращатся к координатам |
![]() |
#33
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
pAxsIs
![]() ![]() offline
Опыт:
2,389Активность: |
DioD:
ну да лучше через координаты, но конечный вопрос был другой. Спасибо за помощь диод :)
|
![]() |
#34
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,184Активность: |
в данном коде переменные только для тебя, они для хранения данных не используются, однако если ты захочешь использовать градусы где-то еще их будет смысл сохранить чтобы не считать дважды. |
![]() |
#35
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
pAxsIs
![]() ![]() offline
Опыт:
2,389Активность: |
DioD:
Все понял (ответ ясен). Спасибо еще раз DioD. |
![]() |
#36
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|