Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форумы Боевого Народа _ Форум администраторов _ Администрация BF2: RCON, remoteconsole.exe, вывод на экран

Автор: plagiat4x4 16.5.2013, 10:25

Итак, постараюсь сформулировать вопрос по возможности просто. Суть его заключается в понимании того, как именно работает ядро rcon. Kak то так.

1. Имеем БФ2, ОС - Винда.

2. Запускаем его например из командной строки:
C:\bf2srv\bf2_w32ded.exe

3. Видим стандартный экран, который всем знаком: различная инфа, надписи Loaded xxx%, сообщения от ПБ, заходящих игроков и так далее, и так далее

4. Теперь я например подрубаюсь к серверу с помощью поставляемой в комплекте утилитки из директории /adminutils/rcon/

remoteconsole.exe -h [ip сервера] -p [порт]

Всё прекрасно, ввожу пароль, всё работает. Могу вводить различные команды, типа

exec admin.listPlayers и тому подобное.

5. Теперь вопросы:

- возможно ли каким либо образом тот самый выхлоп из пункта 3 просматривать через ремот консоль?

- возможно ли просматривать в этой ремот консоли то, что пишется в консоли в самой игре? и как именно работает?

- если это http://bf2tech.org/index.php/Scripts:EventsPy прикрутить к БФ2 , если я правильно понял, то можно просматривать в консоли сообщения из игрового чата, которые читаются в свою очередь из буфера. Что именно нужно вводить, чтобы это показывалось?

Я запутался. Спасибо, если кто-то сможет мне это объяснить или ткнуть носом. Да, я понимаю есть консоль, есть питон, через который всё это взаимодействует, но как-то до меня не доходит, чего-то не хватает. То есть вся структура взаимодействия между рконом, батлой, питоном у меня в голове не укладывается. Спасибо.

п.с. Было бы замечательно, если бы здесь смог отписaться Tёма567 ))

Автор: MSN 17.5.2013, 7:53

Поставь http://www.bf2cc.com/ и не мучайся.

Автор: Tema567 21.5.2013, 13:51

Чтобы видеть выхлоп такого вида, желательно использовать ОС GNU/Linux, утилиту Screen и интерпретатор Bash, а через SSH смотреть на копию консоли.

Сообщения чата выводятся тоже очень просто:

Код
nullText = '\xa70'
lowText = '\xa71'

def init():
    host.registerHandler( 'ChatMessage', onChatMessage )

def onChatMessage( playerId, text, channel, flags ):
    if (playerId == -1):
        playerId = 255
    try:
        player = bf2.playerManager.getPlayerByIndex(playerId)
        if ((not player) or (not player.isValid())):
            return
        text = text.replace("HUD_TEXT_CHAT_TEAM", "")
        text = text.replace("HUD_TEXT_CHAT_SQUAD", "")
        text = text.replace("HUD_TEXT_CHAT_DEADPREFIX", "")
        text = text.replace("HUD_CHAT_DEADPREFIX", "")
        text = text.replace("*"+lowText+"DEAD"+nullText+"*", "")
        text = text.replace("*"+lowText+"MORT"+nullText+"*", "")
        text = text.replace("*"+lowText+"OWNED"+nullText+"*", "")
        print ('[Chat] '+player.getName()+': ' + msg)
        host.rcon_invoke('echo "'+str('[Chat] '+player.getName()+': ' + msg)+'"')
    except:
        return


Upd: Существуют готовые скрипты, которые позволяют добиться подобного результата.

http://i47.fastpic.ru/big/2013/0521/dd/6ac8485953f356411c3d6dd54bcca3dd.png

Чаще всего пользуюсь PuTTY (SSH клиент) с мобильного девайса.
Но ещё бывает просто удобен и незаменим BF2CC.

Автор: plagiat4x4 22.5.2013, 12:01

Огромное спасибо !! thumbsup.gif

Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)