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

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

MyDC.ru _ Сетевые скрипты [PtokaX] _ Sourcemon

Автор: alex82 27.3.2009, 13:29

Версия 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.

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

Для работы скрипта требуется библиотека http://mydc.ru/topic43.html

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

 SourceMon_v1.00.rar ( 5.66 килобайт ) : 403

Автор: n1l 27.3.2009, 14:21

alex82 убедительно прошу переделай под API 1, заранее спасибо

Автор: THE STRELOK 27.3.2009, 14:37

Спасибо, скрипт очень понравился, ошибок нет! Если кому надо, вот список серверов:


Автор: serrrios 27.3.2009, 14:37

Поставил себе на л4д и ксс, полет нормальный, спс.

Автор: alex82 27.3.2009, 15:28

Цитата(n1l @ 27.3.2009, 13:21) *
alex82 убедительно прошу переделай под API 1, заранее спасибо
Сорри, с API1 завязал. Да и нет смысла переводить этот релиз - сырой он.

THE STRELOK
Для инет-серверов Timeout = 1 маловато будет.
___________________________________

No-Steam серверы Half-Life 2 Deathmatch:
Код
    {Name = "CSMania/CityNov",Addr = "81.9.25.202:27014",Rules = true},
    {Name = "OAO Sibirtelecom",Addr = "217.116.128.15:27046",Rules = true},
    {Name = "Nextrim Deathmatch",Addr = "87.117.160.25:27018",Rules = true},
    {Name = "Nextrim Team Deathmatch",Addr = "87.117.160.25:27019",Rules = true},

Автор: THE STRELOK 27.3.2009, 15:45

Цитата(alex82 @ 27.3.2009, 16:28) *
THE STRELOK
Для инет-серверов Timeout = 1 маловато будет.

Поставил Timeout = 5 feel_good.gif
Вроде всё нормально

Автор: IIPu3PAK 27.3.2009, 19:54

Прикольно :P
если уж сделал tAppID мог бы и с игроками разобраться...чтоб без багов(я не тестил но у тебя написано что они остались)

Автор: PomanoB 27.3.2009, 20:06

Проблема с игроками возникает в Counter Strike 1.6 на 48 протоколе, игра не отсылает challenge.
Надо отослать запрос на игроков с любым challenge, в ответ придёт настоящий, и уже его надо использовать в запросе на игроков

Автор: alex82 27.3.2009, 21:10

Цитата(IIPu3PAK @ 27.3.2009, 18:54) *
Прикольно :P
если уж сделал tAppID мог бы и с игроками разобраться...чтоб без багов(я не тестил но у тебя написано что они остались)
Причину глюков пока что не нашел. Как правило, всё нормально, но время от времени в списке появляются игроки с диким количеством фрагов (8-и значное число).

Цитата(PomanoB @ 27.3.2009, 19:06) *
Проблема с игроками возникает в Counter Strike 1.6 на 48 протоколе, игра не отсылает challenge.
Надо отослать запрос на игроков с любым challenge, в ответ придёт настоящий, и уже его надо использовать в запросе на игроков
Я тоже об этом читал. Но...
Мониторинг CS тестил на единственном сервере. Сервер использовал именно 48 протокол, и почему-то всё нормально работало. shocked.gif

Автор: IIPu3PAK 27.3.2009, 21:23

Цитата(alex82 @ 27.3.2009, 22:10) *
Причину глюков пока что не нашел. Как правило, всё нормально, но время от времени в списке появляются игроки с диким количеством фрагов (8-и значное число).

наверное где то в коде что то жутко нехорошее surrender.gif

Автор: alex82 27.3.2009, 21:31

Цитата(IIPu3PAK @ 27.3.2009, 20:23) *
наверное где то в коде что то жутко нехорошее surrender.gif
Или они просто очень хорошо стреляют. big_smile1.gif

Автор: PomanoB 27.3.2009, 21:44

А это из-за минусового кол. очков

Автор: alex82 27.3.2009, 21:53

Цитата(PomanoB @ 27.3.2009, 20:44) *
А это из-за минусового кол. очков
Таки да, черт возьми. beat_brick.gif Об этом совсем забыл

Автор: IIPu3PAK 28.3.2009, 9:35

А очки в л4д 1.0.1.1 ноустимовском будут пахать или ваще никак?

Автор: *FoxMalder* 28.3.2009, 11:11

классный скрипт ток почему то на 0360 птоке не хочет работать раздел "настройки серверов" ошибок нету


http://mydc.ru/r/?http://X-FilesReality.ru

Автор: alex82 28.3.2009, 12:08

Цитата(IIPu3PAK @ 28.3.2009, 8:35) *
А очки в л4д 1.0.1.1 ноустимовском будут пахать или ваще никак?

А в чем выражается "непахание"? У всех по нулям?

Цитата(*FoxMalder* @ 28.3.2009, 10:11) *
классный скрипт ток почему то на 0360 птоке не хочет работать раздел "настройки серверов" ошибок нету

Вообще-то он под API2, и на 0.3.6.0 не будет работать. secret_smile.gif

Автор: *FoxMalder* 28.3.2009, 12:11

однако он работает с помощью http://mydc.ru/topic605.html но настройку серваков показывать не хочет..

