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

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

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

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

6 страниц V  « 3 4 5 »

Afk Control 0.4 Stable. Обновлённая версия 02.04.2014 от trollface (Ещё более оптимизированный)

, Закачик: intercs. Автор: Freedo.m. Обновление от trollface.
Статус пользователя csnet
сообщение 28.3.2014, 10:17
Сообщение #61
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

Цитата(miRror @ 28.3.2014, 12:13) *
Переиграв в rust мелькнула идея перед глазами. А что, если с афк игрока потихоньку тянуть деньги, а потом когда он останется на мели превращать его в курочку и если в него кто-либо стрельнет, то кикать ? Деньги отображать в виде спрайта на земле, которые можно поднять.



можно


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 9iky6
сообщение 28.3.2014, 10:48
Сообщение #62


Стаж: 14 лет

Сообщений: 143
Благодарностей: 47
Полезность: 260

А почему бы не заюзать cs_get_user_lastactivity(id)??? Или совесть не позволяет спрашивать у движка данные, лучше самому по извращаться с позициями?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
staff2517
сообщение 28.3.2014, 16:31
Сообщение #63
Стаж: 12 лет

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

На самом деле проблемы с худ вопросом вовсе не в плагине Afk_control и версия 0.1 прекрасно работает !!!
Вся проблема в плагине admin_freelook.amxx Т.к. после смерти админ стает в статусе "spec" для того чтобы за всеми наблюдать и по этому плагин выдает сообщение.
P.s. Я решил проблему следующим образом: Нужно установить другой плагин admin_freelook который работает на модуле "orpheu" в нем нету бага когда админ мертв приставка в чате не меняется на "spec"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 28.3.2014, 17:12
Сообщение #64
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(9iky6 @ 28.3.2014, 12:48) *
А почему бы не заюзать cs_get_user_lastactivity(id)??? Или совесть не позволяет спрашивать у движка данные, лучше самому по извращаться с позициями?

Кто-то из знающих говорил, что lastactivity обновляется не во всех необходимых случаях, потому как бЭ никто и не использует. Мне она тоже в своё время понравилась, даже один AFK-менеджер перепилил)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя miRror
сообщение 28.3.2014, 18:08
Сообщение #65


Стаж: 15 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

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

https://forums.alliedmods.net/showthread.php?t=134744
Возможно тут говорится про ошибку в функции.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 29.3.2014, 12:06
Сообщение #66


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

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

Для сервера на 20 слотов такие настройки нормальные, 300 секунд не много выставил?

Настройки
#define TIME_VALID_ADD 15.0 // Длительность защиты игрока от плагина, когда он только зашёл на сервер.
#define TIME_AFK_CHECK 20.0 // Интервал между проверками игроков, чем меньше значение, тем больше нагрузка на сервер.
#define MAX_AFK_WARNING 3 // Количество предупреждений после которых последует наказание.
#define TIME_SPECT_CHECK 300.0 // Интервал между проверками зрителей, чем меньше значение, тем больше нагрузка на сервер.
#define MIN_PLAYERS_CHECK 18 // Минимальное количество игроков, когда включается функция проверки зрителей.


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя umbserver
сообщение 31.3.2014, 13:13
Сообщение #67
Стаж: 12 лет

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

Цитата(intercs @ 9.10.2013, 19:42) *
Ответ всем и вся: Плагин будем оптимизировать, а также возьмём на заметку фиксы от илюжиона, но пока даже не открывали-) Времени нет. Позже выложим пофиксенный...
Терпение...

Юзает кто это плагин с фиксом от illusion?
Ссылка на пост этой темы,где лежит фикс

Код фикса
Код
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define TIME_VALID_ADD 15.0 // а”аЛаИб‚аЕаЛбЊаНаОбЃб‚бЊ аЗаАб‰аИб‚б‹ аИаГбЂаОаКаА аОб‚ аПаЛаАаГаИаНаА, аКаОаГаДаА аОаН б‚аОаЛбЊаКаО аЗаАб€б‘аЛ аНаА бЃаЕбЂаВаЕбЂ.
#define TIME_AFK_CHECK 20.0 // а�аНб‚аЕбЂаВаАаЛ аМаЕаЖаДбѓ аПбЂаОаВаЕбЂаКаАаМаИ аИаГбЂаОаКаОаВ, б‡аЕаМ аМаЕаНбЊб€аЕ аЗаНаАб‡аЕаНаИаЕ, б‚аЕаМ аБаОаЛбЊб€аЕ аНаАаГбЂбѓаЗаКаА аНаА бЃаЕбЂаВаЕбЂ.
#define MAX_AFK_WARNING 3 // аљаОаЛаИб‡аЕбЃб‚аВаО аПбЂаЕаДбѓаПбЂаЕаЖаДаЕаНаИаЙ аПаОбЃаЛаЕ аКаОб‚аОбЂб‹б… аПаОбЃаЛаЕаДбѓаЕб‚ аНаАаКаАаЗаАаНаИаЕ.
#define TIME_SPECT_CHECK 60.0 // а�аНб‚аЕбЂаВаАаЛ аМаЕаЖаДбѓ аПбЂаОаВаЕбЂаКаАаМаИ аЗбЂаИб‚аЕаЛаЕаЙ, б‡аЕаМ аМаЕаНбЊб€аЕ аЗаНаАб‡аЕаНаИаЕ, б‚аЕаМ аБаОаЛбЊб€аЕ аНаАаГбЂбѓаЗаКаА аНаА бЃаЕбЂаВаЕбЂ.
#define MIN_PLAYERS_CHECK 30 // ањаИаНаИаМаАаЛбЊаНаОаЕ аКаОаЛаИб‡аЕбЃб‚аВаО аИаГбЂаОаКаОаВ, аКаОаГаДаА аВаКаЛбЋб‡аАаЕб‚бЃбЏ б„бѓаНаКб†аИбЏ аПбЂаОаВаЕбЂаКаИ аЗбЂаИб‚аЕаЛаЕаЙ.

