а были же где-то всплывающие иконки монстров? на каком-то объекте? или мне казалось...
RedHeavenHero
12 лет назад
Были (вечное рабство, драконий комплект), но они никак не связаны со скриптами.
Heroist
12 лет назад
блин, чего-то не работает скрипт.
function burn() ---- for i, hut in GetObjectNamesByType('PEASANT_HUT') do Trigger(4, hut, 'hutF') end ----- startThread(burn2) end
startThread(burn)
---
fires = 0
function burn2(hero, hut) while 1 do sleep(1) if GetCurrentPlayer() == 1 and fires == 0 then SetObjectEnabled(hut , nil) fires = 1 elseif GetCurrentPlayer() == 2 or GetCurrentPlayer() == 3 or GetCurrentPlayer() == 4 then SetObjectEnabled(hut , true) fires = 0 end end end
----
hutt = 0
----
fire2 = 0
function hutF(hero, hut) if GetCurrentPlayer() == 1 and fire2 == 0 then sleep(1) QuestionBox ( "/Maps/SingleMissions/NewRandomMap 43/burn1.txt" , 'burnok' , 'burnno'); sleep(1) end end
function burnok(hero, hut) sleep(1) BlockGame() --burn hut effects hutt = hutt + 1 Trigger(4, hut, nil) UnblockGame() end
function burnno(hero, hut) sleep(1) fire2 = 1 SetObjectEnabled(hut, true) sleep(1) MakeHeroInteractWithObject('Nymus' , hut) sleep(1) SetObjectEnabled(hut, nil) fire2 = 0 end
собственно, главное, что меня интересует, это как заставить скрипт считывать имя hut и использовать его в других ф-иях. Если пишу в скобках после названия ф-ии, почему-то не пашет( на переменные можно не обращать внимания, просто ф-ий, где они будут, пока еще нет. пробовал через GameVar вывести hut, но оно его не считывает. ну и в кавычках вообще перестает видеть объект(
RedHeavenHero
12 лет назад
Сохрани hut в какую-нибудь глобальную переменную с другим именем, например, current_hut. А вообще аргументы в функции передаются как обычно функция(список_аргументов) или startThread(функция, список_аргументов)
Добавлено через 41 секунду И, если хочешь делать MakeHeroInteractWithObject, то триггер надо отключать тоже.
Добавлено через 1 минуту Кстати, а зачем столько минусов между строк?
надо. я уставший и начинаю путаться, не могу отличить одно от другого. Вот и ставлю enterы и минусики)))
RedHeavenHero
12 лет назад
SetGameVar - это общеигровая переменная, а не глобальная. Глобальная, это та, что не локальная. В данном скрипте глобальными переменными будут являться burn, fires, burn2, hutt, fire2, hutF, burnok, burnno.
надо. я уставший и начинаю путаться, не могу отличить одно от другого. Вот и ставлю enterы и минусики)))
Попробуй каждый следующий уровень (после слов function ...(), do, then и перевода на новую строку ставить таб вначале).
Heroist
12 лет назад
а как мне hut превратить в глобальную?
RedHeavenHero
12 лет назад
Она глобальная по умолчанию.
Heroist
12 лет назад
ааа.
Ладно.
Ну и почему тогда не работает-то?))
RedHeavenHero
12 лет назад
Ещё: startThread(burn2) нужно писать внутри цикла.
Пока так. Если будут ошибки, говори какие, будем исправлять. ;)
HAVEN_DWLS = {} hutt = 0
function burn() for i, dw_type in {"PEASANT_HUT", "ARCHERS_HOUSE", "BARRACKS", "HEAVEN_MILITARY_POST"} do for j, dw in GetObjectNamesByType(dw_type) do HAVEN_DWLS[dw] = "откл" SetObjectEnabled(dw, nil) Trigger(4, dw, "BurnHavenDwelling") end end startThread(burn2) end
startThread(burn)
function burn2() while 1 do repeat sleep() until IsPlayerCurrent(1) for dwelling, state in HAVEN_DWLS do if state == "вкл" then HAVEN_DWLS[dwelling] = "откл" SetObjectEnabled(dwelling, nil) Trigger(4, dwelling, "BurnHavenDwelling") end end repeat sleep() until not IsPlayerCurrent(1) for dwelling, state in HAVEN_DWLS do if state == "откл" then HAVEN_DWLS[dwelling] = "вкл" SetObjectEnabled(dwelling, 1) Trigger(4, dwelling, nil) end end end end
function BurnHavenDwelling(hero, hut) if GetCurrentPlayer() == 1 then QuestionBox ( "/Maps/SingleMissions/NewRandomMap 43/burn1.txt" , 'burnok("'..hut..'")' , 'burnno("'..hut..'")'); end end
function burnok(hut) Trigger(4, hut, nil) hutt = hutt + 1 HAVEN_DWLS[hut] = nil end
function burnno(hut) SetObjectEnabled(hut, 1) Trigger(4, hut, nil) sleep(1) MakeHeroInteractWithObject('Nymus' , hut) sleep(1) SetObjectEnabled(hut, nil) Trigger(4, hut, "BurnHavenDwelling") end