Hi Incognito,
I have lot of ideas for this streamer, would be very good if you add some of them.
These things would be very useful for everyone. In past, I need everything of these function.
pawn Код:
GetDynamicPolygonCoordinates(&points_array[]);
GetDynamicPolygonPoints() - return number of points in this polygon
GetPlayerDynamicAreaID();
Support for create areas in areas.
Add option to change Streamer_GetDistanceToItem() mode to 2D or 3D distance check. Not useless, somehere you need to calculate 2D distance. Ex. Get distance to elevators if you move up/down with same keys.
pawn Код:
#define MODE_2D
#define MODE_3D
Streamer_GetDistanceToItem(Float:x, Float:y, Float:z, type, {Text3D,_}:id, &Float:distance, mode = MODE_3D);
Add "filtercolors" option:
pawn Код:
GetDynamic3DTextLabelText(Text3D:id, text[], maxlength = sizeof text, filtercolors = false); // With text {FF0000}ASD{33FF33}QWE if filtering enabled would return: ASDQWE
Same for GetDynamicObjectMaterialText()
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
In my server every player can attach 30object to their vehicle, and players can disable another player vehicle object for himself.
But the remove code is very complex and slow.
So I have idea to add "flags" parameter to every element with default is 0. (not used)
And if x bit of flag is disabled for player and the element flag is that which is disabled, then do not create these element for player. Ex if flag is 0x4 and player flags doesn't contanis that flag, then doesn't show that element for player
if(objectflag && (playerflags & objectflag))
{
show
}
else
{
not show
}
CreateDynamicObject(...., flag = 0x4);
new
flag = 0x4; // Vehicle objects
Streamer_SetFlag(playerid, streamertype, flag, true); // Enable vehicle objects for player
Straemer_SetFlag(playerid, streamertype, flag, false); // Disable vehicle objects for playerid
Streamer_SetFlagValue(playerid, streamertype, value); // Not AND or OR, only set the flag value to the given value
Streamer_GetFlagValue(streamertype, playerid);
Lot of servers have clear world where no objects, this also would very useful for this. Disable object update is bad because I have some objects what I don't want to hide. (Ex. fixed liberty city objects, fixed interior)
Get functions:
pawn Код:
Streamer_GetTickRate();
Streamer_GetMaxItems(type, items);
Streamer_GetVisibleItems(type, items);
Float:Streamer_GetCellDistance();
Float:Streamer_GetCellSize();
Streamer_IsIddleUpdate(playerid);
Streamer_IsItemUpdate(playerid, type);
And get 'original id' from 'streamer' id ad reverse.
pawn Код:
Streamer_GetOriginalID(playerid, type, streamerid); // Example will return CreatePlayerObject() id for given id which created be CreateDynamicObject();
Streamer_GetStreamerID(playerid, tpye, originalid); // If you give CreatePlayerObject() id and that object was created by streamer, then will return with CreateDynamicObject() id
And add support for AttachPlayerObjectToPlayer & AttachPlayerObjectToObject. (same player object to same player, not another to another, playerid 0 object to playerid 0)
With custom RPC sending for only one player these things are possible, and I did it in YSF. When 0.3z will released, i'll update it.
And in the future i'll try to make CreatePlayerPickup() with the same way.. But I din't found any RPC for CreatePickup(). DestroyPickup() rpc was found, but this is shit method to create pickup for everynoe and destroy for everyone except the given playerid.
P.S: Update plugin to VS2013