Народ почему у меня перестали после оптимизации воскрешаться герои,использую систему воскрешения одно пользователя этого форума,ник забыл,но это не из за этого,проблема в том что после смерти героя,герой как бы исчезает пиктограмма с левой сверху пропадает и не известно в чем причина,пошастал в карте и даже предположений нету что случилось!
lawson, Да вроде,она еще на джассе написана! Я не знаю что случилось,оптимизовал карту и после этого такой паражняк пошел! Герои не воскрешаются,пиктограмма исчезает после смерти героя,как будто его и не было вообще!
//TESH.scrollpos=9 //TESH.alwaysfold=0 function Trig_Revive_Hero_Taimer takes nothing returns nothing local timer t=GetExpiredTimer() local integer ID=GetHandleId(t) local unit u=LoadUnitHandle(udg_Hash,ID,0) local player p=GetOwningPlayer(u) local timerdialog w=LoadTimerDialogHandle(udg_Hash,ID,2) //Воскрешает героя в стартовой локации,можно менять call ReviveHero(u,GetStartLocationX(GetPlayerStartLocation(p)),GetStartLocationY(GetPlayerStartLocation(p)),true ) if GetLocalPlayer()==GetOwningPlayer(u)then call PanCameraTo(GetUnitX(u),GetUnitY(u)) endif call PauseTimer(t) call DestroyTimer(t) call DestroyTimerDialog(w) call FlushChildHashtable(udg_Hash,ID) set t=null set u=null set p=null set w=null endfunction function Trig_Revive_Hero_Actions takes nothing returns nothing local timer t local integer ID local timerdialog w local unit u=GetTriggerUnit() if IsUnitType(u,UNIT_TYPE_HERO)==true then set t=CreateTimer() set ID=GetHandleId(t) set w=CreateTimerDialog(t) //Создает окно таймера в котором будет написанно имя игрока владельца умершего героя call TimerDialogSetTitle(w,GetPlayerName(GetOwningPlayer(u))) call TimerDialogDisplay(w,true) call SaveUnitHandle(udg_Hash,ID,0,u) call SaveTimerDialogHandle(udg_Hash,ID,2,w) //Запускает таймер,GetHeroLevel(u)*3. время через которое возродиться наш герой. call TimerStart(t,GetHeroLevel(u)*3.,true,function Trig_Revive_Hero_Taimer) set t=null set w=null endif set u=null endfunction //=========================================================================== function InitTrig_Revive_Hero takes nothing returns nothing local integer i=0 local trigger trig=CreateTrigger() loop call TriggerRegisterPlayerUnitEvent(trig,Player(i),EVENT_PLAYER_UNIT_DEATH,null) set i=i+1 exitwhen i==11 endloop call TriggerAddAction(trig,function Trig_Revive_Hero_Actions) set trig=null endfunction
Очень странно,до оптимизации он прекрасно без багов работал!
English, Триг в норме. Вот эти строчки сотри. if GetLocalPlayer()==GetOwningPlayer(u)then call PanCameraTo(GetUnitX(u),GetUnitY(u)) endif Не понимаю зачем он это сюда написал ведь юнит для которого таймер сработал и так будет юнитом для игрока.
И все чем я могу помочь по тригу, так как он в полном порядке. Эт уже возможно ты чтото или с другими тригами намутил или все что угодно изза чего триг этот не работает, но он в исправном состоянии. Какую ошику выдает при сохранении карты?
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Понедельник, 22 Августа 2011, 21:54:17
lawson, Я этот юнит удаляю,перестает работать,добавляю обратно все равно не работает,видимо где какой то подвох странно! Могу скинуть карту и назвать юнита без которого не работает респавн,вы его удалите и сами убедитесь!