Регенерация здоровья

Тема в разделе "Программирование / Скриптинг", создана пользователем Hejter, 7 дек 2015.

  1. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Создаю ячейку и выбираю с помощью рандома.
    PHP:
                case 3:
                {
                    new 
    Handle:datapack INVALID_HANDLE;
                    new 
    Float:random_regen_timer GetRandomFloat(1.03.0);
                    
                    
    CreateDataTimer(random_regen_timerRegenTimerdatapackTIMER_REPEAT);
                    
    PrintToChat(client"Регенерация %dHP в %dс до %dHP."regen_healthrandom_regen_timerregen_maxhp);
                    
    isRegenActive[client] = true;
                    
                    
    WritePackCell(datapackclient);
                    
    ResetPack(datapack);
                }
    Создаю таймер на регенерацию здоровья.
    PHP:
    public Action:RegenTimer(Handle:timerany:serial)
    {
        
    //new client = ReadPackCell(pack);
        
    new client GetClientFromSerial(serial);
        
        if (
    client != 0)
        {
            new 
    cHealth GetClientHealth(client);
        
            
    regen_health GetRandomInt(15);
        
            if (
    isRegenActive[client] && client != 0)
            {
                
    SetEntityHealth(clientcHealth regen_health);
            }
            else
            {
                return 
    Plugin_Stop;
            }
        
            if (
    GetClientHealth(client) > regen_maxhp)
            {
                
    SetEntityHealth(clientregen_maxhp);
                return 
    Plugin_Stop;
            }
        }
        
        return 
    Plugin_Continue;
    }
    Проблема в том что, когда игроку попадается эта ячейка, ему пишет Регенерация 0 в 2.9999999с до 110HP, но регенерация не идет, только на 1-2 хп и потом останавливается.
     
  2. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    PHP:
                case 3:
                {
                    new 
    Handle:datapack INVALID_HANDLE;
                    new 
    Float:random_regen_timer GetRandomFloat(1.03.0);
                    
                    
    CreateDataTimer(random_regen_timerRegenTimerdatapackTIMER_REPEAT);
                    
    WritePackCell(datapackGetClientSerial(client));
                    
    PrintToChat(client"Регенерация %dHP в %dс до %dHP."regen_healthrandom_regen_timerregen_maxhp);
                    
    isRegenActive[client] = true;
                }
    PHP:
    public Action:RegenTimer(Handle:timerany:dp)
    {
        
    ResetPack(dp);
        new 
    serial ReadPackCell(dp);
        new 
    client GetClientFromSerial(serial);
        
        if (
    client && IsClientInGame(client) && IsPlayerAlive(client))
        {
            new 
    cHealth GetClientHealth(client);
        
            
    regen_health GetRandomInt(15);
        
            if (!
    isRegenActive[client])
            {
                return 
    Plugin_Stop;
            }

            
    SetEntityHealth(clientcHealth regen_health);
        
            if (
    GetClientHealth(client) > regen_maxhp)
            {
                
    SetEntityHealth(clientregen_maxhp);
                return 
    Plugin_Stop;
            }
        }
        
        return 
    Plugin_Continue;
    }
     
  3. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Благодарю.