[FilterScript] Sistema de "Descanso"
#1

Mais um "sistemoide" bem Simples que usei para ajudar um mano em outro Tуpico, й bem SIMPLES mas espero que gostem :
pawn Code:
#include <a_samp>

new Timer;
new bool:Descansando[MAX_PLAYERS];

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("         FS by CidadeNovaRP ¬¬");
    print("--------------------------------------\n");
    return 1;
}

public OnPlayerConnect(playerid)
{
    Pos(playerid);
    return 1;
}

forward Pos(playerid);
public Pos(playerid)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetPVarFloat(playerid, "X", x);
    SetPVarFloat(playerid, "Y", y);
    SetPVarFloat(playerid, "Z", z);
    SetTimerEx("HP", 30000, false, "i", playerid);
    return 1;
}

forward HP(playerid);
public HP(playerid)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    if(GetPVarFloat(playerid,"X") == x  && GetPVarFloat(playerid,"Y") == y  && GetPVarFloat(playerid,"Z") == z)
    {
        if(Descansando[playerid] == false)
        {
            Descansando[playerid] = true;
            TogglePlayerControllable(playerid, 0);
            ApplyAnimation(playerid, "BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0);
            Timer = SetTimerEx("DarHP", 1000, true, "i", playerid);
            SendClientMessage(playerid, -1, "~~~> Aperte 'F'ou 'Enter' para Levantar-se <~~~");
        }
    }
    else
    {
        Pos(playerid);
    }
    return 1;
}

forward DarHP(playerid);
public DarHP(playerid)
{
    if(Descansando[playerid] == true)
    {
        new Float:NewHealth;
        GetPlayerHealth(playerid, NewHealth);
        if(NewHealth <= 100)
        {
            SetPlayerHealth(playerid, NewHealth+1);
        }
        else
        {
            Descansando[playerid] = false;
            TogglePlayerControllable(playerid, 1);
            ClearAnimations(playerid);
            KillTimer(Timer);
            Pos(playerid);
        }
    }
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys == 16 && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
        if(Descansando[playerid] == true)
        {
            Descansando[playerid] = false;
            TogglePlayerControllable(playerid, 1);
            ClearAnimations(playerid);
            KillTimer(Timer);
            Pos(playerid);
        }
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    Descansando[playerid] = false;
    TogglePlayerControllable(playerid, 1);
    ClearAnimations(playerid);
    KillTimer(Timer);
    Pos(playerid);
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    Descansando[playerid] = false;
    TogglePlayerControllable(playerid, 1);
    ClearAnimations(playerid);
    KillTimer(Timer);
    Pos(playerid);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    Descansando[playerid] = false;
    TogglePlayerControllable(playerid, 1);
    ClearAnimations(playerid);
    KillTimer(Timer);
    Pos(playerid);
    return 1;
}
@EDITADO
@EDITADOІ
@EDITADOі
Reply
#2

Cara, quando vocк for posta um release, poste as informaзхes do projeto.
Por exemplo, o que ele faz..

@TOPIC
O cуdigo estб bem feito, parabйns.
Reply
#3

Quote:
Originally Posted by Đeagle
View Post
Cara, quando vocк for posta um release, poste as informaзхes do projeto.
Por exemplo, o que ele faz..

@TOPIC
O cуdigo estб bem feito, parabйns.
Bem, apуs 30 segundos parado vocк senta (Anim) e fica congelado, recuperando 1 de HP por segundo, e tem 3 modos de sair da recuperaзгo:
Morrendo, Desconectando, Spawnando e Apertando "F" ou "ENTER".
Reply
#4

Bom trabalho cara, me ajudou mto aqui!
Reply
#5

PHP Code:
forward Pos(playerid);
public 
Pos(playerid)
{
    new 
Float:xFloat:yFloat:z;
    
GetPlayerPos(playeridxyz);
    
SetPVarFloat(playerid"X"x);
    
SetPVarFloat(playerid"Y"y);
    
SetPVarFloat(playerid"Z"z);
    
SetTimerEx("HP"30000false"i"playerid);
    return 
1;

PHP Code:
stock Pos(playerid)
{
    new 
Float:xFloat:yFloat:z;
    
GetPlayerPos(playeridxyz);
    
SetPVarFloat(playerid"X"x);
    
SetPVarFloat(playerid"Y"y);
    
SetPVarFloat(playerid"Z"z);
    
SetTimerEx("HP"30000false"i"playerid);
    return 
1;

Reply
#6

Quote:
Originally Posted by GReeN_WOoD
View Post
PHP Code:
forward Pos(playerid);
public 
Pos(playerid)
{
    new 
Float:xFloat:yFloat:z;
    
GetPlayerPos(playeridxyz);
    
SetPVarFloat(playerid"X"x);
    
SetPVarFloat(playerid"Y"y);
    
SetPVarFloat(playerid"Z"z);
    
SetTimerEx("HP"30000false"i"playerid);
    return 
1;

PHP Code:
stock Pos(playerid)
{
    new 
Float:xFloat:yFloat:z;
    
GetPlayerPos(playeridxyz);
    
SetPVarFloat(playerid"X"x);
    
SetPVarFloat(playerid"Y"y);
    
SetPVarFloat(playerid"Z"z);
    
SetTimerEx("HP"30000false"i"playerid);
    return 
1;

Este й um fуrum de programaзгo PAWN nгo PHP...
Ao usar "stock" nгo podemos colocar um Timer para executa-lб entгo prefiro o bom e velho "forward e public" que da na mesma coisa
Reply
#7

Bem simples, mais bastante ъtil.
Reply
#8

simples e pouca informaзгo mais ta blz
Reply
#9

Quote:
Originally Posted by CidadeNovaRP
View Post
3 modos de sair da recuperaзгo:
Morrendo, Desconectando, Spawnando e Apertando "F" ou "ENTER".
4 Modos '-',

Ta legal (:

falto sу algumas coisas no tуpico mais ok.
Reply
#10

Quote:
Originally Posted by [R] ousenber [K]
View Post
4 Modos '-',

Ta legal (:

falto sу algumas coisas no tуpico mais ok.
Sorry for my bad "matematic" *-*
Vlwe
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)