Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

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

Наши новости:

14-дек
24-апр
10-апр
11-апр

Разделение стим и нонстим

Статус пользователя STILL47DEATH
сообщение 15.6.2011, 17:49
Сообщение #1


Стаж: 18 лет

Сообщений: 662
Благодарностей: 83
Полезность: 150

Итак, имеется сервер, на который идут все коннекты. На нём стоит последний дпрото!
Задача: стим игроков редиректить на один адрес, а нонстим на другой.
Проблема: тот плагин, который имеется в распоряжении не справляется. Не знаю по какой причине, но постепенно игроки начинают скапливаться на том сервере, с которого всех должно редиректить в разные стороны.
Возможно ли такое, что плагин не успевает это делать из-за того, что одновременно по нескольку коннектов идёт?! В моём плагине клиент определяется через дпрото таким образом:
если стим, то тебе сюда, всем остальным туда!

Есть у кого-нибудь более удобный или лучший вариант реализации?!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя imba
сообщение 15.6.2011, 18:06
Сообщение #2
Стаж: 16 лет

Сообщений: 1677
Благодарностей: 735
Полезность: 571

Написал бы хоть что за плагин...


!
Запрет на ответ в темах до: 10.11.29392, 21:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя scurra
сообщение 15.6.2011, 18:18
Сообщение #3


Стаж: 17 лет

Сообщений: 458
Благодарностей: 141
Полезность: 707

Меценат Меценат

Я так понимаю не редиректит стимов?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STILL47DEATH
сообщение 15.6.2011, 18:28
Сообщение #4


Стаж: 18 лет

Сообщений: 662
Благодарностей: 83
Полезность: 150

Цитата(imba @ 15.6.2011, 19:06) *
Написал бы хоть что за плагин...

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

Цитата(scurra @ 15.6.2011, 19:18) *
Я так понимаю не редиректит стимов?

мне кажется наоборот, так как когда я тестирую со стима меня швыряет как надо! пиратки нет, так что сказать точно не могу, но вроде её тоже тестировали и было всё норм! тут всё дело в том, что и то и то пашет, но не на 100% какой-то маленький процент игроков всё же заходит на сервер.
Я думаю может просто кикером каким-нибудь удалять их с редрект-сервера!? кикек проверяет игроков, которые полностью присоединились, ведь так!?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя scurra
сообщение 15.6.2011, 18:45
Сообщение #5


Стаж: 17 лет

Сообщений: 458
Благодарностей: 141
Полезность: 707

Меценат Меценат

Цитата(STILL47DEATH @ 15.6.2011, 19:28) *
самописный, если ты про исходник, то смысл его выкладывать, если я сказал алгоритм работы, там пару строк всего лишь!


мне кажется наоборот, так как когда я тестирую со стима меня швыряет как надо! пиратки нет, так что сказать точно не могу, но вроде её тоже тестировали и было всё норм! тут всё дело в том, что и то и то пашет, но не на 100% какой-то маленький процент игроков всё же заходит на сервер.
Я думаю может просто кикером каким-нибудь удалять их с редрект-сервера!? кикек проверяет игроков, которые полностью присоединились, ведь так!?

может какойто процент игроков не получает стимид от дпрото?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Asmodai
сообщение 15.6.2011, 18:47
Сообщение #6
Стаж: 15 лет

Сообщений: 833
Благодарностей: 1
Полезность: 0

STILL47DEATH, может быть люди с ревему остаются?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STILL47DEATH
сообщение 15.6.2011, 18:58
Сообщение #7


Стаж: 18 лет

Сообщений: 662
Благодарностей: 83
Полезность: 150

Цитата(scurra @ 15.6.2011, 18:45) *
может какойто процент игроков не получает стимид от дпрото?

в дпрото стоят настройки по дефолту, т.е. никакой генерации ИД, что есть то есть!

Цитата(Asmodai @ 15.6.2011, 18:47) *
STILL47DEATH, может быть люди с ревему остаются?

дпрото нормально ладит с ревкой, проверить кто именно остаётся не могу, меня то не пускает хДДД

плз ответьте на вопрос выше касательно кикера, возможно при помощи кикера решу свою траблу!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя scurra
сообщение 15.6.2011, 19:25
Сообщение #8


Стаж: 17 лет

Сообщений: 458
Благодарностей: 141
Полезность: 707

Меценат Меценат

Цитата(STILL47DEATH @ 15.6.2011, 19:58) *
плз ответьте на вопрос выше касательно кикера, возможно при помощи кикера решу свою траблу!

ну поставь хоть кикер по пингу ( high_ping_kicker ), поставь ограничение в 1 мс, и задержку проверки на 14-20 сек.. он будет всех выкидывать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GUNNER
сообщение 15.6.2011, 21:28
Сообщение #9


Стаж: 19 лет

Сообщений: 522
Благодарностей: 201
Полезность: 635

Можно попробовать обойтись без функций дпрото.
В дпрото поставить всем нонстимовцам VALVE_ID_LAN например, ну и как то так:
Код
public client_authorized(id)
{
    new AuthID[32]
    get_user_authid(id, AuthID, 31)
    if(containi(AuthID,"steam") == -1)
    {
        client_cmd(id, "Connect 123.45.67.89")
    }
    else
    {
        client_cmd(id, "Connect 98.76.54.123")
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя inf
сообщение 16.6.2011, 9:17
Сообщение #10


Стаж: 16 лет

Сообщений: 239
Благодарностей: 240
Полезность: 1254

Вот, без изменения настроек:

CODE

#include <amxmodx>

new const STEAM[] = "127.0.0.1:27015";
new const NONSTEAM[] = "127.0.0.1:27016";

new bool:isSteam[33] = {false, ...};
new DprotoAnswer;

public plugin_init() {
register_plugin("Steam/Nonsteam Redirect", "1.0", "inf.");
DprotoAnswer = get_cvar_pointer("dp_r_id_provider")
}

public client_authorized(iPlayer) {
server_cmd("dp_clientinfo %d", iPlayer);
server_exec();

new Auth = get_pcvar_num(DprotoAnswer);

switch(Auth) {
case 0: isSteam[iPlayer] = false;
case 1,3,4,5,6: isSteam[iPlayer] = false;
case 2: isSteam[iPlayer] = true;
default: isSteam[iPlayer] = false;
}

client_cmd(iPlayer, "Connect %s", isSteam[iPlayer] ? STEAM : NONSTEAM);

return PLUGIN_CONTINUE;
}

public client_disconnect(iPlayer) {
isSteam[iPlayer] = false;
}


Отредактировал: inf, - 16.6.2011, 9:19
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sp0ke
сообщение 16.6.2011, 18:13
Сообщение #11
Стаж: 17 лет

Сообщений: 534
Благодарностей: 102
Полезность: 164

на некоторых клиентах команда редиректа не работает
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: