Можно как то поменять этот год? Из него я понял, что он воскрешает в стартовой локации юнита, но мне надо, что бы игроки 1-6 в одной областе и 7-12 в другой... Можно так сделать с этим кодом?
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
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) local real x = 0 local real y = 0
if GetPlayerId(p) <= 5 then set x = GetRectCenterX(udg_rect1)\\ udg_rect1 облость для первой команды set y = GetRectCenterY(udg_rect1) else set x = GetRectCenterX(udg_rect2)\\ udg_rect2 облость для второй команды set y = GetRectCenterY(udg_rect2) endif
//Воскрешает героя в стартовой локации,можно менять call ReviveHero(u,x,y,true )
if GetLocalPlayer()==GetOwningPlayer(u)then call PanCameraTo(GetUnitX(u),GetUnitY(u)) endif
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
держи
И чтоб ты знал, я добавил только это:
Code
local real x = 0 local real y = 0
if GetPlayerId(p) <= 5 then set x = GetRectCenterX(udg_rect1)\\ udg_rect1 облость для первой команды set y = GetRectCenterY(udg_rect1) else set x = GetRectCenterX(udg_rect2)\\ udg_rect2 облость для второй команды set y = GetRectCenterY(udg_rect2) endif
Ползут 2 пирожка. Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D
set x = GetRectCenterX(udg_rect1)\\ udg_rect1 облость для первой команды Заменил на область, но что в этом варианте, что с областью, выходит ошибка "Отсутствует название"
Хм, я из одной статейке понял, что переменные не надо создавать в джассе... Спс, буду знать =) Теперь пишет "Отсутствует знак " и там ) скобка и сверху по 1 черточке с каждой стороны... Не помню как такую поставить...
Добавлено (26.07.11, 10:09) --------------------------------------------- ')' вот такой вот, в строке set x = GetRectCenterX(udg_rect1)\\ udg_rect1 облость для первой команды
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) local real x = 0 local real y = 0
if GetPlayerId(p) <= 5 then set x = GetRectCenterX(udg_rect1) //udg_rect1 облость для первой команды set y = GetRectCenterY(udg_rect1) else set x = GetRectCenterX(udg_rect2) // udg_rect2 облость для второй команды set y = GetRectCenterY(udg_rect2) endif
//Воскрешает героя в стартовой локации,можно менять call ReviveHero(u,x,y,true )
if GetLocalPlayer()==GetOwningPlayer(u)then call PanCameraTo(GetUnitX(u),GetUnitY(u)) endif
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
fixed
Quote (NoExist)
что переменные не надо создавать в джассе...
O_Oбред сумашедшего... дай мне линк на эту статью
Ползут 2 пирожка. Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D