[CS: Source] [-ARMY-] Ranks Core v1.0.0

Что добавить/исправить?

  • Плагин не нужен.

    Голосов: 0 0.0%

  • Всего проголосовало
    9
  • Опрос закрыт .
Статус
В этой теме нельзя размещать новые ответы.

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621
Попробуй так:
PHP:
#include <army_ranks>
#include <basecomm>

#include <colors>

new    String: PrefixColor[MAXPLAYERS+1][20],
    String: NameColor[MAXPLAYERS+1][20],
    String: TextColor[MAXPLAYERS+1][20],
    String: DeathColor[MAXPLAYERS+1][20],
    String: SpecColor[MAXPLAYERS+1][20],
    String:    g_sRank[MAXPLAYERS+1][36],
    g_iLastSay[MAXPLAYERS+1];
  
public Plugin:myinfo =
{
    name = "[ ARMY ] Чат/Chat",
    author = "sahapro33",
    description = "",
    version = "1.1 BaseComm"
}

public OnPluginStart()
{  
    AddCommandListener(Command_Say, "say");
    AddCommandListener(Command_Say_Team, "say_team");
    AddCommandListener(CommandBack, "jointeam");
}
public Action:CommandBack(client, const String:command[], args) GetChatColor(client);
public ARMY_PlayerSpawn(client) GetChatColor(client);
public ARMY_ArmyUp(client) GetChatColor(client);
public OnClientPutInServer(client) g_iLastSay[client] = 0;

public Action:Command_Say_Team(client, const String:command[], argc)
{
    if ( 0 < client <= MaxClients && IsClientInGame(client) && !BaseComm_IsClientGagged(client) )
    {
        new iTime = GetTime();
        if ( g_iLastSay[client] < iTime )
        {
            g_iLastSay[client] = iTime +2;
            decl String:sName[64], String:sMessage[256];
            GetClientName(client, sName, sizeof(sName) - 1);
            GetCmdArgString(sMessage, sizeof(sMessage) - 1);
            StripQuotes(sMessage);
            if(!Army_GetStringRank(client,g_sRank[client])) SetFailState("Error");
            switch(GetClientTeam(client))
            {
                case 1:
                {
                    Format(sMessage, 500, "{default}(Наблюдатель)[%s%s{default}] %s%s{default}: %s%s",PrefixColor[client],g_sRank[client],NameColor[client],sName,TextColor[client],sMessage);
                }
                case 2:
                {
                    Format(sMessage, 500, "{default}(Террорист)[%s%s{default}] %s%s{default}: %s%s",PrefixColor[client],g_sRank[client],NameColor[client],sName,TextColor[client],sMessage);
                }
                case 3:
                {
                    Format(sMessage, 500, "{default}(Спецназовец)[%s%s{default}] %s%s{default}: %s%s",PrefixColor[client],g_sRank[client],NameColor[client],sName,TextColor[client],sMessage);
                }
            }
            for (new i = 1; i<MaxClients; i++)
            {
                if (IsClientInGame(i)&&GetClientTeam(client)==GetClientTeam(i))
                {
                    CPrintToChatEx(i,client,sMessage);
                }
            }
        }
        return Plugin_Handled;
    }
    return Plugin_Continue;
}
public Action:Command_Say(client, const String:command[], argc)
{
    if (0 < client <= MaxClients && IsClientInGame(client) && !BaseComm_IsClientGagged(client))
    {
        new iTime = GetTime();
        if ( g_iLastSay[client] > iTime )
        {
            return Plugin_Handled;
        }
        decl String:sName[64], String:sMessage[500];
        GetClientName(client, sName, sizeof(sName) - 1);
        GetCmdArgString(sMessage, sizeof(sMessage) - 1);
        StripQuotes(sMessage);
        if(!Army_GetStringRank(client,g_sRank[client])) SetFailState("Error");
        if ( IsPlayerAlive(client) )
        {          
            Format(sMessage, 500, "{default}[%s%s{default}] %s%s{default}: %s%s",PrefixColor[client],g_sRank[client],NameColor[client],sName,TextColor[client],sMessage);
            CPrintToChatAllEx(client,sMessage);
        }
        else
        {
            if ( GetClientTeam(client) > 1  )
            {
                Format(sMessage, 500, "%s*УБИТ* {default}[%s%s{default}] %s%s{default}: %s%s",DeathColor[client],PrefixColor[client],g_sRank[client],NameColor[client],sName,TextColor[client],sMessage);
                CPrintToChatAllEx(client,sMessage);
            }
            else
            {
                Format(sMessage, 500, "%s*СПЕК* {default}[%s%s{default}] %s%s{default}: %s%s",SpecColor[client],PrefixColor[client],g_sRank[client],NameColor[client],sName,TextColor[client],sMessage);
                CPrintToChatAllEx(client,sMessage);      
            }
        }
        return Plugin_Handled;
    }
    return Plugin_Continue;
}

GetChatColor(client)
{
    if(!Army_GetStringAtributes(client,"PrefixColor","{green}",PrefixColor[client]))SetFailState("Error");
    if(!Army_GetStringAtributes(client,"NameColor","{teamcolor}",NameColor[client]))SetFailState("Error");
    if(!Army_GetStringAtributes(client,"TextColor","{default}",TextColor[client]))SetFailState("Error");
    if(!Army_GetStringAtributes(client,"DeathColor","{default}",DeathColor[client]))SetFailState("Error");
    if(!Army_GetStringAtributes(client,"SpecColor","{default}",SpecColor[client]))SetFailState("Error");
}
 

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621
Но вроде, исходники идентичны, видать проблемы у вас. или я вопроса не понял.:)
 

