Баг в плагине

Тема в разделе "Counter-Strike: Source", создана пользователем Алексей Лихачёв 969872194, 20 июн 2014.

  1. Алексей Лихачёв 969872194

    Алексей Лихачёв 969872194

    Сообщения:
    19
    Симпатии:
    0
    Вот такая проблема стоит у меня плагин:http://hlmod.ru/forum/plaginy-dlya-sourcemod/13104-css-show-grenade-type-v1-0-1-a.html ([CSS] Show grenade type v1.0.1)
    И я его разукрасил с помощью цветов morecolors, на одних картах цвета работают , а на других каким то чудом всё становиться дэфолтным цветом. Как это решить?
    P.S. Единственная версия почему не работают цвета , это потому что на некоторых картах не пишется на каком месте на карте находиться игрок пример: Fox1qqq ;3 База террористов , но как это исправить чтобы в любом случае писало цветным. :(

    #pragma semicolon 1

    #define PLUGIN_VERSION "1.0.1"

    public Plugin:myinfo =
    {
    name = "Grenade type",
    author = "RedSword",
    description = "Add the type of grenade after the 'Fire in the hole!' message.",
    version = PLUGIN_VERSION,
    url = "http://www.sourcemod.net/"
    };

    enum TypeOfNade
    {
    TN_NONE = 0,
    TN_HEGRE,
    TN_FLASH,
    TN_SMOKE
    }

    new TypeOfNade:g_iTypeNade[ MAXPLAYERS + 1 ];
    new g_iNumberOfFITHToDo;

    //GrenadeNames : CVar
    new Handle:g_hHegreName;
    new Handle:g_hFlashName;
    new Handle:g_hSmokeName;

    //GrenadeNames : Values
    new String:g_szHegreName[ 32 ];
    new String:g_szFlashName[ 32 ];
    new String:g_szSmokeName[ 32 ];

    public OnPluginStart()
    {
    CreateConVar( "grenadetypeversion", PLUGIN_VERSION, "Gives plugin's version", FCVAR_PLUGIN | FCVAR_SPONLY | FCVAR_REPLICATED | FCVAR_NOTIFY | FCVAR_DONTRECORD );

    g_hHegreName = CreateConVar( "grenadetype_hegrenadename", "Осколочная", "Name of HEGrenades",
    FCVAR_PLUGIN | FCVAR_NOTIFY );
    g_hFlashName = CreateConVar( "grenadetype_flashbangname", "Светошумовая", "Name of flashbangs",
    FCVAR_PLUGIN | FCVAR_NOTIFY );
    g_hSmokeName = CreateConVar( "grenadetype_smokename", "Дымовая", "Name of smokes",
    FCVAR_PLUGIN | FCVAR_NOTIFY );

    HookConVarChange( g_hHegreName, ConVarChange_HEGrenadeName );
    HookConVarChange( g_hFlashName, ConVarChange_FlashbangName );
    HookConVarChange( g_hSmokeName, ConVarChange_SmokeName );

    GetConVarString( g_hHegreName, g_szHegreName, sizeof(g_szHegreName) );
    GetConVarString( g_hFlashName, g_szFlashName, sizeof(g_szFlashName) );
    GetConVarString( g_hSmokeName, g_szSmokeName, sizeof(g_szSmokeName) );

    new UserMsg:umRadioText = GetUserMessageId("RadioText");
    if( umRadioText != INVALID_MESSAGE_ID )
    HookUserMessage(umRadioText, UserMsgRadioText, true);
    else
    SetFailState("GetUserMessageId of RadioText");

    LoadTranslations( "fireintheholegrenadetype.phrases" );
    }

    public OnClientDisconnect(iClient)
    {
    if ( g_iTypeNade[ iClient ] )
    {
    g_iTypeNade[ iClient ] = TypeOfNade:TN_NONE;
    --g_iNumberOfFITHToDo;
    }
    }

    public OnGameFrame()
    {
    if ( !g_iNumberOfFITHToDo )
    return;

    for ( new i = 1; g_iNumberOfFITHToDo != 0 && i <= MaxClients; ++i ) //MaxClients check for security; and to prevent impossible loop :3
    {
    if ( g_iTypeNade[ i ] == TN_NONE )
    continue;
    //Take for granted he's in game
    sendRadioTextToTeam( i, GetClientTeam( i ), g_iTypeNade[ i ] );

    //Remove the FITH to do
    g_iTypeNade[ i ] = TN_NONE;
    --g_iNumberOfFITHToDo;
    }
    g_iNumberOfFITHToDo = 0; //For safety :$ :/
    }

    public Action:UserMsgRadioText(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init)
    {
    decl String:radio_text[128];
    BfReadByte(bf); //=3
    new iClient = BfReadByte(bf);
    BfReadString(bf, radio_text, sizeof(radio_text));
    if(!strcmp(radio_text, "#Game_radio_location", false))
    BfReadString(bf, radio_text, 1); //no need to keep
    BfReadString(bf, radio_text, 1);

    BfReadString(bf, radio_text, sizeof(radio_text));

    if(StrEqual(radio_text, "#Cstrike_TitlesTXT_Fire_in_the_hole", false))
    {
    GetClientWeapon( iClient, radio_text, sizeof(radio_text) );

    //remove "weapon_"
    new bufferLen = strlen( radio_text );
    new i;
    for ( ; i < bufferLen - 7; ++i )
    {
    radio_text[ i ] = radio_text[ i + 7 ];
    }
    radio_text[ i ] = '\0';

    //Add a usermsg to launch on next frame
    if ( StrEqual( "hegrenade", radio_text ) )
    {
    g_iTypeNade[ iClient ] = TypeOfNade:TN_HEGRE;
    }
    else if ( StrEqual( "flashbang", radio_text ) )
    {
    g_iTypeNade[ iClient ] = TypeOfNade:TN_FLASH;
    }
    else /*if ( StrEqual( "smokegrenade", radio_text ) )*/ //Take for granted there is only that choice remaining
    {
    g_iTypeNade[ iClient ] = TypeOfNade:TN_SMOKE;
    }

    ++g_iNumberOfFITHToDo;

    //sendRadioTextToTeam( iClient, GetClientTeam( iClient ), radio_text );

    return Plugin_Handled;
    }

    return Plugin_Continue;
    }

    //===== HookConVarChange
    public ConVarChange_HEGrenadeName(Handle:convar, const String:oldValue[], const String:newValue[])
    {
    strcopy( g_szHegreName, sizeof(g_szHegreName), newValue );
    }
    public ConVarChange_FlashbangName(Handle:convar, const String:oldValue[], const String:newValue[])
    {
    strcopy( g_szFlashName, sizeof(g_szFlashName), newValue );
    }
    public ConVarChange_SmokeName(Handle:convar, const String:oldValue[], const String:newValue[])
    {
    strcopy( g_szSmokeName, sizeof(g_szSmokeName), newValue );
    }

    //--------------------------------------------------------------------------------------------------
    //Following code mainly done by "javalia" (with some code changes)

    //i dunno, what the hell is this magic number mean, i DUNNO!
    #define RADIOTEXT_MAGIC_NUMBER 3

    stock sendRadioTextToTeam(client, team, TypeOfNade:typeNade)
    {
    if ( !IsClientInGame( client ) )
    return;

    decl String:sClientName[ MAX_NAME_LENGTH ];
    decl String:sPlaceName[ 128 ];
    decl String:msg[ 128 ];
    GetClientName( client, sClientName, MAX_NAME_LENGTH );
    GetEntPropString( client, Prop_Data, "m_szLastPlaceName", sPlaceName, sizeof(sPlaceName) );

    decl tmpTeam;

    for (new i = 1; i <= MaxClients; i++)
    {
    if ( IsClientInGame( i ) )
    {
    tmpTeam = GetClientTeam( i );
    if ( ( tmpTeam == team ) || ( tmpTeam == 1 ) )
    {
    decl String:nadeName[ 32 ];

    switch ( typeNade )//TODO CONTINUE
    {
    case TN_HEGRE :
    nadeName = g_szHegreName;
    case TN_FLASH :
    nadeName = g_szFlashName;
    case TN_SMOKE :
    nadeName = g_szSmokeName;
    default :
    nadeName[ 0 ] = '\0';
    }
    FormatEx( msg, sizeof(msg), "\x0700FFFF%T \x079932CC(\x0700FF00%s\x079932CC)", "Fith4gt", i, nadeName );

    new Handle:buffer = StartMessageOne( "RadioText", i );

    if (buffer != INVALID_HANDLE)
    {
    BfWriteByte(buffer, RADIOTEXT_MAGIC_NUMBER);
    BfWriteByte(buffer, client);
    if ( StrEqual( sPlaceName, "", false ) )
    BfWriteString(buffer, "#Game_radio");
    else
    BfWriteString(buffer, "#Game_radio_location");

    BfWriteString(buffer, sClientName);

    if ( !StrEqual( sPlaceName, "", false ) )
    BfWriteString(buffer, sPlaceName);

    BfWriteString(buffer, msg);
    EndMessage();
    }
    }
    }
    }
    }
     

    Вложения:

    Последнее редактирование: 20 июн 2014
  2. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Мб исходный код прикрепишь?
     
  3. Алексей Лихачёв 969872194

    Алексей Лихачёв 969872194

    Сообщения:
    19
    Симпатии:
    0
    Прикрепил..
     
  4. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Не могу скачать.
     
  5. Алексей Лихачёв 969872194

    Алексей Лихачёв 969872194

    Сообщения:
    19
    Симпатии:
    0
    Ещё прикрепил исходный код.
     
  6. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    Алексей Лихачёв 969872194, сначала всякую фигню ставишь, затем страдаешь, зачем чат засирать ставь лучше tidy chat
     
  7. Алексей Лихачёв 969872194

    Алексей Лихачёв 969872194

    Сообщения:
    19
    Симпатии:
    0
    просто как то хочется , чтобы красиво было, да и всё :)
     
  8. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    хочешь увидеть красоту - иди в музей, нормальных игроков только раздрожает этот мусор тем более цветной
     
  9. Алексей Лихачёв 969872194

    Алексей Лихачёв 969872194

    Сообщения:
    19
    Симпатии:
    0
    нормальные игроки ты где их увидел на пабах?
    Кому надо тот пойдёт играть на другом сервере!
    И пиши по теме не разводи флуд!
     
    Последнее редактирование: 20 июн 2014
  10. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.514
    Симпатии:
    1.967
    Алексей Лихачёв 969872194, держи.
    Если цвета снова проявятся - советую использовать встроенные, вроде \x01.
     

    Вложения:

    Алексей Лихачёв 969872194 нравится это.
  11. Алексей Лихачёв 969872194

    Алексей Лихачёв 969872194

    Сообщения:
    19
    Симпатии:
    0
    Спс поставил, щас проверю:)