#pragma semicolon 1

#define MAX_PLAYERS 32
#define MSG_SAY_TEXT 76
#define MSG_SEND_AUDIO 100

#define TASK_AFK_CHECK 139734
#define TASK_VALID_ADD 759846
#define TASK_SPECT_CHECK 645986
#define TASK_SPECT_REMOVE 295466

#define BIT_VALID(%1,%2) ((%1) & (1 << ((%2) - 1)))
#define BIT_ADD(%1,%2) ((%1) |= (1 << ((%2) - 1)))
#define BIT_SUB(%1,%2) ((%1) &= ~(1 << ((%2) - 1)))
#define BIT_NOT_VALID(%1,%2) (~(%1) & (1 << ((%2) - 1)))

#define _BIT_VALID(%1,%2) ((%1) & (1 << (%2)))
#define _BIT_ADD(%1,%2) ((%1) |= (1 << (%2)))
#define _BIT_SUB(%1,%2) ((%1) &= ~(1 << (%2)))
#define _BIT_NOT_VALID(%1,%2) (~(%1) & (1 << (%2)))

new Float:g_fOldOrigin[MAX_PLAYERS + 1][3], Float:g_fOldAngles[MAX_PLAYERS + 1][3];
new g_iBitClientValid, g_iWarning[MAX_PLAYERS + 1];
new g_iMaxPlayers;

public plugin_init()
{
    register_plugin("Afk Control", "0.3 Final", "Freedo.m");
    RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
    RegisterHam(Ham_Killed, "player", "Ham_PlayerKilled_Post", 1);
    register_menucmd(register_menuid("Afk Menu"), 1, "Handle_AfkMenu");
    
    register_clcmd("joinclass", "cmd_joinclass");
    register_menucmd(register_menuid("Terrorist_Select", 1), 511, "cmd_joinclass");
    register_menucmd(register_menuid("CT_Select", 1), 511, "cmd_joinclass");
    
    g_iMaxPlayers = get_maxplayers();
    set_task(TIME_SPECT_CHECK, "SpectatorCheck", TASK_SPECT_CHECK, _, _, "b");
}

public cmd_joinclass(id)
    g_iWarning[id] = 0;
    
public client_putinserver(id)
{
    if(is_user_bot(id) || is_user_hltv(id)) return;
    set_task(TIME_VALID_ADD, "ClientValidAdd", id+TASK_VALID_ADD);
    g_iWarning[id] = 0;
}

public client_disconnect(id)
{
    if(task_exists(id+TASK_AFK_CHECK)) remove_task(id+TASK_AFK_CHECK);
    if(task_exists(id+TASK_VALID_ADD)) remove_task(id+TASK_VALID_ADD);
    if(task_exists(id)) remove_task(id);
    BIT_SUB(g_iBitClientValid, id);
}

public ClientValidAdd(id)
{
    id -= TASK_VALID_ADD;
    BIT_ADD(g_iBitClientValid, id);
}

public Ham_PlayerSpawn_Post(id)
{
    if(!is_user_alive(id)) return;
    if(task_exists(id+TASK_AFK_CHECK)) remove_task(id+TASK_AFK_CHECK);
    set_task(1.0, "SpawnCheck", id+TASK_AFK_CHECK);
    set_task(TIME_AFK_CHECK, "AfkCheck", id+TASK_AFK_CHECK, _, _, "b");
}

public Ham_PlayerKilled_Post(id) remove_task(id+TASK_AFK_CHECK);

public SpawnCheck(id)
{
    id -= TASK_AFK_CHECK;
    pev(id, pev_origin, g_fOldOrigin[id]);
    pev(id, pev_angles, g_fOldAngles[id]);
}

public AfkCheck(id)
{
    id -= TASK_AFK_CHECK;
    new Float:fNewOrigin[3], Float:fNewAngles[3];
    pev(id, pev_origin, fNewOrigin);
    pev(id, pev_angles, fNewAngles);
    if(xs_vec_equal(g_fOldOrigin[id], fNewOrigin) && xs_vec_equal(g_fOldAngles[id], fNewAngles))
    {
        if(++g_iWarning[id] >= MAX_AFK_WARNING)
        {
            user_kill(id, 1);
            engclient_cmd(id, "jointeam", "6");
            SendAudio(id, "events/friend_died.wav");
        }
        else SendAudio(id, "events/tutor_msg.wav");
        PrintMsg(id, "!g|AFK|!y а’б‹ аНаЕ аПбЂаОбЏаВаЛбЏаЕб‚аЕ аАаКб‚аИаВаНаОбЃб‚бЊ, аПбЂаЕаДбѓаПбЂаЕаЖаДаЕаНаИбЏ: !g%i/%i", g_iWarning[id], MAX_AFK_WARNING);
        if(user_has_weapon(id, CSW_C4)) engclient_cmd(id, "drop", "weapon_c4");
    }
    else
    {
        if(g_iWarning[id]) g_iWarning[id] = 0;
        xs_vec_copy(fNewOrigin, g_fOldOrigin[id]);
        xs_vec_copy(fNewAngles, g_fOldAngles[id]);
    }
}

public SpectatorCheck()
{
    if(get_playersnum() < MIN_PLAYERS_CHECK) return;
    new id;
    for(new i; i < g_iMaxPlayers; i++)
    {
        if(_BIT_VALID(g_iBitClientValid, i))
        {
            id = (i + 1);
            switch(_:cs_get_user_team(id))
            {
                case 0: AfkPunishment(id);
                case 3:
                {
                    Show_AfkMenu(id);
                    SendAudio(id, "events/tutor_msg.wav");
                    set_task(10.0, "AfkPunishment", id);
                }
            }
        }
    }
}

public Show_AfkMenu(id)
{
    new szMenu[256], iLen = formatex(szMenu, charsmax(szMenu), "\y[AFK-spectr] а’б‹ аНаАаБаЛбЋаДаАаЕб‚аЕ аЗаА аИаГбЂаОаЙ?^nа•бЃаЛаИ а’б‹ аНаЕ ађаЄаљ аНаАаЖаМаИб‚аЕ 1.^nаЃ а’аАбЃ 10 бЃаЕаК. аДаЛбЏ аОб‚аВаЕб‚аА.^n^n");
    formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y1. \wа”аА! аЏ аНаЕ ађаЄаљ!");
    return show_menu(id, 1, szMenu, 10, "Afk Menu");
}
public Handle_AfkMenu(id)
{
    remove_task(id);
    return PLUGIN_HANDLED;
}

public AfkPunishment(id)
{
    server_cmd("kick #%d а’б‹ аБб‹аЛаИ аКаИаКаНбѓб‚б‹ аИаЗ-аЗаА аНаАб…аОаЖаДаЕаНаИбЏ аВ аЗбЂаИб‚аЕаЛбЏб….", get_user_userid(id));
}

stock bool:xs_vec_equal(const Float:vec1[], const Float:vec2[])
{
    return (vec1[0] == vec2[0]) && (vec1[1] == vec2[1]) && (vec1[2] == vec2[2]);
}

stock xs_vec_copy(const Float:vecIn[], Float:vecOut[])
{
    vecOut[0] = vecIn[0];
    vecOut[1] = vecIn[1];
    vecOut[2] = vecIn[2];
}

stock SendAudio(id, szDirSound[])
{
    message_begin(MSG_ONE_UNRELIABLE, MSG_SEND_AUDIO, _, id);
    write_byte(id);
    write_string(szDirSound);
    write_short(100);
    message_end();
}

stock PrintMsg(const id, const szMessage[], any:...)
{
    if(!is_user_connected(id)) return;
    new szMsg[190];
    vformat(szMsg, charsmax(szMsg), szMessage, 3);
    while(replace(szMsg, charsmax(szMsg), "!y", "^1")) {}
    while(replace(szMsg, charsmax(szMsg), "!t", "^3")) {}
    while(replace(szMsg, charsmax(szMsg), "!g", "^4")) {}
    message_begin(MSG_ONE_UNRELIABLE, MSG_SAY_TEXT, _, id);
    write_byte(id);
    write_string(szMsg);
    message_end();
}

Как он ?

Отредактировал: umbserver, - 31.3.2014, 14:16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 1.4.2014, 7:22
Сообщение #68
Стаж: 12 лет

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

Цитата(umbserver @ 31.3.2014, 13:13) *
Юзает кто это плагин с фиксом от illusion?
Ссылка на пост этой темы,где лежит фикс

