SA-MP Forums Archive
Detectar cuando un jugador deja un pickup. - 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: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Detectar cuando un jugador deja un pickup. (/showthread.php?tid=416100)



Detectar cuando un jugador deja un pickup. - oOFotherOo - 16.02.2013

Buenas amigos de SA-MP me dirijo hacia todos ustedes para pedirles una simple ayuda.

їComo detecto cuando un jugador sale de un determinado pickup?

Bueno hago esta pregunta porque no he visto alguna funciуn para detectar si un jugador saliу de un determinado pickup y quisiera saber si ustedes saben de alguna forma de detectar si un jugador sale de un pickup.

PD: Se que con un timer puedo hacer que detecte cuando un jugador sale del pickup determinado pero quiero saber si ustedes saben alguna forma mбs rapida y que consuma menos recursos, un timer ejecutandose cada X ms consume muchos recursos.

Muchas gracias por sus respuestas.

Un saludo.


Respuesta: Detectar cuando un jugador deja un pickup. - JustBored - 16.02.2013

La verdad que no tengo ni idea y nunca vi algo asн. No sй pregunta por los foros ingleses.


Respuesta: Detectar cuando un jugador deja un pickup. - oOFotherOo - 16.02.2013

Quote:
Originally Posted by JustBored
Посмотреть сообщение
La verdad que no tengo ni idea y nunca vi algo asн. No sй pregunta por los foros ingleses.
Entiendo, para que usted entienda mejor, lo que deseo saber es como detectar cuando un jugador abandona un pickup como se hace con los CP en el plugin streamer de incognito.

Muchas gracias por su respuesta.

Un saludo.


Respuesta: Detectar cuando un jugador deja un pickup. - Dex007HLH - 16.02.2013

Dudo que algo asi sea posible.


Respuesta: Detectar cuando un jugador deja un pickup. - Vladeksh - 16.02.2013

Si usas el plugin streamer de incognito, puedes usar бreas, creando cнrculos en la posiciуn del pickup y usar el callback cuando un jugador sale de un бrea.

pawn Код:
native CreateDynamicCircle(Float:x, Float:y, Float:size, worldid = -1, interiorid = -1, playerid = -1);
forward OnPlayerLeaveDynamicArea(playerid, areaid);
Saludos!


Re : Respuesta: Detectar cuando un jugador deja un pickup. - oOFotherOo - 16.02.2013

Quote:
Originally Posted by Vladeksh
Посмотреть сообщение
Si usas el plugin streamer de incognito, puedes usar бreas, creando cнrculos en la posiciуn del pickup y usar el callback cuando un jugador sale de un бrea.

pawn Код:
native CreateDynamicCircle(Float:x, Float:y, Float:size, worldid = -1, interiorid = -1, playerid = -1);
forward OnPlayerLeaveDynamicArea(playerid, areaid);
Saludos!
Muchas gracias me funcionу, la verdad no habia pensado en eso.

Un saludo.


Respuesta: Detectar cuando un jugador deja un pickup. - spell - 16.02.2013

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


Respuesta: Detectar cuando un jugador deja un pickup. - oOFotherOo - 16.02.2013

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.