MATRITSA, меня больше прикалывает кстати что ты на сайте 7 лет и за 7 лет грамотность не апнулась ни на 1 уровень, до сих пор варны получаешь. Скажи, это твой стиль письма или как?)
Не в обиду, но, нифига же не понятно что пишешь
quq_CCCP, писал с телефона, поэтому может звучать запутанно.
Но что я имею ввиду:
Общий таймер, две локалки(pl - player, num - integer) срабатываемый каждую 0.1 сек, в котором действие loop на проверку GetLocalPlayer() == Player(a).
Внутри этой проверки проверка на нажатие, проверка на кнопку.
Начальные значения: num - 0, player - Player(PLAYER_NEUTRAL_AGRESSIVE).
Если нажата кнопка номер 1, тогда
set num = 1
И так как кнопка нажата
set pl = Player(a).
и так в конце endloop. Далее, идет уже проверка.
if ( num == 1 ) then
Отправить сообщение(общее действие) pl 1 сообщение под номером 1
quq_CCCP, а можно ли изменять локальную переменную локально, интересно, т.е. провести луп, если игрок нажал на кнопку вбить в локальную переменную что игрок который нажал на кнопку равен 1 условно. Начальное значение игрока будет нейтральный агрессор. А потом после проверки, сделать действие. У всех оно сработает, просто локал игрок который нажал кнопку его получит, код сработает на него. А у всех остальных код сработает точно также, такие же переменные, но значение вывода текста игроку будет равно нейтральному агрессору.
quq_CCCP, хм, иначе говоря, как думаешь, так будет работать? Сейчас попробовал превратить в триггер с действием "Каждую 0.1 секунду". GetLocalPlayer используется в цикле, (loop 10 раз, где Х это номер игрока)
Господи спаси
function Trig_ClickEvent_Actions takes nothing returns nothing
local integer pn = GetConvertedPlayerId(pl)
local force pf = GetForceOfPlayer(pl)
local player pl
local integer p = 0
local integer a = 1
local integer b = 1
local integer frame
loop
exitwhen p > 10
if ( GetLocalPlayer() == Player(p) ) then
set pl = Player(p)
set pn = p+1
set pf = GetForceOfPlayer(pl)
set frame = FindCLayerUnderCursor()
if IsKeyPressed( 0x01 ) then // проверяем нажата ли ЛЕВАЯ клавиша мыши в данный момент, если нужна правая то 0x02
if LMBTap then // проверяем нажимали ли ранее (Check ведь каждые 0.1 секунду происхjlbn)
set LMBTap = false //Если нет, говорим что нажимаем
set bj_lastClickedFrame = frame // записываем последний фрейм что нажали
if bj_lastClickedFrame == HeroFunct then // проверяем кнопка ли фрейм
call ClearTextMessages()
call SetFrameSize( HeroButton, 0.027, 0.032 ) // Если да то уменьшаем (Типо анимация)
call DisplayTextToForce(GetForceOfPlayer(pl),GetAbilityBaseTip(abi_hero_p[int_player_hero[pn]],1)+"|n"+GetAbilityBaseUbertip(abi_hero_p[int_player_hero[pn]],1))
endif
if bj_lastClickedFrame == FactFunct then // проверяем кнопка ли фрейм
call ClearTextMessages()
call SetFrameSize( FactionButton, 0.027, 0.032 ) // Если да то уменьшаем (Типо анимация)
call DisplayTextToForce(GetForceOfPlayer(pl),GetAbilityBaseTip(abi_fac[UI_FactionID[pn]],1)+"|n"+GetAbilityBaseUbertip(abi_fac[UI_FactionID[pn]],1))
endif
if bj_lastClickedFrame == B3Funct then // проверяем кнопка ли фрейм
call ClearTextMessages()
call SetFrameSize( Button3, 0.027, 0.032 ) // Если да то уменьшаем (Типо анимация)
loop
exitwhen a > 4
call DisplayTimedTextToForce(pf,45.0,"|cffffcc00Задание номер:|r "+I2S(a))
call DisplayTimedTextToForce(pf,45.0,QuestText[1]+QuestName[1][a]+QuestText[2]+I2S(IntCrit[1][a])+QuestText[3]+RewardName[1][a])
if ( QuestCheck[1][a] == false ) then
call DisplayTimedTextToForce(pf,45.0,"|c00FF0000Не выполнен|r")
else
call DisplayTimedTextToForce(pf,45.0,"|c0000FF00Выполнен|r")
endif
set a = a + 1
endloop
endif
if bj_lastClickedFrame == B4Funct then // проверяем кнопка ли фрейм
call ClearTextMessages()
call SetFrameSize( Button4, 0.027, 0.032 ) // Если да то уменьшаем (Типо анимация)
set a = 5
loop
exitwhen a > 8
if ( Quest[2][b] == 3 ) then
call DisplayTimedTextToForce(pf,45.0,"|cffffcc00Задание номер:|r "+I2S(a))
call DisplayTimedTextToForce(pf,45.0,QuestText[1]+QuestName[2][b]+QuestText[2]+I2S(IntCrit[2][b])+QuestText[3]+RewardName[2][b])
endif
if ( Quest[2][b] == 4 ) then
call DisplayTimedTextToForce(pf,45.0,"|cffffcc00Задание номер:|r "+I2S(a))
call DisplayTimedTextToForce(pf,45.0,QuestText[4]+QuestName[2][b]+QuestText[5]+I2S(IntCrit[2][b])+QuestText[3]+RewardName[2][b])
endif
if ( Quest[2][b] == 5 ) then
call DisplayTimedTextToForce(pf,45.0,"|cffffcc00Задание номер:|r "+I2S(a))
call DisplayTimedTextToForce(pf,45.0,QuestText[1]+QuestName[2][b]+QuestText[2]+I2S(IntCrit[2][b])+QuestText[3]+RewardName[2][b])
endif
if ( QuestCheck[2][b] == false ) then
call DisplayTimedTextToForce(pf,45.0,"|c00FF0000Не выполнен|r")
else
call DisplayTimedTextToForce(pf,45.0,"|c0000FF00Выполнен|r")
endif
set b = b + 1
set a = a + 1
endloop
endif
if bj_lastClickedFrame == B5Funct then // проверяем кнопка ли фрейм
call ClearTextMessages()
call SetFrameSize( Button5, 0.027, 0.032 ) // Если да то уменьшаем (Типо анимация)
set a = 9
loop
exitwhen a > 11
if ( Quest[3][b] == 6 ) then
call DisplayTimedTextToForce(pf,45.0,"|cffffcc00Задание номер:|r "+I2S(a))
call DisplayTimedTextToForce(pf,45.0,QuestText[7]+QuestName[3][b]+QuestText[8]+RewardName[3][b])
endif
if ( Quest[3][b] == 7 ) then
call DisplayTimedTextToForce(pf,45.0,"|cffffcc00Задание номер:|r "+I2S(a))
call DisplayTimedTextToForce(pf,45.0,QuestText[1]+QuestName[3][b]+QuestText[2]+I2S(IntCrit[3][b])+QuestText[3]+RewardName[3][b])
endif
if ( QuestCheck[3][b] == false ) then
call DisplayTimedTextToForce(pf,45.0,"|c00FF0000Не выполнен|r")
else
call DisplayTimedTextToForce(pf,45.0,"|c0000FF00Выполнен|r")
endif
set b = b + 1
set a = a + 1
endloop
endif
if bj_lastClickedFrame == B6Funct then // проверяем кнопка ли фрейм
call ClearTextMessages()
call SetFrameSize( Button6, 0.027, 0.032 ) // Если да то уменьшаем (Типо анимация)
set a = 0
call DisplayTextToForce(pf,"Активированные |c00E4201Bхаосы|r")
loop
exitwhen a > ChaosMax
if ( ChaosBOOL[a] == true ) then
call DisplayTextToForce(pf,ChaosNAME[a])
call DisplayTextToForce(pf,ChaosDISC[a])
endif
set a = a + 1
endloop
endif
endif
else
set LMBTap = true //говорим что отпустили
if bj_lastClickedFrame == HeroFunct then //если последний нажатый фрейм кнопка
set bj_lastClickedFrame = 0 //стираем из переменой последний фрейм
call SetFrameSize( HeroButton, 0.029, 0.034 ) // восстанавливаем размер
endif
if bj_lastClickedFrame == FactFunct then //если последний нажатый фрейм кнопка
set bj_lastClickedFrame = 0 //стираем из переменой последний фрейм
call SetFrameSize( FactionButton, 0.029, 0.034 ) // восстанавливаем размер
endif
if bj_lastClickedFrame == B3Funct then //если последний нажатый фрейм кнопка
set bj_lastClickedFrame = 0 //стираем из переменой последний фрейм
call SetFrameSize( Button3, 0.029, 0.034 ) // восстанавливаем размер
endif
if bj_lastClickedFrame == B4Funct then //если последний нажатый фрейм кнопка
set bj_lastClickedFrame = 0 //стираем из переменой последний фрейм
call SetFrameSize( Button4, 0.029, 0.034 ) // восстанавливаем размер
endif
if bj_lastClickedFrame == B5Funct then //если последний нажатый фрейм кнопка
set bj_lastClickedFrame = 0 //стираем из переменой последний фрейм
call SetFrameSize( Button5, 0.029, 0.034 ) // восстанавливаем размер
endif
if bj_lastClickedFrame == B6Funct then //если последний нажатый фрейм кнопка
set bj_lastClickedFrame = 0 //стираем из переменой последний фрейм
call SetFrameSize( Button6, 0.029, 0.034 ) // восстанавливаем размер
endif
endif
endif
set p = p + 1
endloop
endfunction
quq_CCCP, сам таймер создается вне-функции GetLocalPlayer() == Player(). Там лишь аргумент вместо true/false. Который, вроде как, должен работать(ибо с Мультибордом это работает, плюс некоторые источники пишут об этом как о решении проблемы). Пример xgm.guru/p/wc3/Lokalnyy-taymer-Cbw
жесть у тебя там, конечно, глаза вырвать. Но тебе повезло, я уже потерял их в своем коде.
В общем, у тебя событие происходит не один раз, а столько же раз, сколько юнитов в твоей группе ОтратАЛЛ.
Проверка на тип юнита происходит для каждого юнита, который в группе.
Но так как проверка не проходит, следует ELSE. Иначе говоря - иначе.
И вот у тебя 6 раз создается 1 юнит функцией, надеюсь ты понял.
Я бы объяснил подробнее но это пиздец у тебя там)
В самом начале строки если что у тебя ВЫБРАТЬ КАЖДОГО ЮНИТА и за каждого юнита в области сделать действие. И внутри этой функции происходит всё-всё, столько раз, сколько твоих юнитов.
но триггер реально 3.14здец, хотя может бывало и хуже?
Напоминаем вам про наш Discord-сервер
Там ведется вся жизнь и активность связанная с картой.
А также, о новой версии сразу же можно узнать именно оттуда.
А теперь, о нововведениях за 8 версий.
Мы решили продолжить разработку HoW с новой цепочки версий, а именно Hero of Warcraft 2 сезон.
В ней мы перерабатываем силы героев почти всех героев, меняем полностью артефакты и многие элементы игры, позволяя снова окунуться в неизвестность мира рандома, пусть и с теми же персонажами, но уже с полностью новыми силами героя и артефактами, которые используются для создания билдов.
Исправление бага связанный с 4 неотображаемым слотом эффекта способности(замеченный в одиночной игре) и упрощение интерфейса для новичков(путем создания текстовых подсказок над зданиями).
Люди с HoWTeam против того, чтобы закрывать Hero of Warcraft, поэтому мы выдвинули новую версию. Немного поговорили о будущем HoW и даже решили, куда двигаться. С этого момента HoW навсегда закрепляет название Hero of Warcraft, без DLC Мы же двигаемся вместе с командой и согласовываем нововведения и изменения +-
Выключена функция выпадения вещей после смерти
Изменены немного механики боссов
Временно удалена [Книга лича].
Понижены шансы на выпадение предметов вдвое.
Нововведения Способности - рунный камень был удален, создание способностей теперь происходит через способность у героя. Стартовый ролик - был изменён. ИИ - в игре теперь действует эффект дождя. Карта - по карте было разбросано 30+ коробок со случайным содержимым. Карта - теперь подсвечиваются боссы Боссы - теперь призывают прислужников и имеют уникальную способность. ИИ - В заданиях выведена краткая информация об игре.
Исправления Способности - исправлен баг с созданием способностей. Способности - призываемые существа которые должны были быть временными не были временными, теперь это исправлено.
» WarCraft 3 / У меня магия происходит в тригерах
Не в обиду, но, нифига же не понятно что пишешь
» WarCraft 3 / Фреймы в мультиплеере(десинхронизация)
» WarCraft 3 / Фреймы в мультиплеере(десинхронизация)
» WarCraft 3 / Фреймы в мультиплеере(десинхронизация)
Но что я имею ввиду:
Общий таймер, две локалки(pl - player, num - integer) срабатываемый каждую 0.1 сек, в котором действие loop на проверку GetLocalPlayer() == Player(a).
Внутри этой проверки проверка на нажатие, проверка на кнопку.
Начальные значения: num - 0, player - Player(PLAYER_NEUTRAL_AGRESSIVE).
set num = 1
И так как кнопка нажата
set pl = Player(a).
if ( num == 1 ) then
Отправить сообщение(общее действие) pl 1 сообщение под номером 1
» WarCraft 3 / Фреймы в мультиплеере(десинхронизация)
Ред. Netherstorm
» WarCraft 3 / Фреймы в мультиплеере(десинхронизация)
» WarCraft 3 / Фреймы в мультиплеере(десинхронизация)
» WarCraft 3 / Фреймы в мультиплеере(десинхронизация)
Ред. Netherstorm
» WarCraft 3 / Фреймы в мультиплеере(десинхронизация)
Попробовал создать таймер под каждого игрока(массив), не сработало.
» WarCraft 3 / У меня магия происходит в тригерах
Проверка на тип юнита происходит для каждого юнита, который в группе.
Но так как проверка не проходит, следует ELSE. Иначе говоря - иначе.
И вот у тебя 6 раз создается 1 юнит функцией, надеюсь ты понял.
Я бы объяснил подробнее но это пиздец у тебя там)
Ред. Netherstorm
» Королевство Нубдерон / Конец мессенджеру ICQ
Ред. Netherstorm
» Королевство Нубдерон / Конец мессенджеру ICQ
Та самая аська же все равно ещё давно умерла
» Hero of Warcraft [RPGArena] (4 сезон) [Заморожен] / Hero of Warcraft [RPGArena] (4 сезон) [Заморожен]
Прокрутить к ресурсу
Hero of Warcraft 2 5.5
Там ведется вся жизнь и активность связанная с картой.
А также, о новой версии сразу же можно узнать именно оттуда.
А теперь, о нововведениях за 8 версий.
4.8
4.9+5.0
5.1
5.2
5.3
5.4
5.5
Безголовый
» WarCraft 3 / Наги - Пятая раса для режима Melee
» Hero of Warcraft [RPGArena] (4 сезон) [Заморожен] / Hero of Warcraft [RPGArena] (4 сезон) [Заморожен]
Прокрутить к ресурсу
Hero of Warcraft 2 4.7
В ней мы перерабатываем силы героев почти всех героев, меняем полностью артефакты и многие элементы игры, позволяя снова окунуться в неизвестность мира рандома, пусть и с теми же персонажами, но уже с полностью новыми силами героя и артефактами, которые используются для создания билдов.
» Hero of Warcraft [RPGArena] (4 сезон) [Заморожен] / Hero of Warcraft [RPGArena] (4 сезон) [Заморожен]
» SpellLAB | II редакция | Создай свои спеллы / Новая карта SpellLAB [Warcraft 3]
Прокрутить к ресурсу
0.6
» Hero of Warcraft [RPGArena] (4 сезон) [Заморожен] / Hero of Warcraft [RPGArena] (4 сезон) [Заморожен]
» Hero of Warcraft [RPGArena] (4 сезон) [Заморожен] / Hero of Warcraft [RPGArena] (4 сезон) [Заморожен]
Прокрутить к ресурсу
Hero of Warcraft 4.6
С этого момента HoW навсегда закрепляет название Hero of Warcraft, без DLC
Мы же двигаемся вместе с командой и согласовываем нововведения и изменения +-
» Hero of Warcraft [RPGArena] (4 сезон) [Заморожен] / Hero of Warcraft [RPGArena] (4 сезон) [Заморожен]
» SpellLAB | II редакция | Создай свои спеллы / Новая карта SpellLAB [Warcraft 3]
Прокрутить к ресурсу
0.5
Изменены немного механики боссов
Временно удалена [Книга лича].
Понижены шансы на выпадение предметов вдвое.
» SpellLAB | II редакция | Создай свои спеллы / Новая карта SpellLAB [Warcraft 3]
» SpellLAB | II редакция | Создай свои спеллы / Новая карта SpellLAB [Warcraft 3]
Прокрутить к ресурсу
SpellLAB 0.4BETA
Способности - рунный камень был удален, создание способностей теперь происходит через способность у героя.
Стартовый ролик - был изменён.
ИИ - в игре теперь действует эффект дождя.
Карта - по карте было разбросано 30+ коробок со случайным содержимым.
Карта - теперь подсвечиваются боссы
Боссы - теперь призывают прислужников и имеют уникальную способность.
ИИ - В заданиях выведена краткая информация об игре.
Способности - исправлен баг с созданием способностей.
Способности - призываемые существа которые должны были быть временными не были временными, теперь это исправлено.