Миничат

Lekste 3 ч. Но если чуть украсят, возможно будет ещё лучше
Lekste 3 ч. Модный минимализм с цветами в стиле IBM. В целом мне нравится такое
Lekste 3 ч. Блоки конечно в столбик и вход где-то в середине этого столбика, но хоть сидеть теперь можно
MsPeach 3 ч. А это и был тот сюрприз
Lekste 3 ч. Ура! Наконец вход с телефона починили :)
DaN 4 ч. Я ослеп
Marganec 5 ч. блин это круто, надеюсь вместе с дизайном поменяются и правила и ещё может что-нибудь
Marganec 5 ч. 0_0 охренеть
Marganec 5 ч. Вы что сделали с сайтом
Kerotan 5 ч. роса эксплуатирует миничат и в хвост и в гриву (ง ื▿ ื)ว
Адский дровосек 7 ч. ааааа что здесь происходит?
poca 13 ч. не кикает больше часа. зер гут
poca 14 ч. было-бы неплохо, да
poca 14 ч. авто-бан за 10 повторений
poca 14 ч. придётся
poca 14 ч. банить
poca 14 ч. фсаперов
poca 14 ч. вручную
poca 14 ч. то
poca 14 ч. то

Смена дня и ночи (RPG Maker 2003)

Разработчик Коммерсант Проект месяца 1 место Проект месяца 2 место 3 место в Кодировке Ветеран Учитель Организатор конкурсов Даритель Стимкея Проект месяца 3 место 2 место Готв Победитель Сбитой кодировки 2 место Победитель конкурса 3 место
Больше
15 года 3 мес. назад - 11 года 1 день назад #38195 от AnnTenna
Введение.

Статья рассчитана на людей, которые уже имеют определенное представление о RPG-Maker 2003. Также она может дать вам общее представление, каким образом делается смена дня и ночи. К статье прилагается демо-версия, в которой реализовано всё, что описано.

Для начала следует заметить, что такая система, как смена дня и ночи может быть в игре сделана совершенно по-разному, на RPG-мейкере существует десятки таких способов. Так что я уточняю, что буду рассказывать про свой способ. Сначала я думала, что эта статья будет посвящена смене дня и ночи именно в моей игре «Легенда о Дряньке». Но в процессе написания, я нашла у себя в скрипте некоторые неоптимальные вещи, так что решила, что буду рассказывать не точь-в-точь, как было сделано в игре, а так, как я считаю, следует сделать лучше всего.

Свойства.

Начну с элементарного вопроса: чем отличается в первую очередь день от ночи? Правильно - освещением! Днем, как правило, у нас светло, вечером начинает темнеть, а ночью совсем темно. Цвет экрана настраивается довольно просто.



Еще день и ночь имеют такое свойство, как последовательность. То есть: сначала светает, светло, темнеет, темно, светает, светло, темнеет, темно, светает.. что-то я увлеклась.. короче, и так далее. Для наглядности, условно разделим сутки на 4 части: утро, день, вечер и ночь. В «Дряньке» именно такое разделение. Но, вообще, никто не мешает разделить сутки на 2 части: темно и светло, например, или на 24 части по часам, но не будем усложнять…

Сейчас будет важный момент: для реализации смены ночи была использована всего одна переменная!



Назовем ее «смена дня и ночи». Она у нас будет принимать значения:

0 – утро

1 – день

2- вечер

3 - ночь

И, наконец, еще одно немаловажное свойство – это параллельность. День и ночь меняются всегда параллельно с любым происходящим, с течением времени.

Поэтому система смены дня и ночи будет организована у нас как параллельный процесс. Заходим в базу данных игры, открываем вкладку «Общие события».



Назовём событие «день и ночь». Вызывается оно параллельно в течении всей игры.

Отсчитываем время.

Как многие уже поняли, мы будем менять время, а когда пройдет нужный промежуток времени – менять время суток. Отсчет времени я делаю с помощью функции «Ждать».


По истечении нужного промежутка времени нам необходимо менять нашу переменную, и в результате, как мы потом увидим, освещение будет меняться.



Здесь я сначала проверяю, чему равно значение переменной, если оно меньше или равно двум, то у нас - утро, день или вечер, иначе – ночь. В зависимости от этого мы переходим либо дальше по кругу (плюс 1), либо возвращаемся в начало - если у нас сейчас ночь, то нужно перейти на утро. Затем мы должны некоторое время подождать. От того, сколько мы будем ждать единиц, будет зависеть скорость перехода. В данном тестовом варианте я задала значение специально небольшим, всего 50 секунд, чтобы было наглядно видно, как меняется день и ночь.

Таким образом, данная конструкция будет работать в цикле, меняя последовательно значения переменной «0001: Смена дня и ночи»

Делаем нужное освещение.

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



Этот волшебный ивент будет работать у нас как источник света, я назвала его «текущая освещенность». Мой способ смены дня и ночи предполагает, что на всех картах, на которых происходит смена дня и ночи, должен стоять такой вот подобный ивент из этого семейства. Конечно, ставим его невидимым, под героем, параллельно. Внутри проверяем значения переменной с помощью ветвления. Если у нас значение переменной равно 0, то это утро – ставим освещенность яркую, Иначе - если 1, то день – нейтральная освещенность, Иначе, если 2, то вечер – начинает темнеть, Иначе, если 3, то ночь, ставим, чтобы было темно, как ночью.

Этот способ удобен тем, что на разных картах освещенность в зависимости от смены дня и ночи может быть разная. А неудобен тем, что везде нужно проставлять этот ивент, который задаёт освещенность.

Реакция на время суток.

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

Рассмотрю самый простейший вариант, девушку, которая круглые сутки находится на одном месте.


Как видете, у неё 4 вкладки, на каждой из них написано, чему равно значение переменной смены дня и ночи, и в зависимости от этого она произносит разные фразы. В приложенной демке я добавила еще несколько человек, некоторые из них появляются только в определенное время суток, то есть определенные вкладки у них отсутствуют.

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



Здесь мы сначала проверяем, равна ли наша переменная трём, то есть, наступила ли ночь. Если ночь наступила, то предлагаем ночлег, иначе предлагаем зайти попозже. В случае с ночлегом мы не забываем переключать переменную на значение 0 – утро. Иначе получится, что мы не спали.

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

Запуск.

Теперь мы можем запустить проект и увидеть это всё в действии! Чего-то, сутки меняются слишком быстро, не так ли? Не проблема, сейчас мы это объясним!



Вот, теперь порядочек, всё логично, всё работает!

Демка прилагается! Скачать

Если вам нравится - можете не стесняться и брать мои наработки для своих каких-нибудь проектов на RPG-мейкере. Рада, если мой опыт окажется вам полезным.

Напоследок ложка дёгтя: перед тем, как вставлять в игру такую систему как смена дня и ночи, хорошенько подумайте - а надо ли оно? Дело в том, что в определенных случаях эта "фишка" совсем не оправдана и может даже изрядно испортить игру. Не верите? А вот в "Дряньке" были неоднократные случаи, когда люди жаловались на то, что надоело, как везде темно, а ночью магазины закрыты, ничего не купить, а гостиницу не найти... Так что думайте сами, решайте сами. А как это делать, теперь вы знаете!
Последнее редактирование: 11 года 1 день назад пользователем DeadElf79.
Спасибо сказали: mephis, Герберт Уэст, 100500, DeadElf79

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Учитель
Больше
15 года 3 мес. назад - 15 года 3 мес. назад #38212 от Герберт Уэст
Превосходный туториал ;)
Однако, если в опции "Цвет экрана" сделать время перехода не 30, а, скажем, 100 десятых секунды, то переход получится более плавным и правдоподобным.
Иначе создаётся впечатление, что не солнышко зашло, а лампочка погасла (слишком резкий переход) :lol:
Естественно, автор об этом знает, это я для других написал, кто, может быть, ещё не догадался (для них же замечу, что этот туториал подходит не только для смены дня и ночи, но и, скажем, для изменения погоды).
Но мне, думаю, равно как и многим другим, мозолит глаза другая неприятность.
Я говорю про резкое исчезновение неписей (NPC).
Сам процесс смены времени суток отлично сбалансирован, на мой взгляд, это оптимальный вариант. Но такая, не побоюсь сказать, телепортация неписей как по мановению волшебной палочки несколько портит всё впечатление.
Я уже сам долго ломаю голову над тем, как заставить неписей идти к определённой точке.
Если нпс стоит весь день на одном месте, а вечером отправляется домой, то никаких проблем не возникает.
Для этого мы просто прописываем ему маршрут до дома.
Но если он весь день напролёт болтается по городу, а потом приходит время возвращаться в хату, то маршрут в данном случае не поможет.
Эх, почему они не сделали кроме команд "Идти к герою" команду "Идти к событию №..." :(
Всё было бы так просто.

Псевдофилософ
Последнее редактирование: 15 года 3 мес. назад пользователем Герберт Уэст.
Спасибо сказали: AnnTenna

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Коммерсант Проект месяца 1 место Проект месяца 2 место 3 место в Кодировке Ветеран Учитель Организатор конкурсов Даритель Стимкея Проект месяца 3 место 2 место Готв Победитель Сбитой кодировки 2 место Победитель конкурса 3 место
Больше
15 года 3 мес. назад #38214 от AnnTenna
Спасибо!
Ты прямо сказал то, о чем я забыла добавить, а потом уже только вспомнила!

Но такая, не побоюсь сказать, телепортация неписей как по мановению волшебной палочки несколько портит всё впечатление.

Мда, имеет место быть такой недостаток..ну что ж поделаешь. Я вот пока и не знаю, как сделать по-другому, чтобы плавненько было...:)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Переводчик Учитель
Больше
15 года 3 мес. назад - 15 года 3 мес. назад #38215 от mephis
Да, статья хорошая! Молодец, АннТенна!

Насчёт плавненько. Был бы это XP/VX — можно было б, скажем, вечером, заставлять NPC бежать домой, а как добегут — переключать у них личные свитчи, а утром обратно возвращать. Вообще, со скриптом дискретного времени можно было б целые расписания задвигать. Но вот с 2000/2003-м... Куча свитчей понадобится.

Надо ещё подумать, может другие варианты есть...

edit: Кстати, ссылка на демку почему-то не работает.

→ → ↓ ↑ Y
Последнее редактирование: 15 года 3 мес. назад пользователем mephis.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Коммерсант Проект месяца 1 место Проект месяца 2 место 3 место в Кодировке Ветеран Учитель Организатор конкурсов Даритель Стимкея Проект месяца 3 место 2 место Готв Победитель Сбитой кодировки 2 место Победитель конкурса 3 место
Больше
15 года 3 мес. назад - 15 года 3 мес. назад #38219 от AnnTenna
mephis, странно, только вчера проверяла, ссылка рабочая была. Вообще, демка лежит в нашем файлоархиве , просто я прямую брала оттуда, наверно, это нельзя так было делать - но вчера работала отменно. :whistle:

Герберт Уэст, да, кстати, соглашусь с тобой - при хорошей фантазии этот туториал можно использовать и для создания других переодических вещей, к примеру, погода, а если идти дальше - смена времён года даже, только тайлсеты нужно будет менять, а не освещение.
Последнее редактирование: 15 года 3 мес. назад пользователем AnnTenna. Причина: ага

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Учитель
Больше
15 года 3 мес. назад #38225 от Герберт Уэст
Второй способ неплохой...однако это ппц...
Придётся каждому прописывать маршрут до дома, так ещё и не в одном экземпляре.
Хотя...если попробовать совместить все способы, то может быть это и облегчит задачу.

