PDA

Просмотр полной версии : eQuestEngine - движок для создания квестов


eLWAux
02.02.2009, 00:15
/* eLwaux(c)2009
* eQuestEngine
* v1.2stable
*/

eQuestEngine
версия: 1.2stable

Системные требования: сервер с установлеными php+mysql

eQuestEngine это движок, предназначен для создания квестов на любую тематику(!), обладающий большими функциональными возможностями.
Движок может быть интегрировать практически в любой существующий дизайн, и не имеет никаких ограничений по созданию шаблонов для него.

Основние возможности:

использует для хранения данных базу MySQL
поддержка нескольких квестов на одном сервере
автоматическая инсталляция движка [с помощью install.php]
поддержка графических тем
http://i066.radikal.ru/0902/bc/51f822f5464et.jpg (http://radikal.ru/F/i066.radikal.ru/0902/bc/51f822f5464e.jpg.html)http://s45.radikal.ru/i109/0902/02/f468e1f94edbt.jpg (http://radikal.ru/F/s45.radikal.ru/i109/0902/02/f468e1f94edb.jpg.html)http://s59.radikal.ru/i166/0902/6a/cc0515592aa9t.jpg (http://radikal.ru/F/s59.radikal.ru/i166/0902/6a/cc0515592aa9.jpg.html)http://s53.radikal.ru/i141/0902/40/85fe1f69887et.jpg (http://radikal.ru/F/s53.radikal.ru/i141/0902/40/85fe1f69887e.jpg.html)
http://i067.radikal.ru/0902/e7/ab3de8ba974ct.jpg (http://radikal.ru/F/i067.radikal.ru/0902/e7/ab3de8ba974c.jpg.html)http://s57.radikal.ru/i156/0902/8e/3006724a7304t.jpg (http://radikal.ru/F/s57.radikal.ru/i156/0902/8e/3006724a7304.jpg.html)http://s39.radikal.ru/i086/0902/8b/7ab9c28fb5d2t.jpg (http://radikal.ru/F/s39.radikal.ru/i086/0902/8b/7ab9c28fb5d2.jpg.html)
http://i057.radikal.ru/0903/af/a2b51f8b8a4bt.jpg (http://radikal.ru/F/i057.radikal.ru/0903/af/a2b51f8b8a4b.jpg.html)http://s40.radikal.ru/i088/0903/e4/0636c45ee2fet.jpg (http://radikal.ru/F/s40.radikal.ru/i088/0903/e4/0636c45ee2fe.jpg.html)

присутствует админка, с помощью которой можно:

посмотреть инфо об сервере
изменять язык
смотреть список доступных скриптов
проверять целесность системы
разрешать \ запретить сертификаты
актив \ деактивировать капчу
запретить javascript:alert админам
запретить \ разрешить регистрацию
заблокировать квест
изменять уровни \ задиния \ подсказки
установить использование рандомного пароля юзерам
разрешать \ запретить использование ПМ
разрешать \ запретить смайлики в ПМ'ках
установить максимальную длину одного ПМ сообщения
изменять сообщение - приветствие ногому зарег. пользователю
управлять пользователями
изменять уровень
Бан \ анБан
делать из юзера админа
удалять юзера из БД
удалять всех пользователей
добавлять нового юзера
смотреть хеш пароля (PassCRC)
управлять ПМ
смотреть всю переписку пользователей
удалять ПМ'ки (все \ несколько \ одну)
отправлять ПМ любому юзеру
СПАМить всех пользователей :D
управлять квестами
активировать новый квест
смотреть инфу об любом квесте
управлять темами
смотреть предпросмотр темы
активировать
antи-Хак защита
анти-Брут защита
защита от детей ;)
возможно давать подсказки после N-ной неверного ответа
поддержка шаблонов
возможность шифровать пароли пользователей
В планах:

использование технологии AJAX
добавить побольше тем


в архиве есть несколько примерочных квеста:
- тестовый квест
- HQ_09 (https://forum.antichat.ru/thread129518.html)

changelog
-=-===========------===============-==-==---=------==-

[version 1.2]
] update <?php
] added AntiCheted
] added Attemps & Helps
] added Admin can now modif quest levels
] added Anti-Bruted

[version 1.0 Final]
] update all engine
] added INSTALL.php
] added graphic statistic ./stat.php
] added PrivateMessages (PM)
] added themes, quests, etc
] added captcha protection
] added language support
] added certificates
] added QuestBlock item
] added smiles in pm
] added "Hello PM"
] modifed random passw gen
] modifed pass crypt now: md5(md5(md5(pass)))
] modifed admin panel
] modifed anti-Hack mode
] modifed settings save area
] modifed quest-level structure

[version 0.3 Stable]
] modifed structure (added "core/" folder)
] added themes: black, blackbox, HQ_09


[version 0.2]
] added "[preview]" themes in admin panel
] added $Q_themepic in config.php
] added 5 themes
] modifed anti(SQL & XSS) filter
] fixed: level.php?c[]=p (thx: mr.The)

[version 0.1]
] Releasehttp://uasc.org.ua/files/eQv2.rar

тест: http://poma.org.ua/quest/ (http://poma.org.ua/quest/)

eLWAux
02.02.2009, 00:16
faq по установке движка

открыть core/install.sql:
и сделать замену NUL, на NULL,

Для установки нужен сервер с установлеными php+mysql.
Подходит практичеки любой бесплатный хостинг
(https://forum.antichat.ru/showthread.php?t=64764
http://www.zemskov.ru/free_hosting.html)

сперва редактируем ./core/config.php.

http://ваш_сайт/install.php
там вводим логин,пароль админа.
жмем кнопку и смотрим результат.
если все прошло гладко, вас перекинет на главную страницу.

заходим в админку, используя логин:пароль админа,
и там меняем квест, тему и\или другие настройки.

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

eLWAux
02.02.2009, 00:16
faq как сделать свою тему
смотрим в любую тему , которая идет вместе с движком,
и на ее основе делаем свою ;)

faq как сделать свой квест
все квести хранятса в папке ./quests/,


создаем папку в ./quests с именем квеста.
там создаем файл index.txt с содержимим:
первая строчка - название квеста
все остальные строчки - описание
Для анти-хак защити создать надо .htaccess с текстом:
deny from all
А теперь можно и делать свои уровни )
первый уровень - 1.html
второй - 2.html
99уровень - 99.html
и так далее )
содержание X.html :
первая строчка: правильние ответы, через |
вторая строчка: текст, который виводится при неправильном ответе
все остальное - текст квеста.
и в тексте на забиваем добавить форму для отправки ответов!!
если ответ один, тогда просто пишем {SEND_FORM}
пример левела 1:
1.html
good_answer
bad answer! try again!
Hi! This is first level.
{SEND_FORM}
В этом уровне правильный ответ "good_answer".
когда юзер вводит неверный ответ, он увидет "bad answer! try again!"

пример левела 2:
2.html
good_answer1|good_ans2
no-no-no! try again!
Hi! This is second level.
<form method="POST">
<input type="text" name="answer1" value="пиу1"><br/>
<input type="text" name="answer2" value="пиу2"><br/>
<input type="submit" value="тынц" class="button">
</form>

В этом уровне правильные ответи: "good_answer" и "good_ans2"
когда юзер вводит неверный ответ, он увидет "no-no-no! try again!"

все)
заходи в адмику, в раздел с квестами и вибирай новий квест)


удачи!
если что, я всегда готов ответить на ваши вопроси в етой теме!

De-visible
02.02.2009, 01:00
Не в обиду конечно, но если и делать квесты то явно не по шаблону...и не по готовым двигам ИМХО...

eLWAux
02.02.2009, 01:09
Не в обиду конечно, но если и делать квесты то явно не по шаблону...и не по готовым двигам ИМХО...
по-любому легче на готовом движку, чем с нуля.
тем более я гарантирую 99% безопасность ;)

eLWAux
15.02.2009, 21:32
UPDate to v0.2


добавил несколько тем:

античат.тема
http://i067.radikal.ru/0902/e7/ab3de8ba974ct.jpg
вконтакте.тема
http://s39.radikal.ru/i086/0902/8b/7ab9c28fb5d2t.jpg

сделал нормальную anti(SQL,XSS)
добавил в админку несколько ф-ций

"preview" для тем
возможность on/off уведомлений
возможность on/off предосмотра (preview) тем
возможность on/off favistable
возможность on/off шифрования паролей

исправил мелких несколько ошибок
обнови пост "faq как сделать свой квест"

-Hormold-
24.02.2009, 23:48
Отлично сделано.
Думаю в паблик.
Из ROA мало кто юзать будет.
Мой движок вообще г. :O

eLWAux
25.02.2009, 00:49
добавил еще тем и несколько простих квестов для примера

.Slip
10.05.2009, 11:48
Привет из РОА. Ап

Krist_ALL
10.05.2009, 13:02
Хорошая идея ТС, а главное полезная! Еще не тестил. Позже. Совет: делай как можно гибче движок. И попроще систему создание уровней. Не редактировать пхп файл,а например в тхт записывать вопросы и ответы в специальной структуре. Вот. )

banana
25.05.2009, 15:55
Можно ссылку где скачать

eLWAux
25.05.2009, 18:28
http://multi-up.com/58861

eLWAux
17.07.2009, 21:00
ап!
последный релиз! stable версия!
обновил 1й, 2й пост.

http://multi-up.com/118180

з.ы.: пример движка:
https://forum.antichat.ru/newpostinthread129518.html

Ded MustD!e
17.07.2009, 23:11
добавь капчу при регистрации

eLWAux
17.07.2009, 23:25
добавь капчу при регистрации
капча уже есть ;)
в админке ставим опцию использовать капчу:
http://s14.radikal.ru/i187/0907/a8/3e471b125ed8.jpg
и смотрим на главную:
http://i022.radikal.ru/0907/ed/6a9ebadec76f.jpg

FireFenix
18.07.2009, 00:34
Двиг поставил, посмотрел....
Хотелось бы отметить несколько минусов:

1) Оформеление
а) При запуске скрипта, с настроенным php по дефолту (Apache 2.2.11 + PHP 5.2.10), половину кода отобразилось как текст из-за тега "<?"
Думаю лучше было бы использовать "<?php" на всякий случай =)
б) эффект смены скрипта немного сбивает с толку, т.е. расположение эелментов меняется и резкий взрыв цветов :) => использование html шаблонов было бы полезно
в) не плохо было бы добавить управление квестами + задниями квестов, где можно было бы добавить квест или изменить ответ, последовательность и т.д.

2) Посотрел БД
а) не использование индексов - плохой знак, как отсюда вытекающее - желательно бы ссылаться на id строки, а на не какие-то поля
б) раз создана БД, то наверное лучше было бы хранить всю локальную информацию квестов в ней
в) немного напрягает излишняя экранизации в mysql запросах

3) Бегло просмотрел код
а) function query($whot) - улыбнуло :)
б) думаю для дальнейшего развития и правил хорошего кода - все конфиги типа $this->name, $this->host определить к примеру в $this->cfg->db['name'], т.е. переменные назначить в свою рабочую область, что думаю повысит понимание кода =)
в) также правило хорошего кода - html отдельно от исполняемого кода => желательно использовать бы html шаблоны
г) кое-где для читабильности лучше бы юзать switch вместо if и передавать одним параметров (например сортировку) =)
б) для универсальности, лучше вынести код обработки url отдельно, и через инклюды вызывать функции, которые тоже желательно бы разбить на ещё более составляющие группы файлов
е) в некоторых местах бы не помешала оптимизация кода и выкидывание лишнего кода :)
ж) Отсудствие комментариев и не сгруппированности переменных, немного сложно уловить суть того или иногда кусочка кода

Это было сугубо моё мнение, поэтому не обязательно брать его на заметку и кидать в меня помидорами =)

P.S. Готов помочь в создании и тестировании движка ^_^

FireFenix
18.07.2009, 00:51
Не в обиду конечно, но если и делать квесты то явно не по шаблону...и не по готовым двигам ИМХО...
Вообще-то ввод, вывод, хранение информации о квестах лучше хранить в каком-либо двиге, т.к. для каждого квеста обычно пишется двиг повторяющий другие
А вот сами задания - на сколько хватит фантазии и умений

P.S. Если так судить, то квесты нужно делать как HP. Официальный квест для Админов и как реклама серваков HP Blade
Всё как положено, анимация, картинки, русская озвучка, сюжет, консоль :D http://torrents.ru/forum/viewtopic.php?t=1256736