Код фикса
Код
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define TIME_VALID_ADD 15.0 // а”аЛаИб‚аЕаЛбЊаНаОбЃб‚бЊ аЗаАб‰аИб‚б‹ аИаГбЂаОаКаА аОб‚ аПаЛаАаГаИаНаА, аКаОаГаДаА аОаН б‚аОаЛбЊаКаО аЗаАб€б‘аЛ аНаА бЃаЕбЂаВаЕбЂ.
#define TIME_AFK_CHECK 20.0 // а�аНб‚аЕбЂаВаАаЛ аМаЕаЖаДбѓ аПбЂаОаВаЕбЂаКаАаМаИ аИаГбЂаОаКаОаВ, б‡аЕаМ аМаЕаНбЊб€аЕ аЗаНаАб‡аЕаНаИаЕ, б‚аЕаМ аБаОаЛбЊб€аЕ аНаАаГбЂбѓаЗаКаА аНаА бЃаЕбЂаВаЕбЂ.
#define MAX_AFK_WARNING 3 // аљаОаЛаИб‡аЕбЃб‚аВаО аПбЂаЕаДбѓаПбЂаЕаЖаДаЕаНаИаЙ аПаОбЃаЛаЕ аКаОб‚аОбЂб‹б… аПаОбЃаЛаЕаДбѓаЕб‚ аНаАаКаАаЗаАаНаИаЕ.
#define TIME_SPECT_CHECK 60.0 // а�аНб‚аЕбЂаВаАаЛ аМаЕаЖаДбѓ аПбЂаОаВаЕбЂаКаАаМаИ аЗбЂаИб‚аЕаЛаЕаЙ, б‡аЕаМ аМаЕаНбЊб€аЕ аЗаНаАб‡аЕаНаИаЕ, б‚аЕаМ аБаОаЛбЊб€аЕ аНаАаГбЂбѓаЗаКаА аНаА бЃаЕбЂаВаЕбЂ.
#define MIN_PLAYERS_CHECK 30 // ањаИаНаИаМаАаЛбЊаНаОаЕ аКаОаЛаИб‡аЕбЃб‚аВаО аИаГбЂаОаКаОаВ, аКаОаГаДаА аВаКаЛбЋб‡аАаЕб‚бЃбЏ б„бѓаНаКб†аИбЏ аПбЂаОаВаЕбЂаКаИ аЗбЂаИб‚аЕаЛаЕаЙ.

#pragma semicolon 1

#define MAX_PLAYERS 32
#define MSG_SAY_TEXT 76
#define MSG_SEND_AUDIO 100

#define TASK_AFK_CHECK 139734
#define TASK_VALID_ADD 759846
#define TASK_SPECT_CHECK 645986
#define TASK_SPECT_REMOVE 295466

#define BIT_VALID(%1,%2) ((%1) & (1 << ((%2) - 1)))
#define BIT_ADD(%1,%2) ((%1) |= (1 << ((%2) - 1)))
#define BIT_SUB(%1,%2) ((%1) &= ~(1 << ((%2) - 1)))
#define BIT_NOT_VALID(%1,%2) (~(%1) & (1 << ((%2) - 1)))

#define _BIT_VALID(%1,%2) ((%1) & (1 << (%2)))
#define _BIT_ADD(%1,%2) ((%1) |= (1 << (%2)))
#define _BIT_SUB(%1,%2) ((%1) &= ~(1 << (%2)))
#define _BIT_NOT_VALID(%1,%2) (~(%1) & (1 << (%2)))

new Float:g_fOldOrigin[MAX_PLAYERS + 1][3], Float:g_fOldAngles[MAX_PLAYERS + 1][3];
new g_iBitClientValid, g_iWarning[MAX_PLAYERS + 1];
new g_iMaxPlayers;

public plugin_init()
{
    register_plugin("Afk Control", "0.3 Final", "Freedo.m");
    RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
    RegisterHam(Ham_Killed, "player", "Ham_PlayerKilled_Post", 1);
    register_menucmd(register_menuid("Afk Menu"), 1, "Handle_AfkMenu");
    
    register_clcmd("joinclass", "cmd_joinclass");
    register_menucmd(register_menuid("Terrorist_Select", 1), 511, "cmd_joinclass");
    register_menucmd(register_menuid("CT_Select", 1), 511, "cmd_joinclass");
    
    g_iMaxPlayers = get_maxplayers();
    set_task(TIME_SPECT_CHECK, "SpectatorCheck", TASK_SPECT_CHECK, _, _, "b");
}

public cmd_joinclass(id)
    g_iWarning[id] = 0;
    
public client_putinserver(id)
{
    if(is_user_bot(id) || is_user_hltv(id)) return;
    set_task(TIME_VALID_ADD, "ClientValidAdd", id+TASK_VALID_ADD);
    g_iWarning[id] = 0;
}

public client_disconnect(id)
{
    if(task_exists(id+TASK_AFK_CHECK)) remove_task(id+TASK_AFK_CHECK);
    if(task_exists(id+TASK_VALID_ADD)) remove_task(id+TASK_VALID_ADD);
    if(task_exists(id)) remove_task(id);
    BIT_SUB(g_iBitClientValid, id);
}

public ClientValidAdd(id)
{
    id -= TASK_VALID_ADD;
    BIT_ADD(g_iBitClientValid, id);
}

