Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Квесты (https://forum.antichat.xyz/forumdisplay.php?f=112)
-   -   eQuestEngine - движок для создания квестов (https://forum.antichat.xyz/showthread.php?t=104252)

eLWAux 02.02.2009 00:15

eQuestEngine - движок для создания квестов
 
PHP код:

/* eLwaux(c)2009
  * eQuestEngine
  * v1.2stable
  */ 

eQuestEngine
версия: 1.2stable

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

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

Основние возможности:
  • использует для хранения данных базу MySQL
  • поддержка нескольких квестов на одном сервере
  • автоматическая инсталляция движка [с помощью install.php]
  • поддержка графических тем
    http://i066.radikal.ru/0902/bc/51f822f5464et.jpghttp://s45.radikal.ru/i109/0902/02/f468e1f94edbt.jpghttp://s59.radikal.ru/i166/0902/6a/cc0515592aa9t.jpghttp://s53.radikal.ru/i141/0902/40/85fe1f69887et.jpg
    http://i067.radikal.ru/0902/e7/ab3de8ba974ct.jpghttp://s57.radikal.ru/i156/0902/8e/3006724a7304t.jpghttp://s39.radikal.ru/i086/0902/8b/7ab9c28fb5d2t.jpg
    http://i057.radikal.ru/0903/af/a2b51f8b8a4bt.jpghttp://s40.radikal.ru/i088/0903/e4/0636c45ee2fet.jpg
  • присутствует админка, с помощью которой можно:
    • посмотреть инфо об сервере
    • изменять язык
    • смотреть список доступных скриптов
    • проверять целесность системы
    • разрешать \ запретить сертификаты
    • актив \ деактивировать капчу
    • запретить 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]
    ] Release

http://uasc.org.ua/files/eQv2.rar

тест: 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/,
  1. создаем папку в ./quests с именем квеста.
  2. там создаем файл index.txt с содержимим:
    Код:

    первая строчка - название квеста
    все остальные строчки - описание

  3. Для анти-хак защити создать надо .htaccess с текстом:
    Код:

    deny from all
  4. А теперь можно и делать свои уровни )
    • первый уровень - 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!"
  5. все)
    заходи в адмику, в раздел с квестами и вибирай новий квест)

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

De-visible 02.02.2009 01:00

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

eLWAux 02.02.2009 01:09

Цитата:

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

по-любому легче на готовом движку, чем с нуля.
тем более я гарантирую 99% безопасность ;)

eLWAux 15.02.2009 21:32

UPDate to v0.2
  • добавил несколько тем:
  • сделал нормальную 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

Цитата:

Сообщение от Ded MustD!e
добавь капчу при регистрации

капча уже есть ;)
в админке ставим опцию использовать капчу:
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

Цитата:

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

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

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

eLWAux 18.07.2009 15:55

Цитата:

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

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

Цитата:

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

будет!
я вот я подумал, можна сделать анти-брут защиту,.. и бан давать на минут 10.. опцию можна будет вкл\выкл в админке

H1Z 18.07.2009 17:28

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

eLWAux 18.07.2009 18:13

H1Z, + ) я то написал в пред. посте ))

H1Z 18.07.2009 19:56

Цитата:

Сообщение от eLWAux
H1Z, + ) я то написал в пред. посте ))

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

eLWAux 20.07.2009 13:41

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

СКАЧАТЬ

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

Цитата:

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

ето зависит от теми.
в каждой теме есть файл admin.html, и автор сам задает расположение елеметнов. по дефолту они по центру.
хотя да, изменю.. сделаю чтоб по-дефолту были справа они.

Цитата:

Сообщение от FireFenix
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

Цитата:

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

молодец :) спасибо что взялся и сделал, а то у самого никак руки не дойдут ;)

wadya 30.09.2009 01:18

И тут Семёна понесло... =)
http://rapidshare.com/files/28665181...1.1.2.rar.html
MD5: 2A7D5CDE9C6602EB9B7FBAFF59B9DB37

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

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


Время: 11:35