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

Сообщения от Скрипты для начинающих

В ответ пользователю Азгалор
Аватар пользователя
#322
Азгалор
BlueHeavenHero, не знаю кто тут дизлайки лепит, но как я уже написал выше: проверь чтобы всё было правильно, и как верно подметил Хоттабыч - не забудь добавить отключение стандартного боя(если ещё не прописал), а после проверяй скрипты в игре. Ждём ответа по результату.
Всё понял, спасибо за помощь.
Так как "Падший Рыцарь" - моя первая работа, я хочу, чтобы все было сделано качественно и сценарий был интересен

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

Аватар пользователя
#324
Всем привет. Недавно узнал, что возможно с помощью скриптов контролировать армию врага в зависимости от уровня сложности. Как именно это можно сделать? 

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

В ответ пользователю BlueHeavenHero
Аватар пользователя
#325
BlueHeavenHero
Всем привет. Недавно узнал, что возможно с помощью скриптов контролировать армию врага в зависимости от уровня сложности. Как именно это можно сделать? 

Ну, например так: 

function HeroesBuff()
local heroes = {"Duncan", "Biara"};
local diff = GetDifficulty();
for h,hero in heroes do
for creatureID = 1, CREATURES_COUNT - 1 do
if GetObjectCreatures( hero, creatureID) >= 1 then
HeroSetUp = GetObjectCreatures( hero, creatureID );
RemoveObjectCreatures( hero, creatureID, HeroSetUp );
AddObjectCreatures( hero, creatureID, HeroSetUp + ( HeroSetUp / 100 * 10) * diff );
end;
end;
end;
end;
В ответ пользователю Азгалор
Аватар пользователя
#326
Всём привет) Не хочу спойлерить, но оочень нужна помощь по скрипту. Хочу сделать так, чтобы во время финального боя босс кастовал особое заклинание - призыв ангелов. На арене должны будут появлятся ангелы с сопровождающим эффектов лучей от Божественной силы. Как это сделать? 

Добавлено через 3 часа 9 минут
И ещё - у меня давно были проблемы со скриптом StartCombat smile05. Может ли кто подробно разьяснить этот скрипт? (желательно с примерами)

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

Аватар пользователя
#327
StartCombat("имяНашегоГероя", "ИмяВрагаИлиNil, числоОтрядов, айди1, кол-во1, ..., айдиN, кол-воN, скрипт, коллбэк, арена, автобой)

Если какой-то параметр смущает или не нужен — пишете nil. Например, бой без героя с отрядом латников + лучников описывается так:

StartCombat("Герой", nil, 2, CREATURE_SWORDSMAN, 10, CREATURE_ARCHER, 17)
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
В ответ пользователю }{0TT@6bI4
Аватар пользователя
#328
}{0TT@6bI4
StartCombat("имяНашегоГероя", "ИмяВрагаИлиNil, числоОтрядов, айди1, кол-во1, ..., айдиN, кол-воN, скрипт, коллбэк, арена, автобой)

Если какой-то параметр смущает или не нужен — пишете nil. Например, бой без героя с отрядом латников + лучников описывается так:

StartCombat("Герой", nil, 2, CREATURE_SWORDSMAN, 10, CREATURE_ARCHER, 17)
Сейчас разъясню, в чем дело. 
После захвата определённого города запускается ролик. После начинается заскриптованный бой на кастомной арене. После боя запускается ещё один ролик. Это я реализовал так:
function CaptureTown() 
RazeTown("Haven")
sleep(2)
StartDialogScene("DialogScenes/S9/DialogScene.xdb#xpointer(/DialogScene)")
sleep(2)
StartCombat("HafadNecro", "Melhior", 4, 13, 22, 14, 22, 13, 22, 14, 22, МойСкрипт, nil, МояАрена, ВыклАвтобой)



Добавлено через 3 минуты
Но вот как запустить бой на моей арене, с моим боевым скриптом и выключенным автобоем? 

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

Аватар пользователя
#329
Вместо мояАрена прописать путь к xdb-файлу AdventureFlybyScene арены, а вместо Мойскрипт — путь к xdb файлу скрипта
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
В ответ пользователю }{0TT@6bI4
Аватар пользователя
#330
}{0TT@6bI4
Вместо мояАрена прописать путь к xdb-файлу AdventureFlybyScene арены, а вместо Мойскрипт — путь к xdb файлу скрипта
То есть так?:
function CaptureMainHaven()
RazeTown("Boss")
sleep(1)
StartDialogScenee("\DialogScenes\FallenKnight\Final\DialogScene.xdb#x pointer(\DialogScene)")
sleep(3)
StartCombat(heroname, "MelhiorFinal", 5, 14, 22, 13, 22, 14, 22, 13, 22, 14, 22, "\Maps\SingleMissions\FallenKnight\FinalCombat.xdb# xpointer(\Script)", nil, "\Scenes\CombatArenas\FinalCombat.xdb#xpointer(\Adv entureFlybyScene)", nil)
end;

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

Аватар пользователя
#331
Похоже на правду, только в старткомбате heroname не определён, только если вы не объявили его до этого глобальным
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
В ответ пользователю }{0TT@6bI4
Аватар пользователя
#332
}{0TT@6bI4
Похоже на правду, только в старткомбате heroname не определён, только если вы не объявили его до этого глобальным
То есть пути я прописал верно? 

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

Аватар пользователя
#333
Мне откуда знать) Разве что слеши в (/Script) и (/AdventureFlyByscene) точно прямые, а не обратные
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
В ответ пользователю }{0TT@6bI4
Аватар пользователя
#334
}{0TT@6bI4
Мне откуда знать) Разве что слеши в (/Script) и (/AdventureFlyByscene) точно прямые, а не обратные
Так-с, скрипт я дописал полностью, ролики сделал, щас буду тестировать. Сомневаюсь, что всё будет работать, но если будут неполадки, обращусь в эту или другую тему про Скрипты. 

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

