Всегда ли функция GetTriggerPlayer( ) ,будет возвращать владельца GetTriggerUnit( )?
GetTriggerUnit( ) != null, естественно.

Принятый ответ

GetTriggerPlayer( ) возвращает игрока который запустил событие
в некоторых событиях он же является владельцем триггерного игрока
но это лишь фишка некоторых событий в которых есть триггер юнит но нету триггер плеера
если нужен владелец триггер юнита то используй GetOwningPlayer(GetTriggerUnit())
0
19
7 лет назад
0
Похожие вопросы:

ответ
Karp:
pro100master:
Мда слышал про GetLocalPlayer() вот и будет создавать для 1 игрока в сейв
cлыщал, но если бы знал как юзать, то не спрашивал бы)
ответ
globals
	player Pl = null
endglobals

function abc takes nothing returns boolean
	return IsUnitEnemy(GetFilterUnit(), Pl)
endfunction

function zemle takes nothing returns nothing
local unit u = GetTriggerUnit()
local group g = CreateGroup()
local real x = GetUnitX(u)
local real y = GetUnitY(u)
local real Random = GetRandomReal(0, 360)
local boolexpr d = Condition(function abc)
set Pl = GetTriggerPlayer()

call GroupEnumUnitsInRange( g, x, y, 850, d )
call ForGroup( g, function zemlee )
call UnitApplyTimedLife(CreateUnit (p, 'h007',x,y,Random),'BFiq',0.50 ) // ???

call DestroyGroup(g)
call DestroyBoolexpr(d)
set u = null
set p = null
set g = null 
set d =null
endfunction
ответ
Проблема в функции SaveLoad_EncodeVerify.

1
28
7 лет назад
Отредактирован nvc123
1
GetTriggerPlayer( ) возвращает игрока который запустил событие
в некоторых событиях он же является владельцем триггерного игрока
но это лишь фишка некоторых событий в которых есть триггер юнит но нету триггер плеера
если нужен владелец триггер юнита то используй GetOwningPlayer(GetTriggerUnit())
Принятый ответ
0
21
7 лет назад
0
nvc123, я хотел заменить GetOwningPlayer(GetTriggerUnit()) на GetTriggerPlayer(). Видимо, не стоит, я правильно понял?
3
28
7 лет назад
3
ScopteRectuS, правильно
есть события где есть и триггер плеер и триггер юнит
например игрок выделяет юнита
если красный игрок выделит юнита синего игрока то GetTriggerUnit() будет юнитом синего игрока а GetTriggerPlayer() будет красным игроком
1
26
7 лет назад
1
Вообще, по коду - да, ты можешь заменить одно на другое, НО...
не надо это делать прям ВЕЗДЕ
делай это только там, где тебе всё равно нужно получить владельца юнита-инициатора
но это какая-то неочень ценная экономия будет...
2
21
7 лет назад
Отредактирован scopterectus
2
Extremator:
всё равно нужно получить владельца юнита-инициатора
Я не понял, как понять "всё равно нужно" ? :-)
1
27
7 лет назад
Отредактирован MpW
1
Вообще-то смотря по регистру. Там в джазе, есть нативки на кого регистрируют события (могут и на игрока, так и на юнита, может и на другие объекты типа декора). Большинство событий регистрируют на игрока + обращают на юнита (GetTriggerUnit. Например, юнит умер - умирающий юнит. Это событие возвращает две переменные KillingUnit и DyingUnit. Особое внимание событие обращает на умирающего, то есть он и будет GetTriggerUnit). Регистр можно и на юнита накинуть (например получил урон, там по-моему GetTriggerPlayer нельзя вытащить? С только с помощью нативки владелец GetTriggerUnit)
Например, событие игрок ввёл в чат. Тут не выведет тебе GetTriggerUnit
1
26
7 лет назад
1
Я не понял, как понять "всё равно нужно" ? :-)
Ну если ты ссылаешься на владельца юнита-инициатора, и получаешь того же игрока, которым является игрок-инициатор - то почему не ссылаться сразу на игрока?)) можно
Чтобы оставить комментарий, пожалуйста, войдите на сайт.