Сейчас 10:47:05 Вторник, 7 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Респ Героев (Респ Героев)
Респ Героев
Mirage09Дата: Четверг, 23 Декабря 2010, 13:58:26 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
Я чуток шарю в тригерах
Но не как не могу понять вот у меня есть герой он умирает и возраждаеться чере 15 сек и окно есть и таймер всо есть
Но если умирает 2 герой в тоже время когда умер 1 а у 1 гера осталось 2 сек и таймер обратно заного и
Причем возраждаються только 1 гер
Я пытался Зделть какбы 3 триггера и чтоб у каждого свой таймер типо

Таймер 1
события ------
Условия игрок 1 красный
Действия -------

Таймер 2
события ------
Условия игрок 2 миний
Действия -------

Таймер 3
события ------
Условия игрок 3 сине зелёный
Действия -------

Не помогает что делать подскажите) :'(

 

MexazДата: Четверг, 23 Декабря 2010, 14:00:41 | Сообщение # 2
7 уровень
Группа: Проверенные
Сообщений: 432
Награды: 0
Блокировки:
Mirage09, Таймер делай массивом <_<

影私はらが世界の鵜の中で最も重要な曲であることを意味するものではありません

(Translate It!)
 

Mirage09Дата: Четверг, 23 Декабря 2010, 14:01:48 | Сообщение # 3
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
Сейчас попробую)
 

Mirage09Дата: Четверг, 23 Декабря 2010, 14:11:28 | Сообщение # 4
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
Тоже Самое
 

Mirage09Дата: Четверг, 23 Декабря 2010, 14:17:12 | Сообщение # 5
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
Я если чесно не умею работать с массив я новичок в WE
Ты имел в виде в переменной поствить массив или как если ни так то лучше обьясни сразу а тоя сейчас через мин 15 ухожу
 

Mirage09Дата: Четверг, 23 Декабря 2010, 14:22:08 | Сообщение # 6
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
Ладно вечером напиши плиз))Прочто рпг без етого не получиться(
 

DreiiДата: Четверг, 23 Декабря 2010, 14:23:36 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Mirage09, Ужасно, могу дать код, респа в старотовой локации таймеры 12 игркоов нет лаг



Сообщение отредактировал Dreii - Четверг, 23 Декабря 2010, 14:23:46
 

Mirage09Дата: Четверг, 23 Декабря 2010, 14:24:14 | Сообщение # 8
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
Давай токо обыстрее)
 

DreiiДата: Четверг, 23 Декабря 2010, 14:41:57 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Mirage09, если быстрее то вот
Code
function Trig_Revive_Hero_Conditions takes nothing returns boolean
      if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
          return false
      endif
      return true
endfunction

function Trig_Revive_Hero_Actions takes nothing returns nothing
      local timerdialog WINDOW
      local integer HEROWAIT
      local timer OURTIMER
      local unit OURHERO
      set OURHERO = GetDyingUnit()
      set HEROWAIT = ( GetHeroLevel(OURHERO) * 5 )
      set OURTIMER = CreateTimer()
      call StartTimerBJ( OURTIMER, false, ( I2R(HEROWAIT) ))
      call CreateTimerDialogBJ( OURTIMER, GetPlayerName(GetOwningPlayer(OURHERO)) )
      set WINDOW =  bj_lastCreatedTimerDialog
      call TimerDialogDisplayForPlayerBJ( true, WINDOW, GetOwningPlayer(OURHERO) )
      call PolledWait( HEROWAIT )
      call ReviveHeroLoc(OURHERO, GetPlayerStartLocationLoc(GetOwningPlayer(OURHERO)), true )
      call PanCameraToTimedLocForPlayer( GetOwningPlayer(OURHERO), GetUnitLoc(OURHERO), 0.60 )
      call DestroyTimerDialog(WINDOW)
endfunction

//===========================================================================
function InitTrig_Revive_Hero takes nothing returns nothing
      set gg_trg_Revive_Hero = CreateTrigger(  )
      local integer index=0
      loop
          call TriggerRegisterPlayerUnitEvent( gg_trg_Revive_Hero, Player(index), EVENT_PLAYER_UNIT_DEATH , null)

          set index = index + 1
          exitwhen index == bj_MAX_PLAYER_SLOTS
      endloop
      call TriggerAddCondition( gg_trg_Revive_Hero, Condition( function Trig_Revive_Hero_Conditions ) )
      call TriggerAddAction( gg_trg_Revive_Hero, function Trig_Revive_Hero_Actions )
endfunction

Триггер назови Revive Hero




Сообщение отредактировал Dreii - Четверг, 23 Декабря 2010, 14:42:19
 

IlgardIoДата: Четверг, 23 Декабря 2010, 14:57:25 | Сообщение # 10
3 уровень
Группа: Пользователи
Сообщений: 57
Награды: 0
Репутация: 11
Блокировки:
Dreii,
Палево.
Mirage09,
У тебя гером будут все возрождатся в одном месте? Или по тимам?
1,2,3,4.... игроки в одном, а 5,6,7,8... в другом?
 

