SA-MP Forums Archive
[HELP] Pickup insane bug - 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)
+--- Thread: [HELP] Pickup insane bug (/showthread.php?tid=635331)



[HELP] Pickup insane bug - ThomasEvil - 05.06.2017

So...

I use many pickups. Every pickup is on virtual world 0 (no lag).
I use new pPickup[600]; variable so i have 600 pickups.

Now we have this pickups:

1.
Код:
pPickup[200] = CreatePickup(1279,1,x,y,z,0);
and

2.
Код:
pPickup[500] = CreatePickup(1272,1,x,y,z,0);
Pickup 1. give you money if you pick it up.

Pickup 2. show you dialog if you pick it up.

Problem is this:

If you pick up pickup 1. and then you pick up pickup 2.
Pickup 2. show you dialog AND give you money like pickup 1.

What the hell is this If you pick up pickup with weapon and then pick up pickup 2.,
pickup 2. show you dialog AND give you weapon...

HINT: Pickup 2.
Код:
pPickup[500] = CreatePickup(1272,1,x,y,z,0);
is called under OnDialogResponse so if player response
Код:
pPickup[500] = CreatePickup(1272,1,x,y,z,0);
Anyone can solve this problem without any code?




Re: [HELP] Pickup insane bug - ThomasEvil - 05.06.2017

Is it possible that the problem is becasue i CreatePickup under OnDialogResponse?


Re: [HELP] Pickup insane bug - 1fret - 05.06.2017

Try using createdynamicpickup... I've had the same issue, thats how i solve mine


Re: [HELP] Pickup insane bug - ThomasEvil - 05.06.2017

Undefined Symbol "CreateDynamicPickup"


Re: [HELP] Pickup insane bug - DeeadPool - 05.06.2017

You require this include and plugin sir:- https://sampforum.blast.hk/showthread.php?tid=102865


Re: [HELP] Pickup insane bug - ThomasEvil - 05.06.2017

Any other way anyone? I need to fix pickup ... If you pick pickup id 200 you get money but if you pick pickup 500 you get money too!


Re: [HELP] Pickup insane bug - DeeadPool - 05.06.2017

Are you using OnPlayerPickupPickup?


Re: [HELP] Pickup insane bug - ThomasEvil - 05.06.2017

Yes

Код:
public OnPlayerPickUpPickup(playerid, pickupid)
{
   	//...............some code before.............//		
        if(pickupid == pPickup[200]) 
        DestroyPickup(pPickup[200]),SendClientMessage(playerid, 0xFFFFFFFF, 
       "TEXT"),SetTimer("mytimer", 1800000, 1),GivePlayerMoney(playerid, 10000),PlayerInfo[playerid][pMoney]++;
       
	if(pickupid == pPickup[500])
       	{
        if(BLUE1 == false)

       		{
			ShowPlayerDialog(playerid, DIALOG_XXX, DIALOG_STYLE_MSGBOX, "text","text", "yes","no");

			BLUE1 = true;
			}
        }
        return 1;
        
}
Anyway i installed the plugine and dynamicpickup still does not work.


Re: [HELP] Pickup insane bug - DeeadPool - 05.06.2017

Post your whole code of the pickup and the dialog; if it's too long, post it on pastebin and share the link.


Re: [HELP] Pickup insane bug - ThomasEvil - 05.06.2017

Код HTML:
new pPickup[600];
new bool:RED1 = false;
new bool:BLUE1 = false;
 
 
forward DestroyTimer1();
public DestroyTimer1()
{
DestroyPickup(pPickup[500]);
}
 
public OnGameModeInit()
{
//code before deleted//
pPickup[200] = CreatePickup(1212,19,-559.5560,-1480.1361,9.3424,0);
//same//
}
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
//code before deleted//
        case BROKENPICKUP:
        {
        if(response)
            {
            if(PlayerInfo[playerid][pSomething] >= 10)
                {
                PlayerInfo[playerid][pSomething] -= 10;
               
                DestroyPickup(pPickup[499]);//RED1
                RED1 = true;
                BLUE1 = false;
                pPickup[500] = CreatePickup(1272,1,2453.7996,-1713.3177,13.6317,0); //BLUE1
                SetTimer("DestroyTimer1", 10000*60, false); //timer for destroy pickup 500 in 10 minutes
               
                }
                else
                {
                SendClientMessage(playerid, 0xFFFFFFFF, "some text");
                }
 
            }
 
        }
 
 
public OnPlayerPickUpPickup(playerid, pickupid)
{
        if(pickupid == pPickup[200]) DestroyPickup(pPickup[24]),
        GivePlayerMoney(playerid, 10000),SendClientMessage(playerid, 0xFFFFFFFF,"text"),SetTimer("mytimer", 
        1800000, 1);
       
        if(pickupid == pPickup[500])
        {
        if(BLUE1 == false)
       
            {
            ShowPlayerDialog(playerid, BROKENPICKUP, DIALOG_STYLE_MSGBOX, "text","text", "yes","");
 
            BLUE1 = true;
            }
        }
        return 1;
}