[HELP] How to get pickup pos?
#1

How do I get position of some pickup?
For example, I have:
pawn Код:
new pickup1;
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
pickup1 = AddStaticPickup(1252, 1, X, Y, Z);
And how to get position of pickup1?
Reply
#2

IsPlayerInRangeOfPoint.
Reply
#3

??
I'm edited my post..
Reply
#4

What..The..Fuck?

You've.. - nevermind, I can't understand you.
Reply
#5

It's bomb system.
When you plant the bomb, dialog will show with detonation time. 5 seconds, 10 seconds, etc.
And in OnDialogResponse I have:
pawn Код:
new MalaBombaPickup[MAX_PLAYERS];
public OnDialogResponse(...)
{
   if(dialogid == MALABOMBADIALOG)
   {
      if(listitem == 0)
      {
         new Float:X, Float:Y, Float:Z;
         GetPlayerPos(playerid, X, Y, Z);
         MalaBombaPickup[playerid] = AddStaticPickup(1252, 1, X, Y, Z);
         SetTimerEx("MalaBombaDetonacija", 5000, false, "d", playerid);
      }
   }
   return 1;
}
And I want to make function "MalaBombaDetonacija" which will check position of this pickup... Understand now? -.-
Reply
#6

Quote:
Originally Posted by Pooh7
Посмотреть сообщение
Understand now? -.-
It's not my fault that you suck at English.
Reply
#7

You need to use CreatePickup if you want to store the pickup-id.
AddStaticPickup only returns "1" if the pickup was succesfully created, it doesn't return an id.

Also, when you need the coordinates later ingame for some reason, you can store the coordinates too, along with the id.
pawn Код:
enum TPickup
{
    pid,        // Store the id of the pickup
    Float:px,   // Hold the x, y and z coordinates of the pickup
    Float:py,
    Float:pz
}


new MalaBombaPickup[MAX_PLAYERS][TPickup];


public OnDialogResponse(...)
{
    if(dialogid == MALABOMBADIALOG)
    {
        if(listitem == 0)
        {
            new Float:X, Float:Y, Float:Z;
            GetPlayerPos(playerid, X, Y, Z);
            MalaBombaPickup[playerid][pid] = CreatePickup(1252, 1, X, Y, Z);
            MalaBombaPickup[playerid][px] = X;
            MalaBombaPickup[playerid][py] = Y;
            MalaBombaPickup[playerid][pz] = Z;
            SetTimerEx("MalaBombaDetonacija", 5000, false, "d", playerid);
        }
    }
    return 1;
}
Reply
#8

Quote:
Originally Posted by [FU]Victious
Посмотреть сообщение
What..The..Fuck?

You've.. - nevermind, I can't understand you.
(4 char)
Reply
#9

Try using OnPlayerPickUpPickup, first make sure you create a variable at the top of your script, then label it:

pawn Код:
variable = CreatePickup(1239, 23, 0.0, 0.0, 0.0);
Right beside CreatePickup.

Then use OnPlayerPickUpPickup to store the data, example:

pawn Код:
public OnPlayerPickUpPickup(playerid, pickupid)
{
    if(pickupid == variable)
    {
        new Float:x, Float:y, Float:z;
        GetPlayerPos(playerid, x, y, z);
        PickupInfo[variable][PosX] = x;
        PickupInfo[variable][PosY] = y;
        PickupInfo[variable][PosZ] = z;
    }
    return 1;
}
Here is the enum at last.

pawn Код:
enum picinfo
{
    Float:PosX,
    Float:PosY,
    Float:PosZ
};
new PickupInfo[MAX_PICKUPS][picinfo];
So you have all this in total:

pawn Код:
#include <a_samp>

enum picinfo
{
    Float:PosX,
    Float:PosY,
    Float:PosZ
};
new PickupInfo[MAX_PICKUPS][picinfo];

public OnFilterScriptInit()
{
    variable = CreatePickup(1239, 23, 0.0, 0.0, 0.0);
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    if(pickupid == variable)
    {
        new Float:x, Float:y, Float:z;
        GetPlayerPos(playerid, x, y, z);
        PickupInfo[variable][PosX] = x;
        PickupInfo[variable][PosY] = y;
        PickupInfo[variable][PosZ] = z;
    }
    return 1;
}
Reply
#10

Thank you guys
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)