Сейчас 23:33:53 Пятница, 22 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] GUI -> MUI
ExtrematorДата: Четверг, 17 Ноября 2011, 01:56:20 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
вот код...
то бага нету, то баг есть...
вопрос, почему баг появляется?

p.s. суть бага в том что ИНОГДА один даммик остаётся висеть и не используется триггером

Code
function Trig_cast_Func001C takes nothing returns boolean
      if ( not ( GetSpellAbilityId() == 'A000' ) ) then
          return false
      endif
      return true
endfunction

function Trig_cast_Actions takes nothing returns nothing
      if ( Trig_cast_Func001C() ) then
          set udg_all_point[0] = GetUnitLoc(GetTriggerUnit())
          set udg_Nm_MUI = ( udg_Nm_MUI + 1 )
          set udg_Nm_hero[udg_Nm_MUI] = GetTriggerUnit()
          call CreateNUnitsAtLoc( 1, 'u001', Player(PLAYER_NEUTRAL_PASSIVE), udg_all_point[0], bj_UNIT_FACING )
          set udg_Nm_dummy[udg_Nm_MUI] = GetLastCreatedUnit()
          set udg_Nm_time[udg_Nm_MUI] = GetRandomReal(2.00, 10.00)
          call SetUnitVertexColorBJ( GetLastCreatedUnit(), 100, 100, 100, 50.00 )
          call EnableTrigger( gg_trg_time )
          call RemoveLocation(udg_all_point[0])
      else
      endif
endfunction

//===========================================================================
function InitTrig_cast takes nothing returns nothing
      set gg_trg_cast = CreateTrigger(  )
      call TriggerRegisterAnyUnitEventBJ( gg_trg_cast, EVENT_PLAYER_UNIT_SPELL_EFFECT )
      call TriggerAddAction( gg_trg_cast, function Trig_cast_Actions )
endfunction
Code
function Trig_time_Func001Func004C takes nothing returns boolean
      if ( not ( udg_Nm_time[GetForLoopIndexA()] < 0.03 ) ) then
          return false
      endif
      return true
endfunction

function Trig_time_Func002C takes nothing returns boolean
      if ( not ( udg_Nm_MUI == 0 ) ) then
          return false
      endif
      return true
endfunction

function Trig_time_Actions takes nothing returns nothing
      set bj_forLoopAIndex = 1
      set bj_forLoopAIndexEnd = udg_Nm_MUI
      loop
          exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
          set udg_all_point[0] = GetUnitLoc(udg_Nm_hero[GetForLoopIndexA()])
          call SetUnitPositionLoc( udg_Nm_dummy[GetForLoopIndexA()], udg_all_point[0] )
          set udg_Nm_time[GetForLoopIndexA()] = ( udg_Nm_time[GetForLoopIndexA()] - 0.03 )
          if ( Trig_time_Func001Func004C() ) then
              call KillUnit( udg_Nm_dummy[GetForLoopIndexA()] )
              set udg_Nm_hero[GetForLoopIndexA()] = udg_Nm_hero[udg_Nm_MUI]
              set udg_Nm_dummy[GetForLoopIndexA()] = udg_Nm_dummy[udg_Nm_MUI]
              set udg_Nm_time[GetForLoopIndexA()] = udg_Nm_time[udg_Nm_MUI]
              set udg_Nm_MUI = ( udg_Nm_MUI - 1 )
          else
          endif
          call RemoveLocation(udg_all_point[0])
          set bj_forLoopAIndex = bj_forLoopAIndex + 1
      endloop
      if ( Trig_time_Func002C() ) then
          call DisableTrigger( GetTriggeringTrigger() )
      else
      endif
endfunction

//===========================================================================
function InitTrig_time takes nothing returns nothing
      set gg_trg_time = CreateTrigger(  )
      call DisableTrigger( gg_trg_time )
      call TriggerRegisterTimerEventPeriodic( gg_trg_time, 0.03 )
      call TriggerAddAction( gg_trg_time, function Trig_time_Actions )
endfunction

