[CS: GO] Knife Rank

Тема в разделе "Отклонённые плагины", создана пользователем Egor Dolgirev, 6 апр 2015.

  1. Egor Dolgirev

    Egor Dolgirev

    Сообщения:
    8
    Симпатии:
    4
    Please test plug ( not stable )

    Demands: CS:GO; Sourcemod < 1.7.0

    Author: @Samil#

    Version: Beta test

    Description:
    Add system rank and different models ( Knife, Gloves, Skins ) for knife server
    ConVars:

    Path to the download file:
    <sm_downpath "addons/sourcemod/configs/knife_rank/downloads.txt">

    Give value points for kill
    <sm_givevaluepoins "3">

    Give value points for death
    <sm_getvaluepoins "3">

    Limit points for get 1 rank аnd so on
    <sm_0_rankpoints "0">

    Prefix player 1 rank аnd so on
    <sm_patharms_0 "Prefix 1">

    Path to model arms 1 аnd so on
    <sm_patharms_1 "Path to mdl arms">

    Path to model skins 1 аnd so on
    <sm_pathskin_1 "Path to mdl skins">

    Write me about you problem on plugin

    UPDATE

    PS:
    Please test plug ( not stable )
     

    Вложения:

    • knife_rank.sp
      Размер файла:
      20,3 КБ
      Просмотров:
      14
    Последнее редактирование: 7 апр 2015
    1 человеку нравится это.
  2. Felton

    Felton

    Сообщения:
    330
    Симпатии:
    9
    Полная информация по плагину...я и так понял.Предлагаю всем писать только на этом языке.
     
  3. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.971
    Симпатии:
    2.977
    Ой:
    PHP:
    decl Strings_Name128 ], Strings_Auth32 ], Strings_QueryPLATFORM_MAX_PATH ]
        
    GetClientNamei_clients_Querysizeofs_Query ) - // Получаешь в  s_Query
        
    SQL_EscapeStringg_h_Databasess_Auths_Namesizeofs_Name ) - // А тут юзаешь s_Auth 
        
    GetClientAuthIdi_clientAuthId_Steam2s_Authsizeofs_Auth ) )
        
    FormatExs_Querysizeofs_Query ) - 1"INSERT INTO `kniferank_table` (`name`, `auth`) VALUES ('%s', '%s');"s_Names_Auth )
        
    SQL_TQueryg_h_DatabasesSQL_CreateClientCallbacks_QueryGetClientUserIdi_client ) )
    - 1 не нужно делать.

    PHP:
    SaveClienti_client )
    {
        
    decl Strings_Name128 ], Strings_NameDBPLATFORM_MAX_PATH ], Strings_QueryPLATFORM_MAX_PATH ]
        
    GetClientNamei_clients_Namesizeofs_Name ) - )
        
    SQL_EscapeStringg_h_Databasess_Names_NameDBsizeofs_NameDB ) - )
        
    FormatExs_Querysizeofs_Query ) - 1"UPDATE `kniferank_table` SET `name` = '%s', `kills` = '%i', `deaths` = '%i', `points` = %i WHERE `id` = '%i';"s_NameDBg_i_ClientKillsi_client ], g_i_ClientDeathsi_client ], g_i_ClientPointsi_client ], g_i_ClientIDi_client ] )
        
    SQL_TQueryg_h_DatabasesSQL_SaveClientCallbacks_Query )
    }
    Здесь чтобы не создавать s_NameDB можно сделать как сделано выше.

    PHP:
    public ActionEvent_PlayerDeathHandleh_event, const Strings_name[  ], boolb_dontBroadcast )
    {
        new 
    i_client GetClientOfUserIdGetEventInth_event, ( "userid" ) ) )
        new 
    i_attacker GetClientOfUserIdGetEventInth_event, ( "attacker" ) ) )
        
        if( 
    i_attacker || !IsClientInGamei_attacker ) || IsFakeClienti_attacker ) || i_attacker MaxClients )
            return
        
        if( 
    i_client || !IsClientInGamei_client ) || IsFakeClienti_client ) )
            return
        
        
    g_i_ClientDeathsi_client ]++
        
    g_i_ClientPointsi_client ] -= g_i_Cvar_GetValuePoints
        
        
    new i_current1 CheckRangsClienti_attacker )
        
    g_i_ClientKillsi_attacker ]++
        
    g_i_ClientPointsi_attacker ] += g_i_Cvar_GiveValuePoints
        
    new i_current2 CheckRangsClienti_attacker )
        if ( 
    i_current1 i_current2 )
            
    PrintToChat(i_attacker"Вас повысили в ранге! Текущий ранг: %s"g_s_CurrentRanki_attacker ] )
    }
    1. Action: не нужно
    2.
    PHP:
    if( i_attacker || !IsClientInGamei_attacker ) || IsFakeClienti_attacker ) || i_attacker MaxClients )
            return
    Если игрок умер от падения или его убил бот, то не выполнится:

    PHP:
    g_i_ClientDeathsi_client ]++
        
    g_i_ClientPointsi_client ] -= g_i_Cvar_GetValuePoints
    PHP:
    public ActionSayi_client, const String:s_command[  ], i_args  
    {
        if( 
    i_client || !IsClientInGamei_client ) )
            return 
    Plugin_Continue
            
        decl String
    bufferPLATFORM_MAX_PATH ], Strings_Name64 ]
        
    GetCmdArgStringbuffersizeofbuffer ) )
        new 
    i_teamclient GetClientTeami_client )
        
    GetClientNamei_clients_Namesizeofs_Name ) )
        
    StripQuotesbuffer )
        if( !
    IsPlayerAlivei_client ) )
        {
            
    PrintToChatAll"[ %s ] %s: %s"g_s_CurrentRanki_client ], s_Namebuffer )
            for( new 
    1<= MaxClientsx++ )
            {
                if( !
    IsPlayerAlive) )
                    
    PrintToChatx"*Death* [ %s ] %s: %s"g_s_CurrentRanki_client ], s_Namebuffer )
            }
        }
        else if( 
    IsPlayerAlivei_client ) )
        {
            
    PrintToChatAll"[ %s ] %s: %s"g_s_CurrentRanki_client ], i_clientbuffer )
        }
        else if( 
    i_teamclient == )
        {
            for( new 
    1<= MaxClientsi++ )
            {
                new 
    i_teami GetClientTeam)
                if( 
    i_teami == )
                    
    PrintToChati"*Spectator* [ %s ] %s: %s"g_s_CurrentRanki_client ], s_Namebuffer )
            }
        }
        return 
    Plugin_Handled
    }
    Сделай TrimString и StripQuotes после GetCmdArgString( buffer, sizeof( buffer ) ) чтобы избавиться от "" и пробелов по краям.
    в конце лучше вернуть return Plugin_Continue
    а при выводе своих сообщений return Plugin_Handled

    И так же с say_team
     
    Последнее редактирование: 7 апр 2015
    TWRP нравится это.
  4. AlmazON

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

    Сообщения:
    4.505
    Симпатии:
    1.961
    Пишет он жёстко)
    PHP:
    public Action:Say(i_clientString:s_command[], i_args)
    {
        if(
    i_client && IsClientInGame(i_client))
        {
            
    decl String:buffer[182];
            
    GetCmdArg(1buffer182);
            if(
    IsPlayerAlive(i_client)) PrintToChatAll("[ %s ] %s: %s"g_s_CurrentRank[i_client], i_clientbuffer);
            else if(
    GetClientTeam(i_client) == 1)
            {
                for(new 
    1<= MaxClientsi++)
                {
                    if(
    GetClientTeam(i) == 1PrintToChat(i"*Spectator* [ %s ] %N: %s"g_s_CurrentRank[i_client], i_clientbuffer);
                }
            }
            else
            {
                for(new 
    1<= MaxClientsx++ )
                {
                    if(
    IsPlayerAlive(x)) PrintToChat(x"[ %s ] %N: %s"g_s_CurrentRank[i_client], i_clientbuffer);
                    else 
    PrintToChat(x"*Death* [ %s ] %N: %s"g_s_CurrentRank[i_client], i_clientbuffer);
                }
            }
            return 
    Plugin_Handled
        }
        return 
    Plugin_Continue
    }
    Оффтоп
     
    TWRP нравится это.
  5. Egor Dolgirev

    Egor Dolgirev

    Сообщения:
    8
    Симпатии:
    4
    I'm sorry, I'm noob(=