SA-MP Forums Archive
пульсатор - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: пульсатор (/showthread.php?tid=261875)



пульсатор - temka1993 - 15.06.2011

Привет всем. Сижу туплю. как бы сделать пульсатор. который бы каждые 100мсек. отнимал у игрока по 1 хп, а как хп ==1, прибавлял до 100, цикл должен быть бесконечный, вообщем таймер то я поставил, а вот убавлять хп не получается...вот что я написал:

PHP код:
    for(new ii<GetMaxPlayers();)
    {
        new 
PulsHP[100];
        new 
Floathp;
        
        
PulsHP[GetPlayerHealth(i,hp)] -= 1;
        
SetPlayerHealth(i,hp);
    } 
подскажите, как сделать правильно, а то у меня даже этот бред не работает...


Re: пульсатор - Fro1sha - 15.06.2011

pawn Код:
for ( new i; i < GetMaxPlayers(); i++ )
    {
        new
            Float:hp
        ;
       
        GetPlayerHealth( i, hp );
        if ( hp > 0.0 && hp <= 1.0 )
            SetPlayerHealth( i, 100.0 );
        else
            SetPlayerHealth( i, hp - 1.0 );
    }



Re: пульсатор - Stepashka - 15.06.2011

pawn Код:
public pulsar()
{
    static Float:playerHealthKey[MAX_PLAYERS] = {1.0,..};
    for ( new playerid, maxPlayers = GetMaxPlayers(), Float:health; playerid < maxPlayers; playerid++ )
    {
        GetPlayerHealth( playerid, health );
        switch(floatcmp( health, playerHealthKey[playerid]))
        {
            case 1:
            {
                SetPlayerHealth( playerid, health - 1.0 );
            }
            case -1:
            {
                SetPlayerHealth( playerid, health + 1.0 );
            }
            case 0:
            {
                playerHealthKey[playerid] = (!floatcmp(playerHealthKey[playerid], 100.0)) ? 1.0 : 100.0;
            }
        }
    }
}
не проверял


Re: пульсатор - temka1993 - 15.06.2011

Quote:

static FloatlayerHealthKey[MAX_PLAYERS] = {1.0,..};

вот здесь error 029

ну вообщем хп у меня убавляется, а вот прибавить неполучается, он у меня умирает и неуспевая заспванится снова умирает. и так бесконечно


Re: пульсатор - OKStyle - 15.06.2011

Я думаю так...

В OnPlayerConnect:
PHP код:
SetTimerEx("Pulsator",100,1,"d",playerid); 
В низ мода:
PHP код:
forward Pulsator(playerid);
public 
Pulsator(playerid)
{
    new 
Float:hp;
    
GetPlayerHealht(playeridhp);
    (
hp 1.1) ? SetPlayerHealth(playerid100.0) : SetPlayerHealth(playeridhp 1.0);
    return 
1;




Re: пульсатор - Stepashka - 15.06.2011

Quote:
Originally Posted by temka1993
Посмотреть сообщение
вот здесь error 029

ну вообщем хп у меня убавляется, а вот прибавить неполучается, он у меня умирает и неуспевая заспванится снова умирает. и так бесконечно
вместо 2х три точки поставь
pawn Код:
static Float:PlayerHealthKey[MAX_PLAYERS] = {1.0,...};
OKStyle, ему нужно чтобы менялось плавно в обе стороны.


Re: пульсатор - OKStyle - 15.06.2011

Делов-то...

PHP код:
public Pulsator(playerid)
{
    new 
Float:hp;
    
GetPlayerHealht(playeridhp);
    if(
GetPVarInt(playerid"Increase") == 1)
    {
        if(
hp 99.1SetPVarInt(playerid,"Increase"0);
        else 
SetPlayerHealth(playeridhp 1.0);
    }
    else if(
GetPVarInt(playerid"Increase") == 0)
    {
        if(
hp 1.1SetPVarInt(playerid,"Increase"1);
        else 
SetPlayerHealth(playeridhp 1.0);
    }
    return 
1;




Re: пульсатор - temka1993 - 15.06.2011

срабатывает, но ипользовать может только 1 игрок, второй игрок уже не может...

как сделать отделльно для игроков?

что то вроде

PHP код:
new timer[max_players];
timer[playerid] = SetTimer("PulsatorHealth",1,true); 
не помогает


Re: пульсатор - Stepashka - 15.06.2011

Quote:
Originally Posted by temka1993
Посмотреть сообщение
срабатывает, но ипользовать может только 1 игрок, второй игрок уже не может...

как сделать отделльно для игроков?

что то вроде

PHP код:
new timer[max_players];
timer[playerid] = SetTimer("PulsatorHealth",1,true); 
не помогает
ты сейчас про какой из вариантов?


Re: пульсатор - temka1993 - 15.06.2011

про вариант OKS'a