В ответ пользователю Азгалор
Аватар пользователя
#335
Азгалор

Да в принципе легко) Резервируем героя-некроманта, делаем квест на сохранение главного героя технически пустым(OBJECTIVE_KIND_MANUAL) чтобы контролировать его работу через скрипты. В скриптах же напишем такое:

NowNecromancer = 0 --Условие, которое выдадим когда героя сделаем некромантом

function prim_save_gg( heroName ) --название функции по этому квесту можешь сделать другим) Это так, чтобы было понятней
if ( heroName == Duncan ) and NowNecromancer ~= 1 then --Duncan взят для примера. Вставишь сюда скриптовое имя своего героя
SetObjectiveState("скриптовое имя квеста", OBJECTIVE_FAILED) --фейлим квест на сохранение главного героя
sleep(10) --дадим время чтобы игрок увидел провал квеста и осознал что он потерял главного героя
Loose() --фейлим миссию, ведь наш герой погиб до того как стал некромантом
elseif ( heroName == Duncan ) and NowNecromancer == 1 then --теряем героя с полученным условие что мы теперь некромант и от этого не проигрываем
print("Всё окей, условие есть. Помер и помер, с кем ни бывает? Теперь я некромант, пойду что ли черепами закуплюсь")
end
if ( heroName == DuncanNecro ) and NowNecromancer == 1 then --наш герой - некромант, условие что мы его сделали некромантом выполнено
SetObjectiveState("скриптовое имя квеста", OBJECTIVE_FAILED) --фейлим квест на сохранение главного героя
sleep(10) --дадим время чтобы игрок увидел провал квеста и осознал что он потерял главного героя
Loose() --фейлим миссию, ведь наш герой погиб уже после того как стал некромантом
end
end

function TransformToNecromancer() --тут пропишем что именно произойдёт после чего ГГ станет некромантом. Откуда она будет вызываться - это уже тоже тебе решать)
--всякая всячина автора, ктож знает какие у него условия?
NowNecromancer = 1 --выдадим условие чтобы игра не зафейлилась после удаления гг
sleep(2) --на всякий случай, дадим игре переварить полученную информацию
DeployReserveHero("DuncanNecro", x, y, GROUND/UNDERGROUND) --ставим нового гг чтобы игра не зафейлилась если вдруг у игрока ток один герой и нет замка с таверной
sleep(2) --тоже на всякий случай, дадим игре всё обработать
RemoveObject("Duncan") --безболезненно удаляем гг
end

Trigger(PLAYER_REMOVE_HERO_TRIGGER, PLAYER_1, "prim_save_gg") --триггер на отслеживание потерь героев игроком PLAYER_1

Пробуй)

Так-с, товарищ Азгалор, я протестировал скрипт и принёс безрадостные вести - скрипт не работает. Если в начале скрипта я пишу NowNecromanser = 0, остальной скрипт не работает

Мои карты:
Падший рыцарь
Сердце Хаоса

Мои моды:
Визуальные:
Изменение внешнего вида героев-некромантов
Существа-жители и кое-что по мелочи в городах Ордена Порядка, Некрополиса и Инферно

NCF-существа:
Странствующие рыцари
Наемники

В ответ пользователю BlueHeavenHero
Аватар пользователя
#336

BlueHeavenHero
Так-с, товарищ Азгалор, я протестировал скрипт и принёс безрадостные вести - скрипт не работает. Если в начале скрипта я пишу NowNecromanser = 0, остальной скрипт не работает
Консоль на что жалуется?