myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> Sourcemon, API2 | Мониторинг игровых серверов Source и GoldSource

Рейтинг 5 V
Теги
alex82
сообщение 27.3.2009, 13:29
Сообщение #21


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1388 раз




Версия 1.01 beta

Изменения:
[+] Добавлен мониторинг серверов Call of Duty 4 и Quake 3.
[F] Исправлено несколько мелких ошибок.
Прикрепленный файл  SourceMon_v1.01_beta.rar ( 6.36 килобайт ) Кол-во скачиваний: 457

Название скрипта: SourceMon
Версия: 1.00
Версия API: API2
Автор: alex82

Описание:
Данный скрипт предназначен для мониторинга серверов игр, работающих на движках Source и GoldSource. Теоретически, поддерживаются все игры на вышеназванных движках, проверялось на Half-Life 2 Deathmatch, Team Fortress 2, Left4Dead, Counter-Strike, Counter-Strike: Source.

Возможности:
*Краткая сводка по всем серверам в списке, либо по определённой категории.
*Подробная информация по каждому серверу, в том числе список игроков.
*Просмотр настроек сервера.
*Отправка краткой статистики в качестве сообщения дня.
*Возможность использования совместно со скриптом чат-комнат.

Для работы скрипта требуется библиотека LuaSocket

Известные ошибки:
*На некоторых серверах возможно неправильное отображение списка игроков.
*Сортировка списка настроек малость кривая.

Прикрепленный файл  SourceMon_v1.00.rar ( 5.66 килобайт ) Кол-во скачиваний: 403
Go to the top of the page
+Quote Post
7 страниц V  < 1 2 3 4 > »   
Начать новую тему
Ответов
*FoxMalder*
сообщение 28.3.2009, 12:36
Сообщение #22


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




да есть, все работает кроме настроек..
Go to the top of the page
+Quote Post
alex82
сообщение 28.3.2009, 12:53
Сообщение #23


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1388 раз




Цитата(Setuper @ 28.3.2009, 11:32) *
А библиотека сокетов у тебя под API1 есть?
Она есть на форуме в разделе библиотек.

*FoxMalder*
Настройки серверов GoldSource не работают и в оригинальном скрипте. Причину уже нашел.

PS. Блин, это ж надо было создать настолько хитрозакрученный протокол.
* ругает матом разработчиков Valve *


Спасибо сказали:
Go to the top of the page
+Quote Post
Setuper
сообщение 28.3.2009, 13:00
Сообщение #24


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1707 раз




Я знаю, что она есть на форуме, я просто спрашивал установлена ли она у FoxMalder именно под api1.

В скрипте увидел следующее:
Код
NMDC = {
    [36] = "&#36;",
    [124] = "&#124;",
}
и поправил функцию в теме функции для разработчиков big_smile.gif .
Go to the top of the page
+Quote Post
alex82
сообщение 28.3.2009, 13:18
Сообщение #25


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1388 раз




Цитата(Setuper @ 28.3.2009, 12:00) *
В скрипте увидел следующее:
Код
NMDC = {
    [36] = "$",
    [124] = "|",
}
и поправил функцию в теме функции для разработчиков big_smile.gif .

Только наверное нужно так:
Код
NMDC = {
    [36] = "&#36;",
    [124] = "&#124;",
}

super_man.gif

____________________________

Багфикс.
Заменяем функцию GetServRules:
Код
function GetServRules(servnum)
    tRules[servnum] = nil
    local sock = socket.udp()
    if sock then
        sock:settimeout(tServers[servnum].Timeout or tCfg.DefaultTimeout)
        sock:setpeername(tServers[servnum].Addr, tServers[servnum].Port or sDefaultPort)
        sock:send("яяяяW")
        data, errmsg = sock:receive()
        if data and data:find("^яяяяA") then
            local chal = data:sub(6)
            sock:send("яяяяV"..chal)
            data, errmsg = sock:receive()
            if data and data:find("^юяяя") then
                data = data:sub(10)
            end
            if data and data:find("^яяяяE") then
                tRules[servnum] = {}
                local _,_,num = data:find("^яяяяE(.)")
                num = string.byte(num)
                data = data:sub(8)
                for i = 1, num do
                    local _,_,name,value = data:find("^(.-)%z(.-)%z")
                    if name and value then
                        tRules[servnum][i] = {name,value}
                    end
                    data = data:gsub("^.-%z.-%z","")
                    table.sort(tRules[servnum],function(a,b) return(a[1]:byte()<b[1]:byte()) end)
                end
            end
        end
        sock:close()
    end
