Скрипты - Страница 237 - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Герои Меча и Магии 5 - Картостроительство (Редактор карт) В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.

Ответ
Страница 237 из 260
 
Опции темы
#3541
Старый 18.09.2021, 10:37
  #3541
^
Andrei_21
 
Аватар для Andrei_21
📖
Регистрация: 14.03.2021
Сообщения: 235
andrei_21
Выставка наград
Регистрация: 14.03.2021
Сообщения: 235
andrei_21
Выставка наград
По умолчанию
Re: Скрипты

Мда... Сам не додумался. Спасибо вам большое!
__________________
Сценарий: "Наследие прошлого"
Кампании:
"
Новый порядок", "Серый Альянс""Поиски Истины"

Трейлер кампании "Дыхание Пустоты": https://www.youtube.com/watch?v=NH04dyKPmw8&ab_channel=%D0%90ndrei_21

Andrei_21 вне форума
Ответить с цитированием
#3542
Старый 27.10.2021, 14:29
  #3542
^
Tobito
📖
Регистрация: 27.10.2021
Сообщения: 3
Регистрация: 27.10.2021
Сообщения: 3
По умолчанию
Re: Скрипты

Здравствуйте!
Подскажите пожалуйста по скриптам. 
В ютубе есть ролик, где показано как сделать так чтобы к герою каждую среду присоединялось 200 крестьян.
Вот скрипт:
function Armia()
local day=GetDate(3)
if day==3 then 
AddHeroCreatures("Raelag, 1,200);
end;
end;

Trigger (NEW_DAY_TRIGGER "Armia")

Я хочу расширить эту функцию, чтоб каждую среду добавлялись рандомные существа из выборки.
Т.е. вводится переменная типа random и в зависимости от ее значений функция выполняет определенные действия.
Например если 1 дать крестьян, 2 - лучников, 3 - мечников и т.д. Кто именно будет добавляться определяет рандом, причем каждую неделю заново, а не так что в начале игры переменная приняла значение из выборки 2 и каждый раз будет лучников давать. 
Как это правильно сделать? Подскажите пожалуйста синтаксис.
Я так понимаю мне нужно в функции задать переменную random и в условие if then вложить условие if then.
Tobito вне форума
Ответить с цитированием
#3543
Старый 27.10.2021, 14:48
  #3543
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
По умолчанию
Re: Скрипты

Сразу предупрежу, что random — уже занятое имя переменной, так называется функция.
function Armia()
local creatures = {{айди1, кол-во}, {айди2, кол-во}, итд}
if GetDate(3)==3 then
creature = creatures[random(length(creatures))+1] --Берем случайное существо
local id = creature[1] --Получаем его айди
local amount = creature[2] --И кол-во для этого типа
КОД, оперируюшим случайным айди и кол-вом
end
end
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3544
Старый 27.10.2021, 15:26
  #3544
^
Tobito
📖
Регистрация: 27.10.2021
Сообщения: 3
Регистрация: 27.10.2021
Сообщения: 3
По умолчанию
Re: Скрипты

}{0TT@6bI4Сразу предупрежу, что random — уже занятое имя переменной, так называется функция.
function Armia()
local creatures = {{айди1, кол-во}, {айди2, кол-во}, итд}
if GetDate(3)==3 then
creature = creatures[random(length(creatures))+1] --Берем случайное существо
local id = creature[1] --Получаем его айди
local amount = creature[2] --И кол-во для этого типа
КОД, оперируюшим случайным айди и кол-вом
end
end

Спасибо большое за оперативный ответ!
А вот таким способом получится реализовать?
function Armia()
local day=GetDate(3)
if day==3 then (
local id = random (4)
if id=0 then
AddHeroCreatures("Raelag, 1,200)
elseif id=1 then
AddHeroCreatures("Raelag, 2,50)
elseif id=2 then
AddHeroCreatures("Raelag, 3,30)
и т.д.
end;
end;
end;

В синтаксисе у меня наверняка ошибки, но смысл вопроса думаю понятен)
Tobito вне форума
Ответить с цитированием
#3545
Старый 27.10.2021, 16:01
  #3545
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
По умолчанию
Re: Скрипты

Да, но айди вряд ли по порядку у вас будут) Например, айди 0 не существует, 1 — крестьяне, 2 ополченцы, 3 мечники, 4 латники итд.

Скобка после then не нужна + в сравнении используется двойное равно, ..if id == 1 then ... elseif id == 2 итд
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3546
Старый 27.10.2021, 16:24
  #3546
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 207
Регистрация: 24.04.2016
Сообщения: 207
По умолчанию
Re: Скрипты

Я бы ещё добавил что после Raelag у вас нет знака ", из-за чего скрипт 100% выдаст ошибку. Так же, нет запятой в строке Trigger (NEW_DAY_TRIGGER "Armia") после слова TRIGGER.
Азгалор вне форума
Ответить с цитированием
#3547
Старый 27.10.2021, 21:02
  #3547
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
По умолчанию
Re: Скрипты

Tobito, вообще, рекомендую пользоваться вот этим редактором скриптов (от VAlex'а) => https://disk.yandex.ru/d/W6cz5UBu3SGAvb

Он сразу подсветит все ошибки вроде пропущенных запятых и кавычек или одинарных равно в условиях.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3548
Старый 28.10.2021, 12:12
  #3548
^
Tobito
📖
Регистрация: 27.10.2021
Сообщения: 3
Регистрация: 27.10.2021
Сообщения: 3
По умолчанию
Re: Скрипты

Все получилось, спасибо за помощь!)
Tobito вне форума
Ответить с цитированием
#3549
Старый 05.11.2021, 16:34
  #3549
^
Shiroyasha2910
📖
Регистрация: 07.07.2019
Сообщения: 42
Регистрация: 07.07.2019
Сообщения: 42
По умолчанию
Re: Скрипты

Здравствуйте, помогите пожалуйста, мне надо написать следующий скрипт, а я не понимаю как. Красный игрок может открыть Красные ворота при условии, если зеленый и оранжевый игрок потерпели поражение.
Shiroyasha2910 вне форума
Ответить с цитированием
#3550
Старый 05.11.2021, 19:19
  #3550
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
По умолчанию
Re: Скрипты

function OpenRedBoard(hero, obj)
if GetObjectOwner(hero) == PLAYER_1 then
if not (GetPlayerState(Номер зелёного) == PLAYER_ACTIVE or GetPlayerState(Номер оранжевого) == PLAYER_ACTIVE)) then
SetObjectEnabled(obj, 1)
Trigger(OBJECT_TOUCH_TRIGGER, obj, nil)
end
end
end

SetObjectEnabled("Имя стража границы", nil)
Trigger(OBJECT_TOUCH_TRIGGER, "Имя стража границы", "OpenRedBoard")


Попробуйте как-то так.

__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3551
Старый 05.11.2021, 22:27
  #3551
^
Shiroyasha2910
📖
Регистрация: 07.07.2019
Сообщения: 42
Регистрация: 07.07.2019
Сообщения: 42
По умолчанию
Re: Скрипты

Нус, попробовал, но в итоге ворота все-равно требуют ключ даже после поражения 2 ключевых игроков.https://disk.yandex.ru/i/MIFLpv7heo7i1g
Shiroyasha2910 вне форума
Ответить с цитированием
#3552
Старый 05.11.2021, 23:49
  #3552
^
Григорий Ковалев
 
Аватар для Григорий Ковалев
📖
Регистрация: 16.08.2021
Адрес: Крестьянские хижины
Сообщения: 81
Регистрация: 16.08.2021
Адрес: Крестьянские хижины
Сообщения: 81
По умолчанию
Re: Скрипты

Shiroyasha2910Нус, попробовал, но в итоге ворота все-равно требуют ключ даже после поражения 2 ключевых игроков.https://disk.yandex.ru/i/MIFLpv7heo7i1g
Так там же редактор написал где ошибка.
__________________
На дальней станции сойду...
Трава по пояс,
Зайду в траву, как в море босиком...
На дальней станции сойду...
Трава по пояс,
Зайду в траву, как в море босиком...
Григорий Ковалев вне форума
Ответить с цитированием
#3553
Старый 06.11.2021, 00:01
  #3553
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 207
Регистрация: 24.04.2016
Сообщения: 207
По умолчанию
Re: Скрипты

Shiroyasha2910Нус, попробовал, но в итоге ворота все-равно требуют ключ даже после поражения 2 ключевых игроков.https://disk.yandex.ru/i/MIFLpv7heo7i1g
Скрипт показывает, что в 3 строке ошибка из-за чего он доходит до неё и ломается, не догружая оставшиеся строки кода и не выполняя заданный функционал. Ошибка, вероятно, в лишней скобке вот тут: == PLAYER_ACTIVE) ) then
Азгалор вне форума
Ответить с цитированием
#3554
Старый 06.11.2021, 00:05
  #3554
