Плагин votechat

TolikCorp

Участник
Сообщения
874
Реакции
334
Ну там две изменил. Обнови страницу и забирай)
 

AleksandrM3

Участник
Сообщения
137
Реакции
2
А лучше если можно готовый файлик, чтобы я чего не напортачил),
кстати пробовал второй файлик, так админы уже как обычные игроки голосуют.
 

AleksandrM3

Участник
Сообщения
137
Реакции
2

сейчас не включается хотя голоса набираются
статистика сервера тут http://napas.myarena.ru/psychostats
. небо : !at
[VoteAllTalk] . небо AllTalk! (6/7)
spolertime killed Miss Aferistka with m4a1.
. небо : !at
[VoteAllTalk] . небо AllTalk! (7/7)
JenTOsIK36 killed [Noob^KJlaH]™КиПа with deagle.
не срабатывает переключение на общий
 

TolikCorp

Участник
Сообщения
874
Реакции
334
Щас исправил недочеты с математикой. Должно быть ок. По крайней мере у меня работает :)
PHP:
new IsPlayerVoted[MAXPLAYERS+1] = {0, ...};
new Handle:g_hSvAlltalk = INVALID_HANDLE;
public OnPluginStart()
{
    RegConsoleCmd("sm_alltalk", votealltalk);
    RegConsoleCmd("sm_at", votealltalk);
    g_hSvAlltalk = FindConVar("sv_alltalk");
}
public Action:votealltalk(client, args)
{
    if(client && IsClientInGame(client))
    {
        IsPlayerVoted[client] = !IsPlayerVoted[client];
        new votes;
        new client_count;
        for(new i = 1; i <= MaxClients; i++)
            if(IsClientInGame(i) && !IsFakeClient(i))
            {
                votes += IsPlayerVoted[i];
                client_count++;
            }
        new votes_needed = RoundFloat(float(client_count)*0.4);
        if(votes_needed == 0) votes_needed++;
        if(votes >= votes_needed)
            SetConVarBool(g_hSvAlltalk, true);
        else
            SetConVarBool(g_hSvAlltalk, false);
        PrintToChatAll("[VoteAllTalk] %N %s за AllTalk! (%d/%d)", client, IsPlayerVoted[client] ? "проголосовал" : "забрал свой голос", votes, votes_needed);
    } 
    return Plugin_Handled; 
}     
public OnClientConnected(client) 
    IsPlayerVoted[client] = 0;
     
public OnClientDisconnect(client) 
    IsPlayerVoted[client] = 0;
 

Вложения

  • votealltalk.smx
    3.7 КБ · Просмотры: 13

AleksandrM3

Участник
Сообщения
137
Реакции
2
Да все отлично работает, только можно еще сделать чтобы когда последний голосующий пишет команду в чате отображалось что то типо этого:
[SM] Голосование состоялось.
[SM] Значение переменной "sv_alltalk" изменено на "1"
или "Голосование состоялось, общий голосовой чат включен."

Добавлено через 4 часа 37 минут
Щас исправил недочеты с математикой. Должно быть ок. По крайней мере у меня работает :)
PHP:
new IsPlayerVoted[MAXPLAYERS+1] = {0, ...};
new Handle:g_hSvAlltalk = INVALID_HANDLE;
public OnPluginStart()
{
    RegConsoleCmd("sm_alltalk", votealltalk);
    RegConsoleCmd("sm_at", votealltalk);
    g_hSvAlltalk = FindConVar("sv_alltalk");
}
public Action:votealltalk(client, args)
{
    if(client && IsClientInGame(client))
    {
        IsPlayerVoted[client] = !IsPlayerVoted[client];
        new votes;
        new client_count;
        for(new i = 1; i <= MaxClients; i++)
            if(IsClientInGame(i) && !IsFakeClient(i))
            {
                votes += IsPlayerVoted[i];
                client_count++;
            }
        new votes_needed = RoundFloat(float(client_count)*0.4);
        if(votes_needed == 0) votes_needed++;
        if(votes >= votes_needed)
            SetConVarBool(g_hSvAlltalk, true);
        else
            SetConVarBool(g_hSvAlltalk, false);
        PrintToChatAll("[VoteAllTalk] %N %s за AllTalk! (%d/%d)", client, IsPlayerVoted[client] ? "проголосовал" : "забрал свой голос", votes, votes_needed);
    } 
    return Plugin_Handled; 
}     
public OnClientConnected(client) 
    IsPlayerVoted[client] = 0;
     
public OnClientDisconnect(client) 
    IsPlayerVoted[client] = 0;

после последний модификации плагина, игроков когда убиваешь стало отбрасывать очень далеко.
 
Последнее редактирование:

TolikCorp

Участник
Сообщения
874
Реакции
334
Это точно не от моего плагина. Скорее всего ты включал какую-то карту, может быть ФУТБОЛ, в которой заложено изменение переменной (не помню какой, но тема где-то была).
 

AleksandrM3

Участник
Сообщения
137
Реакции
2
Это точно не от моего плагина. Скорее всего ты включал какую-то карту, может быть ФУТБОЛ, в которой заложено изменение переменной (не помню какой, но тема где-то была).

кстати может быть, я с утра пробовал ставить твой плагин норм работало, потом появился такой вот отброс мертвых игроков, как раз после футбола)
 
Сверху Снизу