public Ham_PlayerSpawn_Post(id)
{
    if(!is_user_alive(id)) return;
    if(task_exists(id+TASK_AFK_CHECK)) remove_task(id+TASK_AFK_CHECK);
    set_task(1.0, "SpawnCheck", id+TASK_AFK_CHECK);
    set_task(TIME_AFK_CHECK, "AfkCheck", id+TASK_AFK_CHECK, _, _, "b");
}

public Ham_PlayerKilled_Post(id) remove_task(id+TASK_AFK_CHECK);

public SpawnCheck(id)
{
    id -= TASK_AFK_CHECK;
    pev(id, pev_origin, g_fOldOrigin[id]);
    pev(id, pev_angles, g_fOldAngles[id]);
}

public AfkCheck(id)
{
    id -= TASK_AFK_CHECK;
    new Float:fNewOrigin[3], Float:fNewAngles[3];
    pev(id, pev_origin, fNewOrigin);
    pev(id, pev_angles, fNewAngles);
    if(xs_vec_equal(g_fOldOrigin[id], fNewOrigin) && xs_vec_equal(g_fOldAngles[id], fNewAngles))
    {
        if(++g_iWarning[id] >= MAX_AFK_WARNING)
        {
            user_kill(id, 1);
            engclient_cmd(id, "jointeam", "6");
            SendAudio(id, "events/friend_died.wav");
        }
        else SendAudio(id, "events/tutor_msg.wav");
        PrintMsg(id, "!g|AFK|!y а’б‹ аНаЕ аПбЂаОбЏаВаЛбЏаЕб‚аЕ аАаКб‚аИаВаНаОбЃб‚бЊ, аПбЂаЕаДбѓаПбЂаЕаЖаДаЕаНаИбЏ: !g%i/%i", g_iWarning[id], MAX_AFK_WARNING);
        if(user_has_weapon(id, CSW_C4)) engclient_cmd(id, "drop", "weapon_c4");
    }
    else
    {
        if(g_iWarning[id]) g_iWarning[id] = 0;
        xs_vec_copy(fNewOrigin, g_fOldOrigin[id]);
        xs_vec_copy(fNewAngles, g_fOldAngles[id]);
    }
}

public SpectatorCheck()
{
    if(get_playersnum() < MIN_PLAYERS_CHECK) return;
    new id;
    for(new i; i < g_iMaxPlayers; i++)
    {
        if(_BIT_VALID(g_iBitClientValid, i))
        {
            id = (i + 1);
            switch(_:cs_get_user_team(id))
            {
                case 0: AfkPunishment(id);
                case 3:
                {
                    Show_AfkMenu(id);
                    SendAudio(id, "events/tutor_msg.wav");
                    set_task(10.0, "AfkPunishment", id);
                }
            }
        }
    }
}

public Show_AfkMenu(id)
{
    new szMenu[256], iLen = formatex(szMenu, charsmax(szMenu), "\y[AFK-spectr] а’б‹ аНаАаБаЛбЋаДаАаЕб‚аЕ аЗаА аИаГбЂаОаЙ?^nа•бЃаЛаИ а’б‹ аНаЕ ађаЄаљ аНаАаЖаМаИб‚аЕ 1.^nаЃ а’аАбЃ 10 бЃаЕаК. аДаЛбЏ аОб‚аВаЕб‚аА.^n^n");
    formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y1. \wа”аА! аЏ аНаЕ ађаЄаљ!");
    return show_menu(id, 1, szMenu, 10, "Afk Menu");
}
public Handle_AfkMenu(id)
{
    remove_task(id);
    return PLUGIN_HANDLED;
}

public AfkPunishment(id)
{
    server_cmd("kick #%d а’б‹ аБб‹аЛаИ аКаИаКаНбѓб‚б‹ аИаЗ-аЗаА аНаАб…аОаЖаДаЕаНаИбЏ аВ аЗбЂаИб‚аЕаЛбЏб….", get_user_userid(id));
}

stock bool:xs_vec_equal(const Float:vec1[], const Float:vec2[])
{
    return (vec1[0] == vec2[0]) && (vec1[1] == vec2[1]) && (vec1[2] == vec2[2]);
}

stock xs_vec_copy(const Float:vecIn[], Float:vecOut[])
{
    vecOut[0] = vecIn[0];
    vecOut[1] = vecIn[1];
    vecOut[2] = vecIn[2];
}

stock SendAudio(id, szDirSound[])
{
    message_begin(MSG_ONE_UNRELIABLE, MSG_SEND_AUDIO, _, id);
    write_byte(id);
    write_string(szDirSound);
    write_short(100);
    message_end();
}

stock PrintMsg(const id, const szMessage[], any:...)
{
    if(!is_user_connected(id)) return;
    new szMsg[190];
    vformat(szMsg, charsmax(szMsg), szMessage, 3);
    while(replace(szMsg, charsmax(szMsg), "!y", "^1")) {}
    while(replace(szMsg, charsmax(szMsg), "!t", "^3")) {}
    while(replace(szMsg, charsmax(szMsg), "!g", "^4")) {}
    message_begin(MSG_ONE_UNRELIABLE, MSG_SAY_TEXT, _, id);
    write_byte(id);
    write_string(szMsg);
    message_end();
}

Как он ?

А что тут изменено ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 1.4.2014, 9:26
Сообщение #69
Стаж: 12 лет

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

Оптимизированный?
добавьте приставку НЕ
говнокод детектед. =|
фридом походу в ж... пьяный писал =\
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 1.4.2014, 9:38
Сообщение #70
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Зато неугомон себя опытным почувствовал)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 1.4.2014, 9:42
Сообщение #71
Стаж: 12 лет

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

Developer,
да нет, не почувствовал. просто зачем писать что то про оптимизацию, если это не так?:\
Оффтоп
убери этот ник. он стремный. верни назад сафетиста:)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя intercs
сообщение 12.4.2014, 19:37
Сообщение #72


Стаж: 13 лет

Сообщений: 727
Благодарностей: 408
Полезность: 504

Afk Control 0.4 Stable = Обновлённая версия от 02.04.2014 от trollface (Ещё более оптимизированный, который подходит, как под старые, так и под новые билды сервера).

Afk Control
Версия: 0.4 Stable = Обновлённая версия от 02.04.2014 от trollface (Ещё более оптимизированный, который подходит, как под старые, так и под новые билды сервера).
Советуем ставить эту версию, т.к. более оптимизирована, но на всякий случай ниже будет бывшая версия плагина с некоторыми отличиями.

О заказчике, авторе и тд.
Закачик плагина: intercs.
Автор: Freedo.m Контакты: Авторство и последователи фикс-версий
Skype: aleksando2
Amx-x: http://amx-x.ru/memberlist.php?mode=viewprofile&u=1816
Обновлённая версия от 02.04.2014 от trollface https://c-s.net.ua/forum/index.php?showtopic=61191

ОПИСАНИЕ Afk Control:
1) Борится с теми, кто коннектится и не выбирает команду или спектр, т.е. с теми, кто АФК и соответственно его кикнет.
2) По умолчанию АФК-игрок автоматически скидывает бомбу на землю при наступлении первого предупреждения, но есть режим и с перебросом бомбы любому активному игроку.
3) Сначала АФК-игрока, кидает в спектры, а потом при вхождении игрока на основании MIN_PLAYERS_CHECK начинается проверка на афк-спектры, что потом кикает с сервера уже АФК-спектров.
4) Предусмотренно количество варнингов (по умолчанию 2 варнинга, каждый по 30 секунд за не активность для тех, кто не в спектре. И по умолчанию при вхождении игрока на основании MIN_PLAYERS_CHECK начинается проверка на афк-спектры, что потом кикает с сервера уже АФК-спектров.
5) Проигрывается стандартный звук для тех, кто не в спектре за варнинг events/tutor_msg.wav. А за переброс в спектр проигрывает стандартный более грубый звук events/friend_died.wav
6) Имеется защита по флагу А (Иммунитет) от кика, при нахождении только в спектре. А от переброса в спектр нет защиты, тем самым если флаг А отошел, то он не помешает смыслу игру, стоя бесконечно,а его просто закинет в спектры, но из спектра не выкинет.
7) УБРАНО МЕНЮ В ЭТОЙ НОВОЙ ВЕРСИИ, В СВЯЗИ С НЕНАДОБНОСТЬЮ И НЕСТАБИЛЬНОСТЬЮ.
Цитата из прошлой версии: Сидя в спектаторе на основании MIN_PLAYERS_CHECK количестве игроков на сервере игроку каждые 60 секунд выдаётся слева HUD-сообщение с проверкой его на АФК + проигрывается стандартный звуковой сигнал.
Если он не нажмёт цифру 1 в течение 10 секунд с момента появления вопроса, то он и правда АФК и его перенаправит (код только для тех, кто купил плагин с перенаправлением) или кикнет.
Проверка спектаторов (HUD-сообщение) на АФК каждые 60 секунд производится только тогда, когда на сервере ___ (по умолчанию: 30) игроков. Если игроков меньше этого значения, то проверки спектаторов на АФК не будет, тем самым не теряется онлайн. Как только зашёл, к примеру 30 игрок, а ты являешься 31 и сидишь в спекте, то через 60 секунд тебя спросят - а не афк ли Вы милок?

8) Проверка на АФК игроков, которые замерли в процессе игры происходит путём определения подвижности координат Х и Y игровой мыши. Т.е. если у тебя стоит скрипт на анти-афк, то это не поможет, т.к. плагин распознаёт передвижение мыши. Данный принцип зарекомендовал себя тем, что такой проверкой он не нагружает сервер, в отличии от других АФК-плагинов, у которых принцип обнаружения заточен под поиск нажатия клавиши или передвижения... Вообщем наслаждайтесь. Надоело писать.

Настройка (внутри исходника):
#define ACCESS_LEVEL_IMMUNITY ADMIN_IMMUNITY // Уровень доступа позволяющий беспрепятственно сидеть в зрителях
#define TIME_AFK_CHECK 30.0 // Интервал между проверками игроков в секундах, которые не в спектре. Чем меньше значение, тем больше нагрузка на сервер.
#define MAX_AFK_WARNING 2 // Количество предупреждений после которых последует наказание, которые не в спектре (сначала закидывает в спектр, а потом пойдет проверка на спектр-афк).
#define TIME_SPECT_CHECK 60.0 // Интервал между проверками зрителей в секундах, чем меньше значение, тем больше нагрузка на сервер.
#define MAX_SPECT_CHECK_PL 2 // Количество проверок игрока, каждые TIME_SPECT_CHECK секунд на нахождение в зрителях, после которых его кикнет.
#define MIN_PLAYERS_CHECK 30 // Минимальное количество игроков, когда включается функция проверки зрителей (т.е. из спектра не кикнет никого, пока не зайдет 30-тый игрок, тем самым сохраняем видимый онлайн).
//#define BOMB_TRANSFER // Передавать ли бомбу игрокам, если игрок AFK. По умолчанию выключена, а значит бомба просто выкидывается на земнлю. !!! Включение прибавит чутка нагрузки !!!

#define MAX_PLAYERS 32 // Если У вас сервер со слотами меньше -32, то соответственно измените это значение на ваши слоты, т.к. функция проверки АФК-спектров на основании MIN_PLAYERS_CHECK должна быть не больше этого значения.
Т.е. если к примеру сервер на 20 слотов, то ставим MAX_PLAYERS 20 и ставим MIN_PLAYERS_CHECK 18. Следовательно сервер плагин понял, что у Вас 20 слотов, а при входе 18-го игрока на сервер, у Вас начнется проверка на АФК-спектров, для очистки неактивных спектров, чтоб могли зайти и играть новые игроки.

ВАЖНО: в архиве имеется инклюд colorchat.inc (на веб-компиляторе амх-х его нет и плагин можно скомпилить себе на: тут качаем компиляторы amxmodx = внутри архивов base есть компилятор.
Незнаю, про версию 1.8.3, но я себе для версии 1.8.1 скомпилил на 1.8.2 = это норм, внутри архива в папке \addons\amxmodx\scripting\compile.exe 1.8.2-dev-hg60-base.zip
Закидываем инклюд colorchat.inc в папку addons\amxmodx\scripting\include. Плагин afk_control.sma в папку addons\amxmodx\scripting. Выбираем плагин и наводим его на compile.exe = ищем afk_control.amx в новой созданной папке addons\amxmodx\scripting\compiled = закидыааем на серв.

https://c-s.net.ua/forum/index.php?act=atta...st&id=24693

================================================================

Afk Control
Версия: 0.3

Закачик плагина: intercs.
Автор: Freedo.m Контакты:
Skype: aleksando2
Amx-x: http://amx-x.ru/memberlist.php?mode=viewprofile&u=1816
Сcылка на заказы от intercs, где можно отследить ход заказов и ссылку на готовые заказы: https://c-s.net.ua/forum/topic52524s0.html

ОПИСАНИЕ Afk Control:
1) Борится с теми, кто коннектится и не выбирает команду или спектр. Т.е. при входе на сервер надо в течении 15 секунд выбрать за Т, СТ или спектр = иначе перенаправит (код только для тех, кто купил плагин с перенаправлением) на другой сервер или кикнет.
2) АФК-игрок автоматически скидывает бомбу на землю (именно на землю для реализма, а не переброс другому) при наступлении первого предупреждения.
3) Предусмотренно количество варнингов (по умолчанию 3 варнинга, каждый по 20 секунд за не активность + будет за варнинг стандартный звук events/tutor_msg.wav = через 60 сек. закинет в СПЕКТАТОР.
4) На 3 варнинг перебрасывает в СПЕКТАТОР + проигрывает стандартный более грубый звук events/friend_died.wav
5) Защита любого игрока на проверку АФК по умолчнию 15 сек. с момента коннекта.
6) Сидя в спектаторе при ___ количестве игроков на сервере игроку каждые 60 секунд выдаётся слева HUD-сообщение с проверкой его на АФК + проигрывается стандартный звуковой сигнал.
[attachment=21171:afk.jpg]
Если он не нажмёт цифру 1 в течение 10 секунд с момента появления вопроса, то он и правда АФК и его перенаправит (код только для тех, кто купил плагин с перенаправлением) или кикнет.
7) Проверка спектаторов (HUD-сообщение) на АФК каждые 60 секунд производится только тогда, когда на сервере ___ (по умолчанию: 30) игроков. Если игроков меньше этого значения, то проверки спектаторов на АФК не будет, тем самым не теряется онлайн. Как только зашёл, к примеру 30 игрок, а ты являешься 31 и сидишь в спекте, то через 60 секунд тебя спросят - а не афк ли Вы милок?
8) Проверка на АФК игроков, которые замерли в процессе игры происходит путём определения подвижности координат Х и Y игровой мыши. Т.е. если у тебя стоит скрипт на анти-афк, то это не поможет, т.к. плагин распознаёт передвижение мыши. Данный принцип зарекомендовал себя тем, что такой проверкой он не нагружает сервер, в отличии от других АФК-плагинов, у которых принцип обнаружения заточен под поиск нажатия клавиши или передвижения... Вообщем наслаждайтесь. Надоело писать.

Примечание:
Данная версия внизу выкладывается без функции перенаправления на другой сервер, а только с функцией кика.
Функция перенаправления скрыта от всех глаз, т.к. автором разработана функция перенаправления как Non-steam, так STEAM, так и Update STEAM 2013.
Плагин (исходник) с функцией перенаправления на другой сервер может быть продан только тем, кто имеет хорошую репутацию на форуме и не был замечен в сливе такой важной информации в паблик... Т.к. если это пойдёт в массы, то VALVE пофиксят дыру...
Цена договорная...

Настройка (внутри исходника):
[spoiler=Скрытый текст]#define IP_REDIRECT "11.222.33.444:27015" // Ип-адрес и порт сервера на который будет происходить перенаправление. (Код только для тех, кто купил плагин с перенаправлением, имеея хорошую репутацию на форуме и не был замечен в сливе такого в паблик...).

#define TIME_VALID_ADD 15.0 // Длительность защиты игрока от плагина, когда он только зашёл на сервер.
#define TIME_AFK_CHECK 20.0 // Интервал между проверками игроков, чем меньше значение, тем больше нагрузка на сервер.
#define MAX_AFK_WARNING 3 // Количество предупреждений после которых последует наказание.
#define TIME_SPECT_CHECK 60.0 // Интервал между проверками зрителей, чем меньше значение, тем больше нагрузка на сервер.
#define MIN_PLAYERS_CHECK 30 // Минимальное количество игроков, когда включается функция проверки зрителей.

Внесение исправлений (дополнений), устранение багов:
Версия 0.2:
1) Тестили досканально и не выявили проблем, с тем, что если ты был убил и значишься в статусе DEAD, то показывается через 60 сек. HUD-вопрос при ___ количестве игроков на сервере в данный момент, как для спектаторов с вопросом...
Но раз уж у человека каким-то образом это случилось, то код стал более приятен на глаз и думаем, что данный случай полностью устранён...
Т.е. HUD-вопрос должен показываться только для тех, кто находится в СПЕКТАТОР.
Версия 0.3:
1) Подправлено кое-что из-за кривости самого amxModx'a, что и правда могло вызывать данный HUD-вопрос для игрока в статусе DEAD при количестве игроков больше ___ значения.

https://c-s.net.ua/forum/index.php?act=atta...st&id=21185

================================================================

Сcылка на заказы от intercs, где можно отследить ход заказов и ссылку на готовые заказы: https://c-s.net.ua/forum/topic52524s0.html

Отредактировал: intercs, - 12.4.2014, 19:46
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 12.4.2014, 19:43
Сообщение #73
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

у него ник на амхх ру и тут одинаковый просто


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя intercs
сообщение 12.4.2014, 19:47
Сообщение #74


Стаж: 13 лет

Сообщений: 727
Благодарностей: 408
Полезность: 504

Цитата(csnet @ 12.4.2014, 21:43) *
у него ник на амхх ру и тут одинаковый просто


У кого у него?) Нас тут как грязи-)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя StudeNNNt:]
сообщение 24.4.2014, 17:46
Сообщение #75


Стаж: 13 лет

Сообщений: 46
Благодарностей: 7
Полезность: 117

а для CSDM какой больше подойдёт? или без разнице?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Villi
сообщение 7.5.2014, 1:02
Сообщение #76
Стаж: 12 лет

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

intercs,

Здорова.

Установил ваши плагины на свой сервер, паблик. Не один не работает.

1. Ping Control - Версия: 0.1.5 (В консуле плагин работает, в логах чисто но не кикает пингеров)
2. Afk Control - Версия: 0.4 Stable - (В консуле плагин работает, в логах чисто но не переводит в спектора)
3. VIP PUBLIC - Версия: v0.1 - (В консуле плагин работает, в логах чисто, в игре при наборе в чате /vips-Показывает кто вип, НО
не выдает денег + гранаты и броник)

Подскажи пожалуйста в чем у меня может быт проблема?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 7.5.2014, 1:04
Сообщение #77
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

Цитата
В консуле


обратись в консульство Украины

Отредактировал: csnet, - 7.5.2014, 1:04


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 4 раз
   + Цитировать сообщение
Статус пользователя strelok93
сообщение 7.5.2014, 1:11
Сообщение #78


Стаж: 12 лет

Сообщений: 905
Благодарностей: 392
Полезность: 576

lol.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 8.5.2014, 20:34
Сообщение #79
Стаж: 12 лет

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

Villi,
пинг контроль и афк контроль работают. у меня на сервере стоят и все шоколад.
кстати, надо их поковырять, может еще что придумаю по оптимизации ^___^
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя freeman92
сообщение 18.1.2015, 14:26
Сообщение #80
Стаж: 11 лет

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

как отключить звуки в версии: 0.4 Stable
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
6 страниц V  « 3 4 5 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: