Войти на сайт

Авторизация, ждите ...
×

ТЕМА: (XP) ARK Quest Book

(XP) ARK Quest Book 13 года 11 мес. назад #32242

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Доброго всем времени суток. Хочу представить один из моих пока еще не публиковавшихся скриптов, а точнее скрипт создающий книгу заданий.

Название: ARK Quest Book
Автор: Arykray
Версия: 1.0.2 от 09.05.10 (Вполне работаспособная, просто не реализованы все задумки.)
Дата: 12.09.09
Скриншоты:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Демо: Выложу чуть позже!

Ну что ж приступим. Первый скрипт Module_Quest - это в своем роде база всех заданий.
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Скрипт Scene_Quest - Объеденяет в себе 4 класса: Window_QuestConmmand, Window_Quest, Window_QuestHelp и Scene_Quest
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Скрипт Window_Add-on включает в себя дополнение некоторых базовых окон. В скрипт вошли классы: Window_Gold, Window_PlayTime, Game_Map, Window_Location
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Скрипт Scene_Add-on включает в себя дополнение некоторых базовых сцен. В скрипт вошли классы: Scene_Title, Scene_Menu, Scene_Save, Scene_Load
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

И последний скрипт Font - содержит рекомендуемые настройки шрифта:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Синтаксис задания:
Quest = [status, name, customer, location, description, requirement]
где i - порядковый номер задания.
status - управляющая переменная которая может принимать числовые значения: 0 - задание не получено; 1 - задание активно; 2 - задание выполнено; 3 - задание провалено, 4 - отключает отображение задания.
name - Название задания.
customer - Заказчик, существо которое дало задание.
location - Локация, место в котором было получено задание.
description - Описание задания.
requirement - Требования для выполнения.
Управления скриптами происходит следующим образом:
В ивентах на последней вкладке выбираем Script в открывшемся окне пишем комманды на подобие этой:
$quest[0][0] = 1 - это означает, что ключу status задания с идентификатором 0 будет присвоено значение 1 (активно).
$quest[1][5] = "Помогите кузнецу" - изменит требование второго задания с "Поговорите с кузнецом" на "Помогите кузнецу".
Чтобы локация задания получила необходимое значение можно испольховать следующую конструкцию:
$quest[0][3]=$game_map.map_name.to_s - это означает что локация нулевого задания примет имя текущей карты.
Чем сложнее задача - тем проще ее не решать.

Последнее редактирование: 13 года 11 мес. назад от Arykray.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: caveman

(XP) ARK Quest Book 13 года 11 мес. назад #32247

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
На первый взгляд выглядит не плохо, но я обязательно найду баги.

1. Константы? нельзя создавать задания динамически?
2. array[j] как-то не привычно, array[i,j] - намного привычней и читабельний

offtop
в опере не удобно
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 13 года 11 мес. назад от dark32.
Администратор запретил публиковать записи гостям.

(XP) ARK Quest Book 13 года 11 мес. назад #32248

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Если я правильно понял... задания можно создавать на лету в событиях добавляем код $quest[n] = [1, "Название задания", "Заказчик", "Локация", "Описание", "Требования"]
где n - номер задания (если задание с таким номером уже существует оно будет заменено).
2. array[j] как-то не привычно, array[i,j] - намного привычней и читабельний
это многомерный массив где i номер эллемента массива заданий, j номер эллемента массива описания задания. Попробуй к примеру в каком либо событии вставить код print $quest[2]
Чем сложнее задача - тем проще ее не решать.

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

(XP) ARK Quest Book 13 года 11 мес. назад #32249

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
1.ясно. ты динамически их изменяешь, но не создаёшь
Например я хочу создать задание, не зная номера последнего задания, как мне это сделать.
(не обязательные задания, которые могут браться в любой момент)

2. привык на многих других языках видеть array[i,j,k, и т.д.] для многомерных массивов. Это дело вкуса.

Предлагаю хранить данные заданий в текстовом файле, вне скрипта. Так проще будет их редактировать.
И предлагаю переименовать глобалку $quest в $game_quest, просто для красоты, а то $game_system, game_switches, game_variables, $game_self_switches и вдруг $quest

Радует, не используешь Хеш.
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 13 года 11 мес. назад от dark32.
Администратор запретил публиковать записи гостям.

(XP) ARK Quest Book 13 года 11 мес. назад #32250

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Я уже думал о том, чтобы хранить задания в файле *.rxdata но туда возможно поместить только данные введенные непосредственно в модуль заданий. Созданные на лету туда не сохраняются(((

Я похоже не дописал мысль...
Если я правильно понял... задания можно создавать на лету в событиях добавляем код $quest[n] = [1, "Название задания", "Заказчик", "Локация", "Описание", "Требования"]
где n - номер задания (если задание с таким номером уже существует оно будет заменено).

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

Последнее редактирование: 13 года 11 мес. назад от Arykray.
Администратор запретил публиковать записи гостям.

(XP) ARK Quest Book 13 года 11 мес. назад #32251

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
Вот, и в списке заданий будет пустое место на его место. Или я ошибаюсь?

Я же предлагаю создать новый тип данных(Class), который будет состоять из нужных тебе строк и динамически они (строки) будут изменятся, после каждого изменения сохранять в файл, при загрузки - загружать из файла. Можно не создавать новый файk, а пихать всё в сохранёнку. Class в отличаи от Module может менятся.
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 13 года 11 мес. назад от dark32.
Администратор запретил публиковать записи гостям.

(XP) ARK Quest Book 10 года 3 мес. назад #66640

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Скрипт работает!!!
Чем сложнее задача - тем проще ее не решать.

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

(XP) ARK Quest Book 10 года 3 мес. назад #66998

  • caveman
  • caveman аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1274
  • Спасибо получено: 1307
  • Проект года 1 местоПаладинОрганизатор конкурсовПрограммист RubyПроект месяца 3 местоПроект месяца 1 местоРазработчик3 местоПроект года 3 местоПроект месяца 2 место
Благодарочка.
Пробежав по нету, сходу ничего приличней для XP не нашел, подкручу под себя немного, а автора, конечно же впишу в титрах или как еще.
Администратор запретил публиковать записи гостям.
Модераторы: NeKotZima
Время создания страницы: 0.489 секунд