Сообщения от Скрипты
Нет, таки не работают скрипты. В чём дело? Посмотрите, если можно.
Надо разблокировать консоль в игре, и там будет написано, в чем именно косяк в скрипте. Не выкладывать же каждый раз скрипт целиком сюда.
По поводу скрипта, мельком глянул, вот что заметил:
function SetPlayerStartResources (player, wood, ore, mercury, crystal, sulfur, gem, gold)
if player == 1
then wood = 20
ore = 20
mercury = 10
crystal = 15
sulfur = 10
gem = 10
gold = 15000
end
endвот это что такое? Изобретение велосипеда, еще и неправильное.
SetPlayerStartResources (1, 20, 20, 10, 15, 10, 10, 15000)
--без всяких function и пр.может так проще?и да, для чего все таки вот эта функция?
function alive()
while IsHeroAlive("Hero9") do
sleep(10)
end
Loose()
-- или --
Loose(1)
endЕсли это то, о чем я думаю, то можно сделать намного проще и понятней, без всяких циклов
Пробуждение зла
Нашествие из Преисподней
Смена эпох
Скачать все кампании одним архивом: Яндекс.Диск Google.Диск
You can download the set of 3 Campaigns (English version) here
Одиночные сценарии Heroes V 3.1:
Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы
Мультиплеерные карты для Heroes V 3.1:
Легендарная война
Сердце вулкана
Передел мира
Ну, главное, работает.
Ну для общей информации скажу, что есть триггер, реагирующий на потерю игроком героя. Можно сделать так, что если потерян "тот самый" герой, игрок тут же проигрывал.
Пробуждение зла
Нашествие из Преисподней
Смена эпох
Скачать все кампании одним архивом: Яндекс.Диск Google.Диск
You can download the set of 3 Campaigns (English version) here
Одиночные сценарии Heroes V 3.1:
Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы
Мультиплеерные карты для Heroes V 3.1:
Легендарная война
Сердце вулкана
Передел мира
function gnom (heroname)
if heroname == "Hero9"
then MessageBox (GetMapDataPath().."ha.txt")
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Ha", nil);
end;
end;
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Ha", "ha");Вот еще одна ошибка. В скрипте есть 2 функции gnom, и ни одной функции ha. Уж это можно было самому проверить
Пробуждение зла
Нашествие из Преисподней
Смена эпох
Скачать все кампании одним архивом: Яндекс.Диск Google.Диск
You can download the set of 3 Campaigns (English version) here
Одиночные сценарии Heroes V 3.1:
Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы
Мультиплеерные карты для Heroes V 3.1:
Легендарная война
Сердце вулкана
Передел мира
Добавлено через 1 минуту
Добавлено через 35 секунд
Короче, забыл про строку = скрипты не работают.
Добавлено через 2 минуты
Это уже исправил.
function QuestPervii ()
if HasArtefact ("Hero9", "TOME_OF_DESTRUCTION") без кавычек, неверный id
then MessageBox (GetMapDataPath().."QuestPervii.txt")
ChangeHeroStat ("Hero9", STAT_DEFENSE, 7) STAT_DEFENCE
RemoveArtefact ("Hero9", "TOME_OF_DESTRUCTION") без кавычек, неверный id
Trigger(OBJECT_TOUCH_TRIGGER, "Pervii", nil)
else MessageBox (GetMapDataPath().."LoseL.txt")
end;
end;function QuestVtoroi ()
if HasArtefacts ("Hero9", "SKULL_OF_MARKAL") неправильное имя функции, id без кавычек, неверный id
then MessageBox (GetMapDataPath().."QuestVtoroi.txt")
ChangeHeroStat ("Hero9", STAT_OFFENCE, 7)
RemoveArtefact ("Hero9", "SKULL_OF_MARKAL" ) без кавычек, неверный id
Trigger(OBJECT_TOUCH_TRIGGER, "Vtoroi", nil)
else MessageBox (GetMapDataPath().."LoseLI.txt")
end;
end;function alive()
while IsHeroAlive("Hero9") do
sleep(10)
end
Loose()
-- или --
Loose(1) убрать, дабы никого не смущать
endTrigger(OBJECT__TRIGGER, 'X', 'capture_town') неправильный id триггера, указатель на несуществующую функцию
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Например коды
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Gnom", "gnom")
и
Trigger(6, "Gnom", "gnom")
работают одинаково, но вторую запись куда удобней использовать
Добавлено через 3 минуты
function alive()
while IsHeroAlive("Hero9") do
sleep(10)
end
Loose()
-- или --
Loose(1)
end
function alive(heroname)
if heroname=="Hero9" then
Loose()
end
end
Trigger(2, 1, "alive")
Пробуждение зла
Нашествие из Преисподней
Смена эпох
Скачать все кампании одним архивом: Яндекс.Диск Google.Диск
You can download the set of 3 Campaigns (English version) here
Одиночные сценарии Heroes V 3.1:
Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы
Мультиплеерные карты для Heroes V 3.1:
Легендарная война
Сердце вулкана
Передел мира
Чтобы не возиться со всякими константами типа REGION_ENTER_AND_STOP_TRIGGER, или TOME_OF_DESTRUCTION их лучше заменять на числа (все числа указаны в документе IDs for scripts). Так и компактнее, и позволит избежать ряд ошибок, почти незаметных при отладке.
Например коды
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Gnom", "gnom")
и
Trigger(6, "Gnom", "gnom")
работают одинаково, но вторую запись куда удобней использовать
В Notepad++, где я, к примеру, пишу скрипты, при вводе первых букв константы предлагается список из слов в файле, остаётся только выбрать. Так шанс ошибиться меньше.
Добавлено через 2 минуты
function alive()
while IsHeroAlive("Hero9") do
sleep(10)
end
Loose()
-- или --
Loose(1)
end
function alive(heroname)
if heroname=="Hero9" then
Loose()
end
end
Trigger(2, 1, "alive")
Нужен скрипт, чтобы после смерти героя миссия провалилась. Заранее спс.
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Nargott не одобрит.
В Notepad++, где я, к примеру, пишу скрипты, при вводе первых букв константы предлагается список из слов в файле, остаётся только выбрать. Так шанс ошибиться меньше.
Добавлено через 2 минуты
Второй сработает при любой потере игроком героя, первый - только при смерти.
Так то да. Но в данном конкретном случае потеря=смерть и смерть=потеря. Если б были всякие переходы героя от одного владельца к другому или что-то в этом роде, тогда да, была бы разница. И то триггер в любой момент можно отключить
Пробуждение зла
Нашествие из Преисподней
Смена эпох
Скачать все кампании одним архивом: Яндекс.Диск Google.Диск
You can download the set of 3 Campaigns (English version) here
Одиночные сценарии Heroes V 3.1:
Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы
Мультиплеерные карты для Heroes V 3.1:
Легендарная война
Сердце вулкана
Передел мира
function borderGuard()
QuestionBox("ссылка на текст с вопросом", "bgok")
end
function bgok()
local gold = GetPlayerResource(1, GOLD)
if gold >= количество_золота then
SetPlayerResource(1, GOLD, gold - количество_золота)
RemoveObject("скриптовое имя стража границ")
else
MessageBox("ссылка на текст с оповещением о нехватке ресурсов")
end
end
SetObjectEnabled("скриптовое имя стража границ", nil)
Trigger(4, "скриптовое имя стража границ", "borderGuard")
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4