Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3877
Старый 19.11.2023, 23:45
  #3877
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 209
Регистрация: 24.04.2016
Сообщения: 209
По умолчанию
Re: Скрипты

Измаил,
1. Можно. Готовый спавнер существ есть в 3 миссии кампании за Фриду в аддона Владыки севера, называется CreateRebels(). Можешь её использовать, доработать под свои нужды. Я так уже сделал, совместно с Хоттабычем прописал спавнер существ по нужным мне точкам с их рандомным выбором и если они не заняты, так что думаю и у тебя получится сделать что-то такое же для переспавна существ, артефактов и ресурсов. Но вообще, для спавна существ разработчики уже реализовали рандомный генератор, который работает как недели существ, хотя как по мне лучше пользоваться таким "кастомным" спавнером чтобы была более гибкая настройка.

2. Делай рядом с городами какие-нибудь зоны на 8 клеток(или скок там максимум героев можно иметь у одного игрока?), накрывай их триггерами, ну скажем Player_1_save_zone, Player_2_save_zone и т.д., блокируй триггеры для всех игроков кроме тех для кого они предназначены, координаты всех этих 8-ми клеток из каждого триггера запиши в табличку, или через if/elseif. В том же скрипте который я упомянул в 1 ответе, в той же функции есть код с проверкой занята ли нужная нам клетка(ищи по упоминаниям badpos), можешь её использовать чтобы проверять на какую клетку ставить героев если одна из них уже занята(иначе героев может ставить друг на друга, а это не круто), ну или можно выбирать спавн в рандомной точке в области триггера, так же выставив условие что точка не должна быть уже занята. Ну а дальше по классике, пишем функцию которая будет их телепортить по этим точкам, проверяя заняты ли точки. Пропишем сразу условие что функция заработает только если наступил какой-то день, а потом внизу скрипта пропишем триггер NewDayTrigger, который и будет ежедневно пытаться запустить функцию. Если хочется, можно дописать рандомный выбор имеющихся координат, но как по мне в твоём случае это лишняя головная боль, пусть телепортятся на точки по списку. 

3. Насколько я помню, здания и баффы нельзя телепортировать, так что проще вешать SetObjectEnabled в false на нужные объекты до определенного срока, при касании вызывая сообщение типа "Мы закрыты до следующего месяца. Всего вам наихудшего, чтоб ваши легионы завалил 1 крестьянин!", а потом когда наступит нужное время, переключать на true и здание будет работать как обычно. Ну и так далее.

4. 
1) Да, конечно. Можно через if/elseif по условиям, или же путём рандома, но тогда лучше будет назвать квесты одинаково, просто пронумеровав их, например quest1, quest2 и т.д. Потом посчитать скок квестов, через рандом выдать один из них(поставив условие что квест не должен быть уже выдан или чет такое в этом духе) и всё.
2) В квестах строку CanUncomplete выставляешь в true и можешь их перевыдавать сколько влезет. Однако, проваленные квесты повторно выдать нельзя, так что если тебе нужно квест перевыдавать но фейлить, лучше его просто скрывать, выдавая сообщение со звуком проваленного задания что задание провалено.
3) Нуу, да. Такое можно делать, это базовая часть квестов. В пункте 2) я уже дал наводку на возможность выдавать квесты повторно сколько угодно раз, если только они не провалены.
4) Не знаю будет ли это работать в мультиплеере, я не пользуюсь мультиплеером и не знаю что там и как работает. Но опять же, проваленные квесты повторно выдать не получится, так что возможный вариант обхода этой системы я предложил в ранее упомянутом пункте 2)

5. Всё что видишь в пользовательских картах с боевыми скриптами - это максимум что там можно выжать. Боевые скрипты довольно кастрированная часть игры, тут особо не разгуляешься. Управлять существами, героями, заставлять их играть анимации, кастовать заклинания, проигрывать или побеждать, спавнить существ какой-то из сторон и выдавать сообщения - это всё что можно сделать в боевом скрипте.

Азгалор вне форума
Ответить с цитированием