end


Спасибо сказали:
Go to the top of the page
+Quote Post
Setuper
сообщение 28.3.2009, 13:22
Сообщение #26


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1707 раз




Кстате, вместо
Код
local _,_,name,value = data:find("^(.-)%z(.-)%z")
лучше использовать такую конструкцию
Код
local name,value = data:match"^(.-)%z(.-)%z"
и не ненужно вводить ненужные переменные _,_, и работает быстрее big_smile.gif

Однако, в случае
Код
if data and data:find"^яяяяA" then
лучше писать именно так (работает быстрее), а не так
Код
if data and data:match"^яяяяA" then
Go to the top of the page
+Quote Post
Extreme Gamer:D
сообщение 28.3.2009, 17:18
Сообщение #27


Абсолютный новичок


Группа: Пользователи
Сообщений: 6
Регистрация: 27.3.2009
Пользователь №: 2 782
Спасибо сказали: 0 раз




У меня вообще не отображаются серваки кс 1.6 с 48 протоколом как поправить?

Возможно сделать разделители в меню и краткой информации, например
Цитата
/////Сеть/////
сервер 1
сервер 2
сервер 3
/////Инетерет/////
сервер 1
сервер 2
сервер 3
??
И возможность получения краткой информации отдельно по категориям
Go to the top of the page
+Quote Post
alex82
сообщение 28.3.2009, 23:27
Сообщение #28


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1388 раз




Цитата(Extreme Gamer:D @ 28.3.2009, 16:18) *
Возможно сделать разделители в меню и краткой информации

И возможность получения краткой информации отдельно по категориям

Будет в следующей версии (собственно, оно уже есть, только пока недоступно публике big_smile.gif )
Цитата(Extreme Gamer:D @ 28.3.2009, 16:18) *
У меня вообще не отображаются серваки кс 1.6 с 48 протоколом как поправить?

Дай адрес сервака, на котором не работает.


Спасибо сказали:
Go to the top of the page
+Quote Post
IIPu3PAK
сообщение 29.3.2009, 5:01
Сообщение #29


Активный участник
***

Группа: Пользователи
Сообщений: 80
Регистрация: 25.2.2009
Пользователь №: 2 359
Спасибо сказали: 6 раз




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

вот один из наших айпишников...Внешний IP: 91.202.197.75 порт 27016
ближе к вечеру играем(при GMT +10)
Go to the top of the page
+Quote Post
Extreme Gamer:D
сообщение 30.3.2009, 9:29
Сообщение #30


Абсолютный новичок


Группа: Пользователи
Сообщений: 6
Регистрация: 27.3.2009
Пользователь №: 2 782
Спасибо сказали: 0 раз




Ну что, когда уже новую версию выложишь?)

Ещё можно сделать мониторинг по запросу, т.е. юзер вводит ип сервера и ему выдаётся статистика этого сервера
Go to the top of the page
+Quote Post
w0bzay
сообщение 30.3.2009, 12:59
Сообщение #31


Абсолютный новичок


Группа: Пользователи
Сообщений: 5
Регистрация: 27.3.2009
Пользователь №: 2 797
Спасибо сказали: 0 раз




поправив скрипт по советам в коментах, всё отлично работает...
а можно ли реализовать в нем чтобы после мотд в чате выводился список серваков и автоматически обновлялся каждые N-минут...
PS
и чтобы при этом память не отьедалась big_smile1.gif big_smile1.gif big_smile1.gif
Go to the top of the page
+Quote Post
alex82
сообщение 31.3.2009, 17:30
Сообщение #32


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1388 раз




Доступна версия 1.00


Спасибо сказали:
Go to the top of the page
+Quote Post
Accelerator
сообщение 31.3.2009, 18:02
Сообщение #33


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Из: Челябинск
Пользователь №: 1 075
Спасибо сказали: 243 раза