eLWAux
18.07.2009, 15:55
Двиг поставил, посмотрел....
Хотелось бы отметить несколько минусов:

1) Оформеление
а) При запуске скрипта, с настроенным php по дефолту (Apache 2.2.11 + PHP 5.2.10), половину кода отобразилось как текст из-за тега "<?"
Думаю лучше было бы использовать "<?php" на всякий случай =)
б) эффект смены скрипта немного сбивает с толку, т.е. расположение эелментов меняется и резкий взрыв цветов :) => использование html шаблонов было бы полезно
в) не плохо было бы добавить управление квестами + задниями квестов, где можно было бы добавить квест или изменить ответ, последовательность и т.д.

2) Посотрел БД
а) не использование индексов - плохой знак, как отсюда вытекающее - желательно бы ссылаться на id строки, а на не какие-то поля
б) раз создана БД, то наверное лучше было бы хранить всю локальную информацию квестов в ней
в) немного напрягает излишняя экранизации в mysql запросах

3) Бегло просмотрел код
а) function query($whot) - улыбнуло :)
б) думаю для дальнейшего развития и правил хорошего кода - все конфиги типа $this->name, $this->host определить к примеру в $this->cfg->db['name'], т.е. переменные назначить в свою рабочую область, что думаю повысит понимание кода =)
в) также правило хорошего кода - html отдельно от исполняемого кода => желательно использовать бы html шаблоны
г) кое-где для читабильности лучше бы юзать switch вместо if и передавать одним параметров (например сортировку) =)
б) для универсальности, лучше вынести код обработки url отдельно, и через инклюды вызывать функции, которые тоже желательно бы разбить на ещё более составляющие группы файлов
е) в некоторых местах бы не помешала оптимизация кода и выкидывание лишнего кода :)
ж) Отсудствие комментариев и не сгруппированности переменных, немного сложно уловить суть того или иногда кусочка кода

Это было сугубо моё мнение, поэтому не обязательно брать его на заметку и кидать в меня помидорами =)

P.S. Готов помочь в создании и тестировании движка ^_^
1.a) уже изменяю
1.б) не понял )
1.в) спасибо. тоже в процессе
2.а) зачем? как на меня - все нормально..
2.б) думаю нет. процесс создания квеста надо сделать максимально простим и динамическим.
2.в) поподробней пожалуйста )
3.а) банально и просто ;)
3.б) вообще-то я не рассчитывал на то, чтоб другие смотрели в код ))
$this->eLng, $this->UInfo, $this->QInfo, ... я делал все так, что в первую очерь, МНЕ было удобно модифицировать и менять код.
3.в) html-щаблоны у меня - это темы )
3.г) изменю.., хотя это на качество\etc не повлияет )
3.д) мой стиль - все одном месте )
3.е) 3.г
3.ж) стоп-стоп. архив не для девелоперов )
все кто, хочет изменить код - мне в аську пишут )

P.S. Если так судить, то квесты нужно делать как HP. Официальный квест для Админов и как реклама серваков HP Blade
Всё как положено, анимация, картинки, русская озвучка, сюжет, консоль
постараюсь до завтра сделать такой же на своем движке ;)
ну не 1 в 1, но максимально похож :)

FireFenix
18.07.2009, 16:05
Ещё пришла идея, чтобы после нескольких неверных ответов на главный вопрос, которые промежуточные ответы на минизадание, выводилась подсказка....
Как бы если уже все варианты перебирая - наставить человека на истинный путь =)

eLWAux
18.07.2009, 16:07
Ещё пришла идея, чтобы после нескольких неверных ответов на главный вопрос, но промежуточный ответ на минизадание, выводилась подсказка....
Как бы если уже все варианты перебирая - наставить человека на истинный путь =)
будет!
я вот я подумал, можна сделать анти-брут защиту,.. и бан давать на минут 10.. опцию можна будет вкл\выкл в админке

H1Z
18.07.2009, 17:28
Еще сделать бы защиту от сканеров типа xspider, nikto, nessus и др., чтобы банить кидисов.

eLWAux
18.07.2009, 18:13
H1Z, + ) я то написал в пред. посте ))

H1Z
18.07.2009, 19:56
H1Z, + ) я то написал в пред. посте ))
:) я читал этот пост перед созданием сообщения, но только я понял антибрут по своему. я думал что ты имел ввиду брут логинов.

eLWAux
20.07.2009, 13:41
Обновление!

во всех скриптах изменил тег на <?php
добавил анти-киддис защиту
добавил анти-брут защиту
добавил возможность подсказок
теперь админ может изменять уровень\подсказки\задание\ тветы прямо в админке
if => switch


СКАЧАТЬ (uasc.org.ua/files/eQv2.rar)

FireFenix
22.07.2009, 00:27
1) конфиг порадовал
$eQcfg['mysql']['debug']= False; // you will see all query'is
$eQcfg['debug'] = True; // mass debug

2) при инсталле табличка юзерс не добавилась =\
И как следствие при логине выбивает ошибка 500 Internal Error

скуль запрос

CREATE TABLE IF NOT EXISTS pref_users (
name text NOT NULL,
password text NOT NULL,
level text NOT NULL,
attemp int(11) NOT NULL,
last_attemp_time int(11) NOT NUL,
ip text NOT NULL,
reg text NOT NULL,
lastvisit text NOT NULL,
quest text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

last_attemp_time int(11) NOT NUL - неверно :)

3) Темы при смене разбегаются (т.е. позиция элементов меняется). Думаю лучше бы привести всё к одному положению и размеру картинок

4) Думаю ещё можно было бы ввести название квестов, и в админке выводить в столбик Level 10 - Злостный перл

eLWAux
22.07.2009, 00:48
3) Темы при смене разбегаются (т.е. позиция элементов меняется). Думаю лучше бы привести всё к одному положению и размеру картинок
ето зависит от теми.
в каждой теме есть файл admin.html, и автор сам задает расположение елеметнов. по дефолту они по центру.
хотя да, изменю.. сделаю чтоб по-дефолту были справа они.

4) Думаю ещё можно было бы ввести название квестов, и в админке выводить в столбик Level 10 - Злостный перл
хорошо, добавлю такую возможность.

за скуль запрос спасибо, я вручную вбивал)
завтра поправлю и заново залью.

Mil-Net
15.08.2009, 15:50
Так что с запросом

CREATE TABLE IF NOT EXISTS pref_users (
name text NOT NULL,
password text NOT NULL,
level text NOT NULL,
attemp int(11) NOT NULL,
last_attemp_time int(11) NOT NUL,
ip text NOT NULL,
reg text NOT NULL,
lastvisit text NOT NULL,
quest text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Кто знает как исправить?

Mil-Net
19.08.2009, 23:36
Так что не кто незнает как поправить таблицу?

wadya
29.09.2009, 10:37
в продолжении icq общения с автором:
- немного поправил последнюю версию движка (устранил некоторые опечатки)
- кому нада - качайте, не забывайте отписываться о багах =)
http://rapidshare.com/files/286369303/equest_w.rar.html
MD5: 111EAEC7E2C3B686449FC3D285DCB02C

eLWAux
29.09.2009, 17:19
в продолжении icq общения с автором:
- немного поправил последнюю версию движка (устранил некоторые опечатки)
- кому нада - качайте, не забывайте отписываться о багах =)
http://rapidshare.com/files/286369303/equest_w.rar.html
MD5: 111EAEC7E2C3B686449FC3D285DCB02C
молодец :) спасибо что взялся и сделал, а то у самого никак руки не дойдут ;)

wadya
30.09.2009, 01:18
И тут Семёна понесло... =)
http://rapidshare.com/files/286651810/equest_w_1.1.2.rar.html
MD5: 2A7D5CDE9C6602EB9B7FBAFF59B9DB37

Изменил install.php, теперь можно создавать конфигурацию при помощи вебформы.
Добавлена возможность создания БД.

В общем получайте ссылку. :)
ПЫСЫ:
В PHP и SQL я как и английском - "со словарем" :D , хотелось бы добавить пару фишек, если кто поможет - буду рад их добить:
1. Внесение данных о правильных ответах в БД:
- Имя юзера
- Время когда был дан правильный ответ
2. Возможность выдачи нескольких подсказок (например: наводящая, супернаводящая, меганаводящая), причем разделить выдачу подсказок от начала прохождения квеста временными интервалами (например:1я подсказка через 10 мин от начала, 2я через 20 минут, 3я через 30 минут).