Автор: alex82 28.3.2009, 12:14

Цитата(*FoxMalder* @ 28.3.2009, 11:11) *
однако он работает с помощью http://mydc.ru/topic605.html но настройку серваков показывать не хочет..
Ну дык выложи переведенный - посмотрим.

Автор: *FoxMalder* 28.3.2009, 12:20

собственно вот...

 SourceMon2.lua ( 16.09 килобайт ) : 66
 

Автор: Setuper 28.3.2009, 12:32

А библиотека сокетов у тебя под API1 есть?

Автор: *FoxMalder* 28.3.2009, 12:36

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

Автор: alex82 28.3.2009, 12:53

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

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

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

Автор: Setuper 28.3.2009, 13:00

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

В скрипте увидел следующее:

Код
NMDC = {
    [36] = "$",
    [124] = "|",
}
и поправил функцию в теме функции для разработчиков big_smile.gif .

Автор: alex82 28.3.2009, 13:18

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

Только наверное нужно так:
Код
NMDC = {
    [36] = "$",
    [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

Автор: Setuper 28.3.2009, 13:22

Кстате, вместо

Код
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

Автор: Extreme Gamer:D 28.3.2009, 17:18

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

Возможно сделать разделители в меню и краткой информации, например

Цитата
/////Сеть/////
сервер 1
сервер 2
сервер 3
/////Инетерет/////
сервер 1
сервер 2
сервер 3
??
И возможность получения краткой информации отдельно по категориям

Автор: alex82 28.3.2009, 23:27

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

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

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

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

Автор: IIPu3PAK 29.3.2009, 5:01

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

вот один из наших айпишников...Внешний IP: 91.202.197.75 порт 27016
ближе к вечеру играем(при GMT +10)

Автор: Extreme Gamer:D 30.3.2009, 9:29

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

Ещё можно сделать мониторинг по запросу, т.е. юзер вводит ип сервера и ему выдаётся статистика этого сервера

Автор: w0bzay 30.3.2009, 12:59

поправив скрипт по советам в коментах, всё отлично работает...
а можно ли реализовать в нем чтобы после мотд в чате выводился список серваков и автоматически обновлялся каждые N-минут...
PS
и чтобы при этом память не отьедалась big_smile1.gif big_smile1.gif big_smile1.gif

Автор: alex82 31.3.2009, 17:30

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

Автор: THE STRELOK 31.3.2009, 18:02

Цитата(alex82 @ 27.3.2009, 13:29) *
Для работы скрипта требуется библиотека http://mydc.ru/topic43.html

у меня всё работает без неё )

Автор: alex82 31.3.2009, 18:45

Цитата(THE STRELOK @ 31.3.2009, 18:02) *
у меня всё работает без неё )
Так не бывает. big_smile.gif Ты просто установил её вместе с каким-то другим скриптом.

Автор: THE STRELOK 31.3.2009, 18:47

Установил на тестовый хаб(для начала), там всё по нулям)) Скрипт этот был один big_smile.gif
Могу предоставить картинки =)

Автор: alex82 31.3.2009, 19:01

THE STRELOK

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

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

PS. Может ты и по воде ходить умеешь?

Автор: THE STRELOK 31.3.2009, 19:03

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

PS: прошу прощения за флуд :(

Автор: Extreme Gamer:D 1.4.2009, 16:40

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

alex, какие там новости с теми двумя серверами которые вообще не отображались?

Автор: alex82 1.4.2009, 19:51

Цитата(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

Автор: *FoxMalder* 1.4.2009, 20:56

Код
SourceMon.lua:269: calling 'send' on bad self (udp{connected} expected, got userdata)

Автор: alex82 1.4.2009, 21:09

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

Автор: *FoxMalder* 1.4.2009, 22:16

Цитата(alex82 @ 1.4.2009, 21:09) *
В версии 1.00 в строке 269 совсем другой код. Выкладывай ошибки из ПОСЛЕДНЕЙ версии ОРИГИНАЛЬНОГО скрипта, либо присоединяй измененный.

это и есть 1.00 версия..  SourceMon.lua ( 14.28 килобайт ) : 16


список серваков..
CODE

tServCats = {
[2] = {Name = "Counter Strike 1.6"},
[3] = {Name = "Counter Strike: Source"},
[4] = {Name = "-= Left4Dead =-"},
}
tServers = {
-- {Addr = "localhost",Timeout = 1},

{Name = "[Byxou] Public",Addr = "10.155.117.51",Port = "27015",Cat = 2,Rules = true},
{Name = "[Byxou] Gun Game",Addr = "10.155.117",Port = "27016",Cat = 2,Rules = true},

{Name = "Amdem CS: Source",Addr = "10.30.159.10:27016",Cat = 3,Rules = true},

{Name = "[No-STEAM] #1 Versus",Addr = " 10.30.139.100",Port = "27015",Cat = 4,Rules = true},
{Name = "[No-STEAM] #2 Versus",Addr = " 10.30.139.100",Port = "27016",Cat = 4,Rules = true},
{Name = "[No-STEAM] Expert Coop",Addr = " 10.30.139.100",Port = "27017",Cat = 4,Rules = true},
}

ошибка вылезает если брать общий список серваков на Counter Strike 1.6

все остальное работает

Автор: alex82 1.4.2009, 23:07

Сдается мне, это баг LuaSocket for API1.

PS. Пора переходить на API2.

Автор: *FoxMalder* 2.4.2009, 1:55

прошу прощения, скрипт нормально работает... ошибка была из-за моей невнимательности :(

Автор: King 11.4.2009, 11:52

Что-то не хочет в под никсой работать. Вроде вызывал файловую систему как описывал mariner...

Автор: alex82 11.4.2009, 12:13

Что пишет?

Автор: King 11.4.2009, 14:28

Не знаю, хаб не у меня

Автор: zangriEBP 24.4.2009, 15:15

Эх плохо не указывать было того у кого скрипт брал - IIPu3PAK
Ведь ты его просто настроил и протокола ты не знаешь!
Мы же с ним на одном хабе сидим big_smile.gif

Автор: alex82 24.4.2009, 19:31

Цитата(zangriEBP @ 24.4.2009, 15:15) *
Эх плохо не указывать было того у кого скрипт брал - IIPu3PAK
Ведь ты его просто настроил и протокола ты не знаешь!
Мы же с ним на одном хабе сидим big_smile.gif
И кому это адресовано?

Автор: zangriEBP 25.4.2009, 3:58

тебе!

Я в свое время писал это же скрипт (ток с замутами из за незнания что есть библиотека сокетов;не знал о этом форуме)
В нем мог сервак добавить любой(нужный) юзер на хабе и удалить, серваки хранились в файле.
(естественно ип проверялся на правельность;сервак должен был быть врублен;нерабочий сервак со временем удален)
Работал по принципу установил и забыл.. без всяких ненужных замутных таблиц. Был фильтр диапазонов ипов,протоколов,игр.

Правдо тогда еще не успел реализовать мониторинг игроков.
Взять и написать что ли свой скрипт или ты все же переделаешь и добвишь в него автора идеи.

Автор: Wariner 25.4.2009, 6:40

Код написан независимо от вас и никакого отношения к вам не имеет! Если вы приложите альтернативную версию плюс вам, если нет простое хвастовство!

PS: думаешь ты один такой умный и мысль скрипта была только у тебя?! xDDDD

Автор: mariner 25.4.2009, 7:22

+1
Писькометрия, без приложения фактов - засчитана за слив.

Автор: alex82 25.4.2009, 13:51

Цитата
Я в свое время писал это же скрипт (ток с замутами из за незнания что есть библиотека сокетов;не знал о этом форуме)
В нем мог сервак добавить любой(нужный) юзер на хабе и удалить, серваки хранились в файле.
(естественно ип проверялся на правельность;сервак должен был быть врублен;нерабочий сервак со временем удален)
Работал по принципу установил и забыл.. без всяких ненужных замутных таблиц. Был фильтр диапазонов ипов,протоколов,игр.

Правдо тогда еще не успел реализовать мониторинг игроков.
Взять и написать что ли свой скрипт или ты все же переделаешь и добвишь в него автора идеи.

Ну напиши.

Или хотябы смоги добавить в этот функцию добавления юзерами серверов (с проверкой ипов, протоколов, и.т.д).

А что до авторства идеи, то тут вы с призраком тоже в пролете, поскольку идея принадлежит разработчикам Valve, придумавшим протокол мониторинга и добавившим его в движок.

Так что пешы исчо, аффтар. big_smile1.gif

Автор: zangriEBP 26.4.2009, 11:27

Ну этот я брать не буду т.к. запутаюсь в нем напрочь, а вот написать 4 функции к 4 протоколам куда проще...
Думаю где-то на неделе найду время.
З.Ы. валове не изобрела LUA big_smile1.gif

Автор: alex82 26.4.2009, 12:20

Цитата(mariner @ 25.4.2009, 7:22) *
Писькометрия, без приложения фактов - засчитана за слив.

Автор: Wariner 26.4.2009, 12:59

Закончили оффтопить!!!

Автор: zangriEBP 6.5.2009, 13:25

А скриптег по всем типам серверов дает список игроков?(просто у меня получилось для всего surce исключая l4d)
Это пока просто big_smile.gif спросил для того что бы знать идти ли мне за rcon протоколом big_smile.gif

Оч важно для меня я так в нем и не разобрался big_smile.gif и написал свой (пока не реализовал то что обещал зато у моего полет 100%(нет багов);выложу его)

Автор: mariner 7.5.2009, 10:41

как ранг добивишь в своего бота - будешь пантоваться

Автор: fixx 12.5.2009, 13:32

Спасибо. Хороший скрипт. Как приятно: поставил, серверы прописал, включил - все работает big_smile.gif
==========================
Пожелание.
Добавьте, пожалуйста такую опцию в скрипт (если такое вообще возможно), для серверов КС 1.6:
При условии, что

Код
    Valve AntiCheat:        нет

ниже (или вместо нее) отображать первую строчку настройки сервера в таком виде:
Код
         Античит:                 __sxei_clt_ver = 7.7

В идеале переименованную в
Код
         Античит:                 sxe_injected_7.7

А ежели строчка не такого вида, то:
Код
         Античит:                 неизвестно

Или вернуть (если замещали) "Valve AntiCheat: нет"
Вроде не очень замудрено написал... big_smile.gif
Заранее спасибо.
ЗЫ. Как отображаются в настройках другие античиты (маяк, реборн) я не в курсе, но могу узнать, если надо =)

Автор: iharok 20.5.2009, 17:35

Возможна ли статистика вывода всех серверов созданных в сети, без прописи их IP. т.е. чтобы скрипт сам искал серверы сети.

Автор: mariner 20.5.2009, 18:10

это сильно тормазнет хаб, я гарантирую это!

Автор: Qwert 24.5.2009, 7:31

А нельзя ли сюда же добавить мониторинг игровых серверов Call of Duty 4 и Team Fortress?

Автор: alex82 24.5.2009, 14:58

Цитата(Qwert @ 24.5.2009, 7:31) *
А нельзя ли сюда же добавить мониторинг игровых серверов Call of Duty 4...
Я тоже об этом думал. Может и добавлю, если руки дойдут.

Цитата(Qwert @ 24.5.2009, 7:31) *
...и Team Fortress?
А разве это не GoldSource?

Автор: Qwert 24.5.2009, 21:58

Цитата(alex82 @ 24.5.2009, 14:58) *
Я тоже об этом думал. Может и добавлю, если руки дойдут.

А разве это не GoldSource?

Сори, не заметил... Буду премного признателен, если добавишь COD 4!!! feel_good.gif

Автор: alex82 31.5.2009, 2:24

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

Подробности в первом посте

PS. Если сюда заглядывают люди, играющие в COD4, то у меня к ним пара вопросов:

1. Бывает ли в игре отрицательный счет?
2. Вот список режимов игры:
Код
    ctf = "Capture The Flag",
    dm = "Deathmatch",
    koth = "King Of The Hill",
    sab = "Sabotage",
    sd = "Seek and Destroy",
    war = "Team War",
Я ничего не пропустил?

Автор: VOVKT 22.6.2009, 18:41

Под 0.3.6.0 робит с переделкой под Api 1 без проблем

Автор: Tarantul13 24.6.2009, 23:54

красава создатель! в минус фраги уходят
режим игры перечислен весь!

Автор: Tarantul13 15.7.2009, 19:09

Привет всем ! +1 создателю скрипта) слушай а нельзя сделать мониторинг игры S.T.A.L.K.E.R. ? ) народ просит)

Автор: Tarantul13 24.7.2009, 19:36

Привет всем! очень нужно переделать этот скрипт под верлихаб ( если канечно такое возможна, может есть прога по конвектированию скриптов под верли - отпишите плз) плз если можете сделайте плз.
beat_plaster.gif

Автор: SARGE 31.7.2009, 13:34

Что то неполучается скачать по ссылкам ...

Автор: alex82 31.7.2009, 15:52

Цитата(SARGE @ 31.7.2009, 13:34) *
Что то неполучается скачать по ссылкам ...
Качай IE или менеджером закачек.

PS. По ссылке в моей подписи его тоже можно скачать.

Автор: Eugen 2.8.2009, 11:44

Отличный скрипт очень понравился big_smile.gif

Автор: CalosTevez 10.8.2009, 17:52

серваки кс почему-то не видит, а код4 всё норм

Автор: buster 27.8.2009, 14:21

На своём хабе поставил скрипт, работает вроди без проблем.
Я изменил вывод информации.
Теперь при входе на хаб выводит

=====================================================================
Сервер: Domolink+Rosintel
Версия: 1.0.0.15
Карта: dod_anemia
Игроков: 0 из 18
Адрес:
Росинтел - serv:27015
Домолинк - serv:27015
Corbina и внешка - serv:27015
=====================================================================

Игра - Day of Defeat:Source.

В самом начале нашел 1 баг: тип игры выводит 2 раза

Игра: Day of Defeat:Source, Day of Defeat:Source

Еще хотел прикрутить таймер на каждые 30мин, но почему-то не работает.

Автор: thehawk 22.9.2009, 14:09

Ptakax 0.3.6.0. Скрипт SourceMon_v1.01_beta переделан под api1. Всё сервера видит нормально, но вот "настройка серверов" не работает. Видел что писали про проблему, но решения не заметил. Кто знает в чём дело?
Да и ещё: можно как-нибудь сделать чтобы сообщения о серверах выскакивали не в чате с Ptokax, а с другим ботом (у меня он назван Android-Info)? ну т.е. зарегестрировать что ли его?

Автор: alex82 22.9.2009, 17:57

Цитата(thehawk @ 22.9.2009, 14:09) *
Да и ещё: можно как-нибудь сделать чтобы сообщения о серверах выскакивали не в чате с Ptokax, а с другим ботом (у меня он назван Android-Info)? ну т.е. зарегестрировать что ли его?
Да можно и не регистрировать. Находишь строку:
Код
    bot = frmHub:GetHubBotName()

и заменяешь frmHub:GetHubBotName() на имя бота (естественно в кавычках)

Автор: thehawk 22.9.2009, 22:04

Цитата(alex82 @ 22.9.2009, 17:57) *
Да можно и не регистрировать. Находишь строку:
Код
    bot = frmHub:GetHubBotName()

