Пробую создать фрейм по нажатию клавиши "P" сам триггер работает но не создает нужный мне "SimpleFrame" для локального игрока.
library TotorOn
globals
 private framehandle KeyboxD
 private real Key 
 private real Key2 
endglobals
private function Trig_TutorialkeyOn_Actions takes nothing returns nothing
    local player p = GetOwningPlayer(GetTriggerUnit())
     local framehandle gameUIВ = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0)
   
    
    call DisplayTextToForce( GetPlayersAll(), "112211" )
   
    
    
     
     
     
    set Key = 0.30
    set Key2 = 0.40
    if GetLocalPlayer() == p then
    
    call BlzLoadTOCFile("war3mapImported\\tocs2.toc")
    set KeyboxD = BlzCreateSimpleFrame("KeyboxS", gameUIB, 0)
    
    call BlzFrameSetAbsPoint(KeyboxD, FRAMEPOINT_CENTER, Key2, Key)
    endif


    set p = null
    set gameUIВ = null



endfunction

//===========================================================================
function InitTrig_TutorialkeyOn takes nothing returns nothing
    set gg_trg_TutorialkeyOn = CreateTrigger(  )
    
    call BlzTriggerRegisterPlayerKeyEvent(gg_trg_TutorialkeyOn,Player(0),OSKEY_P,0,true)
    
   
    call TriggerAddAction( gg_trg_TutorialkeyOn, function Trig_TutorialkeyOn_Actions )
endfunction

endlibrary
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
27
Вам вряд ли кто-то подскажет в чем ошибка, это нужно угадать. надо дебажить тогда.
  1. Создается ли вообще симплфрейм "KeyboxS" без всего этого в обычном режиме
  2. проверьте хэндл, дебаг выведите в конце фрейма, рвботает ли он
  3. проверьте, подзагружает ли ток-файл
function LoadToc(s)
    if BlzLoadTOCFile(s) then
        print("Loaded: "..s)
    else
        print("Failed to Load: "..s)
    end  
end
  1. проверьте фдф-файлы, мб у вас что-то в шаблоне не так
9
МрачныйВорон, Когда добавляю "if GetLocalPlayer() == p then" вставлю туда фреймы они перестают показываться.
9
Вот так все работает.
library TotorOn
globals
 private framehandle KeyboxD
 private real Key 
 private real Key2 
endglobals
private function Trig_TutorialkeyOn_Actions takes nothing returns nothing
    local player p = GetOwningPlayer(GetTriggerUnit())
    
   local framehandle gameUIB = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0)
    
    call DisplayTextToForce( GetPlayersAll(), "112211" )
   
    
    
     
     
     
    set Key = 0.30
    set Key2 = 0.40
    
    
    call BlzLoadTOCFile("war3mapImported\\tocs2.toc")
    set KeyboxD = BlzCreateSimpleFrame("KeyboxS", gameUIB, 0)
    
    call BlzFrameSetAbsPoint(KeyboxD, FRAMEPOINT_CENTER, Key2, Key)
    


    set p = null
    set gameUIB = null
    



endfunction

//===========================================================================
function InitTrig_TutorialkeyOn takes nothing returns nothing
    set gg_trg_TutorialkeyOn = CreateTrigger(  )
    
    call BlzTriggerRegisterPlayerKeyEvent(gg_trg_TutorialkeyOn,Player(0),OSKEY_P,0,true)
    
    call BlzTriggerRegisterPlayerKeyEvent(gg_trg_TutorialkeyOn,Player(1),OSKEY_P,0,true)
    
    call BlzTriggerRegisterPlayerKeyEvent(gg_trg_TutorialkeyOn,Player(2),OSKEY_P,0,true)
    
    call BlzTriggerRegisterPlayerKeyEvent(gg_trg_TutorialkeyOn,Player(3),OSKEY_P,0,true)
    call TriggerAddAction( gg_trg_TutorialkeyOn, function Trig_TutorialkeyOn_Actions )
endfunction

endlibrary
27
МрачныйВорон, Когда добавляю "if GetLocalPlayer() == p then" вставлю туда фреймы они перестают показываться.
Ну тогда не знаю. Пробуй всякое
Уверен, что нужно это
call BlzLoadTOCFile("war3mapImported\\tocs2.toc")
внутрь блока if GetLocalPlayer() == p then пихать? Попробуй вывести его. Оставь остальное

jasonrus96, эту функцию создают и вызывают один раз при инициализации или загрузке карты. Мб код оптимизировать?
9
МрачныйВорон, Создание TOC я туда не вставлял как я указал выше работает у всех игроков.
 set Key = 0.30
    set Key2 = 0.40
    
    
    call BlzLoadTOCFile("war3mapImported\\tocs2.toc")
    
    if GetLocalPlayer() == p then
    
    set KeyboxD = BlzCreateSimpleFrame("KeyboxS", gameUIB, 0)
    call BlzFrameSetAbsPoint(KeyboxD, FRAMEPOINT_CENTER, Key2, Key)
    
    endif
Делаю вот так и все....
27
jasonrus96, можно конечно вставить туда измененную строку
local string s =""
if GetLocalPlayer() == p then
  s= "war3mapImported\\tocs2.toc"
endif
call BlzLoadTOCFile(s)
Но лучше не рисковать, мб и такой вариант тоже не пройдет. Или десинхи будут. ладно, тема исчерпана?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.