Просмотр полной версии : Server Remote Console
Readme находиться здесь ROF\bin_console\release\readme.txt
Что можно делать:
1) Получить "последнюю" информацию из лога сервера - тот лог что пишется в окне сервера. "Последнюю" - значит что выдается не весь лог, а последняя часть определенного размера - не замерял.
2) Получить список игроков на сервере - в списке будет
- текущий айди игрока на сервере, меняется с каждым реконектом
- айди профиля игрока в системы рофа
- айди аккаунта игрока в системе рофа
- никнэйм
- текущий статус - летает не летает, плюс статусы для коопа если я правильно понял
- пинг
3) можно кикать по любому из идентификаторов(текущий, ник, профиль, аккаунт)
4) можно банить профиль по любому из идентификаторов
5) можно банить аккаунт по любому из идентификаторов
6) команда на разбан есть, но только сразу всех кто забанен
7) в миссиях можно ставить триггер serverinput, по его имени его можно запускать через консоль, а что он там будет дергать внутри миссии решать вам
8) логи событий миссий пишутся раз в 30 секунд, или когда заспаунился игрок, командой можно принудительно создать лог файл с новыми событиями
9) лог чата миссии пишется емнип раз в 15 минут, так же командой можно принудительно "выгрузить" новые сообщения чата, но уже в новый логфайл чата
10) можно от имени сервера отправлять сообщения в чат для всех, коалиции, страны или юзера
11) можно останавливать и выключать сервер, и запускать с другими сдс конфигом
12) можно получить информацию о Sps сервера текущий, средний, макс, минимум
Мне триггеры понравились, пару часов просто "дурковал" - запускал из консоли ракеты, спавнил пачками кэмелы... :D
Вообще потенциал огромный, но тут без знаний программирования не обойтись...
Я так понимаю, что эта консоль может отдавать только отправленные "в ручную" команды?
И еще вопрос, те команды, что описаны в текстовом файле - это все команды или есть какие-то не оглашенные?
Все вроде
Консоль - только для общзего ознакомления с принципами работы протокола управления сервером.
Что бы написать автоматическую систему управления игровым сервером Вам надо изучить этот протокол, научиться использовать его в вашем собственном сетевом приложении для получения информации с сервера с последующей ее обработкой и использовании в ваших собсвтенных алгоритмах управления. Выходом Вашего алгоритма будут команды управления серверу.
То есть в протоколе реализовано два класа команд:
1. Вывод (получение информации разного рода с игрового сервера)
2. Ввод (подача команд управления на сервер с целью вмешательства в дефолтный алгоритм его работы, определяемый настройками сервера, действиями игроков и скриптом миссии)
Ага, т.е. что бы кикнуть, например, Имперора за то, что он а своем фоккере отпилил крыло готе НГоро (тим килл) - это нужна программа, которая динамически обрабатывает эвентс лог, выискивает нужные события и по ним автоматом отправляет команду серверу, как в данном случае отправит кик или бан Емперору за его проступок?
Или, например, тот же кик или бан или текстовое предупреждение за матюки в чате?
Да, серверо держателям вы классный инструмент управления сделали! :cool:
Peter Mattlov
27.12.2011, 09:58
Насколько я понимаю, реализовали именно то управление сервером, которое весной-в начале лета просил МакФрис для создания войны.
или нет?
хотелось бы в итоге услышать его мнение. Надеюсь, люди все таки взрослые и обидки в угоду общему делу будут оставлены в стороне.
=Andrey=
27.12.2011, 10:45
Насколько я понимаю, реализовали именно то управление сервером, которое весной-в начале лета просил МакФрис для создания войны.
или нет?
хотелось бы в итоге услышать его мнение. Надеюсь, люди все таки взрослые и обидки в угоду общему делу будут оставлены в стороне.
Ну мнение его ты не услышишь, т.к. в бане он, до следующего лета.
Насколько я понимаю, реализовали именно то управление сервером, которое весной-в начале лета просил МакФрис для создания войны.
или нет?
хотелось бы в итоге услышать его мнение. Надеюсь, люди все таки взрослые и обидки в угоду общему делу будут оставлены в стороне.
Именно так, что-то подобное и просил Макфриз, чтобы сторонним софтом далее делать внешне управление и онлайн-войну. Был "не конструктивно освистан", тема ушла на личности, в итоге долгий бан, обидки и разочарование у всей команды программеров нуля.
Вот думаем, кто в выигрыше?
ROSS_DiFiS
27.12.2011, 11:00
войны РоФ от Макфриса не будет никогда. Это уже политически принципиальная штука. Так что про него можно забыть.
P.S. И то что просил макфрис пока что не реализовано. И вообще - он так и не собрался оформить свои желания более подробней, чем - "дайте мне инструмент".
Ага, т.е. что бы кикнуть, например, Имперора за то, что он а своем фоккере отпилил крыло готе НГоро (тим килл) - это нужна программа, которая динамически обрабатывает эвентс лог, выискивает нужные события и по ним автоматом отправляет команду серверу, как в данном случае отправит кик или бан Емперору за его проступок?
:D
Ребята. Давайте по порядку. Попроще для начала. Как отправить текстовое сообщение на сервер для всех игроков?
ROSS_DiFiS
27.12.2011, 11:47
подключить к серверу консоль
в консоли набрать команду
cmd: chatmsg roomtype id Message to send
response example: STATUS=1
roomtype 0 - All
roomtype 1 - Client Id
roomtype 2 - Coalition
roomtype 3 - Country
Еще для сообщений чата вроде как можно использовать некоторые html тэги, например такие как <b>test</b>
Еще для сообщений чата вроде как можно использовать некоторые html тэги, например такие как <b>test</b>
А это эксклюзивная инфа, только хотел написать, про то, что было бы классно менять цвет шрифта серверных сообщений. Надо попробовать!
просто это скорее баг наверно, чем фича т.е. имхо может в один момент перестать работать ))
цвет оно не меняет по крайней мере обычными тэгами,
тэги вроде <h1></h1> <h2></h2> <h3></h3> <h4></h4> работают
просто это скорее баг наверно, чем фича т.е. имхо может в один момент перестать работать ))
цвет оно не меняет по крайней мере обычными тэгами,
тэги вроде <h1></h1> <h2></h2> <h3></h3> <h4></h4> работают
Только что попробовал, тэги заголовков и <i></i>, <u></u>, <b></b> - работают, размер и цвет - не работают.
=Shtopor=
27.12.2011, 17:12
подключить к серверу консоль
в консоли набрать команду
cmd: chatmsg roomtype id Message to send
response example: STATUS=1
roomtype 0 - All
roomtype 1 - Client Id
roomtype 2 - Coalition
roomtype 3 - Country
Мда... как всё сложно. Чтобы написать в чат пару слов - Привет мужики, надо сперва набрать целое предложение на буржуйском. Причем, как я понимаю, одна ошибка или лишний символ, и пипец, с мужиками так и не поздороваешься. :)
Блин, ну мы видели же (сами знаете где), что бывает всё проще. Почему такие вещи, сразу нельзя сделать, не через анальное отверстие?
=FB=LOFT
27.12.2011, 17:18
Потому что, что бы колхознику стало понятно, сначала должен поработать инженер. Интерфейсы созданы для программистов и чем глубже и ближе они к программированию тем больше возможностей и больше понятного программистам. А они уже в свою очередь создадут сервисы для конечных пользователей которые в интерфейсе будут иметь одну кнопку "Отправить".
Мда... как всё сложно. Чтобы написать в чат пару слов - Привет мужики, надо сперва набрать целое предложение на буржуйском. Причем, как я понимаю, одна ошибка или лишний символ, и пипец, с мужиками так и не поздороваешься. :)
Блин, ну мы видели же (сами знаете где), что бывает всё проще. Почему такие вещи, сразу нельзя сделать, не через анальное отверстие?
Вообще не понял к чему наезд, все предельно понятно.... Даже мне :D
Возможно товарищ подумал что это все нужно писать в чат в самой игре...
Насколько я понимаю, реализовали именно то управление сервером, которое весной-в начале лета просил МакФрис для создания войны.
Тех. предложение составляли Vaal и SAS.
хотелось бы в итоге услышать его мнение.
не хотелосьбы :declare:
Потому что, что бы колхознику стало понятно,
за колхозников обидно, ведь это они растят хлеб инженеру, а не дают ему мешок навоза и жменю пшеницы (это я о профессии).
давайте вернемся к алабамским лесорубам :)
=Shtopor=
27.12.2011, 17:56
Возможно товарищ подумал что это все нужно писать в чат в самой игре...
Нет, я подумал, что, перед тем как написать что-либо в чат с консоли сервера, нужно сперва набрать несколько неизвестных мне слов и символов в правильном порядке и без ошибок. Помню, в Иле с сервера было очень просто отправить сообщение игрокам. Да в том же ТС, чат работает без всяких заморочек - ввел слово в строку, ткнул интер, и всё.
=FB=LOFT
27.12.2011, 17:57
за колхозников обидно, ведь это они растят хлеб инженеру, а не дают ему мешок навоза и жменю пшеницы (это я о профессии).
давайте вернемся к алабамским лесорубам :)
Неа, навоз им дают скотоводы, зерно они отдают пекарям, а те уже хлеб инженерам. Ты что никогда не играл в сеттлерз? :D
=Shtopor=
27.12.2011, 18:00
Потому что, что бы колхознику стало понятно, сначала должен поработать инженер. Интерфейсы созданы для программистов и чем глубже и ближе они к программированию тем больше возможностей и больше понятного программистам. А они уже в свою очередь создадут сервисы для конечных пользователей которые в интерфейсе будут иметь одну кнопку "Отправить".
Я на днях набирал текст в редакторе (описание к миссии), ну очень большое описание получилось. Как бы вам сказать, что бы не обидеть, что я обо всём этом думал (про программистов и их сервисы) :)
=FB=LOFT
27.12.2011, 18:03
А я ни разу не говорил что у нас идеальные сервисы и интерфейсы, я только говорю что мы понимаем чем они не идеальны. И надеемся что разделение труда на маленькие части позволит делать вес быстрее чем ожидать всего на свете от нас. Нас мало.
Нет, я подумал, что, перед тем как написать что-либо в чат с консоли сервера, нужно сперва набрать несколько неизвестных мне слов и символов в правильном порядке и без ошибок. Помню, в Иле с сервера было очень просто отправить сообщение игрокам. Да в том же ТС, чат работает без всяких заморочек - ввел слово в строку, ткнул интер, и всё.
Ну так может сначала попробовать надо прежде чем выводы делать?
147588
Что-то последнюю неделю тут на форуме все чаше выводы и обсуждения строятся на каких-то догадках, а не фактах. А ведь все можно проверить и попробовать.
Помню, в Иле с сервера было очень просто отправить сообщение игрокам.
да ладно? http://wiki.sukhoi.ru/index.php?title=%D0%98%D0%BB-2_%D0%A8%D1%82%D1%83%D1%80%D0%BC%D0%BE%D0%B2%D0%B8%D0%BA:_%D0%97%D0%B0%D0%B1%D1%8B%D1%82%D1%8B%D0%B5_%D1%81%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F._Dedicated_Server
chat <message> [ALL] [TO# <N>] [TO <name>|<*>] [ARMY <N>|<name>] [BUFSISE] [MY_ARMY]
с Сервер Командером не путайте? который был сторонней программой написанной не разработчиками ил2
Да в том же ТС, чат работает без всяких заморочек - ввел слово в строку, ткнул интер, и всё.
наверно потому что это клиентская часть ТС, вы видели как выглядит интерфейс сервера ТСа?
=FB=LOFT
27.12.2011, 18:25
Ну пользователи да, не любят читать, есть такое :( Уже давно вообще об играх по ютубу судят.
=Shtopor=
27.12.2011, 18:48
Ну так может сначала попробовать надо прежде чем выводы делать?
147588
Что-то последнюю неделю тут на форуме все чаше выводы и обсуждения строятся на каких-то догадках, а не фактах. А ведь все можно проверить и попробовать.
В смысле? А это что, я придумал, или автор шутник и не внушает доверия? http://www.sukhoi.ru/forum/showthread.php?t=73683&p=1759310&viewfull=1#post1759310
И о да! Все строится на догадках, методом тыка и выискиванием необходимой инфы на разных форумах: http://riseofflight.com/Forum/viewtopic.php?f=92&t=9644&start=150
В смысле? А это что, я придумал, или автор шутник и не внушает доверия? http://www.sukhoi.ru/forum/showthread.php?t=73683&p=1759310&viewfull=1#post1759310
Автору нравиться набирать все ручками, это не запрещено ))
Ага. С сообщениями разобрался. Спасибо, очень полезная фича. И удобная.
Приведите пожалуйста пример использования трригера serverinput.
Не знаю как для других, а для меня все внове. Любая подсказка идет в дело. Все записывается и складывается в папочку.Видел как на хеликвинсах выводится сколько человек за день было на серваке, кто был, кто сколько кого раз сбил и т д. Любопытно.
Предлагаю все сначало подробно изучить и разобраться, а потом будем уже думать что не так и чего как.
ROSS_DiFiS
27.12.2011, 19:15
В смысле? А это что, я придумал, или автор шутник и не внушает доверия?
я чего то не понял. Во первых в самом начале этого топика ПАЛЬЦЕМ ТКНУТО в файл:
Readme находиться здесь ROF\bin_console\release\readme.txt
Строки из которого я и привел как команду, про которую стоит почитать. И потом показал где и как она вводится. И да - я не сам ее даже пишу, а пользуюсь именно готовым окошком ввода сообщения для этой команды, которое вызывается из меню вверху консоли. (Vaal привел скриншот (http://www.sukhoi.ru/forum/attachment.php?attachmentid=147588))Но для того чтобы это узнать - надо хотя бы эту консоль запустить попробовать.
Между прочим, я так же как и вы, здесь впервые прочитал про консоль и мне стало интересно - как посылать в чат сообщения. ПРОСТО СТАЛО ИНТЕРЕСНО.. Я за 30 минут экспериментов с НУЛЯ научился запускать дедикейт сервер, Заходить на него игрой, присоединяться к нему консолью и О-да! - посылать на сервер сообщения в чат.
Я что? какой то особенный? Если человеку это не надо, он будет только вопросы задавать, не пытаясь даже пробовать разобраться.
Сорри, получилось немного грубо.
2 =Shtopor=:
Ты собрался хостить игровой сервер на много человек?
Приведите пожалуйста пример использования трригера serverinput.
ставишь в миссии триггер мишенд энд
и триггер serverinput - целью для него ставишь триггер мишенд энд
триггер serverinput называешь skip
в меню консоли выбираешь команду server input и вводишь skip
внутри миссии сработает триггер мишенд энд
ставишь в миссии триггер мишенд энд
и триггер serverinput - целью для него ставишь триггер мишенд энд
триггер serverinput называешь skip
в меню консоли выбираешь команду server input и вводишь skip
внутри миссии сработает триггер мишенд энд
Круто! Впечатляет!
=Shtopor=
28.12.2011, 03:36
2 =Shtopor=:
Ты собрался хостить игровой сервер на много человек?
Я уже давно хостю сервер, но, не на много человек, и по времени рассчитываю пока только на Дальневосточников (летаем по вечерам). А много человек в РОФе и не проканает, тут канал не прокачает много, тем более, если миссии с наземкой и ботами.
Да и какая разница, на сколько он будет человек? Просто уже достало, говоря словами Лофта, нам - КОЛХОЗНИКАМ, ковырять землю кривыми палками и ждать, когда придет добрый дядя инженер и выдаст нам лопаты. Уже практически три года ковыряемся, а лопат всё нет и нет. Может стоит задуматься, где-то выбрано не правильное направление? Я вообще, об общем подходе, к творчеству.
зы
ROSS_DIFIS. Извиняюсь, я не правильно понял ваш пост и приложенный к нему скрин:
подключить к серверу консоль
в консоли набрать команду
cmd: chatmsg roomtype id Message to send
response example: STATUS=1
roomtype 0 - All
roomtype 1 - Client Id
roomtype 2 - Coalition
roomtype 3 - Country
Похоже, мне пора к врачу. Я уже по русски нефига не понимаю.
Консоль я запускал, еще когда она только вышла, но, сделав все как было написано в редмике, я так и не смог законнектить их с сервером (поэтому и не разглядел чего там есть). Хотя, в том же ил-сервер-командере, проблем с настройками не было. От сюда и возникло недопонимание. Можно сказать, нервы уже сдали.
ROSS_DiFiS
28.12.2011, 10:09
Ох. Штопор, Штопор..
Я так же как и ты запустил игру, запустил консоль, методом русского авось - и у меня ничего не получилось и не заработало. И тогда я понял - пора читать "Реадми" :)
А там написано буквально следующее:
Remote Console-Server part of Rise Of Flight consists of a DServer-server part, which is coded into the dserver.exe binary, and a remote-console part, which is a stand-alone application.
Dserver part of console is not serving connections by default. To enable the DServer part of remote console you should add additional configuration lines to the "system" part of your dserver startup.cfg file:
[KEY = system]
rcon_ip = "127.0.0.1"
rcon_port = 8991
rcon_start = 1
[END]
Если совсем сложно с английским - перевожу буквально: дедикейт сервер не понимает по умолчанию консоль. Чтобы он ее понимал - надо прописать в файл конфига игры "startup.cfg" три строчки.
Далее в консоли тоже есть конфигурационный файл (по умолчанию _rconClient.cfg) который загружается вручную по желанию.
В него прописывается тот же адрес сервера, порт, логин и пароль.
server = "192.168.1.1"
port = 8991
user = "myemail@mailprovider.domen"
password = "mypassword"
а дальше уже в работающей подключенной консоли тестируем весь список комманд, который описан в списке "c:\games\Rise of Flight\bin_console\release\readme.txt"
P.S. и как бэ.... человек который УЖЕ создал и использует свой сервер должен хоть немного знать с какой стороны подходить к вопросу, а не растерянно хлопать ресницами.
А то что все три года ждут инструмент - это согласен. Управление сервером действительно фича, которая в онлайн-проекте должна была существовать с момента релиза дедикейт сервера.
=FB=LOFT
28.12.2011, 10:38
Я шутил и не хотел обидеть :( ну глупо честное слово извиняться за то что мы делаем сложные проекты требующие больше 3х кнопок для управления. Мне самому в пору обижаться, как то раз журнал импульс геймер поставил в обзоре РОФ самую низкую оценку со словами "слишком реалистично и требует джойстик". И что теперь? Я не согласен с позицией которую ты занял.
=Shtopor=
28.12.2011, 11:41
Да подключил я их уже. Тут посмотрел http://riseofflight.com/Forum/viewtopic.php?f=299&t=25549 и сразу все получилось. Спасибо Ваалу :) Просто, в редмике фразу - To enable the DServer part of remote console you should add additional configuration lines to the "system" part of your dserver startup.cfg file: я понял как - изменить надо в конфиге dserver-а, туда то я и вписывал все эти параметры.
Ну колхозники мы, что с нами поделаешь. :)
2 =Shtopor=:
Дело в том, что еще в брифинге версии, где выходила эта консоль, было четко определено - данное приложение (консоль) ВСЕГО ЛИШЬ пример использования нового протокола управления сервером, призваный помочь желающим разработать свой СОБСТВЕННЫЙ софт удаленного управления игровым сервером.
Не более того.
Поэтому да, данная фича (протокол) и данный пример использования к ней (консоль) предназначены ТОЛЬКО для людей обладающих навыками программирования приложений, работающих с сетевыми протоколами. Когда подобные люди разберуться и используют эти новые возможности - профит получат все простые мультиплеерные игроки, т.к. появятся сервера с новыми фичами геймплея.
"Завышенные ожидания - причина разочарований".
=Shtopor=
28.12.2011, 11:53
Да всё, проехали, накосячил я. :)
Камрады, а кто-нибудь уже работал над собственным софтом для управления сервером? Я просто еще не совсем представляю, что теоретически можно зделать, какие фичи геймплея возможны?
Vaal работал.
а так...
Ну на входе в Вашу утилиту управления у Вас есть:
1. Логи чата
2. Логи событий
3. Лог системных сообщений DServer (те что в его окошке)
4. SPS сервера
5. Перечень текущих клиентов сервера
На выходе из Вашей утилиты управления Вы можете отправить управляющие команды:
1. Активация любой триггерной цепочки в миссии (включая указание следующей миссии, завершение текущей, спавный объектов, все что угодно из того, что позволяет текущий формат миссии)
2. Кик юзера
3. Бан юзера
4. Анбан всех (если надо конкретного - разбаниваем всех и баним всех кроме нужного)
5. Закрытие сессии сервера
6. Закрытие прилоежния сервера
7. Открытие сессии сервера с определенным .sds конфигом
8. Адресное чат сообщение
Вообще говоря, п.1 выходов позволяет сделать этапно-развивающуюся динамическую догфайт-кампанию. Если напишете собственный генератор - то еще и не заранее скриптованую, а динамически генерируюмую (как карьера). Это максимум геймплейной части.
Вы можете делать динамически обновляемую статистику, карту сервера, на Вашем собсвтенном сайте.
Выходы кики и баны позволяют сделать Ваш собсвенный сервис с ограничением доступа по Вашей собственной регистрацией через Ваши WEB-ресурсы. То есть Вы можете сделать платный игровой сервис (сервер). Причем полностью самостоятельно без участия 777 в поддержке и доходе. Это максимум бизнес-части.
Ну что, осталось найти умельца, собрать ему компьютер, и война для рофа у нас в кармане :)
=FB=LOFT
29.12.2011, 00:32
Ну там поработать нужно будет над войной то, как бы дело хлопотное. Я бы сказал лучше меньше да лучше. Сначала правила попроще, скрипт понадежнее. Да и у сервера серьезные ограничения по производительности, т.е. Много ботов считающихся на сервере это серьезно.
Vaal работал.
речь про управление сервером, над этим я не работал
пока только утилиту для онлайн списка серверов сделал, она лишь "читает" ответы сервера
--- Добавлено ---
Ну что, осталось найти умельца, собрать ему компьютер, и война для рофа у нас в кармане :)
Да как бы уже есть "война"- итальянская, пока правда в тесте не доступная для всех.
p.s. все собираюсь снова поиграть в с вами пвп, но все никак не получается :)
Peter Mattlov
29.12.2011, 09:47
все собираюсь снова поиграть в с вами пвп, но все никак не получается
Оо! Ахтунг! Ахтунг! Ваал в небе!
сделайте команду на всех сервера - ваалу выдавать одну пулеметную ленту в день )))))))))))
речь про управление сервером, над этим я не работал
пока только утилиту для онлайн списка серверов сделал, она лишь "читает" ответы сервера
Поподробней можно?
Как я понимаю, исходящие с сервера логи для миссии можно преминить следующим образом: если количество игроков на сервере небольшое, то и заданий нужно запустить соответственно, с увиличением кол-ва игроков добавлять их. Или: сделать балансер, как по коалициям, так и по типу самолета. Уже не мало. А, что еще можно? Как я понимаю, сервер ведь не отчитывается о выполнении того или иного события в миссии?
Оо! Ахтунг! Ахтунг! Ваал в небе!
сделайте команду на всех сервера - ваалу выдавать одну пулеметную ленту в день )))))))))))
Отставить )) Это я Сигилу про Арму ))
Поподробней можно?
речь про это http://online.riseofflight.net/ru/
Как я понимаю, сервер ведь не отчитывается о выполнении того или иного события в миссии?
информация о выполнение Translator:Mission Objective уходит в лог
/// все собираюсь снова поиграть в с вами пвп, но все никак не получается :)
(По джунглям разносятся голоса!)
Vaal полетит!
Vaal ?! Полетит...?
Панда набивая на клаве ноута...
А по слухам его поглатила Матрица!
Запускает сервер... прописывает скрипт.
Vaal-у только пистолет.
информация о выполнение Translator:Mission Objective уходит в лог
Вот это тоже важная информация, Mission Objective трасляторов может быть сколько угодно штук, и результат "дергания" этого транслятора уходит в лог! :eek: Это получается, что можно сделать миссию, которая будет отдавать в лог игровые события! Почти как триггер serverinput, только наоборот, такой себе serveroutput :)
Вот это тоже важная информация, Mission Objective трасляторов может быть сколько угодно штук, и результат "дергания" этого транслятора уходит в лог! :eek: Это получается, что можно сделать миссию, которая будет отдавать в лог игровые события! Почти как триггер serverinput, только наоборот, такой себе serveroutput :)
емнип не сколько угодно, там в редакторе есть ограничение
емнип не сколько угодно, там в редакторе есть ограничение
Ну, да, это я загнул, на коалицию 16 tasks и у каждого task 2 варианта - 0 или 1. Т.е. 64 события в лог можно отправить (если участвуют 2е коалиции). Что тоже не мало :)
Да, но некоторые вещи, например фоторазведку и арткорректировку, на Mission Objective не привесишь.(
=Shtopor=
29.12.2011, 16:23
Да, но некоторые вещи, например фоторазведку и арткорректировку, на Mission Objective не привесишь.(
На него любое событие можно повесить. :)
И в случае выполнения фоторазведки оно будет считаться выполненой? Так почему же за него очков не дают?
=Shtopor=
30.12.2011, 02:28
И в случае выполнения фоторазведки оно будет считаться выполненой? Так почему же за него очков не дают?
Не дают в догфайте, но, по всей видимости, в логе эта штука прописывается.
Зы
Не плохо бы было, все же, дополнительные очки команде начислять, за выполнение разных заданий. Смысла бы было в разы больше, например, сопроводить своего разведчика.
Ну, да. А, то какой стимул? Если толковый разведчик, то он и на цель толково выйдет и истребителю работать не придется. ПОлучается слетал - только время потратил. А про безтолковых я не говорю - там цырк-шапито, какие очки? Только вот как это сделать.
Я просто хочу выяснить потенциал сего инструмента. Сервер свой есть выделенный. Хотелось бы его использовать на полную катушку. Скрипты писать умею. Ну и Ваала распрашивать э-э... целенаправленно. :)
Кстати, по скриптам: транслятор Next Missoin у меня почему то не срабатывает. Подскажите как его использовать? Я указываю ему файл миссии в папке multiplayer\dogfight\ с необходимым расширением и таймером его талкаю. Ничего не происходит. Что не так?
Из-за этого я перестал писать сценарную догфайт-компанию, хотя месяц осенью с ней провозился. А, выясняется, что теоретически этот транслятор можно заменить через консоль.
Редактор, конечно не идеален, и вовсе не из-за своей сложности. Просто для "идеала" ему не хватает нескольких полезных мелочей, штрихов так сказать. Хотя бы тех же активных иконок, которые можно было бы изменять по ходу сценария. Но, эти мелочи, надеюсь воплотятся со временем. Но, я отвлекся.
Ваал. С чего нужно начать свое обучение, что бы написать программу для консоли, которая бы читала логи и выводила бы их в удобоварибельный вид. Или на сайте или как программа на самом сервере?
Хотя бы тех же активных иконок, которые можно было бы изменять по ходу сценария
у Mission Objective теперь можно ставить иконку, и по идеи она должна меняться по завершению задачи, сам пока не пробовал.
С чего нужно начать свое обучение, что бы написать программу для консоли, которая бы читала логи и выводила бы их в удобоварибельный вид. Или на сайте или как программа на самом сервере?
Изучить азы программирования, разобраться с парсингом файлов, работа с базами данных, сокетами, отправкой/получением пакетов. Для сайта соответственно - изучить написание веб приложений.
Но это грубо говоря, не знаю как по другому ответить на такой вопрос.
Такие вопросы:
1. Полный ли список команд в файле readme.txt который рядом с тестовой утилиткой ремот консоли лежит?
2. Есть ли возможность через ремот консоль получать лог миссии? Если да, то какой командой (ридми прочитал, все команды перетыкал) и какие настройки выделенного сервера должны быть?
3. Если из пункта 2 возможности нет, правильно ли я рассуждаю что помимо ремот консоль клиента должна будет быть еще программа/сервис следящий за лог файлом и отслеживающий в нем изменения?
Ну и в ридми не указан endianness длины сообщения, подобрать не сложно, но все же :)
1. Полный ли список команд в файле readme.txt который рядом с тестовой утилиткой ремот консоли лежит?
там нет последних добавленных команд
Open SDS, Close session, Get SPS, Reset SPS, Shutdown
формат их написания можно посмотреть в тестовой консоли
2. Есть ли возможность через ремот консоль получать лог миссии? Если да, то какой командой (ридми прочитал, все команды перетыкал) и какие настройки выделенного сервера должны быть?
нельзя
3. Если из пункта 2 возможности нет, правильно ли я рассуждаю что помимо ремот консоль клиента должна будет быть еще программа/сервис следящий за лог файлом и отслеживающий в нем изменения?
да
Спасибо.
--- Добавлено ---
Еще вопрос.
Все ответы сервера будут всегда содержать в себе STATUS=значение статуса?
Из ридми не совсем ясно.
И еще вопрос.
Честно поискал ответ, не нашел.
Какие параметры конфига (и какого конфига) нужно настроить чтобы выделенный сервер писал логи?
А то у меня он пишет только шапку стандартную - аутентифицируюсь, создаюсь, создался...
А события не пишет.
Может я не тот лог смотрю.
Все ответы сервера будут всегда содержать в себе STATUS=значение статуса?
Из ридми не совсем ясно.
это к разработчикам.
И еще вопрос.
Честно поискал ответ, не нашел.
Какие параметры конфига (и какого конфига) нужно настроить чтобы выделенный сервер писал логи?
А то у меня он пишет только шапку стандартную - аутентифицируюсь, создаюсь, создался...
А события не пишет.
Может я не тот лог смотрю.
startup.cfg
[KEY = system]
bin_log_folder = "logs\bin\"
chatlog = 1
chatlog_folder = "logs\chat\"
keep_binary_log = 0
mission_text_log = 1
text_log_folder = "logs\txt\"
[END]
логи смотреть в rof/data, а дальше указанный путь
Спасибо еще раз.
--- Добавлено ---
И еще вопрос. Прошу прощения за назойливость.
по RoF Wiki (http://ru.wiki.riseofflight.com/index.php?title=%D0%9B%D0%BE%D0%B3_%D0%B2%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0)
Вменяемое описание лог файла?
И на сколько полное?
Разделитель между элементами одной записи лога - пробел? Или зависит от типа линии лога (AType)?
Вменяемое описание лог файла?
И на сколько полное?
вполне вменяемое
емнип
нет тип 16 - дисконект объекта и освобождение id, не с сервера, а как бы завершение его "жизни"
в тип 10 теперь есть информация о загрузке, топливе, скине и id "родителя" для турелей
в тип 12 добавили имя объекта
Разделитель между элементами одной записи лога - пробел? Или зависит от типа линии лога (AType)?
не совсем понял о чем конкретно речь
так что вот пример лога 148220
не совсем понял о чем конкретно речь
Пример:
T:16022 AType:0 GDate:2010.6.20 GTime:12:5:20 MFile:Multiplayer\Cooperative\cocos_pvp10_v0.4_d.vii_dr.i_vs_n28_camel.mission MID: GType:1 CNTRS:0:0,101:1,102:1,103:1,104:2,105:2,501:2,502:2,600:3 SETTS:0000000000000010000000010
Пары:
T:16022
AType:0
GDate:2010.6.20
....
Всегда разделены пробелом? Возможна ли такая ситуация (я сейчас выдумаю, для пример): SomeKey: Some Value Here - тоесть в тексте Some Value Here - три прибела, если считать после :
Уже по логу увидел.
Не всегда.
Спасибо.
Вопрос снимается, разобрался :).
Ну раз разобрался рассказал бы здесь остальным. Тема как бы для этого и создана, зачем удалять то.
--- Добавлено ---
На счет логов, к сожалению они не без багов и особенностей, так что это надо учитывать.
Вот что встречалось мне
Например берем бомбер хп400 с 1650й бомбой или готу с 300й
респаунимся и кидаем на филде по себя
в логах сначала идет событие тип3 - что самолет уничтожен
потом событие тип5 о взлете
и событие тип6 о приземление
т.е. взлетает уничтоженный самолет
Из логов нельзя выяснить стрелял ли и наносил дмг ты сам с турели своего бомбера или это твой бот стрелял.
С подсчетом расхода боеприпасов турелями вообще была какая-то общая проблема с точностью данных, сейчас не могу вспомнить, надо на это внимание обращать.
записи тип 1 это как просто попадание в объект, так и рикошет
T:10087 AType:1 AMMO:BULLET_GBR_77x56R_MK7 AID:38912 TID:28672
так что например для одной пули может быть записано два(а может и более) попадания в один объект
Когда игроки после посадки не выходят в брифинг, а сразу выходят из игры в логах нет записи события тип4 с информацией об остатках боекомплекта, точность стрельбы и бомбометания не посчитать. Т.е. это как дисконект.
ситуация
1) твой противник и союзника летят рядом
2) ты подлетаешь и взрываешь самолет противника
3) от самолета идет взрывная волна и повреждает/поджигает/уничтожает самолет союзника
T:442712 AType:1 AMMO:explosion AID:90159 TID:118813
вот только в логах "автором" взрывной волны являешься ты, а не самолет противника которого ты взорвал
в итоге можно получить френдликилл
Регулярно встречаются вот такие записи
T:659520 AType:12 ID:233513 TYPE:Sopwith Camel COUNTRY:105 NAME: PID:-1
T:659520 AType:5 PID:233513 POS(26271.584, 75.542, 24473.090)
T:659810 AType:6 PID:233513 POS(26280.352, 35.750, 24487.174)
Т.е. выглядит это как будто появился АИшный самолет взлетел и сел, но это встречается на ньюбай и миссиях с хелликвинс где нет АИ самолетов в миссии
бывают проблемы с координатами (-1.#QO,-1.#QO,-1.#QO), (-1.#IO,-1.#IO,-1.#IO)
T:147503 AType:4 PLID:272415 PID:276511 BUL:1000 SH:0 BOMB:0 RCT:0 (-1.#QO,-1.#QO,-1.#QO)
T:147508 AType:16 BOTID:276511 POS(-1.#QO,-1.#QO,-1.#QO)
или вот кинул бомбы под себя
после того как бомбы взорвались - появилось 5 разных записей о Bristol F2B (F.III)
T:0 AType:15 VER:17
T:0 AType:0 GDate:1918.8.22 GTime:13:0:0 MFile:Missions\_gen.msnbin MID: GType:701 CNTRS:0:0,101:1,102:1,103:1,104:1,105:1,501:2,502:2,600:7,610:3,620:4,630:5,640:6 SETTS:00000001000000000100000001 MODS:0
T:0 AType:12 ID:79871 TYPE:Bristol F2B (F.III) COUNTRY:102 NAME:Plane PID:-1
T:0 AType:12 ID:80895 TYPE:Common Bot COUNTRY:102 NAME: PID:79871
T:0 AType:10 PLID:79871 PID:80895 BUL:1276 SH:0 BOMB:4 RCT:0 (39013.063,44.082,16807.080) IDS:dc097722-877b-4e89-90c4-b66e60c68817 LOGIN:8e26d7cb-f90e-47c0-b709-e21da7a7b948 NAME:=FB=Vaal TYPE:Bristol F2B (F.III) COUNTRY:102 FORM:0 FIELD:0 INAIR:0 PARENT:-1 PAYLOAD:2 FUEL:1.000 SKIN:
T:58 AType:17 ID:79871 POS(39013.063,45.623,16807.078)
T:369 AType:1 AMMO:explosion AID:79871 TID:79871
T:369 AType:12 ID:86015 TYPE:TurretBristolF2B_1 COUNTRY:102 NAME: PID:79871
T:369 AType:1 AMMO:explosion AID:79871 TID:86015
T:369 AType:12 ID:87039 TYPE:BotGunnerBreguet14 COUNTRY:102 NAME: PID:86015
T:369 AType:1 AMMO:explosion AID:79871 TID:87039
T:369 AType:1 AMMO:explosion AID:79871 TID:80895
T:369 AType:2 DMG:1.000 AID:79871 TID:79871 POS(39013.059,45.638,16807.078)
T:369 AType:3 AID:79871 TID:79871 POS(39013.059,45.638,16807.078)
T:369 AType:2 DMG:1.000 AID:79871 TID:80895 POS(39012.426,45.467,16807.486)
T:369 AType:3 AID:79871 TID:80895 POS(39012.426,45.467,16807.486)
T:369 AType:4 PLID:79871 PID:80895 BUL:1272 SH:0 BOMB:0 RCT:0 (39013.059,45.638,16807.078)
T:369 AType:2 DMG:1.000 AID:79871 TID:87039 POS(39011.836,45.304,16807.867)
T:369 AType:3 AID:79871 TID:87039 POS(39011.836,45.304,16807.867)
T:376 AType:1 AMMO:explosion AID:79871 TID:79871
T:376 AType:1 AMMO:explosion AID:79871 TID:86015
T:376 AType:1 AMMO:explosion AID:79871 TID:87039
T:376 AType:1 AMMO:explosion AID:79871 TID:80895
T:376 AType:12 ID:97279 TYPE:Bristol F2B (F.III) COUNTRY:102 NAME: PID:-1
T:376 AType:1 AMMO:explosion AID:79871 TID:97279
T:376 AType:12 ID:96255 TYPE:Bristol F2B (F.III) COUNTRY:102 NAME: PID:-1
T:376 AType:1 AMMO:explosion AID:79871 TID:96255
T:376 AType:12 ID:101375 TYPE:Bristol F2B (F.III) COUNTRY:102 NAME: PID:-1
T:376 AType:1 AMMO:explosion AID:79871 TID:101375
T:376 AType:12 ID:102399 TYPE:Bristol F2B (F.III) COUNTRY:102 NAME: PID:-1
T:376 AType:1 AMMO:explosion AID:79871 TID:102399
T:376 AType:12 ID:103423 TYPE:Bristol F2B (F.III) COUNTRY:102 NAME: PID:-1
T:376 AType:1 AMMO:explosion AID:79871 TID:103423
T:378 AType:8 OBJID:89 POS(40246.426,44.082,17573.119) COAL:1 TYPE:0 RES:0 ICTYPE:0
T:972 AType:4 PLID:79871 PID:80895 BUL:1272 SH:0 BOMB:0 RCT:0 (39007.789,44.869,16809.197)
T:973 AType:16 BOTID:80895 POS(39008.004,44.885,16808.457)
T:974 AType:7
если какой-то объект был уничтожен в миссии, а потом отремонтирован
или поврежден и отремонтирован - в логах об этом нет записей
бывало что для активной инфлушен_ареа в логах не было записей с координатами вершин типа
T:1 AType:14 AID:333824 BP((190592.2,136.9,38292.9),(231950.0,136.9,38254.4),(231950.5,136.9,60658.5),(227287.0,136.9,59998.3),(222739.0,136.9,60200.7),(217598.7,136.9,62950.9),(212952.4,136.9,64218.2),(207994.0,136.9,64088.9),(202940.6,136.9,62438.2),(199827.8,136.9,60382.0),(195459.3,136.9,57026.2),(190596.7,136.9,52227.2))
еще логи могут "тормозить"
товарищ Cornelius2 сел в турель TurretDFWC_1
но пилот DFWC уже как бы завершил вылет
T:743270 AType:16 BOTID:277650 POS(166129.266,74.467,48568.551)
T:743301 AType:12 ID:287862 TYPE:BotGunnerG5_1 COUNTRY:501 NAME: PID:193654
T:743301 AType:3 AID:274432 TID:287862 POS(166129.266,74.468,48568.551)
T:743373 AType:12 ID:338047 TYPE:Common Bot COUNTRY:501 NAME: PID:386175
T:743373 AType:4 PLID:386175 PID:338047 BUL:1500 SH:0 BOMB:7 RCT:0 (167660.578,72.889,64675.160)
T:743383 AType:16 BOTID:338047 POS(167661.078,72.707,64675.328)
T:743386 AType:4 PLID:221302 PID:389238 BUL:1449 SH:0 BOMB:0 RCT:0 (166127.672,74.654,48567.922)
T:743388 AType:12 ID:326805 TYPE:TurretDFWC_1 COUNTRY:501 NAME: PID:-1
T:743388 AType:12 ID:325781 TYPE:BotGunnerG5_1 COUNTRY:501 NAME: PID:326805
T:743388 AType:10 PLID:326805 PID:325781 BUL:964 SH:0 BOMB:0 RCT:0 (167662.141,72.484,64675.684) IDS:41300523-673b-450b-9cf9-a9bfc3083694 LOGIN:b5188b5a-2104-4883-9a83-a316f7fff06e NAME:Cornelius2 TYPE:TurretDFWC_1 COUNTRY:501 FORM:0 FIELD:0 INAIR:1 PARENT:386175 PAYLOAD:0 FUEL:0.000 SKIN:
или игрок завершил миссию и тут же прошло событие о посадке
T:112678 AType:4 PLID:167961 PID:175129 BUL:256 SH:0 BOMB:0 RCT:0 (25512.215,38.063,26217.484)
T:112679 AType:16 BOTID:175129 POS(25512.578,37.607,26217.195)
T:112680 AType:6 PID:167961 POS(25512.543, 38.443, 26216.984)
или взлете
T:125128 AType:4 PLID:129027 PID:131075 BUL:500 SH:0 BOMB:0 RCT:0 (23792.223,111.261,28068.762)
T:125129 AType:16 BOTID:131075 POS(23791.178,111.635,28062.568)
T:125130 AType:5 PID:129027 POS(23791.162, 111.744, 28062.459)
вообщем будьте внимательны
Числа с плавающей точкой хранятся в 4 байтах в формате:
Wiki: Single-precision floating-point format (http://en.wikipedia.org/wiki/Single-precision_floating-point_format)
У меня же проблема была (ну она собственно осталась, но это ерунда). Сам вывод непонятным (пока что для меня) образом в некоторых случаях округляет, а в некоторых нет.
Тоесть если смотреть в отладчике у меня в переменной лежит число такое же как в текстовом логе, но при выводе оно округляется, причем как то странно.
Поскольку вывод на экран для меня просто служебный, то значения это не имеет.
Если интересно:
Формат бинарного лога таков:
Все числа записаны в Биг-Ендиан формате.
4 байта - тик
1 байт - AType
2 байта - Длина записи лога (N)
N байт - в зависимости от AType разный набор байт (по текстовому логу определяются очень просто, если надо могу описать, ибо у меня уже сделано)
1 байт = всегда 0x0A - я так понял сделали его служебным, чтобы в когда бин лог открывать в текстовом редакторе можно было записи лицезреть на новой строке.
Вот и все.
Конкретно по 6 типу сообщений
идут
4 байта Single precision floating point - DMG
4 байта целое кто нанес урон
4 байте по ком
три 4 байтных Single precision floating point с указанием координат.
Ну раз такая пьянка пошла, вопрос к разработчикам:
1. Очевидно каждый раз писать позиции игроков/ботов нет смысла (очень накладно), можно ли реализовать какую-нибудь команду для ремот консоли которая бы флашила по запросу текущие положения игроков/ботов, их параметры (не уверн надо ли, думаю лишними не будут)
2. можно ли реализовать команду - высадить игрока из место стрелка? В чем задумка - организовать опцию black list/white list для игроков. Тоесть игрок может сказать - я разрешаю vasmann-у садиться на место стрелка, а остальные в лес. Соответсвенно чтобы когда Петя садится к человеку на место стрелка его бы просто высаживало, сейчас это можно сделать киком, что немного жестковато. А так высадить и в чат ему написать - звыняй хлопче, посторонним вход в ...
3. Ввести различие - игрок на турели, игрок пилот.
Спасибо камрад Vaal.
Конкретно в .NET плавающие точки читал по следующему алгоритму (не было желания переводит код в unsafe режим, и работать с указателями)
1. Читаем 4 байта как целое число (да , целое, Int32 или UInt32 не имеет значения)
2. проверкой 0x80000000 бита узнаем знак числа
3. число битовой операцией & с числом 0x7F800000 и сдвижкой на 23 бита вправо узнаем експоненту числа
4. в цеикле от 1 до 23 узнаем 1 бит оставшегося числа через битовое & 0x01
5. если бит не равен нулю к сумме добавляем число = 2 в степени (-(23-i+1))
5. целое число сдвигаем на 1 бит вправо
6. промежуточный результат равен (1 + накопленная сумма) * 2 в степени (експонента - 127)
7. если знаковый бит не равен 0 = то число отрицательное.
Почему сумма идет в порядке возрастания слогаемых и почему 1 добавляется в конце? Чтобы не было заглатывания маленьких чисел большими в силу особенностей хранения чисел с плавающей точкой.
1. Очевидно каждый раз писать позиции игроков/ботов нет смысла (очень накладно), можно ли реализовать какую-нибудь команду для ремот консоли которая бы флашила по запросу текущие положения игроков/ботов, их параметры (не уверн надо ли, думаю лишними не будут)
Аналогичный функционал запрашивался перед разработкой интерфейса который сейчас используется консолью, отказали.
Но если не ошибаюсь в оффлайне логируются позиции самолетов после смешения на 1.5км
2. можно ли реализовать команду - высадить игрока из место стрелка? В чем задумка - организовать опцию black list/white list для игроков. Тоесть игрок может сказать - я разрешаю vasmann-у садиться на место стрелка, а остальные в лес. Соответсвенно чтобы когда Петя садится к человеку на место стрелка его бы просто высаживало, сейчас это можно сделать киком, что немного жестковато. А так высадить и в чат ему написать - звыняй хлопче, посторонним вход в ...
Так же запрашивали фичу - принудительное завершение вылета игрока, чтобы как раз не кикать за какие-то нарушения, неправильно выбранный самолет, а просто отправлять в брифинг с мессагой в чате, отказали.
3. Ввести различие - игрок на турели, игрок пилот.
вот тут не понял о чем конкретно речь т.к. в логах это можно определить по типу объекта из события тип 10, самолет или турель.
п.с. Спасибо за инфу по бинарникам. Можешь сказать на сколько примерно разница в скорости парсинга текстовых логов и бинарных?
Я с текстовым даже не стал заморачиваться. Не люблю текстовики парсить, правил много нужно всяких учитывать, плюс работа со строками не самое быстрое решение.
Если есть желание, завтра могу выдать тебе консольное приложение (я его до конца доведу), которое парсит бинарный лог и выводит в консоль что напарсило.
Это парсом даже назвать нельзя, фактически последовательное чтение.
По ощущениям очень быстро.
Да думаю до след недели. Только сейчас включил сохранение бинарных логов. Чтобы нормальные логи с "больших" миссий собрать надо выходных дождаться. Вот тогда можно будет сравнить насколько быстрее выходит.
Как вариант, я могу консольное приложение оформить так:
ты ему даешь папку где лежат бин логи, а оно тупо перебирает все и распарсивает, без вывода (консоль сама по себе тормозная). Просто прочитал и все.
И сделать замер - время старта парса и конец.
Разница в секундах - покажет сколько оно парсит.
А ты со своей стороны свою тулзу в таком же духе подправишь, чтобы она замерила сколько парсит без вывода.
Замер, кстати, можно делать не дожидаясь выходных.
Достаточно взять текстовый кусочек лога большой и соответсвующий ему бинарный.
Та расплодить его там в 300 экземплярах в одной папке.
И натравить парсеры.
Результат будет тот же.
В целом время парса будет линейным по отношению к обьему логов (бинарных/текстовых)
Есть еще особенность с названиями лог файлов.
missionReport(2011-12-01_01-39-36)[0].txt
(2011-12-01_01-39-33)Clash at Cappy 1.0.0.chatlog
дата создания у чатлога всегда более ранняя чем у лога миссии
максимум я видел разницу в 45 секунд
--- Добавлено ---
Замер, кстати, можно делать не дожидаясь выходных.
Достаточно взять текстовый кусочек лога большой и соответсвующий ему бинарный.
Та расплодить его там в 300 экземплярах в одной папке.
И натравить парсеры.
Результат будет тот же.
В целом время парса будет линейным по отношению к обьему логов (бинарных/текстовых)
Да согласен, можно и так сделать.
Ага, уже смотрел.
Но в целом парсеру все равно на имена файлов, он то содержимое парсит.
А по поводу имени лог файла - это не страшно. Фактически когда программа будет стартовать (допустим что сервер уже работает, хотя это и не правильно) - достаточно будет парсить логи с самой свежей датой.
Ну тоесть если в папке будут
2011-12-01_01-39-36)[0]
2011-12-01_01-39-36)[1]
2011-12-01_01-39-36)[2]
2011-12-01_01-39-36)[3]
Файлы и
2011-12-02_01-39-36)[0]
2011-12-02_01-39-36)[1]
2011-12-02_01-39-36)[2]
2011-12-02_01-39-36)[3]
То первые можно будет даже не рассматривать, а лучше по завершению миссии логи складывать в "архив" - какую-нибудь отдельную папку, таким образом старые логи не будут мешаться под ногами )
Ну это верно так сказать для "продакшн" версии )) Но для тестов и поиска возможно новых багов и особенностей логов я часто загружаю в папку логи за месяц с ньюбай или фастфуда, или у иностранцев с синдиката или хелликвинс прощу архивчик.
Так же запрашивали фичу - принудительное завершение вылета игрока, чтобы как раз не кикать за какие-то нарушения, неправильно выбранный самолет, а просто отправлять в брифинг с мессагой в чате, отказали.
А вот это грустно, что отказали, сейчас в тесте войны итальянцев этой фичи так не хватает, запросто можно по ошибке/специально взять чужой самолет и делать с ним что хочешь... , а кикать за такое с сервера... как то не серьезно:(
Только произошло это не от того, что "мы такие злые-ленивые".
Есть реальные ограничения архитектурные, обход которых порождает "костыли". Что такое "Костыль" и чем он грозит - см. сюда:
http://lurkmore.to/%D0%9A%D0%BE%D1%81%D1%82%D1%8B%D0%BB%D1%8C
Именно принципиальная и непримиримая борьба с любыми костылями в коде, даже ценой отказа от определенных фич, и позволяет нам двигаться дальше в техническом плане.
В данном случае ситуация в том, что "финишем" архитектурно управляет ТОЛЬКО сам самолет. Прямой доступ к игровым объектам - это уже изрядная "ботва" в коде.
А тут еще и объект, который моделируется НЕ на сервере (к которому имеет доступ консоль), а на клиенте. Т.е. надо городитьт огород с протаскиванием команды от консоли через сервер к клиенту.
Вероятность багов в этом функционале - 100%. даже если отладим - вероятность наведенных багов в других модулях - более 50%.
Этого допускать нельзя. Иначе "летающие деревья" будут ПОВСЮДУ и справиться с ними будет НЕВОЗМОЖНО.
Знаете из-за чего деревья полетели? Потому что сделали влияние атмосферы (ветер и винт) на шарфы и вымпелы.
Предупредите чатом или субтитрами, и кикните если не одумается.
=FB=LOFT
18.01.2012, 22:42
О да, разработка сложных программных комплексов это постоянная война :) За все, против всех :)
Предупредите чатом или субтитрами, и кикните если не одумается.
Ситуация понятна, работать надо с тем что есть.
Такие вопросы:
- есть ли бинарный формат чат лога? если да то как включать?
- можно ли расчитывать на команду консоли - зафлашить все позиции игровых обьектов или хотя бы пилотов в лог ?
- можно ли ввести чат канал который был бы доступен только серверу и игроку и, понятно, сообщения в этом канале попадали в чат лог? например если первым символом идет "!" то это сообщение в системный канал.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot