Навигация по сайту
Наши Сервисы
Counter Strike 1.6
==================================
Для Сервера
================================== Скачать CS 1.6 Готовые Сервера Зашита Сервера AMXX Плагины ==================================
Для CS 1.6
================================== Снайперские прицелы Модели Игроков Модели Оружия Русификаторы Иконки радио Темы Меню Программы Конфиги Радары Мувики Карты Патчи Лого
Все Для CS:Source
Скачать CStrike:source плагины Eventscripts плагины Sourcemod Готовые Сервера Модели Игроков Модели Оружия Фоны Меню Программы Радары Карты Спреи Патчи GUI's Читы
Статистика
Воскресенье, 28/04/24, 04:00
Приветствую Вас Гость

Статьи

Главная » Статьи » -=CS 1.6=- » Разное

Регистрация на мастер-серверах (Обновление)

Шаги, которые нужно выполнить. чтобы ваш сервер был виден в интернете:
1. Поставить плагин:

#include <amxmodx>
#include <amxmisc>

#define TASK_UPDATE        4096
//Задержка между командами
#define DELAY            10.0

new bool:enabled = false, Masters[128][64], Count = 0, pcvar_repeat
new counter_add, counter_remove

public plugin_init()
{
    register_plugin("Automatic master servers register", "2.2", "Puma")
    pcvar_repeat = register_cvar("sm_repeat", "1")
    set_task(10.0, "delay_load")
}

public plugin_end()
    if(enabled)
        setmaster_removeall()

public delay_load()
{
    new configsdir[200], SetMasterFile[200], Result
    new fSize, temp
    
    get_configsdir(configsdir,199)
    format(SetMasterFile,199,"%s/setmaster.ini",configsdir)
    if(!file_exists(SetMasterFile)) 
    {
        server_print("Error: Coudn't find %s", SetMasterFile)
        return PLUGIN_HANDLED
    }
    fSize = file_size(SetMasterFile,1);
    if(!fSize)
    {
        server_print("Error: %s is empty", SetMasterFile)
        return PLUGIN_HANDLED
    }
    for(new i=0; i < fSize; i++)
    {
        Result = read_file(SetMasterFile, i, Masters[i], 63, temp) 
        if(!Result)
            continue
        
        replace_all(Masters[i], 190, "setmaster add", "")
        replace_all(Masters[i], 190, "setmaster remove", "")
        Count++
    }
    server_print("setmaster.ini loaded (%d)", Count)
    enabled = true
    if(enabled)
    {
        counter_add = 0
        set_task(0.1, "update", TASK_UPDATE+1)
    }
    
    set_task(300.0, "heartbeat", TASK_UPDATE, "", 0, "b")
    return PLUGIN_CONTINUE
}

public heartbeat()
{
    if(get_pcvar_num(pcvar_repeat) == 1)
    {
        counter_add = 0
        counter_remove = 0
        set_task(0.1, "update", TASK_UPDATE)
    }
    server_cmd("heartbeat")
}

public cmd_update(id)
{
    set_task(0.1, "update", TASK_UPDATE)
}

public update(taskid)
{
    //update part
    if(taskid == TASK_UPDATE)
    {
        if(Count > counter_remove)
        {
            server_cmd("setmaster remove %s", Masters[counter_remove])
            counter_remove++
            
            set_task(DELAY, "update", TASK_UPDATE)
        }
        else
        {
            counter_add = 0
            counter_remove = 0
            set_task(0.1, "update", TASK_UPDATE+1)
        }
    }
    //add part
    else if(taskid == TASK_UPDATE+1)
    {
        if(Count > counter_add)
        {
            server_cmd("setmaster add %s", Masters[counter_add])
            counter_add++
            
            set_task(DELAY, "update", TASK_UPDATE+1)
        }
        else
        {
            counter_add = 0
            counter_remove = 0
        }
    }
}

stock setmaster_removeall()
    for(new i=0; i < Count; i++)
        server_cmd("setmaster remove %s", Masters[i])

Скачать плагин setmaster_2.2

2. Открыть файл dproto.cfg и заменить переменные:
// Чтобы работа встроенного мастер клиента в дпрото выводил в логи свою работу
LoggingMode = 2

// Включим встроенный мастер-клиент
MasterClient = 1

// Выставим GameVersion, который будет отправляться на мастер-сервер.
Master_GameVersion = 1.6.3.7/Stdio

3. Запускать сервер с параметром -nomaster (в строке запуска) //по возможности

FAQ:
Q: Нужно ли прописывать в server.cfg какие-нибудь мастер-сервера?
A: Нет, всё делает плагин при инициализации 

Q: Зачем мне ставить MasterClient = 1?
A: Потому что билд косячит со встроенным мастер-клиентом, в результате не у всех сервер будет виден на мастер-серверах.

Q: Я получаю в консоли сообщения типа: [DPROTO]: MasterClient: Server xxx.xxx.xxx.xxx:27010: Bad Challenge, как это исправить, и что это означает?
A: Исправит эту проблему dproto ,при дополнительном запросе на добавлений на мастер сервере , ошибка означает, что на мастер-сервере в текущее время забит мастер, и он выдаёт серверу неправильный Challenge номер)

Q: Что за сообщения: [DPROTO]: [MEMU]: Hello sent to xxx.xxx.xxx.xxx:27010 и [DPROTO]: [MEMU]: Info sent to xxx.xxx.xxx.xxx:27010?
A: Сообщения дают вам знать, что мастер-клиент dproto отправляет пакеты добавления сервера и heartbeat пакеты.

Q: А css.setti.info / сетти не забанит за эту настройку на сервере?
A: Нет, если вы не будите это использовать на своём фейковом сервере 

Q: Чем тут помогает встроенный в dproto мастер-клиент (MasterClient = 1)?
A: Данный клиент исправляет косяк отображения числа игроков онлайн, с обычным мастер-клиентом это значение вело себя нестабильно, в следствии, видимость от части ухудшалась.

Q: Что написать в steam.inf ?
A: Оставить как есть ,тк если в dproto.cfg MasterClient = 1 ,то значение в steam.inf не берёться в счёт 

Q: Что делает параметр -nomaster ?
A: Лишь добавляет от себя(hlds) 2 рандомных рабочих мастера ,если запускать с -nomaster + плагином то регистрация на мастер сервере всёравно проходит 

Q: Зачем ставить именно 1.6.3.7/Stdio а не другое значение
A: Чтобы мастера не посчитали ваш сервер "старым" ,тк на мастерах стойт проверка данного значения ,если оно в допустимых пределах мастер добавит сервак ,в противном случий получите в консоли сообшение означаюшие что надо обновить HLDS

Q: У меня в консоли пишит Invalid address "xxx.xxx.xxx.xxx:xxx", setmaster command ignored
A: Ответ один ,или плагин выполняет часть удаления сетмастеров из себя (setmaster remove IP) когда они не добавлялись (при первом запуске обычно такое можно увидить) ,или ваш сервер уже добавлен на данный мастер сервак ,тк делая добавление реже чем примерно 5 минут мастер отвечает данным сообшением

Q: Что такое "heartbeat" ?
A: Команда которая отправляет мастер серверу пакет с некоторой инфой, это заставит мастер сервер не удалять ваш сервер через 5 минут в случий если он присутствует в списке мастер сервера


Изминения:
* Улучшен код плагина
+ Теперь список мастер серверов можно посмотреть/изменить в файле setmaster.ini (amxmodx/configs/setmaster.ini)
Категория: Разное | Добавил: fair_man[KZ] (23/11/11)
Просмотров: 5006
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Web-мастеру
Иконки для форума Иконки групп Страница 404 Шаблоны Скрипты Кнопки Шапки
Категории
Создание Сервера [9]
Разное [17]
Мувики [35]
Полезные Статьи
Что такое 1000 fps Настройка Сервера CS АМХ команды Админа Как уменьшить пинг Скрипты для CS Жаргон CS Стрейфы в CS Закладка бомбы обзор оружия в CS О кемперах Вычисляем читера Докажи что ты не читер Стрельба в CS Headshot Матрица в CS Баг на карте de_dust2 Замена серва с Win->Lin Мастер-сервера модели под админские
Для понимающих