На этих выходных хотим протестировать демона в более-менее реальных условиях и думаю на следующей неделе можно будет пробовать (серьёзные баги вроде бы уже отловил). Правда без статистики. Над ней сейчас Бакс активно работает.
не можешь летать - не мучай метлу!
Отслеживания игроков стреляющих по своим реализован в виде ещё одного плагина. Так что из списка пятидневной давности нереализованными фичами остались пункты 4 и 5. Займусь наверное интеграцией с DCG, а графический интерфейс не скоро появится...
не можешь летать - не мучай метлу!
Запущен тестовый сервер. il2.degunino.net:21001
В ближайшее время там будет нормальная миссия (сейчас там что под рукой было) и еще чуть дальше начнет появляться стата...
...И от полученных знаний скончался на месте
...И от полученных знаний скончался на месте
Крайний раз редактировалось Baks; 09.11.2006 в 18:23.
...И от полученных знаний скончался на месте
Записываюсь в бета(альфа)-тестеры
P_Scyther | CPU i7 2600K/MB Gigabyte Z68X-UD5-B3/RAM 16Gb/Video Gigabyte GV N66TOC-2GD/Thrustmaster Wartog/VKB pedals/TIR3pro
Короткий фак основанный на моём ответе г-ну CHIEF с Форемана. Некоторые из ответов потеряют свою актуальность в первом релизе.
Нужна фактически только БД (PostreSQL желательно для простоты установки) и выделенный сервер, всё остальное идёт с ним.Давай по пунктам для тупых:
1.Порядок установки Демона (Сам архив , какие доп.программы нужны?)
В папке cfg лежат daemon.properties, в котором нужно поменять "il2ds.folder" на путь по которому демон будет искать выделенный сервер (запомни что символ '\' в пути к серверу должен дублироватся). Ещё нужно будет поменять GameConsole.PORT и GameConsole.URL - порт и хост для соединения с консолью выделенного сервера.2.Какой файл отвечает за конфигурацию Демона(где пишется путь к серверу и путь к демону)?
Файл hibernate.cfg.xml отвечает за конфигурацию БД. Если пользоваться PostgreSQL то нужно поменять только " connection.url", "connection.username" и "connection.password".
Путь к карте (относительно папки Missions выделенного сервера) указывается в файле конфигурации для миссии (см. simple-mission.conf, [MAIN]->location).3.Как прописать путь до карты(есть-ли маплист) ?
Для начала нужно инициализировать БД необходимыми данными. Для этого копируется daemon.bat в init.bat и строка:4.Как его запускать ?
java -cp "%CLASSPATH%" ivanobulo.gametools.il2.daemon.impl.Daemon %*
меняется на:
java -cp "%CLASSPATH%" FillDataToDB
и запускается.
Если всё пройдёт без ошибки то и демон запущенный с помощью:
daemon.bat <список конфигураций для миссий через пробел>
5.Есть-ли ini файл для миссии , или что-то подобное где хранятся и настпаиваются параметы миссии(число доступных крафтов, число целей, приоритет целей, какая цель для какой команды(красная/синяя))?
Пока вроде все как запущу ,вопросы еще появятся....
Всё описывается в конфигурационном файле миссии. simple-mission.conf лучший пример.
Фактически минимальным конфигурационным файлом может быть такой:
[MAIN]
;Main mission settings
name=Simple mission
location=Net/dogfight/daemon/simple-mission.mis
teams=Red,Blue
mission_time=1200
;Team descriptions
[Red]
id=1
[Blue]
id=2
По этим пунктам думаю объеснения лишни - названия говорят сами за себя.
Что касается ресурсов. Есть 3 типа ресурсов:
1. playerResources - перечисляет секции (через запятую) для описания ресурсов игроков для всей карты или для какой-либо конкрутной местности. Для кажной секции доступны 3 свойства:
* 1. amount - кол-во
* 2. vital - true или false. Если true то миссия закончиться если этот ресурс будет полностью уничтожен.
* 3. location - формат "x y r". x,y - позиция, r - радиус
2. typeResources - перечисляет секции (через запятую) для описания ресурсов типов. Доступны такие свойства для секций:
* 1. type - тип ресурса. Все типы перечислены и будут искаться в табличке unit_type
* 2. amount - кол-во
* 3. vital - true или false. тоже что и для "playerResources"
* 4. location - тоже что и для "playerResources"
3. concreteTypeResources - почти тоже что и typeResources только вместо "type" у секции есть свойство "gameId" где чётко указывается ИДЕНТИФИКАТОР типа (таблица в базе unit_descriptor, поле game_id). Также есть свойство "weapon" где можно указать название оружия ("U3-MK108", "1sc500" и т.д.)
В секции команды (Blue, Red...) можно также указать свойство "objectiveDescriptors". В нём через запятую указаны секции описывающие задание для данной команды. В каждой такой секции доступны такие свойства:
1. target - само задание в формате записи ИЛа ("<задача (1 уничтожить, 6 защитить)> <тип (0-главная, 1 - дополнительная, 2 - скрытая)> <ждать/не ждать (0/1)> <сколько ждать в мин> <сколько процентов (500 - 50%)> <x> <y> <r>")
2. time_limit - лимит по времени (в минутах)
3. stopMissionIfComplete - (true|yes|no|false) Если "yes" или "true" то миссия закончится если данное задание будет выполнено
4. completePoints - сколько очков получит команда если выполнит это задание
5. failPenaltyPoints - сколько очков вычтут если провалит задание.
Есть ещё свойства но их пока лучше не использовать пока не доделаю поэтому их не описываю.
не можешь летать - не мучай метлу!
Поправочки, которые уже будут в альфа релизе
1. Бд может быть на данный момент любая из
HSQDB (потом скорее всего ее не будет, но для тестов нет необходимости в выделенном сервере)
MySQL
PostgreSQL
4. Для запуска 2 скрипта (для линукса соотвественно .sh)
instdb.bat - инициализация бд (типа инсталятора)
daemon.bat - запуск демона
ну и нужна Java >= 1.5
Крайний раз редактировалось Baks; 09.11.2006 в 18:26.
...И от полученных знаний скончался на месте
Не имею возможности выкладывать на sourceforge, по этому на webfile... будет лежать 14 дней, но думаю раньше мы его все таки в dowloads на sf положим
Изменения, никаких скриптов, запускать daemon.exe со списком conf файлов карт. initdb.exe - инициализация бд (не забыть в hibernate.conf.xml раскоментировать параметер
<property name="hbm2ddl.auto">update</property>
Для рабочей системы лучше его обратно закоментировать (демон быстрее будет стартовать и не убьет базу если ему вдруг покажется, что схема изменилась).
http://www.webfile.ru/1185433
... а ну еще драйвер соотвествующего jdbc кинуть в libs (например mysql connector/j 5.0)
Крайний раз редактировалось Baks; 09.11.2006 в 22:58.
...И от полученных знаний скончался на месте
Он там как раз для MySQL идет в поставке.
Синим - имя схемы в MySQL (базы)<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/jaydaemon?zeroDateTimeBehavior=convertToNull&characterEncoding=utf-8</property>
<property name="connection.username">user</property>
<property name="connection.password">password</property>
Красным - хост, обычно localhost
user и passwrod - соотвественно логин пароль в бд
Драйвер - это jar из архива, скачанный с mysql.org
Но на выходных сделаю раздельные пакеты:
1. Демон
2. Библиотеки
3. Настройки для
- MySQL
- HSQLDB
- PostgreSQL
...И от полученных знаний скончался на месте
Кирилл
Вероятно только в стате... там где будут сложные запросы... в самом демоне думаю различий не будет (во всяком случае бум стараться этого недопустить).
Для линуха все просто: в переменная CLASSPATH должна содержать cfg, data, patch/*.jar, modules/*.jar, libs/*.jar через ':' (звездочки быть не должно, нужно перечисления всего что есть, если есть perl/python, то может проще даже на нем написать, чем шел мучить) . Просто почему-то подумал, что нужна именно win версия (там к стати в svn линуховый скрипт есть, так что можно и им пускать, только вот там раскладка jar-ов другая)
...И от полученных знаний скончался на месте
Чего то не прет.
Пока добился только "Exception in thread "main" java.lang.NoClassDefFoundError: FillDataToDB"
Кирилл
Вот такой daemon.sh должен работать
#!/bin/sh
CLASSPATH="cfg:data"
for m in "patches modules libs"; do
for i in `find $m`; do
CLASSPATH="$CLASSPATH:$i"
done
done
echo $CLASSPATH
java -cp $CLASSPATH ivanobulo.gametools.il2.daemon.impl.Daemon $*
...И от полученных знаний скончался на месте
Блин, мистика, вчера ругался, сегодня все заново сделал - почти работает.
На текущий момент:
1. Не находил eventlog. Нашел, как он должен называться, создал руками eventlog.lst. У меня такого файла нет ни на сервере, ни в игре. Возможно, этот лог отключаем, я просто не помню за давностью лет.
2. Пока остановился на: [main] ERROR ivanobulo.gametools.il2.daemon.impl.Daemon - org.hibernate.HibernateException: hibernate.cfg.xml not found
Кирилл
...И от полученных знаний скончался на месте
Ура, завелось.
Внес в свой недостающую секцию
Не понял этого шага. Там есть соответствующий файл, байт в байт
Тут я откровенно сослил и ступил. После того, как переделывал утром, забыл переименовать файл, внести правильные значения для доступа к базе (постгрес), порта консоли сервера. Не захотел коннектиться по localhost, в явном виде указал ИП сервера. Почему так, не захотел разбираться.
Это понятно.
Кирилл