Добавлено (17 Ноябрь 2011, 01:53:00)
---------------------------------------------
да, это конверт из гуи в текст...

Добавлено (17 Ноябрь 2011, 01:56:20)
---------------------------------------------
вот триггеры с гуи виде





Сообщение отредактировал Extremator - Четверг, 17 Ноября 2011, 01:52:37
 

FkoFFДата: Четверг, 17 Ноября 2011, 03:21:47 | Сообщение # 2
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
MUI GUI? зачем эти танцы с бубнами? Используй джасс уже.

 

ExtrematorДата: Четверг, 17 Ноября 2011, 03:23:30 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (FkoFF)
MUI GUI? зачем эти танцы с бубнами? Используй джасс уже.

нет... ты мне скажи где тут ошибка! :D
 

Ty3uKДата: Четверг, 17 Ноября 2011, 08:06:49 | Сообщение # 4
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ошибка в том, что ты используешь перевод гуи в текст. Забудь. Или кодь на гуи (бе...) или учи жасс. Полностью солидарен с фкоффом

Добавлено (17 Ноябрь 2011, 08:06:49)
---------------------------------------------
Вот интересный вопрос- зачем ты убиваешь дамми? Его надо удалять, а не убивать


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Четверг, 17 Ноября 2011, 08:42:17 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
SetTimedLife() после самого создания никогда не подводит(ну или както так пишется)

 

Ty3uKДата: Четверг, 17 Ноября 2011, 08:52:48 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Таймер истечения на .76 для даммикаста надо ставить

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ExtrematorДата: Четверг, 17 Ноября 2011, 13:51:02 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Ty3uK)
Ошибка в том, что ты используешь перевод гуи в текст.

я не использую конверт гуи... я работаю НА гуи...

Quote (Ty3uK)
Вот интересный вопрос- зачем ты убиваешь дамми? Его надо удалять, а не убивать

что бы дамми воспроизвёл анимацию смерти (+звук)

Quote (Hexing)
SetTimedLife() после самого создания никогда не подводит(ну или както так пишется)

да можно... но у меня тоже самое в ульте лича (да да как в доте), если шар будет на таймере то он просто умереть может пока будет прыгать по жертвам...

Quote (Ty3uK)
Таймер истечения на .76 для даммикаста надо ставить

не понял... перефразируй
 

Ty3uKДата: Четверг, 17 Ноября 2011, 13:53:11 | Сообщение # 8
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Extremator, чего не понять? таймер истечения (UnitApplyTimedLife) надо ставить на .76, это оптимальный вариант на каст + исчез

Quote (Extremator)
я не использую конверт гуи... я работаю НА гуи...

это и печально


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Четверг, 17 Ноября 2011, 13:53:22
 

ExtrematorДата: Четверг, 17 Ноября 2011, 14:34:05 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Ty3uK)
таймер истечения (UnitApplyTimedLife) надо ставить на .76, это оптимальный вариант на каст + исчез

мне хватает и 0.4 сек
хотя...
можно создавать дамми - приказывать каст - и тут же удалять

Quote (Ty3uK)
это и печально

а по теме?

Quote (Extremator)
вопрос, почему баг появляется?


Сообщение отредактировал Extremator - Четверг, 17 Ноября 2011, 14:37:44
 

HexingДата: Четверг, 17 Ноября 2011, 16:53:25 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Ty3uK)
можно создавать дамми - приказывать каст - и тут же удалять

он неуспеет скаставать, тутже удалится
Quote (Extremator)
вопрос, почему баг появляется?

тебе нужно 8 триггеов time и массив из них, потомучто если ктото скастует, а потом через короткий промежуток времени скастует еще один, то для 1 все зависнит а второй отработает, вот и получится что один останется
у тебя кто бы не кастовал триггер один врубается - time, а вдруг в это время он уже работает?
варианты решения проблемы:
1) писать все на jass используя хеш
2) замутить массив триггеров и указывать в поле индексномер игрока владеющего кастующим юнитом


 

