Перейти к содержанию

Сообщения от Скрипты

#2023
Нет, таки не работают скрипты. В чём дело? Посмотрите, если можно.
Вложения 1
1 файл • Общий размер: 1,2 KB
В ответ пользователю Аскет2
Аватар пользователя
#2024
Аскет2
Нет, таки не работают скрипты. В чём дело? Посмотрите, если можно.

Надо разблокировать консоль в игре, и там будет написано, в чем именно косяк в скрипте. Не выкладывать же каждый раз скрипт целиком сюда.

По поводу скрипта, мельком глянул, вот что заметил:
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
Если это то, о чем я думаю, то можно сделать намного проще и понятней, без всяких циклов
Кампании для Heroes V 3.1 (Трилогия):

Пробуждение зла
Нашествие из Преисподней
Смена эпох

Скачать все кампании одним архивом: Яндекс.Диск Google.Диск

You can download the set of 3 Campaigns (English version) here


Одиночные сценарии Heroes V 3.1:


Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы

Мультиплеерные карты для Heroes V 3.1:

Легендарная война
Сердце вулкана
Передел мира
#2025
Ну, главное, работает.
В ответ пользователю Аскет2
Аватар пользователя
#2026
Аскет2
Ну, главное, работает.

Ну для общей информации скажу, что есть триггер, реагирующий на потерю игроком героя. Можно сделать так, что если потерян "тот самый" герой, игрок тут же проигрывал.
Кампании для Heroes V 3.1 (Трилогия):

Пробуждение зла
Нашествие из Преисподней
Смена эпох

Скачать все кампании одним архивом: Яндекс.Диск Google.Диск

You can download the set of 3 Campaigns (English version) here


Одиночные сценарии Heroes V 3.1:


Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы

Мультиплеерные карты для Heroes V 3.1:

Легендарная война
Сердце вулкана
Передел мира
#2027
Хотя, если честно, ничего не работает.
Аватар пользователя
#2028
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. Уж это можно было самому проверить
Кампании для Heroes V 3.1 (Трилогия):

Пробуждение зла
Нашествие из Преисподней
Смена эпох

Скачать все кампании одним архивом: Яндекс.Диск Google.Диск

You can download the set of 3 Campaigns (English version) here


Одиночные сценарии Heroes V 3.1:


Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы

Мультиплеерные карты для Heroes V 3.1:

Легендарная война
Сердце вулкана
Передел мира
#2029
Я нуб. Забыл написать в map.xdb дописать это

Добавлено через 1 минуту


Добавлено через 35 секунд
Короче, забыл про строку = скрипты не работают.

Добавлено через 2 минуты
Это уже исправил.
В ответ пользователю Аскет2
Аватар пользователя
#2030
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)
убрать, дабы никого не смущать

end
Trigger(OBJECT__TRIGGER, 'X', 'capture_town')  неправильный id триггера, указатель на несуществующую функцию
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#2031
Чтобы не возиться со всякими константами типа REGION_ENTER_AND_STOP_TRIGGER, или TOME_OF_DESTRUCTION их лучше заменять на числа (все числа указаны в документе IDs for scripts). Так и компактнее, и позволит избежать ряд ошибок, почти незаметных при отладке.

Например коды
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")
Кампании для Heroes V 3.1 (Трилогия):

Пробуждение зла
Нашествие из Преисподней
Смена эпох

Скачать все кампании одним архивом: Яндекс.Диск Google.Диск

You can download the set of 3 Campaigns (English version) here


Одиночные сценарии Heroes V 3.1:


Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы

Мультиплеерные карты для Heroes V 3.1:

Легендарная война
Сердце вулкана
Передел мира
В ответ пользователю MasteR
Аватар пользователя
#2032
MasteR
Чтобы не возиться со всякими константами типа REGION_ENTER_AND_STOP_TRIGGER, или TOME_OF_DESTRUCTION их лучше заменять на числа (все числа указаны в документе IDs for scripts). Так и компактнее, и позволит избежать ряд ошибок, почти незаметных при отладке.

Например коды
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Gnom", "gnom")
и
Trigger(6, "Gnom", "gnom")
работают одинаково, но вторую запись куда удобней использовать
Nargott не одобрит.
В 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")
Нужен скрипт, чтобы после смерти героя миссия провалилась. Заранее спс.
Второй сработает при любой потере игроком героя, первый - только при смерти/бегстве.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю RedHeavenHero
Аватар пользователя
#2033
RedHeavenHero
Nargott не одобрит.
В Notepad++, где я, к примеру, пишу скрипты, при вводе первых букв константы предлагается список из слов в файле, остаётся только выбрать. Так шанс ошибиться меньше.

Добавлено через 2 минуты


Второй сработает при любой потере игроком героя, первый - только при смерти.

Так то да. Но в данном конкретном случае потеря=смерть и смерть=потеря. Если б были всякие переходы героя от одного владельца к другому или что-то в этом роде, тогда да, была бы разница. И то триггер в любой момент можно отключить
Кампании для Heroes V 3.1 (Трилогия):

Пробуждение зла
Нашествие из Преисподней
Смена эпох

Скачать все кампании одним архивом: Яндекс.Диск Google.Диск

You can download the set of 3 Campaigns (English version) here


Одиночные сценарии Heroes V 3.1:


Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы

Мультиплеерные карты для Heroes V 3.1:

Легендарная война
Сердце вулкана
Передел мира
#2034
А как сделать так, чтобы страж границы потребовал для дальнейшего прохода деньги?
В ответ пользователю Аскет2
Аватар пользователя
#2035
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")
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
#2036
То есть любого по цвету ставить надо, да?
Аватар пользователя
#2037
Цвет значения не имеет.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4

Статистика

Приветствуем новейшего участника: Emil

Сейчас на сайте 3 пользователей 1093 гостей