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

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

Здравствуйте!
Подскажите пожалуйста по скриптам. 
В ютубе есть ролик, где показано как сделать так чтобы к герою каждую среду присоединялось 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.
Аватар пользователя
Сразу предупрежу, что 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
}{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;

В синтаксисе у меня наверняка ошибки, но смысл вопроса думаю понятен)
Аватар пользователя
Да, но айди вряд ли по порядку у вас будут) Например, айди 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"
_________________
Аватар пользователя
Я бы ещё добавил что после Raelag у вас нет знака ", из-за чего скрипт 100% выдаст ошибку. Так же, нет запятой в строке Trigger (NEW_DAY_TRIGGER "Armia") после слова TRIGGER.
Аватар пользователя
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"
_________________
Здравствуйте, помогите пожалуйста, мне надо написать следующий скрипт, а я не понимаю как. Красный игрок может открыть Красные ворота при условии, если зеленый и оранжевый игрок потерпели поражение.
Аватар пользователя
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"
_________________
Нус, попробовал, но в итоге ворота все-равно требуют ключ даже после поражения 2 ключевых игроков.
https://disk.yandex.ru/i/MIFLpv7heo7i1g
В ответ пользователю Shiroyasha2910
Аватар пользователя
Shiroyasha2910
Нус, попробовал, но в итоге ворота все-равно требуют ключ даже после поражения 2 ключевых игроков.https://disk.yandex.ru/i/MIFLpv7heo7i1g
Так там же редактор написал где ошибка.
На дальней станции сойду...
Трава по пояс,
Зайду в траву, как в море босиком...
В ответ пользователю Shiroyasha2910
Аватар пользователя
Shiroyasha2910
Нус, попробовал, но в итоге ворота все-равно требуют ключ даже после поражения 2 ключевых игроков.https://disk.yandex.ru/i/MIFLpv7heo7i1g
Скрипт показывает, что в 3 строке ошибка из-за чего он доходит до неё и ломается, не догружая оставшиеся строки кода и не выполняя заданный функционал. Ошибка, вероятно, в лишней скобке вот тут: == PLAYER_ACTIVE) ) then
Аватар пользователя

Здравствуйте. Пишу с казалось бы простым случаем. После 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;
Сценарий: "Наследие прошлого"
Кампании:
"
Новый порядок", "Серый Альянс""Поиски Истины"

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

Статистика

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