La majorité des fonctions de cette include ne serviront à rien pour les personnes qui considèrent que le streamer c'est juste une façon différente de créer des objets. On peut considérer ça, mais c'est en réalité un peu plus complexe que ça : ça permet de créer des objets dans un/plusieurs virtualworld, dans un ou plusieurs intérieurs virtuels, etc. Ca permet également de ne plus avoir la limite de 1000 objets créables via CreateObject. Et ça ne s'applique pas qu'aux objets !
Avant tout, l'include n'est pas terminée : je n'avais pas le temps de la terminer complètement (elle est à moitié faite, libre à ceux qui veulent la continuer, sachant qu'il suffit de se baser sur le travail déjà fait pour comprendre comment fabriquer de nouvelles fonctions) donc je la partage (elle a déjà été partagée sur le forum samp) à moitié faite. Pour l'instant, elle inclut déjà pas mal de natives, qui sont (désolé si le code est trop grand, signalez le moi je le mettrais sur pastebin)
Lien pastebin :
http://pastebin.com/XHYM3diX
/****************
CountAreas
****************/
native CountDynamicPolygons();
native CountDynamicCubes();
native CountDynamicSpheres();
native CountDynamicRectangles();
native CountDynamicCircles();
/*****************
Objects
*****************/
native GetDynamicObjectModel(objectid);
native SetDynamicObjectModel(objectid, modelid);
native GetDynamicObjectStreamParams(objectid, &worldid, &interiorid, &playerid);
native SetDynamicObjectStreamParams(objectid, worldid = -1, interiorid = -1, playerid = -1);
native Float:GetDynamicObjectStreamDistance(objectid);
native Float:GetDynamicObjectDrawDistance(objectid);
native SetDynamicObjectStreamDistance(objectid, Float:streamdistance);
native SetDynamicObjectDrawDistance(objectid, Float:drawdistance);
native IsPlayerInRangeOfDynamicObject(playerid, objectid, Float:radi = 5.0);
native IsDynamicObjectInRangeOfPoint(objectid, Float:x, Float:y, Float:z, Float:radi = 5.0);
native GetNearestObjectFromObject(objectid, Float:radi = 0.3);
native GetNearestObjectFromVehicle(objectid, vehicleid, Float:radi = 1.0);
native GetNearestObjectFromPlayer(objectid, playerid, Float:radi = 0.5);
native GetNearestObjectFromPickup(objectid, pickupid, Float:radi = 1.0);
/*****************
Pickups
*****************/
native GetDynamicPickupPos(pickupid, &Float:x, &Float:y, &Float:z);
native SetDynamicPickupPos(pickupid, Float:x, Float:y, Float:z);
native GetDynamicPickupType(pickupid);
native SetDynamicPickupType(pickupid, type);
native GetDynamicPickupStreamParams(pickupid, &worldid, &interiorid, &playerid);
native SetDynamicPickupStreamParams(pickupid, worldid = -1, interiorid = -1, playerid = -1);
native GetDynamicPickupModel(pickupid);
native SetDynamicPickupModel(pickupid, modelid);
native Float:GetDynamicPickupStreamDistance(pickupid);
native SetDynamicPickupStreamDistance(pickupid, Float:strdistance);
native IsPlayerInRangeOfDynamicPickup(playerid, pickupid, Float:range = 3.0);
native IsDynamicPickupInRangeOfPoint(pickupid, Float:x, Float:y, Float:z, Float:range = 3.0);
/******************
Checkpoints
******************/
native GetDynamicCPPos(checkpointid, &Float:x, &Float:y, &Float:z);
native SetDynamicCPPos(checkpointid, Float:x, Float:y, Float:z);
native Float:GetDynamicCPSize(checkpointid);
native SetDynamicCPSize(checkpointid, Float:size);
native GetDynamicCPStreamParams(checkpointid, &worldid, &interiorid, &playerid);
native SetDynamicCPStreamParams(checkpointid, worldid = -1, interiorid = -1, playerid = -1);
native Float:GetDynamicCPStreamDistance(checkpointid);
native SetDynamicCPStreamDistance(checkpointid, Float:streamdistance);
native IsDynamicObjectInRangeOfCP(objectid, checkpointid, Float:range = 5.0);
native IsDynamicCPInRangeOfPoint(checkpointid, Float:x, Float:y, Float:z, Float:range = 5.0);
/**********************
Race checkpoints
**********************/
native GetDynamicRaceCPType(checkpointid);
native SetDynamicRaceTPType(checkpointid, type);
native GetDynamicRCPPos(checkpointid, &Float:x, &Float:y, &Float:z);
native GetDynamicRCPNextPos(checkpointid, &Float:x, &Float:y, &Float:z);
native SetDynamicRCPPos(checkpointid, Float:x, Float:y, Float:z);
native SetDynamicRCPNextPos(checkpointid, Float:x, Float:y, Float:z);
native Float:GetDynamicRCPSize(checkpointid);
native SetDynamicRCPSize(checkpointid, Float:size);
native GetDynamicRCPStreamParams(checkpointid, &worldid, &interiorid, &playerid);
native SetDynamicRCPStreamParams(checkpointid, worldid = -1, interiorid = -1, playerid = -1);
native Float:GetDynamicRCPStreamDistance(checkpointid);
native SetDynamicRCPStreamDistance(checkpointid, Float:streamdistance);
Seul bug que j'ai pas réussi à patcher : A la compilation de l'include, au niveau de la macro S_CreateDynamic3DTextLabel, j'ai une erreur 203 : tag mismatch, avis à ceux qui savent comment réparer ça.
Crédits :
Incognito : Streamer
Patrick_, Vince : GetDistanceBetweenPoints (avec le VectorSize), aide sur l'utilisation de la fonction
Moi : Bah toute les fonctions déjà créées
Pré-requis :
SAMP 0.3z (ne fonctionne pas sur les versions antérieures)
"Streamer plugin" d'incognito