^
Shiroyasha2910
📖
Регистрация: 07.07.2019
Сообщения: 42
Регистрация: 07.07.2019
Сообщения: 42
По умолчанию
Re: Скрипты

Григорий КовалевТак там же редактор написал где ошибка.
Ой, точно. Спасибо.
Shiroyasha2910 вне форума
Ответить с цитированием
#3555
Старый 21.01.2022, 16:21
  #3555
^
Andrei_21
 
Аватар для Andrei_21
📖
Регистрация: 14.03.2021
Сообщения: 235
andrei_21
Выставка наград
Регистрация: 14.03.2021
Сообщения: 235
andrei_21
Выставка наград
По умолчанию
Re: Скрипты

Здравствуйте. Пишу с казалось бы простым случаем. После QuestionBox-а при варианте ОК, должна запустится битва (это сражение должно происходить с героем, который и сделал выбор, не с кем-то определённым). Но консоль ругается и пишет что-то вроде: Hero "1" is not exists. Я понимаю, что где-то напортачил c переменной hero и скорее всего чего-то не знаю обо всём этом. Хотелось бы узнать, что на этот раз я забыл дописать в скрипты. Заранее спасибо.

function DwarfCombat(hero)
StartCombat(hero, nil, 4, CREATURE_STONE_DEFENDER, 175, CREATURE_BERSERKER, 65, CREATURE_FLAME_KEEPER, 45, CREATURE_WARLORD, 35, nil, 'ringfound', nil)
end;
__________________
Сценарий: "Наследие прошлого"
Кампании:
"
Новый порядок", "Серый Альянс""Поиски Истины"

Трейлер кампании "Дыхание Пустоты": https://www.youtube.com/watch?v=NH04dyKPmw8&ab_channel=%D0%90ndrei_21

Andrei_21 вне форума
Ответить с цитированием
Ответ
Страница 237 из 260


Опции темы



Часовой пояс GMT +4, время: 19:59.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru