Подтверждаю вышеприведенная dll на 100 кб меньше чем стандартная из winxp SP2 rus но зато исправно работает под wine :)
ps. А как ты внутренние события выдернул? Или это только для ява девелоперов подсилу?
Вид для печати
Подтверждаю вышеприведенная dll на 100 кб меньше чем стандартная из winxp SP2 rus но зато исправно работает под wine :)
ps. А как ты внутренние события выдернул? Или это только для ява девелоперов подсилу?
Java + Asm девелоперу ;)
Это я хотел сделать отдельный сервер для linux только под java, т.к. например под 1.4 java фризов заметно меньше... а под 1.6 думаю было бы совсем хорошо (с ее escape analysis и продвинутым gc) ... но там таакой код :uh-e: что я отказался от этой затеи... (код неотрываем от opengl/sound/gui... )
Я клиента не трогал (хотя в принципе можно, ибо принцип запуска один и тот же). Все модификации только для сервера...
Жава там древнейшая и тормознейшая - 1.3 . Менять можно было до 4.06, сейчас для этого надо извращаться (из-за особенностей реализации защиты, детали приводить тут не буду)...
ЗЫ: к стати, java машину можно и сейчас заменить но только в пределах ветки 1.3, но ни один сервер с checkRuntime > 0 не пустит... для этого просто копируешь jre в папку игры и будет у тебя другая jvm (она у ила и так последняя из ветки 1.3).
А у тебя на Linux checkruntime>0 вообще работает? У меня всех выкидывал поголовно. По-этому стоит checkruntime=0, при таких настройках пересадка явы пройдет успешно?
Заменил DLL(сделал lowercase и положил в ~/.wine/drive_c/windows/system32) - сокет открывает, но в игре ничего не происходит. То есть появляется "Загружается карта" и тишина...
В консоли:
socket channel '1' start creating: 192.168.1.2:21000
Chat: --- hackzone joins the game.
socket channel '1', ip 192.168.1.2:21000, hackzone, is complete created
<В это время я долго жду пока "скачается" карта...>
<Жму отключиться>
socketConnection with 192.168.1.2:21000 on channel 1 lost. Reason:
Chat: --- hackzone has left the game.
Куда копать? файрвола нет. wine-0.9.33
Сервер заработал, но находится в состоянии "wait"
Какой серверкоммандер заюзать посоветуете? IL2SC не робит...
Здравствуйте...
Стоит FreeBSD и полностью рабочий сервер Ил-2... расскажите о настройке его под этой ОС и как им управлять с другого компбьютера (удаленно всмысле) из под винды обычной...
Вопрос:
Есть ли в принципе работающий под Linux какой нибудь серверкоммандер и где его можно взять?
запущен...
я запускаю так:
Содержимое файлика:Цитата:
screen -d -m -S il2 ./run_il2ds_408.sh
Цитата:
wineconsole c:\\Programme\\00dsserver_408m\\il2server.exe
Кто подскажет как командер под линуксом запустить? :rtfm:
коммандер:
для windows, freebsd, linux
Для windows
-----
качаем python http://www.python.org/download/
качаем pywin http://sourceforge.net/projects/pywin32/
после установки выполнить в командной строке: path C:\python\; %PATH%
в сервере confs.ini посмотреть и установить если неправильно:
[Console]
IP=20001 <<<<<<< порт Телнет.
IPS=10.0.0.5 <<<<<<< IP адрес сервера
в командере miniDaemon.ini исправить пути если надо
mission.time -время смены карты в секундах
ReportPeriod -через сколько секунд оповещать о том через сколько сменится карта
vote.percent -сколько голосов от играющих на сервере должны проголосовать для смены карты (в процентах)
в секции [Telnet] выставить хост и порт из confs.ini
missions.txt -прописать имя миссий без расширения лежащих в mission.dir
admin.txt -прописать ip админов
rand.txt -прописать пределы изменения погоды и времени суток на карте
запускаем сервер, после загрузки запускаем командер через run.bat
-----
Для freebsd
-----
тоже самое только коммандер берем под freebsd.
там единственное изменение в telnetCommunicator.py команда self.__tnC.acquire() вызывала зависание демона, без нее все нормально.
а в версии для windows виснет наоборот без нее, если кто знает почему так прозьба мне рассказать
-----
Для linux
-----
тоже самое только какая из версий заработает не проверено, одна из двух :)
_____________________________________
------------------------------------------
может кто допишет фич.
забыл указать:
miniDaemon модифицированная версия коммандера nullwar'a http://www.nullwar.com/info/soft
Поддерживаемые комманды:
<time -время до конца миссии
<map -название текущей и следующей миссии
<gunstat -меткость стрельбы
<vote -голосование за смену карты
Распознование админов по ip и команды для них
<kick<кого -кикнуть
<ban<кого -забанить
<maplist -список карт с номерами
<map<номер карты -загрузит нужную карту
поддерживается автогенерация погоды и времени суток.
какая версия пайтона?
попробуй заменить:
наКод:#check connection to telnet il2server
try: tc = TelnetCommunicator(config['Telnet']['host'], int(config['Telnet']['port']))
except:
print "Error: not connect to "+config['Telnet']['host']+":"+config['Telnet']['port']
exit(1)
finally:
pass
#--
Код:#check connection to telnet il2server
try: tc = TelnetCommunicator(config['Telnet']['host'], int(config['Telnet']['port']))
except:
print "Error: not connect to "+config['Telnet']['host']+":"+config['Telnet']['port']
#--
В самих файлах я еще тогда закоментировал две строки и демон запустился... Но почему то не загружает карту.Код:blabla@blublu:~$ python -V
Python 2.4.4
Т.е. с сервером соединяется, пишет "Осталось 59 минут", в консоли показывает подключения игноков... Но карту не загружает.
Что может быть?
пысы. Возможно нужен инишник для карты? Что в нем писать?
возьми telnetCommunicator.py из версии под freebsd, было такое висло при попытке получить лок self.__tnC.acquire() видимо это только под виндой надо.
не хочет...
Пробовал и виндовым и фришным. Причем сервер на команды отвечает (map, gunstat, vote и др). А карту не грузит :(
тогда в miniDaemon.ini стоит проверить пути. особенно относительный путь к картам mission.base.url
и посмотреть что пишет на консоль сервер ил-2
Видимо для описаний карт нужны .ini файлы? Потому как на нуллваре ини файлы присутствуют. Тогда как их писать?
Ибо при запуске rundaemon.sh получаю:
ERROR: Daemon:Exception raised: [Errno 2] No such file or directory: '/game/.wine/drive_d/IL2server/Missions/Net/dogfight/daemon/duel.ini'
Только что поковырял этот демон. Создалось полное ощущение, что эти ini-файлы вообще не нужны демону, как будто аттавизмы остались от нульвара, либо на возможное расширение функционала оставили. Но однозначно сказать не могу...все-таки познания в пайтоне у меня пока на зачаточном состоянии.
P.S. попробуйте подсунуть ему просто пустой файл duel.ini
да ini не нужны, забыл убрать строку, в miniDaemon.py удалите 96 строку self.__missionConf = IniFile(self.__config['MAIN']['mission.dir'] + self.__missionName + '.ini', )
Спасибо господа вирпилы за помощь и советы - запустил таки я миниДемона в работу! :) Немного потестил - правда, сразу оговорюсь, на своем тренировочном сервере, практически без нагрузки - 3-4 пилота и 5 карт в ротации. Работает, чертяка :D
Ось - Debian 4 Etch, il2 dedicated 4.08m. Вариант Демона - виндовый, в коде miniDaemon.py коментились строки: 96
и 466-468Код:# self.__missionConf = IniFile(self.__config['MAIN']['mission.dir'] + self.__missionName + '.ini', )
Заработало практически сразу все, были обычные для чайника косяки с прописыванием путей в miniDaemon.ini Сейчас там следующее:Код:# exit(1)
# finally:
# pass
Правда, несколько непонятна логика работы модуля, определяющего, админ ли на сервере. В файле admin.txt пишу IP машин, с которых заходит админ - по одному ип в строке - работает только последний в списке. Кроме того, сервак смотрит на внешку из под NATа - снаружи, с внешним IP захожу админом, из внутренней сети - пускает, но говорит "Вы не Админ!" - абидна,понимашь!Код:mission.base.url Net/dogfight/daemon/
mission.dir /game/.wine/drive_d/IL2server/Missions/Net/dogfight/daemon/
Может, быть доработать модуль, чтобы Админом считался юзверь, зашедший _С определенного ИП___И___С определенным ником ?
З.Ы. В коде miniDaemon.py в строке 443поменял наКод:self.__console.writeMessage("Слудующая карта: %s"%nextmap, None)
Уж больно глаз режет :ups:Код:self.__console.writeMessage("Следующая карта: %s"%nextmap, None)
Не совсем корректно использовать данный IP, лучше 127.0.0.5 - данный диапазон IP специально зарезервирован для обратных связей. У меня на Убунте 8.04 10.0.0.5 так и не сработал, заменил 127 - заработало! Демон для фряхи использовал. РЕСПЕКТ СОЗДАТЕЛЮ!!!:bravo::bravo::bravo::cool:
Я, конечно, категорически извиняюсь, но... понимаю тема старая и, видимо, все проблемы у народа решены (раз нет больше сообщений), но вот пришлось заниматься этой же проблемой.
В Линухе пока полный ноль... так только - смог уже запустить "лысый" сервер и вот вопросы...
1. Питона для Linux скачал... как его установить. Причем у меня в системе уже при инсталляции Питоновских хвостов полно (Debian 5.0.4)
2. Зачем еще качать Виндового Питона?
3. При выполнении инструкции (в терминале) path C:\python\; %PATH% выдает - команда не найдена?
4. При запуске, точнее прописке (может это и неправильный запуск) ~$ ~/miniDaemon/run.bat - Отказано в доступе.
Кто может помочь ламеру ? :ups:
Ну, в принципе, в основном вопрос снят. Один маленький - кто использует Демонов - кто фряшный, а кто простой и какие результаты.
Вот выше мой пост http://www.sukhoi.ru/forum/showpost....2&postcount=81 , если вкратце - то ось на сервере - Debian 4 Etch, il2 dedicated 4.09m, поднимал также и модовый вариант Ила на другом порту - управлял второй копией демона. Вариант Демона - виндовый, в коде некоторые исправления, описанные в вышеуказаном посте плюс корректировки от автора демона - см ниже, 82 пост. Нагрузка на сервер небольшая там человек 8 наверно было одномоментно, карты ротируются по времени, и вручную, командами, сервер работает круглосуточно. Процесс как Ила, так и демона запущен каждый в своем скрине. Падал процесс демона, ну не знаю, раза 3-4 за все время. Если какие подробности нужно - пиши, обсудим :)
Спасибо, Nike, естественно этот раздел весь проштудировал и не раз :D
вот как раз что-то с путями у меня и не клеится - как не прописывал - нет файла и хоть ты убей его... буду сейчас по буковке проверять :rtfm:
На всяк случай распишу поподробнее, про пути и команды запуска:
файлы серверной части Ила лежат по пути:
/game/.wine/drive_d/IL2server/
стартовый файл - экзешник запускаемый под вайном - il2server
соответственно запускаю процесс таким скриптом:
il2start
файлы демона лежат здесь:Код:#! /bin/bash
screen -d -m -S il2 wine d:/il2server/il2server
/game/miniDaemon/
стартовый скрипт - rundaemon.sh
соответственно запускаю процесс таким скриптом:
mDstart
содержимое файла miniDaemon.iniКод:#! /bin/bash
cd /game/miniDaemon
screen -d -m -S miniD ./rundaemon.sh
Главное правильно прописать во эти путиКод:[MAIN]
mission.base.url Net/dogfight/daemon/
mission.dir /game/.wine/drive_d/IL2server/Missions/Net/dogfight/daemon/
mission.time 3600
ReportPeriod 600
vote.percent 50
[DeathControl]
Limit 10
BanTime 240
BanTime1 360
BanTime2 420
BanTime3 180
[Telnet]
host 192.168.5.15
port 20001
mission.base.url
mission.dir
host по идее надо ставить 127.0.0.1, но у меня заработало с указанием внутреннего IP в локалке.
Запустили у себя под фришкой сервер 4.10, так же запущен минидеймон под неё же. Все вроде нормально, но примерно раз в 3 дня иногда и раньше минидеймон виснет(перестаёт реагировать на команды, нет ротации карт), перезапускаем опять все работает. Проблема пока не решена. Чем ему можно помочь?
Если проблема связана с пустыми и/или кириллическими именами пользователей, то в версии 4,10 сервера есть переменная filterUserNames, установив которую, можно отфильтровать пользователей. Цитирую из 4.10_Guide.pdf :
Player Name & Callsign Filtering
Server can filter out all non-latin & non-cyrillic characters from players name & callsign by
adding filterUserNames=1 to the [NET] section of conf.ini.
Только что проверил, добавление filterUserNames=1 в секцию [NET] файла confs.ini приводит к следующим результатам:
1. Наличие пробела либо другого не латинского либо не кириллического символа в нике пилота не мешает логину на сервер, НО в логах сервера наблюдается ОТСУТСТВИЕ пробела в нике пилота. Например ник Nike "Targon" приводится к виду NikeTargon
2. Наличие кириллических символов в нике пилота НЕ приводит к падению даймона, НО команды управления даемоном не проходят.
3. Даемон в данных условиях не падает.
Так же проверили у себя. По первому пункту та же самая картина.По второму и третьему нет результатов так как даймон вообще отказался запускаться с этой строкой. При удалении строчки filterUserNames=1 запустился, но опять же при входе на сервер с пробелом в нике останавливается. Не пойму почему результаты разные ведь юзаем мы одного и того же даймона и настройки все сделаны как описано в этой теме. Кстати всё таки почему conf.ini., куда делась s, опечатка?
mar$ кстати удаление строчки checkRunTime=2 не привело к желаемым результатам, мониторинг так же пропадает после входа 6 -го человека на сервер.
Спасибо. Только хочу уточнить это ты виндовый выложил или на фришку? У меня фришный стоит.
Здаётся мне что во фряшном даймоне есть где то ошибка, какую то строку видимо надо править. Вот только какую?
А что если виндовый на фришке запустить, не пройдет ли такой вариант?
Ну значит на выходных займусь. Сначала перезалью фришный, если ситуация та же будет будем пробовать виндового ставить. О результатах потом отпишусь.
Значит далее что получилось. Для начала лог даймона
Пару строчек сверху нехватает, но из этого видно что даймону ненравятся ники с пробелами, но команда кик почему то сервером невыполняется.Цитата:
INFO:Daemon:Pilot [=CPS= Andrey] has disconnected
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/local/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "miniDaemon.py", line 252, in run
self.__playerConnected(userConnect.match(line).groups())
File "miniDaemon.py", line 271, in __playerConnected
self.__console.executeCommand('kick \"%s\"' % theUserName)
AttributeError: 'Console' object has no attribute '_Console__console'
INFO:Daemon:Stopping deamon...
INFO:Daemon:Deamon stopped
INFO:Daemon:Telnet communicator stopped
Press any key to continue...
далее анализируя файл miniDaemon.py была найдена 268 строка в которой были удалены пробелы в кавычках.
Оригинал
редактированнаяЦитата:
if notok==1 or string.find(theUserName,' ')>0 or theUserName=='' or theUserName[-1]=='0':
После этого минидаймон стал нечувствительным к неправильным никам и его остановки прекратились.Цитата:
if notok==1 or string.find(theUserName,'')>0 or theUserName=='' or theUserName[-1]=='0':
Правда заработало это только на виндовом, во фришном изменения не привели к нужным результатам.
После этого вылезла новая проблема с админом.Все сделали как было описано выше но в итоге все равно пишет "Вы не админ"
Так же остается проблема мониторинга сервера после входа 6-го человека.