Я сначала думал увидеть код, который поможет удобно создавать диалоги, потом думал что будут советы о том, ка не потеряться в куче диалогов желательно со сслыками на какой-то сервис упрощающий это действо. А так всю статью можно уместить в выражение:
можно пожалуйста картой закинуть хоть какой-то пример, буду стараться разобраться
Многим лень создавать с ноля карту, если хотите разобраться, то создайте новую карту, реализуйте там это заклинание и прикрепите к комментарию. И укажите патч ибо здравые люди переходят на lua в последнем патче.
Можно намного проще и без кривых вэйтов. Заводите integer переменную SECOND и каждую секунду прибавляете ей единицу. При создании юнита X в его Custom Value записываете текущее значение SECOND, а при смерти просто сверяете текущее значение SECOND со значением записанными в Custom Value. Если больше определённого значения то создаёте юнита Y, если ментьше, то юнита Z.
Очень заинтересовало! Удивительное соединение сеттинга нашего времени, в виде автомобилей и прочего, а так же легиона из Варкрафта! Будто это некое альтернативное видение мира Варкрафта, где они захватили уже весь Азерот и готовятся к вторжению в наш мир. Бесподобно, 10 из 10.
call BlzFrameSetVisible(BlzGetFrameByName("UpperButtonBarFrame",0),true) //Show Quests, Menu, Allies, Log
call BlzFrameSetVisible(BlzGetFrameByName("ResourceBarFrame",0),true) //Show Gold, Lumber, food and Upkeep; also enables /fps /ping /apm
call BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT,0), true) //show the 3D Face
call BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_HERO_BAR,0), true) //Show the Hero Icons at left top of the screen
call BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_MINIMAP,0), true) //Show MiniMap
call BlzFrameSetVisible(BlzFrameGetParent(BlzGetFrameByName("SimpleInfoPanelUnitDetail",0)),true)//Show the parent of the SimpleInfoPanelUnitDetail will show unit stats and inventory
call BlzFrameSetParent(BlzFrameGetParent(BlzGetOriginFrame(ORIGIN_FRAME_ITEM_BUTTON, 0)), BlzFrameGetParent(BlzGetOriginFrame(ORIGIN_FRAME_COMMAND_BUTTON, 0)))//Change parentShip of the Inventory to the command_Buttons Parent. Normaly the Inventory belongs to the SimpleInfoPanelUnitDetail parent, which could be still hidden.
Эмм ну качество рандома лечится иначе, достаточно подсунуть Random Seed порандомнее, а не заранее заготовленное число.
Как его получить, очень просто - вейты....
Создавал погодные эффекты, по этому всегда нужно было иметь разное время таймера после его перезапуска.
И вот зачем городить такие костыли, если вс решается довольно таки просто?
do
local InitGlobalsOrigin = InitGlobals
function InitGlobals()
InitGlobalsOrigin()
local i = math.random(5, 10)
TimerStart(CreateTimer(), 1, true, function()
i = i - 1
if i == 0 then
print('Смена эффекта')
i = math.random(5, 10)
end
end)
end
end
Всё просто, каждую секунду мы инкриментим i. Код можно представить так:
local i = 0 -- начинаем с нуля
TimerStart(CreateTimer(), 1, true, function()
i = i + 1 -- увеличиваем счётчик
if i == 5 then
print('Прошло 5 секунд')
elseif i == 13 then
print('Прошло 13 секунд')
PauseTimer(GetExpiredTimer())
DestroyTimer(GetExpiredTimer())
end
end)
И еще хотелось бы узнать есть ли разница между вот TimerStart(t,1,true,и вот эта вот функция допустим до 60 сек.) или TimerStart(t,60,false,function())
Всё зависит от задач, но в кратце можно объяснить так:
local i = 13
TimerStart(CreateTimer(), 1, false, function()
print(i) --> 13
end)
local function myfunc()
print(i) --> nil
end
local i = 13
TimerStart(CreateTimer(), 1, false, myfunc)
do
local i, a, b = 0, math.random(5, 10), math.random(5, 10)
TimerStart(CreateTimer(), 1, true, function()
i = i + 1
if i == a then
print('a')
elseif i == a + b then
print('b')
PauseTimer(GetExpiredTimer())
DestroyTimer(GetExpiredTimer())
end
end)
end
Призываю Назара, он покажет на сколько короче и проще код на lua без хештаблиц...
Я прошлую способность этого автора переписал на zinc попутно оптимизировав и оставил критику. Но автор вместо того, чтоб её поправить, выложил такуюже кривую следующу.
Ред. nazarpunk
» WarCraft 3 / Heavensfall
» WarCraft 3 / Создание неигрового персонажа для РПГ с нуля
» WarCraft 3 / Помогите с тригерами
» WarCraft 3 / Анимация при срабатывании пассивки
» WarCraft 3 / Помогите с тригерами
Ред. nazarpunk
» WarCraft 3 / [lua] Фрэймы
Ещё, если двигать миникарту, то она неправильно курсор отлавливает. Поэтому приходится извращаться.
» WarCraft 3 / Герои и Жизнь
» WarCraft 3 / Кастомный блинк
» WarCraft 3 / Кастомный блинк
» WarCraft 3 / Heroes Of The Epic Arena v3.38
Ред. nazarpunk
» WarCraft 3 / Вопрос по интерфейсу 1.31
» WarCraft 3 / Генератор псевдослучайных чисел
» WarCraft 3 / Пассивка - восстановление маны в проценте
» WarCraft 3 / Плавающий текст (texttag) черет туман войны
» WarCraft 3 / запустить таймер из таймера
» WarCraft 3 / запустить таймер из таймера
» WarCraft 3 / Как реализовать перемещение моего юнита к курсору в гуи??
» WarCraft 3 / запустить таймер из таймера
Ред. nazarpunk
» WarCraft 3 / запустить таймер из таймера
» WarCraft 3 / запустить таймер из таймера
» WarCraft 3 / Огненный Дракон
» Администрация XGM / Лейба о файлах комментария
» Администрация XGM / Лейба о файлах комментария
» WarCraft 3 / lua и его странная математика
Ред. nazarpunk
» WarCraft 3 / lua и его странная математика