Цитата(alex82 @ 27.3.2009, 13:29) *
Для работы скрипта требуется библиотека LuaSocket

у меня всё работает без неё )
Go to the top of the page
+Quote Post
alex82
сообщение 31.3.2009, 18:45
Сообщение #34


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1388 раз




Цитата(THE STRELOK @ 31.3.2009, 18:02) *
у меня всё работает без неё )
Так не бывает. big_smile.gif Ты просто установил её вместе с каким-то другим скриптом.
Go to the top of the page
+Quote Post
Accelerator
сообщение 31.3.2009, 18:47
Сообщение #35


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Из: Челябинск
Пользователь №: 1 075
Спасибо сказали: 243 раза




Установил на тестовый хаб(для начала), там всё по нулям)) Скрипт этот был один big_smile.gif
Могу предоставить картинки =)
Go to the top of the page
+Quote Post
alex82
сообщение 31.3.2009, 19:01
Сообщение #36


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1388 раз




THE STRELOK

Ты волшебник. big_smile.gif

В птоке нету встроенных функций для работы с сокетами.

PS. Может ты и по воде ходить умеешь?
Go to the top of the page
+Quote Post
Accelerator
сообщение 31.3.2009, 19:03
Сообщение #37


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Из: Челябинск
Пользователь №: 1 075
Спасибо сказали: 243 раза




Прошу прощения, оказывается в папке libs библиотека была))

PS: прошу прощения за флуд :(
Go to the top of the page
+Quote Post
Extreme Gamer:D
сообщение 1.4.2009, 16:40
Сообщение #38


Абсолютный новичок


Группа: Пользователи
Сообщений: 6
Регистрация: 27.3.2009
Пользователь №: 2 782
Спасибо сказали: 0 раз




Замечен баг: У нас тип игры на сервере не Counter Strike, а например Cyber74.Ru @ Meat (Челябинск), а в мониторигне он отображается так Cyber74.Ru @ Meat (Челябинск), хотелось бы исправить.

alex, какие там новости с теми двумя серверами которые вообще не отображались?
Go to the top of the page
+Quote Post
alex82
сообщение 1.4.2009, 19:51
Сообщение #39


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1388 раз




Цитата(Extreme Gamer:D @ 1.4.2009, 16:40) *
Замечен баг: У нас тип игры на сервере не Counter Strike, а например Cyber74.Ru @ Meat (Челябинск), а в мониторигне он отображается так Cyber74.Ru @ Meat (Челябинск), хотелось бы исправить.

Код
tInfo[servnum] = {Name = name
меняем на
Код
tInfo[servnum] = {Name = name:ansi()

Цитата(Extreme Gamer:D @ 1.4.2009, 16:40) *
alex, какие там новости с теми двумя серверами которые вообще не отображались?
Глухо. Сервера не отвечают на запросы. Почему - не знаю. doubt.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 1.4.2009, 20:56
Сообщение #40


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




Код
SourceMon.lua:269: calling 'send' on bad self (udp{connected} expected, got userdata)
Go to the top of the page
+Quote Post
alex82
сообщение 1.4.2009, 21:09
Сообщение #41


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1388 раз




Цитата(*FoxMalder* @ 1.4.2009, 20:56) *
Код
SourceMon.lua:269: calling 'send' on bad self (udp{connected} expected, got userdata)
В версии 1.00 в строке 269 совсем другой код. Выкладывай ошибки из ПОСЛЕДНЕЙ версии ОРИГИНАЛЬНОГО скрипта, либо присоединяй измененный.


Спасибо сказали:
Go to the top of the page
+Quote Post

7 страниц V  < 1 2 3 4 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts От: Sourcemon
От темы с ID: 1661
0 Glebova15 2 029 28.1.2011, 14:24 Посл. сообщение: Glebova15
No New Posts От: Sourcemon
От темы с ID: 1661
1 Osimus 2 749 18.11.2010, 23:45 Посл. сообщение: Saymon21
No New Posts От: Sourcemon
От темы с ID: 1661
0 Invisible 2 254 8.3.2010, 15:28 Посл. сообщение: Invisible

 



RSS Сейчас: 25.6.2018, 20:22