SA-MP Forums Archive
Despawning object. - 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: Despawning object. (/showthread.php?tid=371812)



Checking if player is armed. - Sam5513 - 24.08.2012

Hey guys.
Recently I was trying to develop a script for a server, by which if you would stand on a place, a siren would spawn and once you would get out, it would despawn.
I have been trying to work it out the whole day now but whenever I exit the place, the sirens dont despawn.
I'd really appreciate if you could help me please. Thank you.
Here is so far what I have done:

Код:
public OnPlayerUpdate(playerid)
{
        if(IsPlayerInRangeOfPoint(playerid, 0.1, 1207.0170, -1333.9816, 13.3984))
    {
        CreateObject(18646, 1207.5631, -1334.1051, 13.5816);
        CreateObject(18646, 1206.5031, -1334.1051, 13.5816);
    }
    if(!IsPlayerInRangeOfPoint(playerid, 0.1, 1207.0170, -1333.9816, 13.3984))
    {
    if(IsValidObject(18646, 1207.5631, -1334.1051, 13.5816))
    {
    DestroyObject(18646, 1207.5631, -1334.1051, 13.5816);
    DestroyObject(18646, 1206.5031, -1334.1051, 13.5816);
	}
    }

	    return 1;
}



Re: Despawning object. - RedJohn - 24.08.2012

pawn Код:
public OnPlayerUpdate(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 0.1, 1207.0170, -1333.9816, 13.3984))
    {
        CreateObject(18646, 1207.5631, -1334.1051, 13.5816);
        CreateObject(18646, 1206.5031, -1334.1051, 13.5816);
    }
    else
    {
        if(IsValidObject(18646, 1207.5631, -1334.1051, 13.5816))
        {
            DestroyObject(18646);
        }
    }
    return 1;
}
Note: Untested


Re: Despawning object. - Sam5513 - 24.08.2012

Thank you for your effort but it doesnt work.
The objects still stay there when exiting the area.
Besides I noticed you were trying to remove only one object, and not both of them.
Thank you for your effort though.


Re: Despawning object. - HuSs3n - 24.08.2012

pawn Код:
new a,b;
public OnPlayerUpdate(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 1.0, 1207.0170, -1333.9816, 13.3984))
    {
       if(!IsValidObject(a)) a=CreateObject(18646, 1207.5631, -1334.1051, 13.5816);
       if(!IsValidObject(b)) b=CreateObject(18646, 1206.5031, -1334.1051, 13.5816);
    }
    else
    {
      if(IsValidObject(a)) DestroyObject(a);
      if(IsValidObject(b)) DestroyObject(b);
    }
    return 1;
}
this is just a fix for your code
if ANY player IS NOT near that point ,it will destroy the object for all.


Re: Despawning object. - Shetch - 24.08.2012

Try this.

Код:
new bool:SirenCreated;
new obj1;
new obj2;

public OnPlayerUpdate(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 0.1, 1207.0170, -1333.9816, 13.3984) && SirenCreated == false)
    {
		SirenCreated = true;
        obj1 = CreateObject(18646, 1207.5631, -1334.1051, 13.5816, 0.0, 0.0, 0.0);
        obj2 = CreateObject(18646, 1206.5031, -1334.1051, 13.5816, 0.0, 0.0, 0.0);
    }
	if(!IsPlayerInRangeOfPoint(playerid, 0.1, 1207.0170, -1333.9816, 13.3984) && SirenCreated == true)
	{
            SirenCreated = false;
	    DestroyObject(obj1);
	    DestroyObject(obj2);
	}
    return 1;
}



Re: Despawning object. - Sam5513 - 24.08.2012

Quote:
Originally Posted by HuSs3n
Посмотреть сообщение
pawn Код:
new a,b;
public OnPlayerUpdate(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 1.0, 1207.0170, -1333.9816, 13.3984))
    {
       if(!IsValidObject(a)) a=CreateObject(18646, 1207.5631, -1334.1051, 13.5816);
       if(!IsValidObject(b)) b=CreateObject(18646, 1206.5031, -1334.1051, 13.5816);
    }
    else
    {
      if(IsValidObject(a)) DestroyObject(a);
      if(IsValidObject(b)) DestroyObject(b);
    }
    return 1;
}
this is just a fix for your code
if ANY player IS NOT near that point ,it will destroy the object for all.
Doesnt work. Still is spawned when leaving the area.


Re: Despawning object. - Sam5513 - 24.08.2012

Quote:
Originally Posted by Shetch
Посмотреть сообщение
Try this.

Код:
new bool:SirenCreated;
new obj1;
new obj2;

public OnPlayerUpdate(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 0.1, 1207.0170, -1333.9816, 13.3984) && SirenCreated == false)
    {
		SirenCreated = true;
        obj1 = CreateObject(18646, 1207.5631, -1334.1051, 13.5816, 0.0, 0.0, 0.0);
        obj2 = CreateObject(18646, 1206.5031, -1334.1051, 13.5816, 0.0, 0.0, 0.0);
    }
	if(!IsPlayerInRangeOfPoint(playerid, 0.1, 1207.0170, -1333.9816, 13.3984) && SirenCreated == true)
	{
            SirenCreated = false;
	    DestroyObject(obj1);
	    DestroyObject(obj2);
	}
    return 1;
}
Works perfectly! Thank you very much!
I have one more question though. Do you think you would know a way to make it shine with all those colors like some unmarked cruisers have on rp servers? It would be great.


EDIT: I found out I only have to set the weather to 2 for the siren flashing to work. Thanks anyways for all who helped and all who were trying to help! Appreciate it.


Re: Despawning object. - Sam5513 - 24.08.2012

With help of Schetch, we have eddited the script so that the sirens will spawn only when player is armed, although there is a bug. The sirens will go only on if the armed player has the weapon in hand. If the weapon is on him but the weapon is not in his hand, the sirens will not go on.
I could really use some more help, please.
Current code:
Код:
new bool:SirenCreated;
new obj1;
new obj2;

public OnPlayerUpdate(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 0.3, 1207.0170, -1333.9816, 13.3984) && SirenCreated == false && GetPlayerWeapon(playerid) > 0)
    {
		SirenCreated = true;
        obj1 = CreateObject(18646, 1207.5631, -1334.1051, 13.5816, 0.0, 0.0, 0.0);
        obj2 = CreateObject(18646, 1206.5031, -1334.1051, 13.5816, 0.0, 0.0, 0.0);
    }
	if(!IsPlayerInRangeOfPoint(playerid, 0.3, 1207.0170, -1333.9816, 13.3984) && SirenCreated == true)
	{
            SirenCreated = false;
	    DestroyObject(obj1);
	    DestroyObject(obj2);
	}
    return 1;
}