DreiiДата: Четверг, 23 Декабря 2010, 14:59:27 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
IlgardIo, ???я торопилсО

 

SirNikolasДата: Четверг, 23 Декабря 2010, 15:01:16 | Сообщение # 12
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Code
globals
       constant hashtable Hash = InitHashtable()
endglobals

function Trig_Revive_Hero_Timer takes nothing returns nothing
       local timer t = GetExpiredTimer()
       local integer ID = GetHandleId(t)
       local real x = LoadReal(Hash, ID, 1)
       local real y = LoadReal(Hash, ID, 2)
       call ReviveHero(LoadUnitHandle(Hash, ID, 0), x, y, true)
       if GetLocalPlayer() == LoadPlayerHandle(Hash, ID, 3) then
           call PanCameraToTimed(x, y, .6)
       endif
       call DestroyTimerDialog(LoadTimerDialogHandle(Hash, ID, 4))
       call FlushChildHashtable(Hash, ID)
       call DestroyTimer(t)
       set t = null
endfunction

function Trig_Revive_Hero_Actions takes nothing returns nothing
       local unit u = GetTriggerUnit()
       local timer t
       local timerdialog td
       local player p
       local integer ID
       if IsUnitType(u, UNIT_TYPE_HERO) then
           set p = GetOwningPlayer(u)
           set t = CreateTimer()
           set ID = GetHandleId(t)
           call TimerStart(t, I2R(GetHeroLevel(u) * 5), false, function Trig_Revive_Hero_Timer)
           set td = CreateTimerDialog(t)
           call TimerDialogSetTitle(td, GetPlayerName(p))
           if GetLocalPlayer() == p then
               call TimerDialogDisplay(td, true)
           endif
           call SaveUnitHandle(Hash, ID, 0, u)
           call SaveReal(Hash, ID, 1, GetStartLocationX(GetPlayerStartLocation(p)))
           call SaveReal(Hash, ID, 2, GetStartLocationY(GetPlayerStartLocation(p)))
           call SavePlayerHandle(Hash, ID, 3, p)
           call SaveTimerDialogHandle(Hash, ID, 4, td)
           set t = null
           set td = null
           set p = null
       endif
       set u = null
endfunction    

//===========================================================================    
function InitTrig_Revive_Hero takes nothing returns nothing
       local trigger trig = CreateTrigger()
       local integer index = 0
       loop
           call TriggerRegisterPlayerUnitEvent(trig, Player(index), EVENT_PLAYER_UNIT_DEATH , null)
           exitwhen index == 15
           set index = index + 1
       endloop
       call TriggerAddAction(trig, function Trig_Revive_Hero_Actions)
       set trig = null
endfunction
IlgardIo, вот это не палево.




Сообщение отредактировал SirNikolas - Четверг, 23 Декабря 2010, 15:14:41
 

IlgardIoДата: Четверг, 23 Декабря 2010, 15:06:55 | Сообщение # 13
3 уровень
Группа: Пользователи
Сообщений: 57
Награды: 0
Репутация: 11
Блокировки:
SirNikolas,
Нужен JNPG для твоего кода.
Mirage09, врятли будет юзать его.
 

SirNikolasДата: Четверг, 23 Декабря 2010, 15:11:05 | Сообщение # 14
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Тогда ему нужно удалить раздел globals (сверху), создать переменную Hash класса Хэш-таблица, в самый низ триггера, после "local integer index = 0", дописать "set udg_Hash = InitHashtable()" и везде заменить "Hash" на "udg_Hash".



Сообщение отредактировал SirNikolas - Четверг, 23 Декабря 2010, 15:20:05
 

DreiiДата: Четверг, 23 Декабря 2010, 15:12:40 | Сообщение # 15
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
IlgardIo, SirNikolas, Человек попросил быстро я быстро конвертирвоал в текст и кинул ему)))

 

SirNikolasДата: Четверг, 23 Декабря 2010, 15:15:16 | Сообщение # 16
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Dreii, если так, то проще было написать несколько строк Custom script'ом.

 

Mirage09Дата: Четверг, 23 Декабря 2010, 20:40:47 | Сообщение # 17
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
Мне нужно 1 команда чтоб была и всо синий красны и голубой чтоб возрождались в одном месте был таймер на 25 сек
и всо)

Добавлено (23-12-2010, 20:40)
---------------------------------------------
а да кстати можно не лучше мапу создайте и ссылку сюды ) если не сложно

 

IlgardIoДата: Четверг, 23 Декабря 2010, 21:34:17 | Сообщение # 18
3 уровень
Группа: Пользователи
Сообщений: 57
Награды: 0
Репутация: 11
Блокировки:
Mirage09,
Тебе GUI или Jass?
И какие игроки за 1 тиму,какие за 2.
 

Mirage09Дата: Четверг, 23 Декабря 2010, 21:39:40 | Сообщение # 19
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
Уже не надо))) я нашол Скриптом )))
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Респ Героев (Респ Героев)
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz