SA-MP Forums Archive
[Plugin] Streamer Plugin - 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: Plugin Development (https://sampforum.blast.hk/forumdisplay.php?fid=18)
+--- Thread: [Plugin] Streamer Plugin (/showthread.php?tid=102865)



Re: Streamer Plugin - Gigi-The-Beast - 12.05.2014

CancelEdit(playerid)


Re: Streamer Plugin - Gigi-The-Beast - 14.05.2014

Print pickup id-s, see if they are the same.
I can't see anything wrong with this code, I will try it later if I find some spare time.


Re: Streamer Plugin - Gigi-The-Beast - 16.05.2014

Incognito is there a way to see how much dynamic objects are shown at a time globally, not for player?
I see that the limit is 500 and I think that I am getting near the limit as some dynamic objects start disapearing.

(Mods sorry for double posts, the old post is 2 days old)


Re: Streamer Plugin - IstuntmanI - 16.05.2014

Quote:
Originally Posted by Gigi-The-Beast
Посмотреть сообщение
Incognito is there a way to see how much dynamic objects are shown at a time globally, not for player?
I see that the limit is 500 and I think that I am getting near the limit as some dynamic objects start disapearing.

(Mods sorry for double posts, the old post is 2 days old)
Код:
Streamer_CountItems( STREAMER_TYPE_OBJECT )
EDIT: Aw, this is not what you want. You can't make what you want, only by counting the amount of objects everyone is seeing, one by one.


Re: Streamer Plugin - Gigi-The-Beast - 16.05.2014

Yea, that will count all the created objects, it is not useful.
The only way that I could imagine would be to use Streamer_IsItemVisible(playerid, type, {Text3D,_}:id);
and loop it for all players and for all created objects, then mark the seen objects, so I get only unique visible objects. But this way I would need a huge array of about 12.000 cells, as that is the amount of object on my server.


Re: Streamer Plugin - Basssiiie - 16.05.2014

Quote:
Originally Posted by Gigi-The-Beast
Посмотреть сообщение
I see that the limit is 500 and I think that I am getting near the limit as some dynamic objects start disapearing.
The 500 limit is per-player. By pressing F5 you can see how many objects are currently shown to the player, after the "ObjectSlotsUsed" (or something similar).

Edit: There is no global limit with the Streamer Plugin, only per-player. (That's the beauty of a Streamer.)


Re : Streamer Plugin - Younes44 - 16.05.2014

Great Job..


Re: Streamer Plugin - Gigi-The-Beast - 16.05.2014

Quote:
Originally Posted by [HLF]Southclaw
Посмотреть сообщение
If you just want to count the amount of objects, you only need one cell to add the amount from each player.

pawn Код:
Streamer_CountAllVisibleItems(type) // name inherited from Streamer_CountVisibleItems
{
    new count;

    foreach(new i : Player)
    {
        count += Streamer_CountVisibleItems(i, type);
    }

    return 1;
}
EDIT:
If you want to "mark" or "flag" streamer entities, don't store that data in the AMX space as streamer entities have no internal limit due to dynamic memory. You can store as much information as you want with each streamer entity by using the E_STREAMER_EXTRA_DATA array (which was updated today, check out 2.7.2).
That wouldn't work as it would count same objects for lots of players, eg if two or more players see the same object, it would be counted multiple times.

I'll check the updated verion


Re: Streamer Plugin - Konstantinos - 17.05.2014

Is there any way to move a dynamic object for a specific player only and the rest won't be able to see the object moving?

I can get it working with MovePlayerObject but I just want to know if it's possible with the streamer plugin.


Re: Streamer Plugin - Konstantinos - 17.05.2014

Then I'll go with CreatePlayerObject function for those 2 specific objects without the use of streamer for that. Thanks, Southclaw.

PS: Too bad there isn't AttachPlayerObjectToObject function so it can be used in streamer.

EDIT:
Quote:
Originally Posted by kurta999
Посмотреть сообщение
I'm going to test it, thanks!


Re: Streamer Plugin - AIped - 28.05.2014

Okay...damn...and thanks for the info


Re: Streamer Plugin - scott1 - 30.05.2014

Hi all,

i got an bug since many month.

When i create an dynamic3dtextlabel, attached to a player, after some time, it desapear, and go attached to another.

I got an another bug, when i create an dynamic3dtextlabel, attached to a vehicle, in a command, after sometime desapeear but when i creat it directly into ongamemode init, no prolem.

An finally, sometime when i create an dynamic object, it deasapear to.

Thank You

Max


Re: Streamer Plugin - scott1 - 30.05.2014

Hi, thank you for the time you spend for me.

Like

DestroyDynamic3DTextLabel(Text3D:My3DText);
My3DText = INVALID_3DTEXTLABEL

?

max


Re: Streamer Plugin - Konstantinos - 30.05.2014

pawn Код:
My3DText = Text3D: INVALID_3DTEXT_ID;



Re: Streamer Plugin - Gigi-The-Beast - 30.05.2014

Hey Incognito.
Did you consider upgrading the E_STREAMER_EXTRA_ID to allow us to save enum of different data (ints,floats and strings) ?
It would be useful in many cases,eg. when the objects are owned by players to save playername in the enum of object.
If it is impossible then ignore this


Re: Streamer Plugin - Gigi-The-Beast - 30.05.2014

Are you sure that you can store string data with other data?
Because that would be a multi dimensional array.


EDIT: Omg, you are right!

Test code:
Код:
#include <a_samp>
#include <streamer>
#include <sscanf2>

#define OBJECT_MODEL    1210

new ObjectID1;
new ObjectID2;

enum data
{
	IntVar,
	Float:FloatVar,
	StringVar[MAX_PLAYER_NAME],
	IntVar1
};
new ObjectData[data];

public OnFilterScriptInit()
{
	ObjectID1 = CreateDynamicObject(OBJECT_MODEL,1.0,1.0,1.0,0.0,0.0,0.0);
	ObjectData[IntVar] = 5;
	ObjectData[FloatVar] = 11.76543;
	sscanf("sexy_madafaka","s[24]",ObjectData[StringVar]);
	ObjectData[IntVar1] = 23;
	Streamer_SetArrayData(STREAMER_TYPE_OBJECT,ObjectID1,E_STREAMER_EXTRA_ID,ObjectData,sizeof(ObjectData));
	
	ObjectID2 = CreateDynamicObject(OBJECT_MODEL,2.0,2.0,2.0,0.0,0.0,0.0);
	ObjectData[IntVar] = 776;
	ObjectData[FloatVar] = 3453.2342;
	sscanf("boss_roleplay","s[24]",ObjectData[StringVar]);
	ObjectData[IntVar1] = 1123;
	Streamer_SetArrayData(STREAMER_TYPE_OBJECT,ObjectID2,E_STREAMER_EXTRA_ID,ObjectData,sizeof(ObjectData));
	
	SetTimer("PrintData",5000,0);
	return 1;
}

forward PrintData();
public PrintData()
{
	Streamer_GetArrayData(STREAMER_TYPE_OBJECT,ObjectID1,E_STREAMER_EXTRA_ID,ObjectData,sizeof(ObjectData));
	printf("ObjectData[IntVar]:%d",ObjectData[IntVar]);
	printf("ObjectData[FloatVar]:%f",ObjectData[FloatVar]);
	printf("ObjectData[StringVar]:%s",ObjectData[StringVar]);
	printf("ObjectData[IntVar1]:%d",ObjectData[IntVar1]);

    printf("\n\n");
    Streamer_GetArrayData(STREAMER_TYPE_OBJECT,ObjectID2,E_STREAMER_EXTRA_ID,ObjectData,sizeof(ObjectData));
	printf("ObjectData[IntVar]:%d",ObjectData[IntVar]);
	printf("ObjectData[FloatVar]:%f",ObjectData[FloatVar]);
	printf("ObjectData[StringVar]:%s",ObjectData[StringVar]);
	printf("ObjectData[IntVar1]:%d",ObjectData[IntVar1]);
	return 1;
}
Output:
Код:
Console input: loadfs test
[18:41:09]   Filterscript 'test.amx' loaded.
[18:41:15] ObjectData[IntVar]:5
[18:41:15] ObjectData[FloatVar]:11.765430
[18:41:15] ObjectData[StringVar]:sexy_madafaka
[18:41:15] ObjectData[IntVar1]:23
[18:41:15] 


[18:41:15] ObjectData[IntVar]:776
[18:41:15] ObjectData[FloatVar]:3453.234130
[18:41:15] ObjectData[StringVar]:boss_roleplay
[18:41:15] ObjectData[IntVar1]:1123
If you didn't tell me that, I wouldn't ever even try this!
Thank you man, rep+
Ahh, can't give you rep (You must spread some Reputation around before...)


Re: Streamer Plugin - scott1 - 30.05.2014

Quote:
Originally Posted by [HLF]Southclaw
Посмотреть сообщение
That's not really a usable bug report. As far as I know, those features are working fine on the latest version (I haven't noticed any problems recently).

It's likely that you're variables for storing entity IDs aren't being reset so when something is destroyed you still have a variable pointing to it so when a new one is created there are two variables pointing to it and if one is used in a Destroy function, the entity is destroyed.

Always remember to reset variables to an invalid ID when destroying as the function doesn't do it for you.
But why it's needed?

Like

Test=CreateDynamic3DTextLabel

after DestroyDynamic3DTextLabel(Test)

after Test CreateDynamic3DTextLabel(

So Test will have the final createdynamic3dtext?

No?

Sorry for my bad english

Max


Re: Streamer Plugin - scott1 - 30.05.2014

Thank you,

so i could just fick it by

IsValidDynamic3dTextLabel()

And thats all ?

max


Re: Streamer Plugin - IstuntmanI - 01.06.2014

I've got a problem: Before, with a big streamdistance (9000) at CreateDynamicCP it showed the checkpoint anywhere you would be, but now it is showing only if you get close to it, but if you get far from it, it won't dissapear. I don't think that I modified something in code, but I think it may be from a new version of the streamer. Any idea how I could make it to be shown everywhere on map ?


Re: Streamer Plugin - superman21 - 01.06.2014

Best ever, im using it every time i do smth with objects