Ty3uKДата: Четверг, 17 Ноября 2011, 16:56:11 | Сообщение # 11
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Кого ты цитируешь? Я такого не говорил

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Четверг, 17 Ноября 2011, 17:23:59 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Ватсон, успокойся, это всё из
Quote
Сообщение # 9


 

DiabfallДата: Четверг, 17 Ноября 2011, 17:25:03 | Сообщение # 13
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
Quote (Extremator)
я не использую конверт гуи... я работаю НА гуи...

Научись хотя бы локалки использовать, и будет тебе счастье!
 

ExtrematorДата: Четверг, 17 Ноября 2011, 18:39:55 | Сообщение # 14
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Hexing)
он неуспеет скаставать, тутже удалится

мой даммик успевает ._.

Quote (Hexing)
у тебя кто бы не кастовал триггер один врубается - time,

я не запускаю триггер... а включаю его...

Quote (Diabfall)
Научись хотя бы локалки использовать, и будет тебе счастье!

умею... но чем лакалки из триггера cast помогут триггеру time ? )))

В общем вот сама карта... репл бага... и всё всё всё... XGM
 

HexingДата: Четверг, 17 Ноября 2011, 19:03:38 | Сообщение # 15
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
млин не тупи я тебе обьяснил что ты офаешь тайм когда другой может еще работать
это нихрена не MUI


 

Ty3uKДата: Четверг, 17 Ноября 2011, 20:25:47 | Сообщение # 16
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Нельзя локально запустить триггер, можно только запустить функу. У тебя таймер не функой, а триггером, соответственно это не муи (старт триггера != запуск таймера)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ExtrematorДата: Четверг, 17 Ноября 2011, 21:21:23 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Ty3uK)
запуск таймера

какого таймера? -_- у меня нету таймеров
 

Ty3uKДата: Четверг, 17 Ноября 2011, 21:33:10 | Сообщение # 18
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ох... Проехали... В этом и проблема, что таймеров нет. На запуске / остановке триггера муи сделать нельзя

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

OxygenDДата: Четверг, 17 Ноября 2011, 22:01:19 | Сообщение # 19
2 уровень
Группа: Проверенные
Сообщений: 25
Награды: 0
Репутация: 11
Блокировки:
Что за аццкий код ._.

Пою в душе на паскале.
 

HexingДата: Пятница, 18 Ноября 2011, 13:20:50 | Сообщение # 20
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Extremator, я про тайм = time = название триггера... как и сказал Ватсон тут триггером дело не обойдется
или замути 8 триггеров для каждого игрока(муи)
или используй локальную переменную-таймер для вызова функции и через хэшь смотри юнита


 

ExtrematorДата: Пятница, 18 Ноября 2011, 13:41:45 | Сообщение # 21
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Hexing)
или замути 8 триггеров для каждого игрока(муи)

зачем?
1 триггер
8 событий...
таймер истёк [1-8]
loop A 1-8
If - время таймера[А] = 0.00
то - все действия... запускаем таймер [A] на 10 сек и паузим...

...но я так делать не буду...

я уже нашёл вариант с уменьшение [A] в цикле... буду тестить как будет время
 

HexingДата: Пятница, 18 Ноября 2011, 13:49:20 | Сообщение # 22
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
good luck mr freeman

 

ExtrematorДата: Пятница, 18 Ноября 2011, 13:49:55 | Сообщение # 23
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
всё... я реши проблему... смещаем цикл на один сегмент назад и сново прокатываем по нему...

Сообщение отредактировал Extremator - Пятница, 18 Ноября 2011, 14:29:56
 

FatalBladeДата: Пятница, 25 Ноября 2011, 10:24:13 | Сообщение # 24
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (Hexing)
SetTimedLife()

Это как раз таки убивает дамми, не?


 

ExtrematorДата: Пятница, 25 Ноября 2011, 10:33:52 | Сообщение # 25
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (FatalBlade)
Это как раз таки убивает дамми, не?

если дамми не убивается в конце логичекой цепочки, значит цепочка выполняет не полностью ---> ошибка
если дать таймер даммику то это не уберёт баг, а всего лишь попытается скрыть его...
 

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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