Savescores lite 1.1

Сохранение денег, убийств и смертей

  1. Черная вдова

    Черная вдова

    Сообщения:
    2.333
    Симпатии:
    430
    Пользователь Черная вдова разместил новый ресурс:

    Savescores lite - Сохранение денег, убийств и смертей

    Узнать больше об этом ресурсе...
     
  2. igroman1266

    igroman1266 Бух

    Сообщения:
    121
    Симпатии:
    61
    Не будет конфликтов с "Reset Score" (1.0.3) by GoDtm666 ?
     
  3. Черная вдова

    Черная вдова

    Сообщения:
    2.333
    Симпатии:
    430
    Если ты не из наблюдателей прописываешь
    будет еще несовместимость со ставками
     
  4. LeXon

    LeXon

    Сообщения:
    214
    Симпатии:
    15
    Для css возможно?
     
  5. Черная вдова

    Черная вдова

    Сообщения:
    2.333
    Симпатии:
    430
    нет
     
  6. wayLANder

    wayLANder Где AlmazON?

    Сообщения:
    1.604
    Симпатии:
    487
    Мб я чего-то не понимаю, но по-моему это уже давненько реализовано в самой игре
     
    Z-RAY-Z и Planes нравится это.
  7. Wanderer

    Wanderer

    Сообщения:
    80
    Симпатии:
    6
    чем тебе этот не нравится ?
    [Любая игра] - Save Scores
     
  8. Черная вдова

    Черная вдова

    Сообщения:
    2.333
    Симпатии:
    430
    У меня когда я отключаюсь с сервера обнуляются деньги, убийства и смерти
    Когда захожу в наблюдатели и обратно обнуляются деньги
    Я использую
    mp_backup_round_file ""
    mp_backup_round_file_last ""
    mp_backup_round_file_pattern ""
    mp_backup_round_auto "0"
    Возможно из-за этого проблемы, это необходимо что бы изменять деньги для vip
     
  9. Черная вдова

    Черная вдова

    Сообщения:
    2.333
    Симпатии:
    430
  10. Drumanid

    Drumanid Дурак

    Сообщения:
    1.598
    Симпатии:
    1.130
    Переписал для себя:
    PHP:
    #include <sdktools_gamerules>

    enum {STEAMSTATS};
    ArrayList g_hArray[2];
    bool g_bGameg_bActivateSave;

    public 
    APLRes AskPluginLoad2(Handle hMySelfbool bLatechar[] szErrorint iErrMax)
    {
        if(
    GetEngineVersion() == Engine_CSGOg_bGame true;
        else 
    g_bGame false;
     
        return 
    APLRes_Success;
    }

    public 
    void OnPluginStart()
    {
        for(
    int i2i++) g_hArray[i] = new ArrayList(ByteCountToCells(32));
        
    HookEvent("round_start"RoundStartEventHookMode_PostNoCopy);
        
    HookEvent("player_team"PlayerTeamEventHookMode_Pre);
    }

    public 
    void OnMapStart()
    {
        
    g_bActivateSave false;
        for(
    int i2i++)
        {
            if(
    g_hArray[i] != nullg_hArray[i].Clear();
        }
    }

    public 
    void RoundStart(Event hEvent, const char[] sEvNamebool bDbc)
    {
        if(!
    g_bGame || !GameRules_GetProp("m_bWarmupPeriod")) g_bActivateSave true;
    }

    public 
    void PlayerTeam(Event hEvent, const char[] sEvNamebool bDbc)
    {
        if(
    g_bActivateSave)
        {
            
    int iClient;
            if((
    iClient GetClientOfUserId(hEvent.GetInt("userid"))) && !IsFakeClient(iClient))
            {
                
    int iOldTeam GetClientTeam(iClient), iNewTeam hEvent.GetInt("team");
                if(
    iOldTeam && iNewTeam  == 1SaveStats(iClient);
                else if(
    iOldTeam && iNewTeam 1)
                {
                    
    int iIndex;
                    if((
    iIndex g_hArray[STEAM].FindValue(GetSteamAccountID(iClient))) != -1)
                    {
                        
    char sBuffer[30];
                        
    g_hArray[STATS].GetString(iIndexsBuffersizeof(sBuffer));

                        
    char sExplodeBuffer[3][10];
                        
    ExplodeString(sBuffer" "sExplodeBuffersizeof(sExplodeBuffer), sizeof(sExplodeBuffer[]));

                        
    SetEntProp(iClientProp_Send"m_iAccount"StringToInt(sExplodeBuffer[0]));
                        
    SetEntProp(iClientProp_Data"m_iFrags"StringToInt(sExplodeBuffer[1]));
                        
    SetEntProp(iClientProp_Data"m_iDeaths"StringToInt(sExplodeBuffer[2]));
                
                        for(
    int i2i++) g_hArray[i].Erase(iIndex);
                    }
                }
            }
        }
    }

    public 
    void OnClientDisconnect(int iClient)
    {
        if(
    g_bActivateSave && IsClientInGame(iClient) && !IsFakeClient(iClient) && GetClientTeam(iClient) > 1SaveStats(iClient);
    }

    void SaveStats(int iClient)
    {
        
    g_hArray[STEAM].Push(GetSteamAccountID(iClient));

        
    char sBuffer[30];
        
    FormatEx(sBuffersizeof(sBuffer), "%i %i %i",    GetEntProp(iClientProp_Send"m_iAccount"),
                                                        
    GetEntProp(iClientProp_Data"m_iFrags"),
                                                        
    GetEntProp(iClientProp_Data"m_iDeaths"));

        
    g_hArray[STATS].PushString(sBuffer);
    }
    PHP:
    #include <sdktools_gamerules>

    StringMap g_hTrie;
    bool g_bGameg_bActivateSave;

    public 
    APLRes AskPluginLoad2(Handle hMySelfbool bLatechar[] sErrorint iErrMax)
    {
        if(
    GetEngineVersion() == Engine_CSGOg_bGame true;
        else 
    g_bGame false;
      
        return 
    APLRes_Success;
    }

    public 
    void OnPluginStart()
    {
        
    g_hTrie = new StringMap();
        
    HookEvent("round_start"RoundStartEventHookMode_PostNoCopy);
        
    HookEvent("player_team"PlayerTeamEventHookMode_Pre);
    }

    public 
    void OnMapStart()
    {
        
    g_bActivateSave false;
        if(
    g_hTrie != nullg_hTrie.Clear();
    }

    public 
    void RoundStart(Event hEvent, const char[] sEvNamebool bDbc)
    {
        if(!
    g_bGame || !GameRules_GetProp("m_bWarmupPeriod")) g_bActivateSave true;
    }

    public 
    void PlayerTeam(Event hEvent, const char[] sEvNamebool bDbc)
    {
        if(
    g_bActivateSave)
        {
            
    int iClient GetClientOfUserId(hEvent.GetInt("userid"));
            if(!
    IsFakeClient(iClient))
            {
                
    int iOldTeam GetClientTeam(iClient), iNewTeam hEvent.GetInt("team");
                if(
    iOldTeam && iNewTeam  == 1SaveStats(iClient);
                else if(
    iOldTeam && iNewTeam 1)
                {
                    
    char sBuffer[64], sId[32];
                    
    IntToString(GetSteamAccountID(iClient), sIdsizeof(sId));

                    if((
    g_hTrie.GetString(sIdsBuffersizeof(sBuffer))))
                    {
                        
    char sExplodeBuffer[3][10];
                        
    ExplodeString(sBuffer" "sExplodeBuffersizeof(sExplodeBuffer), sizeof(sExplodeBuffer[]));

                        
    SetEntProp(iClientProp_Send"m_iAccount"StringToInt(sExplodeBuffer[0]));
                        
    SetEntProp(iClientProp_Data"m_iFrags"StringToInt(sExplodeBuffer[1]));
                        
    SetEntProp(iClientProp_Data"m_iDeaths"StringToInt(sExplodeBuffer[2]));
                      
                        
    g_hTrie.Remove(sId);
                    }
                }
            }
        }
    }

    public 
    void OnClientDisconnect(int iClient)
    {
        if(
    g_bActivateSave && IsClientInGame(iClient) && !IsFakeClient(iClient) && GetClientTeam(iClient) > 1SaveStats(iClient);
    }

    void SaveStats(int iClient)
    {
        
    char sBuffer[32], sId[32];
        
    FormatEx(sBuffersizeof(sBuffer), "%i %i %i",    GetEntProp(iClientProp_Send"m_iAccount"),
                                                        
    GetEntProp(iClientProp_Data"m_iFrags"),
                                                        
    GetEntProp(iClientProp_Data"m_iDeaths"));

        
    IntToString(GetSteamAccountID(iClient), sIdsizeof(sId));
        
    g_hTrie.SetString(sIdsBuffer);
    }
     
    Последнее редактирование: 9 окт 2018
  11. LeXon

    LeXon

    Сообщения:
    214
    Симпатии:
    15
    Старьё, старый код
     
  12. VovaWender

    VovaWender

    Сообщения:
    62
    Симпатии:
    7
    L 09/14/2018 - 14:07:39: [SM] Exception reported: Client 11 is not in game
    L 09/14/2018 - 14:07:39: [SM] Blaming: savescoreslite.smx
    L 09/14/2018 - 14:07:39: [SM] Call stack trace:
    L 09/14/2018 - 14:07:39: [SM] [0] GetClientTeam
    L 09/14/2018 - 14:07:39: [SM] [1] Line 97, D:\wcs\csgo_ds\csgo\addons\sourcemod\scripting\savescoreslite.sp::OnClientDisconnect
     
  13. Черная вдова

    Черная вдова

    Сообщения:
    2.333
    Симпатии:
    430
     
    VovaWender нравится это.
  14. timur1987

    timur1987

    Сообщения:
    2
    Симпатии:
    1
    L 09/15/2018 - 13:54:03: [SM] Exception reported: Client 4 is not in game
    L 09/15/2018 - 13:54:03: [SM] Blaming: savescoreslite.smx
    L 09/15/2018 - 13:54:03: [SM] Call stack trace:
    L 09/15/2018 - 13:54:03: [SM] [0] GetClientTeam
    L 09/15/2018 - 13:54:03: [SM] [1] Line 97, D:\wcs\csgo_ds\csgo\addons\sourcemod\scripting\savescoreslite.sp::OnClientDisconnect
    L 09/15/2018 - 13:55:23: Error log file session closed.