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.