16.02.2013, 18:34
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;
}