Псевдофилософ

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 3 мес. назад #38227 от Злодей
кстати! дрянька - это хороший пример того, как смену дня и ночи делать НЕ СЛЕДУЕТ.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Учитель
Больше
15 года 3 мес. назад #38229 от Герберт Уэст
А в чём заключаются основные неудобства?
В общем, система нормальная, немного подкорректировать и всё становится просто замечательно...если не считать пропадающих неписей, но о них разговор отдельный.

Псевдофилософ

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 3 мес. назад #38237 от Злодей
Вот именно. Недостаток в призрачных неписях, и местах куда нельзя попасть днём, или ночью.
При таком готическом раскладе, надо сделать возможность спать, как в готике: до полудня, до утра, до полуночи.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Учитель
Больше
15 года 3 мес. назад - 15 года 3 мес. назад #38239 от Герберт Уэст

Злодей пишет: При таком готическом раскладе, надо сделать возможность спать, как в готике: до полудня, до утра, до полуночи.

Вот именно!!! Тем более, что это совсем несложно сделать. А то, что магазины ночью не работают,так это тоже не беда, на то есть фантазия и смекалка автора.
Магазины закрываются, а в подворотне появляется барыга и продаёт всё, что тебе нужно. Просто и практично.

Псевдофилософ
Последнее редактирование: 15 года 3 мес. назад пользователем Герберт Уэст.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 3 мес. назад #38244 от Злодей
А обход препятствий?
Проще уж пускай нпц исчезают при выходе из локации. Во время перемещения между картами.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Переводчик Учитель
Больше
15 года 3 мес. назад #38260 от mephis
Ну-ка давай не темни, 123-ий. Делись лёгким рецептом, если знаешь.

Задача следующая: некоторый NPC стоит в некотором месте, заранее неизвестном, т.е. обычный рандомно бродячий. Требуется в определённый момент времени заставить его прибежать в заранее ИЗВЕСТНУЮ точку, скажем, его дом. На пути у него могут быть как статичные препятствия в виде окружения, так и динамические, в виде идущей толпы и/или самого ГГ. Найденный путь необязательно должен быть оптимальным, но всегда конечным, т.е. он не должен где-то подвиснуть не зная как пройти.

Целевой мэйкер: 2000/2003, т.к. для XP/VX решение мне известно.

→ → ↓ ↑ Y

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Переводчик Учитель
Больше
15 года 3 мес. назад - 15 года 3 мес. назад #38263 от mephis
Подскажи, используя какие условия NPC сможет вылезти отсюда:
Code:
% - Препятствие @ - NPC ^ - дом NPC, куда он должен попасть ........ ....%... ....%.@. .^..%%%% ........

всётаки зная пару особенностей рм2к3, замечу, что было бы логично выбрать правильный уровень для этого объекта - скажем ниже игрока, а все остальные объекты, которые так или иначе могут помешать движению расположить на уровне игрока или выше.

Это он типа куриц и кошек будет, которые под ногами у ГГ могут ходить? Не, так не пойдёт. Ну накрайняк в маршруте можно включить полную проходимость ивенту, но результат тоже будет некошерный — с бегущим сквозь стены NPC.


edit: Тьху, долбанная подсветка синтаксиса! Ну почему нельзя моноширинный шрифт в неё поставить?

→ → ↓ ↑ Y
Последнее редактирование: 15 года 3 мес. назад пользователем mephis. Причина: заменил символы

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 3 мес. назад #38265 от James
Статья хорошая, многим может пригодиться.
Только вот её бы в Энциклопедию - зря она что ли создана была?

На форуме её легко потеряют, в энциклопедии - куда позже.
Аннтенна, перенесёшь? Или мне перенести?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Переводчик Учитель
Больше
15 года 3 мес. назад #38266 от mephis
123th, ты пьяный что ли? Если ты выпил — на форум не пиши.

но кто то не тем местом читал видимо или даже не старался применить прочитанное к мозгу...

Это ты самокритично.

если ты не в состоянии сам код написать то я за тебя его писать не буду.

Нафиг мне твой код сдался :laugh: Простыми словами опиши — "если, то" — т.е. твой текст меня вполне устраивает.

Ты сказал, что сделать из любой точки маршрут легко. Но, то что ты предлагаешь — это полная, извиняюсь, херня.

Если в моём примере сверху NPC поставить одно препятствие, он по твоему алгоритму никогда не выйдет.

идти вверх, пока значение у больше 0 и х больше 3
если у = 0 идти влево пока х больше 3
если х =< 3 идти вниз пока у меньше 4
если у=4 и 1<х=<3 идти влево
если у=4 и х=1 идти вверх
если у=3 и х=1 исчезнуть в двери.

Code:
% - Препятствие @ - NPC ^ - дом NPC, куда он должен попасть ........ ....%.%. ....%.@. .^..%%%% ........


Так скажи — "сморозил херню, как сделать не знаю".

→ → ↓ ↑ Y

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Учитель
Больше
15 года 3 мес. назад - 15 года 3 мес. назад #38267 от Герберт Уэст
Я вообще немного в этом разбираюсь, так что извините, что лезу, но...
в инструменте "двигать событие" можно поставить условие "игнорировать препятствие", при этом обычно нпс начинает обходить все препятсятвия, которые ему встречаются. Если его поставить, то, быть может, вышеизложенный алгоритм сработает.

Псевдофилософ
Последнее редактирование: 15 года 3 мес. назад пользователем Герберт Уэст.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Переводчик Учитель
Больше
15 года 3 мес. назад #38268 от mephis
Герберт, ты про эту галку?
[IMG

Соль её не в том, что ивент начинает обходить препятствие, а в том, что если какой-то из пунктов маршрута выполнить нельзя, то просто выполняется следующее действие маршрута. При отключенной галке, соответственно, выполнение команды остановится, пока препятствие не исчезнет.

У Злодея, например, с этим был связан жесточайший баг в его ООР3 с полным зависанием игры.

Здесь эта фишка не сработает, потому что она только для маршрута, а у нас тут условия в основном, а команда "Двигать событие" выполняется только для одного шага (в выбранном направлении). Следовательно, что будет ивент ждать, что не будет — стена с места не сойдёт.

Или сработает, но нужно какое-то другое её применение... :dry:

→ → ↓ ↑ Y

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Переводчик Учитель
Больше
15 года 3 мес. назад #38269 от mephis
Ну почему долбанный Входомозг сделал команду "Шагнуть к Игроку", но не сделал "Шагнуть к Ивенту"??? Ух, гады.

→ → ↓ ↑ Y
Спасибо сказали: Злодей

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Учитель
Больше
15 года 3 мес. назад - 15 года 3 мес. назад #38271 от Герберт Уэст
Да, это бы решило много проблем.
Эй, Cherryyy? Куда он пропал? Надо ему намекнуть, чтобы занялся этой проблемкой.
ЗЫ. Кстати, ты личку смотрел? Я тебе там кое-что скинул.

Псевдофилософ
Последнее редактирование: 15 года 3 мес. назад пользователем Герберт Уэст.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Учитель
Больше
15 года 3 мес. назад - 15 года 3 мес. назад #38279 от Герберт Уэст
Вот носа попрошу не касаться :angry:
Теоретически я понял, что ты имеешь в виду. Идея, признаться, впечатлила, если не вдаваться в подробности.
Но, вот, практически я себе пока что плохо представляю, как это сделать, но это, опять же, по причине своей собственной неопытности в подобных вопросах, я этого не отрицаю.

Псевдофилософ
Последнее редактирование: 15 года 3 мес. назад пользователем Герберт Уэст.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.138 секунд
Работает на Kunena форум