pashha123

Участник
Сообщения
7
Реакции
0
Но вроде, исходники идентичны, видать проблемы у вас. или я вопроса не понял.:)
Проблема осталась. Есть стандартный плагин antiflood.smx (к примеру, можно любой похожий от спама/флуда) и когда в чат игрок пишет много сообщений, начинает флудить, плагин ему выдает "No spam!" и последующие его сообщения не проходят, блокируются. Я ставлю модуль chat с basecomm.inc и antiflood никак не реагирует на сообщения, можно флудить по 10 сообщений в секунду, блокировки никакой нету (префиксы работают) и +++ заметил сейчас, в консоле сервера вообще не видны эти самые сообщения игроков, их нету. Если ставить модуль chat с sourcecomms.inc, то antiflood работает, блокирует спам от сообщений, но префиксы не отображаются, в консоле сервера сообщения игрока видны. Мудрено :)
 

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621
Странно....
Я написал R1KO, может поможет.
Но я думаю проблемы всю таки на вашей стороне, то есть проблемы не в плагине, а в настройке сервера...
 

-_-Ecarus-_-

Участник
Сообщения
76
Реакции
2
Как исправить
Оффтоп
 

pashha123

Участник
Сообщения
7
Реакции
0
И снова я :) Все та же проблема, но решил подругому подойти. Установил Simple Chat Processor и к нему ставлю модуль chat. Префиксы работают прекрасно, антифлуд тоже работает, но здесь появилась проблема в цветах(( Модуль не может прочитать название цвета и все сообщения игроков желтые(цвета default) вместе с тэгами цветов (например: *DEAD* {green}[Silver Elite] {teamcolor}Deadpool : {default}ахаха). Как-нибудь можно исправить?

upd. Понял ошибку свою, цвета указывать надо в другом формате, но и они тоже не читаются - *СПЕК* FF0000[Gold Nova I] 00FFFFnickname : FFFFFF 123123
 
Последнее редактирование:

666FoX666

Участник
Сообщения
702
Реакции
210
Автор, поправьте в описании: команда для вызова топа atop, а не top. И не могли бы Вы сделать так, чтобы при выходе из топа (Посредством команды atop, а не через открытие !army), закрывалось меню, а не возвращалось в то, которое вызывается командой !army?
 

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621

pashha123

Участник
Сообщения
7
Реакции
0
Можно звук добавить при повышении ранка
 

lol

Участник
Сообщения
6
Реакции
0
А тут все модули(кроме CLAN TEGA) работают на css v 34?
 

666FoX666

Участник
Сообщения
702
Реакции
210
Плагин начал писать в эррор логи
C-подобный:
L 02/06/2016 - 16:48:21: [SM] Plugin encountered error 4: Invalid parameter or parameter type
L 02/06/2016 - 16:48:21: [SM] Native "FormatEx" reported: Language phrase "Welcome Title" not found
L 02/06/2016 - 16:48:21: [SM] Displaying call stack trace for plugin "army_ranks/army.smx":
L 02/06/2016 - 16:48:21: [SM]   [0]  Line 59, army/events/OnClientPutInServer.sp::SQLT_OnClientPutInServer()
L 02/06/2016 - 16:48:32: [SM] Plugin encountered error 4: Invalid parameter or parameter type
L 02/06/2016 - 16:48:32: [SM] Native "FormatEx" reported: Language phrase "Round start msg" not found
L 02/06/2016 - 16:48:32: [SM] Displaying call stack trace for plugin "army_ranks/army.smx":
L 02/06/2016 - 16:48:32: [SM]   [0]  Line 654, army/events/OnPluginStart.sp::Ev_PlayerSpawn()
Не подскажете как исправить, пожалуйста?
 

666FoX666

Участник
Сообщения
702
Реакции
210
@666FoX666, не полный файл транслита, нет фраз в нём.
Файл перевода брал из архива. И ничего в переводе не трогал. Только конфиг. Вы не могли бы прислать мне Ваш перевод? Я тогда вручную скопирую нужные фразы
 

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621
Возможно проблема из-за пробелов и больших букв, вовсяком случаи в ксс у меня пути с заглавными буквами не принемало...
 

K.1.P

Участник
Сообщения
26
Реакции
1
В логах..
L 02/07/2016 - 17:18:50: [SM] Native "LogToFile" reported: Could not open file "/home/server2271/game/cstrike/addons/sourcemod/logs/army_ranks/Player_RankUp.log"
L 02/07/2016 - 17:18:50: [SM] Displaying call stack trace for plugin "army.smx":
L 02/07/2016 - 17:18:50: [SM] [0] Line 590, army/events/OnPluginStart.sp::Ev_PlayerDeath()
L 02/07/2016 - 17:18:50: [SM] Native "LogToFile" reported: Could not open file "/home/server2271/game/cstrike/addons/sourcemod/logs/army_ranks/Player_RankUp.log"
L 02/07/2016 - 17:18:50: [SM] Displaying call stack trace for plugin "army_ranks/army.smx":
L 02/07/2016 - 17:18:50: [SM] [0] Line 589, army/events/OnPluginStart.sp::Ev_PlayerDeath()
L 02/07/2016 - 17:22:16: Error log file session closed.
 

Lev

Добрая душа
Сообщения
360
Реакции
319
@Саша Шеин,
Установил плагин, в наблюдателях написал !army и сервер сразу крашнулся и так 2 раза.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу