RedRomka | Дата: Понедельник, 14 Мая 2012, 23:06:01 | Сообщение # 1 |
2 уровень
Группа: Пользователи
Сообщений: 22
Награды: 0
Репутация: 13
Блокировки:
| Всем доброго времени суток. Нужна помощь с кодом: для LocalPlayer создаёт тексттег над юнитом. Перечитал кучу всего про ЛокалПлаер, сделал триггер, но тот выдавал десинхрон. А когда переделал на Hide всем и Show для Локального, то отображает всем. Посмотрите чё можно сделать:
Code function Trig_KillsTexttag_Conditions takes nothing returns boolean if ( not ( IsUnitType(GetDyingUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif return true endfunction
function Trig_KillsTexttag_F2A takes nothing returns boolean if ( not ( GetEnumPlayer() != GetOwningPlayer(GetKillingUnit()) ) ) then return false endif if ( not ( GetEnumPlayer() != Player(10) ) ) then return false endif if ( not ( GetEnumPlayer() != Player(11) ) ) then return false endif if ( not ( IsPlayerInForce(GetEnumPlayer(), udg_AssistsGroup[GetPlayerId(GetOwningPlayer(GetDyingUnit()))]) == true ) ) then return false endif return true endfunction
function Trig_KillsTexttag_F1A takes nothing returns nothing local integer i = GetPlayerId(GetEnumPlayer()) local texttag txtt if ( Trig_KillsTexttag_F2A() ) then if GetUnitState(udg_HeroPlayer[i], UNIT_STATE_LIFE) >= 0 then call CreateTextTagUnitBJ( "+100", udg_HeroPlayer[i], 0, 10, 80.39, 68.63, 0.00, 0 ) set txtt = GetLastCreatedTextTag() call SetTextTagVelocityBJ( txtt, 55.00, 90 ) call SetTextTagPermanent( txtt, false ) call SetTextTagLifespan( txtt, 3.00 ) call SetTextTagFadepoint( txtt, 2.50 ) call TriggerSleepAction( 3 ) call DestroyTextTag(txtt) set txtt = null call ShowTextTagForceBJ( false, txtt, bj_FORCE_ALL_PLAYERS ) if GetLocalPlayer() == Player(i) then call SetTextTagVisibility(txtt, true) endif endif endif call DestroyTextTag(txtt) set txtt = null endfunction function Trig_KillsTexttag_Actions takes nothing returns nothing local integer i = GetPlayerId(GetOwningPlayer(GetKillingUnit())) local texttag txt1
call CreateTextTagUnitBJ( "+200", GetKillingUnit(), 0, 10, 80.39, 68.63, 0.00, 0 ) set txt1 = GetLastCreatedTextTag() call SetTextTagVelocityBJ( txt1, 55.00, 90 ) call SetTextTagPermanent( txt1, false ) call SetTextTagLifespan( txt1, 3.00 ) call SetTextTagFadepoint( txt1, 2.50 ) set txt1 = null call ShowTextTagForceBJ( false, txt1, bj_FORCE_ALL_PLAYERS ) if GetLocalPlayer() == Player(i) then call SetTextTagVisibility(txt1, true) endif call ForForce( bj_FORCE_ALL_PLAYERS, function Trig_KillsTexttag_F1A ) call TriggerSleepAction( 3.00) call DestroyTextTag(txt1) set txt1 = null
endfunction
//=========================================================================== function InitTrig_KillsTexttag takes nothing returns nothing local trigger trig = CreateTrigger( ) local integer index
set index = 0 loop call TriggerRegisterPlayerUnitEvent(trig, Player(index), EVENT_PLAYER_UNIT_DEATH, null)
set index = index + 1 exitwhen index == bj_MAX_PLAYER_SLOTS endloop call TriggerAddCondition( trig, Condition( function Trig_KillsTexttag_Conditions ) ) call TriggerAddAction( trig, function Trig_KillsTexttag_Actions ) set trig = null endfunction
Смысл такой: Убившему героя +200 над головой, а если некий в асистах, то +100. И как раскрыть те BJ, которые в коде есть?
|
|
|
|
DragoN | Дата: Понедельник, 14 Мая 2012, 23:49:31 | Сообщение # 2 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| создавай тексттаг для всех, для нужного игрока в блоке localplayer изменяй текст тексттага
El Psy Congroo
|
|
|
|
Faion | Дата: Вторник, 15 Мая 2012, 10:25:50 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
| Нельзя создавать локально объекты. текстаг - объект, по этому десинхронизаци происходит. Зато строка не является объектом в jass. По этому строку можно создать локально, а потом создать для всех игроков текстаг. В итоге текстаг будет создан у всех, но только у локального плеера в конструктор объекта будет передана не пустая строка, и по этому только этот игрок увидит текст.
О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас. My Project: Nindogatari MAL
|
|
|
|