и заменяешь frmHub:GetHubBotName() на имя бота (естественно в кавычках)

Что-то я не нашёл там такой строки.

Автор: Артём 22.9.2009, 22:35

thehawk
Если ты ищешь в скрипте с первого поста то 20 строчка

Автор: Uncle_Dif 22.9.2009, 23:53

Спасибо. Запустил без проблем. К сожалению не могу оценить в полной мере- не гамаю)).

Автор: thehawk 23.9.2009, 0:12

Цитата(Артём @ 22.9.2009, 22:35) *
thehawk
Если ты ищешь в скрипте с первого поста то 20 строчка
в 20 строчке
Код
bot = SetMan.GetString(21)
а не
Код
bot = frmHub:GetHubBotName()

Спасибо, получилось так, как хотел. Вот только проблема "Настройки серверов" осталась

Автор: Uncle_Dif 23.9.2009, 12:33


Простите нуба, этот скрипт проверяет работают или нет заложенные в нем сервера?
Я правильно понимаю? Что-то куда не ткну- пишет "CSMania/CityNov (81.9.25.202:27014) - Сервер не отвечает." и тп....
Возможно ли, существует ли скрипт, ищущий сервера (действующие)?

Автор: mariner 23.9.2009, 17:02

это просто нереально. КС и сам то ищет в пределах сегмента, а если в мире искать, то через сервера Steam

Автор: SLIPPER 30.9.2009, 11:14

Спасибо за скрипт!)

У меня есть наглая прозьба! К сожаления сам в скриптах особо не шарю потому вынужден просить... Можно хотябы подсказать, как написать скрипт для серверов РПГ игр, а точнее для Lineage II Gracia final ? still_dreaming.gif

Автор: thehawk 12.11.2009, 17:01

Есть какое-нибудь продвижение в разработке скрипта? Кстати, даже после перехода на 2 Api настройки работают попрежнему только в cod4, остальное "Сервер не отвечает". Краткую информацию вроде как показывает.

Автор: Satib 14.2.2010, 15:23

Выдает ошибку на PtokaX 0.4.1.2 - [15:22] Синтаксис D:\SERVER\0.4.1.2\scripts\SourceMon.lua:278: calling 'send' on bad self (udp{connected} expected, got userdata)

Не подскажете в чем проблема?

Автор: *FoxMalder* 16.2.2010, 16:28

а можно сделать чтоб он мониторил л4д2 серваки?

Автор: Kingston 28.2.2010, 8:19

Отличный скрипт!!! Спасибо! давно такой ищу

thehawk попробуй такую запись {Name = "COD4", Addr = "IP:PORT", Timeout = 1, Type = 2, Rules = true},

Автор: CraZy 2.3.2010, 21:24

как убрать повторения слов

=====================================================================
CS: Source - Public (--------------:27017) - Counter-Strike: Source, Counter-Strike: Source
Карта: de_train. Игроков: 0/22.
Для получения подробной информации введите !serv 3
=====================================================================

так же оч интересует как допесать инфу:

=====================================================================
CS 1.6 - Public (---------------:27016) - Counter-Strike (А надо Counter-Strike 1.6)
Карта: cs_estate. Игроков: 0/22.
Для получения подробной информации введите !serv 2
=====================================================================
Заранее благодарен!

Автор: foXDEvil 3.3.2010, 19:20

Нашёл в настройках строчку где можно вписать имя комнаты для игр, но в самой комнате нечего не происходит.
Хотелось бы чтобы допустим в комнату #Games и только в неё по очереди выходили мини мониторинги серверов.

P.S. чтобы писать в комнате перед этим нужно написать +войти

хм разобрался зачем добавили пункт с именем комнаты =) та команда в комнате работает, но хотелось бы чтобы скрипт в неё сам пиарил допустим каждые 15 минут =) как такое можно сделать?

Автор: alex82 4.3.2010, 0:59

Цитата(CraZy @ 2.3.2010, 20:24) *
как убрать повторения слов

=====================================================================
CS: Source - Public (--------------:27017) - Counter-Strike: Source, Counter-Strike: Source
Карта: de_train. Игроков: 0/22.
Для получения подробной информации введите !serv 3
=====================================================================

В 135 строке заменить
Код
if tInfo[i].Game then

на
Код
if tInfo[i].Game and tInfo[i].Game ~=(tInfo[i].Descr or "?") then

Цитата(CraZy @ 2.3.2010, 20:24) *
так же оч интересует как допесать инфу:

=====================================================================
CS 1.6 - Public (---------------:27016) - Counter-Strike (А надо Counter-Strike 1.6)
Карта: cs_estate. Игроков: 0/22.
Для получения подробной информации введите !serv 2
=====================================================================
Заранее благодарен!

В 138 строке заменить
Код
msg = msg..(tInfo[i].Descr or "?").."\n"..sTab

на
Код
msg = msg..((tInfo[i].Descr or "?") == "Counter-Strike" and "Counter-Strike 1.6" or (tInfo[i].Descr or "?")).."\n"..sTab


Цитата(foXDEvil @ 3.3.2010, 18:20) *
хотелось бы чтобы скрипт в неё сам пиарил допустим каждые 15 минут =) как такое можно сделать?
Для этого нужно объединить данный скрипт со скриптом чат-комнат.
Или, как вариант, приспособить ОпЧат под игровую комнату dribble.gif .

Автор: thehawk 4.3.2010, 18:51

Цитата(Kingston @ 28.2.2010, 7:19) *
Отличный скрипт!!! Спасибо! давно такой ищу

thehawk попробуй такую запись {Name = "COD4", Addr = "IP:PORT", Timeout = 1, Type = 2, Rules = true},

Это к чему ? Я же написал, что настройки не работают везде, кроме cod4 и ещё cs source.

Автор: foXDEvil 7.3.2010, 10:39

Цитата(alex82 @ 4.3.2010, 1:59) *
Для этого нужно объединить данный скрипт со скриптом чат-комнат.
Или, как вариант, приспособить ОпЧат под игровую комнату dribble.gif .


проблему с командой +войти в комнату решил, но не могу написать код для пиара каждые 15 минут.
Я переделал скрипт 8марта чтобы он каждые 15 минут в чат посылал команду !server ну вот он её посылает но хаб то не воспринимает её(((( а как сделать чтобы сразу мониторинг посылало я не знаю

Автор: dshumilo 12.3.2010, 21:45

на L4D2 серверах пишет сервер не доступен

Автор: foXDEvil 14.3.2010, 12:54

так и не ответил некто((( Лан я уже сам сделал =)

Хотя сделать рекламу мониторинга только для тех кто в гемс не удалось((( пришлось тупо от имени игровой комнаты рекламить в лички юзерам.
Если кто знает как замутить это со скриптом http://mydc.ru/topic438.html то черканите ПЛИЗЗЗ!!

Автор: IIPu3PAK 1.4.2010, 16:15

dshumilo л4д2 серваки немониторятся если крякнуты ревом,без указания оригинального стимклиента(сначала проверь мониторятся ли они в стиме например)... поменяй кряк
у меня с моим скриптом л4д2 норм мониторятся

Автор: DVV34VD 11.5.2010, 1:34

здраствуйте извините но я так и не понял под версией 0.4.1.2 скрипт работает

Автор: GangstaR 11.5.2010, 3:53

работает

Автор: DVV34VD 11.5.2010, 12:35

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

Автор: GangstaR 11.5.2010, 17:24

Вот мой (В нем только КС и код4 сервера)
 sourceMon.rar ( 7.15 килобайт ) : 31

Добавляй сервера в SourceMon/Servers.tbl

Автор: viktor6 30.5.2010, 19:37

а под Verlihub есть скрипт?

Автор: brauzer84 17.6.2010, 21:10

ребят...мож знает кто как добавить ссылку на сам клиент для игры?

вот при входе на хаб выдает:

[20:56:43] <CLUB-BOT> Мониторинг игровых серверов
=====================================================================
-= Club-OK HLDM Server #1 =- (club-ok.no-ip.org) - [club-ok.no-ip.org]
Карта: ag_crossfire. Игроков: 13/26.
Для получения подробной информации введите !server 1
=====================================================================

а вот хотелось бы ниже на строчку вставить ссылку на клиент...типа того -


=====================================================================
-= Club-OK HLDM Server #1 =- (club-ok.no-ip.org) - [club-ok.no-ip.org]
Карта: ag_crossfire. Игроков: 13/26.
Для получения подробной информации введите !server 1
Клиент - (магнет ссылка)
Форум сервера (ссылка)
=====================================================================

пробовал вставлять этот текст в разные места, но безрезультатно....

Автор: alex82 18.6.2010, 15:52

Цитата(brauzer84 @ 17.6.2010, 21:10) *
ребят...мож знает кто как добавить ссылку на сам клиент для игры...

После этого:
Код
                    if tCfg.ShowServerCmd then
                        msg = msg.."\n"..sTab.."Для получения подробной информации введите "..Prefix..tCmd.Server.." "..i
                    end

вставляешь.
Код
                    if tServers[i].Client then
                        msg = msg.."\n"..sTab.."Скачать клиент: "..tServers[i].Client
                    end
                    if tServers[i].Forum then
                        msg = msg.."\n"..sTab.."Форум сервера: "..tServers[i].Forum
                    end

Теперь в настройки серверов можно добавлять параметры Client и Forum.


Автор: brauzer84 20.6.2010, 9:54

Цитата(alex82 @ 18.6.2010, 17:52) *
Теперь в настройки серверов можно добавлять параметры Client и Forum.



Все сделал как написанно, но чёт не пойму где прописать саму инфу Client и Forum
в файле settings или Servers?

Автор: alex82 21.6.2010, 10:43

Разве настройки серверов находятся в нескольких файлах?

Код
{Addr = "localhost",Timeout = 1,Client = "http://sample.ru/file.exe", Forum="http://sample.ru/forum/"},

Автор: brauzer84 23.6.2010, 9:56

Оказалось я просто забыл поставить кавычьки. beat_brick.gif Все отлично работает. secret_smile.gif

Автор: Greeck 15.7.2010, 20:41

Цитата(alex82 @ 31.5.2009, 3:24) *
2. Вот список режимов игры:
Код
    ctf = "Capture The Flag",
    dm = "Deathmatch",
    koth = "King Of The Hill",
    sab = "Sabotage",
    sd = "Seek and Destroy",
    war = "Team War",
Я ничего не пропустил?

Для CoD4 пропустил один режим (dom)...

Код
tMode = {
    sab = "Саботаж | Sabotage",
    koth = "Штаб | Headquarters",
    dm = "Свободная игра | Free for all Deathmatch",
    sd = "Найти и уничтожить | Search & Destroy",
    dom = "Первенство | Domination",
    war = "Командный бой | Team Deathmatch",
}

Нужна помощь, скрипт напрочь отказывается мониторить серваки CS и CSS, пишет "Сервер не отвечает.", хотя серваки работоспособны... doubt.gif L4D, CoD4 и TF2 всё ок.

Servers.tbl:
Код
tServCats = {
    [2] = {Name = "Call of Duty 4"},
    [3] = {Name = "Counter Strike"},
    [4] = {Name = "Counter Strike Source"},
    [5] = {Name = "Left 4 Dead"},
    [6] = {Name = "Team Fortress 2"}
}
tServers = {
    {Name = "[game.cominet.ru] CoD4:MW #1",Addr = "10.1.1.54:28960",Type = 2,Cat = 2},
    {Name = "BekToP CoD4:MW Public",Addr = "10.1.64.12:28960",Type = 2,Cat = 2},
    {Name = "BekToP CoD4:MW HardCore",Addr = "10.1.64.12:28961",Type = 2,Cat = 2},
    {Name = "BekToP CoD4:MW HardCore PunkBuster",Addr = "10.1.64.12:28962",Type = 2,Cat = 2},
    {Name = "BeKToP CoD4:MW Promod",Addr = "10.1.64.12:28963",Type = 2,Cat = 2},

    {Name = "!NeW[www.cominet.ru] CSDM FFFA",Addr = "10.1.1.54:27015",Cat = 3},
    
    {Name = "!NeW[www.cominet.ru]DM DE_DDPCbb Orange #2",Addr = "10.1.1.54:27023",Cat = 4},
    {Name = "!NeW[www.cominet.ru]Public Orange #1",Addr = "10.1.1.54:27024",Cat = 4},
    {Name = "!NeW[www.cominet.ru]DM DE_Dust 2 Head Only Orange #2",Addr = "10.1.1.54:27025",Cat = 4},
    {Name = "[UCN-Games.ru]CS:Source Public 1 DD2 24/7",Addr = "10.24.1.2:27015",Cat = 4},
    {Name = "[UCN-Games.ru]CS:Source Public X30 #2",Addr = "10.24.1.3:27015",Cat = 4},
    {Name = "[UCN-Games.ru]CS:Source GunGame",Addr = "10.24.1.4:27015",Cat = 4},
    {Name = "[UCN-Games.ru]CS:Source Deathmatch",Addr = "10.24.1.5:27015",Cat = 4},

    {Name = "[UCN-Games.Ru]Left4Dead [VERSUS] #1",Addr = "10.24.1.50:27015",Cat = 5},
    {Name = "[UCN-Games.Ru]Left4Dead [VERSUS] #2",Addr = "10.24.1.50:27016",Cat = 5},
    {Name = "[UCN-Games.Ru]Left4Dead [COOP] #1",Addr = "10.24.1.50:27017",Cat = 5},
    {Name = "[UCN-Games.Ru]Left4Dead [COOP] #2",Addr = "10.24.1.50:27018",Cat = 5},

    {Name = "!NeW[www.cominet.ru] No SPY TF 2",Addr = "10.1.1.54:27055",Cat = 6},
    {Name = "[UCN-Games.Ru] Team Fortress 2",Addr = "10.24.1.51:27015",Cat = 6},
}

Автор: Accelerator 19.12.2010, 10:23

В связи со сменой протокола не показывает список игроков, играющих на CS1.6/CS:S сервере. Проблема, как я думаю, наблюдается в этом куске:

Код
                if ext then
                    tPlayers[servnum] = nil
                    sock:send("яяяяW")
                    data, errmsg = sock:receive()
                    if data and data:find("^яяяяA") then
                        local chal = data:sub(6)
                        sock:send("яяяяU"..chal)
                        data, errmsg = sock:receive()
                        if data and data:find("^яяяяD") then
                            tPlayers[servnum] = {}
                            local num = data:match("^яяяяD(.)")
                            num = string.byte(num)
                            if num > 0 then
                                data = data:sub(7)
                                for i = 1, num do
                                    local name,k1,k2,k3,k4 = data:match("^.(.-)%z(.)(.)(.)(.)....")
                                    name = name or "?"
                                    tPlayers[servnum][i] = {name:ansi(),tonumber(ToHex(k4)..ToHex(k3)..ToHex(k2)..ToHex(k1), 16)}
                                    if tPlayers[servnum][i][2] > 2147483647 then tPlayers[servnum][i][2] = tPlayers[servnum][i][2]-4294967296 end
                                    data = data:gsub("^..-%z........","")
                                end
                                table.sort(tPlayers[servnum],function(a,b) return(a[2]>b[2]) end)
                            end
                        end
                    end
                end
Пробывал переписать этот кусок сам, но не получилось :( Не могу понять, что и где нужно заменить. Прошу помощи big_smile.gif

Автор: -slava- 30.12.2010, 16:19

А под БФ 2 AIX2 есть у кого скриптик???????

Автор: Barmolei0808 25.1.2011, 0:34

А как переделать под UT 2004
Что и где надо заменить?
Подскажите старому динозавру
Спасибо

Автор: Donki 27.3.2011, 19:15

периодически при обращении к серверу кс версии 48, скрипт выдаёт ошибку "Синтаксис SourceMon.lua:288: attempt to index local 'name' (a nil value)"

Автор: viperrr 22.12.2011, 16:53

обновил сервер ксс до 68 версии и скрипт перестал его мониторить, пишет сервер не отвечает ....

Автор: Donki 3.2.2012, 16:03

48 версию без сбоев мониторит скрипт из этой темы http://mydc.ru/topic4710.html Может и с 68 справится.

Автор: Dani_Filth 11.1.2014, 15:58

Подскажите пожалуйста,возможно как ни будь сделать скрипт что бы он отображал мой 2-ой сервер,а не выдавал команду в чат и ошибку во птоке ? Тоесть у меня 2 сервера закидываю в скрипт и скрипт не хочет отображать мой 2-ой сервер. Я понял в чём проблема. Но как исправить незнаю.

Автор: Артём 11.1.2014, 16:39

А я вообще ничего не понял beat_plaster.gif
какая ошибка, какой второй сервер, какой первый сервер...

Автор: Dani_Filth 11.1.2014, 23:05

Добавляю в скрипт свой 1 сервер допустим 91.235.144.64:27015,а у меня ещё один запущен 91.235.144.64:27017 когда заливаю 2-ой сервер в скрипт выдаёт ошибку вот эту при вызаве команды - scripts\SourceMon.lua:286: attempt to index local 'name' (a nil value)

Автор: Артём 12.1.2014, 0:29

Dani_Filth, может не правильно сервер "обозвал".
P.S. без ошибок постарайся писать.

Автор: Dani_Filth 12.1.2014, 3:03

Вот именно,всё правильно написано. Меняю последнию цырфу IP адреса в конфиге и ошибки нет..

Автор: Артём 12.1.2014, 14:44

Dani_Filth, ты лучше покажи на деле, что у тебя там написано, гадалок нет.

Автор: Dani_Filth 13.1.2014, 5:44

Вот смотри

Код
    {Name = "Publik Server Deathmatch v.34 [No SteaM]",Addr = "91.235.144.64:27015",Cat = 2,Rules = true},
    {Name = "Counter Strike Source 5",Addr = "91.235.144.64:27017",Cat = 2,Rules = true},
Так скрипт не работает,а если встрочке с "Counter Strike Source 5" изменить IP адрес даже если последнию цифру,то скрипт работает.

Вот PtokaX 0.4.1.2 выдаёт ошибку
Код
scripts\SourceMon.lua:286: attempt to index local 'name' (a nil value)



Вот строчка со скрипта :
Код
tInfo[servnum] = {Name = name:ansi(), Map = map, Dir = dir, Descr = descr, Game = (tAppID[appid] or "? (AppID: "..appid..")"),

Автор: Ksan 13.1.2014, 12:54

Dani_Filth,
А почему бы не предположить, что 1 IP = 1 сервер, иное не дано?
По крайней мере, при ваших существующих настройках скрипта..

Автор: Dani_Filth 13.1.2014, 14:56

А если у меня 2 сервера от 1 движка просто порты на серверы разные.. Можно ли что ни будь придумать ?

Автор: Ksan 13.1.2014, 15:10

Dani_Filth,
Попробуйте второй скрипт запустить для второго сервера, изменив название скрипта чуток. big_smile.gif

Автор: Артём 13.1.2014, 17:03

Dani_Filth, не знаю что у тебя там за ошибки и что ты там менял/дополнял/удалял или хз что ты там вообще делал, но у меня нормально всё работает, без ошибок.

Раскрывающийся текст
[16:01:09] <PtokaX>
=====================================================================
Server: Publik Server Deathmatch v.34 [No SteaM]
Address: 91.235.144.64

Game: Counter-Strike: Source, Protected by Kigen's Anti-Cheat
Map: $3000$
Players: 5
Max. Players: 24
Bots: 5

Pass: yes
Valve AntiCheat: yes

Additional information
Version: 1.0.0.34
Directory: cstrike
Server type: dedicated
Operating system: Windows
=====================================================================
Players:

1. DM Crusher 74
2. DM Quade 67
3. DM Wolf 60
4. DM Stone 55
5. DM Kyle 42
=====================================================================
[16:01:19] <PtokaX>
=====================================================================
Server: Counter Strike Source 5
Address: 91.235.144.64:27017

The server is not responding.
=====================================================================

Да хоть 3 сервера держи, порты разные указываешь и всё, не имеет значения.
P.S. кстати, так ты спамерок... недавно у меня спамил. Сам себе помогай дальше.

и ещё, не офигел ли ты ники ботам давать такие?

Автор: striker 5.2.2014, 13:17

Тёмыч ну пусть погордицо что у него такие люди на хабе сидят extreme_sexy_girl.gif