Detectar cuando un jugador deja un pickup.
#8

Quote:
Originally Posted by spell
Посмотреть сообщение
pawn Код:
new
    PlayerPickupID[MAX_PLAYERS] = {-1, ...},
    Float:PICKUP_POS[MAX_PICKUPS][3];

#define GetPlayerPickup(%0)      (PlayerPickupID[%0])


stock CreatePickup2(model, type, Float:x, Float:y, Float:z, vw)
{
    new PickupID = CreatePickup(model, type, x, y, z, vw);
    PICKUP_POS[PickupID][0] = x;
    PICKUP_POS[PickupID][1] = y;
    PICKUP_POS[PickupID][2] = z;
    return PickupID;
}

#define CreatePickup CreatePickup2
#define AddStaticPickup CreatePickup2

forward OnPlayerLeavePickup(playerid, pickupid);

public OnPlayerEnterPickup(playerid, pickupid)
{
    PlayerPickupID[playerid] = pickupid;
    return 1;
}

public OnPlayerConnect(playerid)
{
    PlayerPickupID[playerid] = -1;
    return 1;
}

public OnPlayerUpdate(playerid)
{
    if(PlayerPickupID[playerid] != -1)// FASTER
    {
        new i = GetPlayerPickup(playerid);
        if( !IsPlayerInRangeOfPoint(playerid, 2.0, PICKUP_POS[i][0], PICKUP_POS[i][1], PICKUP_POS[i][2]) )
        {
             CallLocalFunction("OnPlayerLeavePickup", "ii", playerid, i);
             PlayerPickupID[playerid] = -1;
        }
    }
    return 1;
}

public OnPlayerLeavePickup(playerid, pickupid)
{
    return 1;
}
Ya se que lo resolviste, pero tenia ganas de hacer este codigo :c
Muchas gracias, me ha facilitado todo.

PD: Ahora mismo le hago un ALS y lo convierto a CreateDynamic.

Muchas gracias.

Un saludo.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 5 Guest(s)