SA-MP Forums Archive
[HELP] How to get pickup pos? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: [HELP] How to get pickup pos? (/showthread.php?tid=202314)



[HELP] How to get pickup pos? - Pooh7 - 23.12.2010

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?


Re: [HELP] How to get pickup pos? - WillyP - 23.12.2010

IsPlayerInRangeOfPoint.


Re: [HELP] How to get pickup pos? - Pooh7 - 23.12.2010

??
I'm edited my post..


Re: [HELP] How to get pickup pos? - WillyP - 23.12.2010

What..The..Fuck?

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


Re: [HELP] How to get pickup pos? - Pooh7 - 23.12.2010

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? -.-


Re: [HELP] How to get pickup pos? - WillyP - 23.12.2010

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


Re: [HELP] How to get pickup pos? - PowerPC603 - 23.12.2010

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;
}



Re: [HELP] How to get pickup pos? - Steven82 - 23.12.2010

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

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


Re: [HELP] How to get pickup pos? - case 1337: - 23.12.2010

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;
}



Re: [HELP] How to get pickup pos? - Pooh7 - 23.12.2010

Thank you guys