Burgershot
  • Home
  • Members
  • Team
  • Help
  • Search
  • Register
  • Login
  • Home
  • Members
  • Help
  • Search
Burgershot SA-MP Releases Libraries [Library] 3DTryg

 
  • 0 Vote(s) - 0 Average
Library 3DTryg
AbyssMorgan
Offline

Burgershot Member
Posts: 63
Threads: 25
Joined: Apr 2021
Reputation: 8
Location: Poland
#1
2021-04-18, 07:24 AM (This post was last modified: 2021-09-19, 04:10 PM by AbyssMorgan. Edit Reason: Update v5.3.0 )
Include contain professional functions for manipulating (coordinates / rotations / vectors / arc / areas / offset) supported (2D / 3D)

Videos:
- Knife Shoot
- EngineV6
- EngineX
- Missile Launch
- Vehicle Missile Launch (ColAndreas Version)
- GetGroundRotation
- GetPlayerCollisionFlags (ColAndreas)
- Marica Mortar V1
- Heavy Marica Mortar
- Acid Renia (FCNPC)
- Beta Interceptor (FCNPC)
- GoToPlayerOnGroundCol (FCNPC)
- IsElementOnPlayerScreen (ColAndreas)
- Arc Points
- Missile Launcher Aim Player
- GetRandomPointOnSphericalSector
- Vehicle Missile Congreve Rocket
- Magic Wand
- Vehicle Parachute
- Portal Gun #1
- Portal Gun #2
- Marica Mortar V2
- Stingers (Cops and Robbers)
- NPC Driver Eye
- PET SAR v1.0
- Vehicle Speed Control
- Prototype Grenade Detection

Code:
3DTryg.inc
Copyright © 2021 Abyss Morgan. All rights reserved.
Contributors: Crayder, IllidanS4, Nero_3D, RyDeR, Zoutdaxv, hesambia, Neil Lamoureux, Ivan_Ino, Ralfie, Unrea1, Katarina Calzaghe, $continue$
Mr.Reus

Website: https://adm.ct8.pl

Plugins: ColAndreas, YSF, Streamer, FCNPC, VehicleStreamer
Internal Modules: Actor, VehicleCollision, PlayerCollision, ActorCollision, Draw3D, CatchItems, GrenadeDetection

File Version: 5.3.0
ColAndreas Version: 1.5.0
YSF Version: R19 (kurta999)
Streamer Version: 2.9.5
VehicleStreamer Version: 2.9.4
FCNPC Version: 2.0.0

Foreach Types:
1. FoxForeach
2. StandaloneForeach
3. YSI Foreach
4. GetPlayerPoolSize

Compiler Options:
DISABLE_3D_TRYG_INIT            //Use before 3DTryg.inc for disable ColAndreas Auto Init
DISABLE_3D_TRYG_ACTOR           //Use before 3DTryg.inc for disable Actors Module
DISABLE_3D_TRYG_FOREACH_FOX     //Use before 3DTryg.inc for disable FoxForeach Module
DISABLE_3D_TRYG_FOREACH_STAND   //Use before 3DTryg.inc for disable StandaloneForeach Module
DISABLE_3D_TRYG_FOREACH_YSI     //Use before 3DTryg.inc for disable YSI Foreach Module
DISABLE_3D_TRYG_COLANDREAS      //Use before 3DTryg.inc for disable ColAndreas Module
DISABLE_3D_TRYG_YSF             //Use before 3DTryg.inc for disable YSF Module
DISABLE_3D_TRYG_STREAMER        //Use before 3DTryg.inc for disable Streamer Module
DISABLE_3D_TRYG_FCNPC           //Use before 3DTryg.inc for disable FCNPC Module
DISABLE_3D_TRYG_VEHSTREAMER     //Use before 3DTryg.inc for disable VehicleStreamer Module
ENABLE_3D_TRYG_YSI_SUPPORT      //Use before 3DTryg.inc for enable YSI Support (use only when 3DTryg say error for this)
ENABLE_3D_TRYG_DRAW3D           //Use before 3DTryg.inc for enable Draw3D Module
ENABLE_3D_TRYG_CATCH_ITEMS      //Use before 3DTryg.inc for enable CatchItems Module
ENABLE_3D_TRYG_GRENADEDETECTION //Use before 3DTryg.inc for enable GrenadeDetection Module
ENABLE_3D_TRYG_VEHICLECOL       //Use before 3DTryg.inc for enable VehicleCollision Module
ENABLE_3D_TRYG_PLAYERCOL        //Use before 3DTryg.inc for enable PlayerCollision Module
ENABLE_3D_TRYG_ACTORCOL         //Use before 3DTryg.inc for enable ActorCollision Module

Complementary Functions:
Float:sqrtN(Float:value,Float:exponent);
abs(value);
Float:fabs(Float:value);
power(value,Float:exponent);
IsEven(value);
Float:Tryg3D::RandomFloat(Float:min,Float:max,accuracy=4);

Internal Functions:
single_clock(max,id); //For Random::PointOnClock parameter rz
even_clock(max,id); //For Random::PointOnClock parameter rz
uneven_clock(max,id); //For Random::PointOnClock parameter rz
NLTZ(value); //NotLessThanZero
NMTZ(value); //NotMoreThanZero
NLTZF(Float:value); //NotLessThanZeroFloat
NMTZF(Float:value); //NotMoreThanZeroFloat
NLTV(value,min); //NotLessThanValue
NMTV(value,max); //NotMoreThanValue
NLTVF(Float:value,Float:min); //NotLessThanValueFloat
NMTVF(Float:value,Float:max); //NotMoreThanValueFloat
Tryg3D::CompressRotation(Float:rotation);
Tryg3D::DeCompressRotation(Float:rotation);
Tryg3D::IsRotationTest(Float:rotation,Float:r_min,Float:r_max);
Tryg3D::GivePlayerDamage(targetid,Float:amount,playerid,weaponid,bodypart);
Tryg3D::GetWeaponDamage(weaponid);
Tryg3D::SwapInt(variable1,variable2);
Tryg3D::IsPlayerSpawned(playerid);
Tryg3D::GetActiveTime();

General Functions:
CountPlayers(bool:isplayer=true,bool:isnpc=true);
CountActors();
CountVisibleActors(playerid);
CountVisibleVehicles(playerid);
CountVisiblePlayers(playerid,bool:isplayer=true,bool:isnpc=true);
RecoilFloat(Float:value,Float:recoil);
RecoilVector(&Float:vx,&Float:vy,&Float:vz,Float:sx,Float:sy,Float:sz);
Float:ShiftDegreeToRadian(Float:deg);
Float:ShiftDegreeToRadianEx(Float:deg);
Float:ShiftDegreeToGrades(Float:deg);
Float:ShiftRadianToDegree(Float:rad);
Float:ShiftRadianToDegreeEx(Float:rad);
Float:ShiftRadianToGrades(Float:rad);
Float:ShiftGradesToDegree(Float:grad);
Float:ShiftGradesToRadian(Float:grad);
GetRandomHit(Float:x,Float:y,Float:z,range,&Float:tx,&Float:ty,&Float:tz);
Float:GetDistanceBetweenPoints1D(Float:x1,Float:x2);
Float:GetDistanceBetweenPoints2D(Float:x1,Float:y1,Float:x2,Float:y2);
Float:GetDistanceBetweenPoints3D(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2);
GetPointInFront2D(Float:x,Float:y,Float:rz,Float:radius,&Float:tx,&Float:ty);
GetPointInFront3D(Float:x,Float:y,Float:z,Float:rx,Float:rz,Float:radius,&Float:tx,&Float:ty,&Float:tz);
GetPointInFront3DEx(Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,Float:radius,&Float:tx,&Float:ty,&Float:tz);
Float:GetPointInFrontOfPlayer(playerid,&Float:tx,&Float:ty,Float:radius);
Float:GetPointInFrontOfCamera2D(playerid,&Float:tx,&Float:ty,Float:radius);
GetPointInFrontOfCamera3D(playerid,&Float:tx,&Float:ty,&Float:tz,Float:radius,&Float:rx=0.0,&Float:rz=0.0);
GetRotationFor2Point2D(Float:x,Float:y,Float:tx,Float:ty,&Float:rz);
GetRotationFor2Point3D(Float:x,Float:y,Float:z,Float:tx,Float:ty,Float:tz,&Float:rx,&Float:rz);
GetMoveTime(Float:x,Float:y,Float:z,Float:tx,Float:ty,Float:tz,Float:speed,&rtime=0);
GetSpeedForMoveTime(Float:x,Float:y,Float:z,Float:tx,Float:ty,Float:tz,&Float:speed,rtime);
GetVehicleRotation(vehicleid,&Float:rx,&Float:ry,&Float:rz);
Float:GetPointInFrontOfVehicle2D(vehicleid,&Float:tx,&Float:ty,Float:radius);
GetPointInFrontOfVehicle3D(vehicleid,&Float:tx,&Float:ty,&Float:tz,Float:radius,&Float:rx=0.0,&Float:rz=0.0);
GetPlayerCameraRotation(playerid,&Float:rx,&Float:rz);
Float:GetPlayerCameraZAngle(playerid,&Float:rz=0.0);
GetPointFor2Point2D(Float:x1,Float:y1,Float:x2,Float:y2,Float:percent_size,&Float:tx,&Float:ty);
GetPointFor2Point3D(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2,Float:percent_size,&Float:tx,&Float:ty,&Float:tz);
GetPointFor2Point2DEx(Float:x1,Float:y1,Float:x2,Float:y2,Float:distance,&Float:tx,&Float:ty);
GetPointFor2Point3DEx(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2,Float:distance,&Float:tx,&Float:ty,&Float:tz);
ShiftVectorToRotation(Float:vx,Float:vy,Float:vz,&Float:rx,&Float:rz);
ShiftRotationToVector(Float:rx,Float:rz,&Float:vx,&Float:vy,&Float:vz);
GetPointToPointVector(Float:x,Float:y,Float:z,Float:tx,Float:ty,Float:tz,&Float:vx,&Float:vy,&Float:vz);
IsPointBetween2Points2D(Float:px,Float:py,Float:xA,Float:yA,Float:xB,Float:yB);
IsPointBetween2Points3D(Float:px,Float:py,Float:pz,Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB);
IsProbable(chance);
IsProbableEx(chance,poolsize); //by default IsProbable using 100
Float:CalculatePercent(Float:value,Float:maxvalue);
Float:GetPlayerTargetAngle(playerid,Float:x,Float:y,&Float:rz=0.0);
Float:SetPlayerTargetAngle(playerid,Float:x,Float:y,&Float:rz=0.0);
Float:GetPlayerTargetPlayerAngle(playerid,targetid,&Float:rz=0.0);
Float:SetPlayerTargetPlayerAngle(playerid,targetid,&Float:rz=0.0);
Float:GetVehicleSpeed(vehicleid);
SetVehicleSpeed(vehicleid,Float:speed);
Float:GetPlayerSpeed(playerid);
GetVehicleFlags(vehicleid);
GetVehicleDefaultFlagsByModel(modelid);
GetVehicleFlagsByModel(modelid);
SetVehicleFlagsByModel(modelid,value);
ToggleVehicleModelFlag(modelid,flag,bool:toggle);
IsVehicleFlag(value,flag);
GetWeaponShotPos(playerid,hittype,&Float:fx,&Float:fy,&Float:fz);
GetPlayerCameraLookAt(playerid,&Float:x,&Float:y,&Float:z);
IsPlayerLookAtSky(playerid);
GetQuatUpVector(Float:qw,Float:qx,Float:qy,Float:qz,&Float:vx,&Float:vy,&Float:vz);
Float:GetLineSize2D(Float:points[][2],maxpoints=sizeof(points));
Float:GetLineSize3D(Float:points[][3],maxpoints=sizeof(points));
IsVehicleInRangeOfPoint(vehicleid,Float:range,Float:x,Float:y,Float:z);
IsActorInRangeOfPoint(actorid,Float:range,Float:x,Float:y,Float:z);
ShiftLineRotation(Float:sX,Float:sY,Float:sZ,Float:eX,Float:eY,Float:eZ,Float:rx,Float:ry,Float:rz,&Float:nX,&Float:nY,&Float:nZ);
ShiftLineRotationVector(Float:sX,Float:sY,Float:sZ,Float:eX,Float:eY,Float:eZ,Float:rx,Float:ry,Float:rz,&Float:nX,&Float:nY,&Float:nZ);
Float:GetEllipseRadius(Float:x,Float:y,Float:angle);
GetArcPoints3D(Float:x,Float:y,Float:z,Float:tx,Float:ty,Float:tz,Float:ry,Float:height,Float:points[][3],max_points=sizeof(points));
Float:GetDistanceFromPointToLine(Float:px,Float:py,Float:pz,Float:sX,Float:sY,Float:sZ,Float:eX,Float:eY,Float:eZ,&Float:iX=0.0,&Float:iY=0.0,&Float:iZ=0.0);
Float:GetDistanceFromPointToLineEx(Float:px,Float:py,Float:pz,Float:sX,Float:sY,Float:sZ,Float:eX,Float:eY,Float:eZ,&Float:iX=0.0,&Float:iY=0.0,&Float:iZ=0.0);
GetNearest2DPointOnPolygon(const Float:polygon_points[],Float:x,Float:y,&Float:tx,&Float:ty,maxpoints = sizeof(polygon_points));
ShiftOffsetToPosition(Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,Float:offset_x,Float:offset_y,Float:offset_z,&Float:tx,&Float:ty,&Float:tz);
ShiftPositionToOffset(Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,&Float:offset_x,&Float:offset_y,&Float:offset_z,Float:tx,Float:ty,Float:tz);
Tryg3D::EulerToQuat(Float:rx,Float:ry,Float:rz,&Float:qw,&Float:qx,&Float:qy,&Float:qz);
Tryg3D::QuatToEuler(&Float:rx,&Float:ry,&Float:rz,Float:qw,Float:qx,Float:qy,Float:qz);
ShiftVectorRotation(Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,&Float:tx,&Float:ty,&Float:tz);
GetCube3DPoint(OrientationCube3D:orientation,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,Float:size_x,Float:size_y,Float:size_z,&Float:tx,&Float:ty,&Float:tz);
IsPlayerFakeSpectating(playerid,bool:force_disable=true);
GenerateGangZone(Float:x,Float:y,Float:radius,&Float:minx,&Float:miny,&Float:maxx,&Float:maxy);
Float:GetCameraTargetDistance(Float:CamX,Float:CamY,Float:CamZ,Float:ObjX,Float:ObjY,Float:ObjZ,Float:FrX,Float:FrY,Float:FrZ);
IsPlayerAimingAt(playerid,Float:x,Float:y,Float:z,Float:radius);
IPL_CreateObject(modelid,Float:x,Float:y,Float:z,Float:qx,Float:qy,Float:qz,Float:qw,Float:drawdistance=0.0);
bool:IsPolygonClosed(const Float:points[],maxpoints = sizeof(points));
bool:IsValidPolygon(const Float:points[],maxpoints = sizeof(points));
Tryg3D::GetOrientation(Float:angle);
Tryg3D::GetOrientationName(orientation_name[],Float:angle,bool:as_compass=false,maxdest = sizeof(orientation_name));

Cast3D functions:
Cast3D::Explosion(Float:x,Float:y,Float:z,type,Float:radius,worldid=-1,interiorid=-1,playerid=-1,Float:distance=200.0);
Cast3D::ExplosionDMG(Float:x,Float:y,Float:z,type,Float:radius,worldid=-1,interiorid=-1,playerid=-1,Float:distance=200.0,Float:damage=82.5,Float:vehicle_damage=82.5,byplayerid=INVALID_PLAYER_ID,ignore_vehicle = INVALID_VEHICLE_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_NONE);
Cast3D::ExplosionRangeDMG(Float:x,Float:y,Float:z,type,Float:radius,worldid = -1,interiorid = -1,playerid = -1,Float:distance = 200.0,Float:min_damage=10.0,Float:max_damage=82.5,Float:min_vehicle_damage=50.0,Float:max_vehicle_damage=250.0,byplayerid=INVALID_PLAYER_ID,ignore_vehicle = INVALID_VEHICLE_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_NONE);
Cast3D::Damage(weaponid,bodypart,Float:damage,Float:vehicle_damage,Float:x,Float:y,Float:z,Float:radius,worldid=-1,interiorid=-1,playerid=-1,byplayerid=INVALID_PLAYER_ID);
Cast3D::Gravity(Float:x,Float:y,Float:z,Float:radius,Float:power = 1.0,worldid = -1,interiorid = -1,playerid = -1,byplayerid = INVALID_PLAYER_ID);

Area check functions:
Area::PointInCircle(Float:px,Float:py,Float:x,Float:y,Float:radius);
Area::PointInCylinder2D(Float:px,Float:py,Float:pz,Float:x,Float:y,Float:minz,Float:maxz,Float:radius);
Area::PointInCylinder3D(Float:px,Float:py,Float:pz,Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:radius);
Area::PointInSphere(Float:px,Float:py,Float:pz,Float:x,Float:y,Float:z,Float:radius);
Area::PointInRectangle(Float:x,Float:y,Float:minx,Float:miny,Float:maxx,Float:maxy);
Area::PointInCube(Float:x,Float:y,Float:z,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz);
Area::PointInPolygon(Float:x,Float:y,Float:points[],maxpoints=sizeof(points));
Area::PointInCircularSector(Float:px,Float:py,Float:x,Float:y,Float:rz,Float:radius,Float:view_angle);
Area::PointInSphericalSector(Float:px,Float:py,Float:pz,Float:x,Float:y,Float:z,Float:rx,Float:rz,Float:radius,Float:vrx,Float:vrz);
Area::PointInCone2D(Float:px,Float:py,Float:pz,Float:x,Float:y,Float:minz,Float:maxz,Float:radius_a,Float:radius_b);
Area::PointInCone3D(Float:px,Float:py,Float:pz,Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:radius_a,Float:radius_b);
Area::PointInCube3D(Float:px,Float:py,Float:pz,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,Float:size_x,Float:size_y,Float:size_z);
Area::PointInEllipse(Float:px,Float:py,Float:cx,Float:cy,Float:size_x,Float:size_y);
Area::PointInEllipticalCylinder(Float:px,Float:py,Float:pz,Float:cx,Float:cy,Float:minz,Float:maxz,Float:size_x,Float:size_y);
Area::PointInSphericalSectorEx(Float:px,Float:py,Float:pz,Float:x,Float:y,Float:z,Float:rx,Float:rz,Float:radius,Float:vrx,Float:vrz,ignore_vehicle = INVALID_VEHICLE_ID,ignore_player = INVALID_PLAYER_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_OBJECT);

Area get random point functions (IN)
Random::PointInCircle(Float:x,Float:y,Float:radius,&Float:tx,&Float:ty);
Random::PointInCylinder2D(Float:x,Float:y,Float:minz,Float:maxz,Float:radius,&Float:tx,&Float:ty,&Float:tz);
Random::PointInCylinder3D(Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:radius,&Float:tx,&Float:ty,&Float:tz);
Random::PointInSphere(Float:x,Float:y,Float:z,Float:radius,&Float:tx,&Float:ty,&Float:tz);
Random::PointInRectangle(Float:minx,Float:miny,Float:maxx,Float:maxy,&Float:tx,&Float:ty);
Random::PointInCube(Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz,&Float:tx,&Float:ty,&Float:tz);
Random::PointInPolygon(Float:points[],&Float:tx,&Float:ty,maxpoints = sizeof(points), max_iterations = 10000);
Random::PointInCircularSector(Float:x,Float:y,Float:rz,Float:radius,Float:view_angle,&Float:tx,&Float:ty);
Random::PointInSphericalSector(Float:x,Float:y,Float:z,Float:rx,Float:rz,Float:radius,Float:vrx,Float:vrz,&Float:tx,&Float:ty,&Float:tz);
Random::PointInCone2D(Float:x,Float:y,Float:minz,Float:maxz,Float:radius_a,Float:radius_b,&Float:tx,&Float:ty,&Float:tz)
Random::PointInCone3D(Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:radius_a,Float:radius_b,&Float:tx,&Float:ty,&Float:tz);
Random::PointInCube3D(Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,Float:size_x,Float:size_y,Float:size_z,&Float:tx,&Float:ty,&Float:tz);
Random::PointInEllipse(Float:cx,Float:cy,Float:size_x,Float:size_y,&Float:tx,&Float:ty);
Random::PointInEllipticalCyl2D(Float:cx,Float:cy,Float:minz,Float:maxz,Float:size_x,Float:size_y,&Float:tx,&Float:ty,&Float:tz);

Area get random point functions (ON)
Random::PointOnCircle(Float:x,Float:y,Float:radius,&Float:tx,&Float:ty);
Random::PointOnCylinder2D(Float:x,Float:y,Float:minz,Float:maxz,Float:radius,&Float:tx,&Float:ty,&Float:tz);
Random::PointOnCylinder3D(Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:radius,&Float:tx,&Float:ty,&Float:tz);
Random::PointOnSphere(Float:x,Float:y,Float:z,Float:radius,&Float:tx,&Float:ty,&Float:tz);
Random::PointOnRectangle(Float:minx,Float:miny,Float:maxx,Float:maxy,&Float:tx,&Float:ty);
Random::PointOnCube(Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz,&Float:tx,&Float:ty,&Float:tz);
Random::PointOnCircularSector(Float:x,Float:y,Float:rz,Float:radius,Float:view_angle,&Float:tx,&Float:ty);
Random::PointOnSphericalSector(Float:x,Float:y,Float:z,Float:rx,Float:rz,Float:radius,Float:vrx,Float:vrz,&Float:tx,&Float:ty,&Float:tz);
Random::PointOnCone3D(Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:radius_a,Float:radius_b,&Float:tx,&Float:ty,&Float:tz);
Random::PointOnCube3D(Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,Float:size_x,Float:size_y,Float:size_z,&Float:tx,&Float:ty,&Float:tz);
Random::PointOnEllipse(Float:cx,Float:cy,Float:size_x,Float:size_y,&Float:tx,&Float:ty);
Random::PointOnEllipticalCyl2D(Float:cx,Float:cy,Float:minz,Float:maxz,Float:size_x,Float:size_y,&Float:tx,&Float:ty,&Float:tz);
Random::PointOnClock(Float:x,Float:y,Float:radius,&Float:tx,&Float:ty,&Float:trz,Float:rz=INVALID_ROTATION);

Universal Functions:
Item::GetInvalidID(Item3D_Type:item_type);
Item::GetPos(elementid,Item3D_Type:element_type,&Float:x,&Float:y,&Float:z);
Item::GetVirtualWorld(elementid,Item3D_Type:element_type);
Item::GetInterior(elementid,Item3D_Type:element_type);
Item::GetRotationQuat(elementid,Item3D_Type:element_type,&Float:qw,&Float:qx,&Float:qy,&Float:qz);
Item::GetUpVector(elementid,Item3D_Type:element_type,&Float:vx,&Float:vy,&Float:vz);
Item::GetUpPos(elementid,Item3D_Type:element_type,Float:radius,&Float:x,&Float:y,&Float:z,bool:reverse=false);
Item::GetDistance(elementid,Item3D_Type:element_type,targetid,Item3D_Type:target_type);
Item::GetDistanceFromPoint(elementid,Item3D_Type:element_type,Float:x,Float:y,Float:z);
Item::GetToPointVector(elementid,Item3D_Type:element_type,Float:tx,Float:ty,Float:tz,&Float:vx,&Float:vy,&Float:vz);
Item::GetRotatedVector(elementid,Item3D_Type:element_type,Float:tx,Float:ty,Float:tz,&Float:vx,&Float:vy,&Float:vz,bool:return_vector=true,Float:rx=0.0,Float:ry=0.0,Float:rz=0.0);
Item::GetOrientationPos(elementid,Item3D_Type:element_type,element_orientation:orientation,Float:distance,&Float:tx,&Float:ty,&Float:tz);
Item::OnPlayerScreen(playerid,targetid,Item3D_Type:target_type=item_player,element_orientation:orientation=o_front,Float:rx=INVALID_ROTATION,Float:rz=INVALID_ROTATION,Float:vrx=VERTICAL_CAMERA_RADIUS,Float:vrz=HORIZONTAL_CAMERA_RADIUS,bool:testVW=true,ignore_vehicle = INVALID_VEHICLE_ID,ignore_player = INVALID_PLAYER_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_OBJECT);
Item::OnFakeScreen(Float:x,Float:y,Float:z,targetid,Item3D_Type:target_type,Float:rx,Float:rz,Float:vrx=VERTICAL_CAMERA_RADIUS,Float:vrz=HORIZONTAL_CAMERA_RADIUS,ignore_vehicle = INVALID_VEHICLE_ID,ignore_player = INVALID_PLAYER_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_OBJECT);
Item::InCircle(elementid,Item3D_Type:element_type,Float:x,Float:y,Float:radius);
Item::InCylinder3D(elementid,Item3D_Type:element_type,Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:radius);
Item::InCylinder2D(elementid,Item3D_Type:element_type,Float:x,Float:y,Float:minz,Float:maxz,Float:radius);
Item::InSphere(elementid,Item3D_Type:element_type,Float:x,Float:y,Float:z,Float:radius);
Item::InRectangle(elementid,Item3D_Type:element_type,Float:minx,Float:miny,Float:maxx,Float:maxy);
Item::InCube(elementid,Item3D_Type:element_type,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz);
Item::InPolygon(elementid,Item3D_Type:element_type,Float:points[],maxpoints=sizeof(points));
Item::InCircularSector(elementid,Item3D_Type:element_type,Float:x,Float:y,Float:rz,Float:radius,Float:view_angle);
Item::InSphericalSector(elementid,Item3D_Type:element_type,Float:x,Float:y,Float:z,Float:rx,Float:rz,Float:radius,Float:vrx,Float:vrz);
Item::InCone2D(elementid,Item3D_Type:element_type,Float:x,Float:y,Float:minz,Float:maxz,Float:radius_a,Float:radius_b);
Item::InCone3D(elementid,Item3D_Type:element_type,Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:radius_a,Float:radius_b);
Item::InCube3D(elementid,Item3D_Type:element_type,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,Float:size_x,Float:size_y,Float:size_z);
Item::InEllipse(elementid,Item3D_Type:element_type,Float:cx,Float:cy,Float:size_x,Float:size_y);
Item::InEllipticalCylinder2D(elementid,Item3D_Type:element_type,Float:cx,Float:cy,Float:minz,Float:maxz,Float:size_x,Float:size_y);
Item::InRangeOfPoint(Float:x,Float:y,Float:z,Float:range,targetid,Item3D_Type:target_type=item_player,ignore_vehicle = INVALID_VEHICLE_ID,ignore_player = INVALID_PLAYER_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_NONE);
Item::IsPlayerInRange(playerid,Float:range,targetid,Item3D_Type:target_type=item_player,ignore_vehicle = INVALID_VEHICLE_ID,ignore_player = INVALID_PLAYER_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_NONE);
Item::InRangeOfItem(elementid,Item3D_Type:element_type,Float:range,targetid,Item3D_Type:target_type=item_player,ignore_vehicle = INVALID_VEHICLE_ID,ignore_player = INVALID_PLAYER_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_NONE);

Universal Functions (ColAndreas):
Item::ToItemIsWall(elementid,Item3D_Type:element_type,targetid,Item3D_Type:target_type);
Item::ToPointIsWall(Float:x,Float:y,Float:z,targetid,Item3D_Type:target_type);
Item::GetCollisionFlags(elementid,Item3D_Type:element_type);
Item::GetOrientationPosCol(elementid,Item3D_Type:element_type,element_orientation:orientation,Float:distance,&Float:tx,&Float:ty,&Float:tz);
Item::IsPointInWaterOrient(elementid,Item3D_Type:element_type,Float:radius,element_orientation:orientation=o_front);
Item::CollisionToPoint(Float:x,Float:y,Float:z,targetid,Item3D_Type:target_type,ignore_vehicle = INVALID_VEHICLE_ID,ignore_player = INVALID_PLAYER_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_ALL);
Item::CollisionToItem(elementid,Item3D_Type:element_type,targetid,Item3D_Type:target_type,ignore_vehicle = INVALID_VEHICLE_ID,ignore_player = INVALID_PLAYER_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_ALL);


Universal Functions (Streamer):
Item::InDynamicArea(elementid,Item3D_Type:element_type,STREAMER_TAG_AREA:areaid);
Item::GetInDynamicArea(STREAMER_TAG_AREA:areaid,Item3D_Type:element_type,element_list[],max_element=sizeof(element_list));

Draw3D Module functions:
Draw3D::Circle3D(Float:x,Float:y,Float:z,Float:radius,Float:points[][3],max_sector = 36,Float:rx = 90.0,Float:ry = 0.0,max_points = sizeof(points));
Draw3D::Cylinder3D(Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:radius,Float:points[][3],max_sector = 36,max_circles = 5,max_points = sizeof(points));
Draw3D::Sphere(Float:x,Float:y,Float:z,Float:radius,Float:points[][3],max_sector = 36,max_circles = 5,max_points = sizeof(points));
Draw3D::Cone3D(Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:radius,Float:points[][3],max_sector = 36,max_circles = 5,max_points = sizeof(points));
Draw3D::Rectangle2D(Float:minx,Float:miny,Float:maxx,Float:maxy,Float:points[][2],points_per_wall = 36,max_points = sizeof(points));
Draw3D::Cube2D(Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz,Float:points[][3],points_per_wall = 36,max_points = sizeof(points));
Draw3D::Polygon2D(const Float:polygon_points[],Float:points[][2],points_per_line = 36,max_polygon_points = sizeof(polygon_points),max_points = sizeof(points));

Catch Module functions:
CatchItems::Circle(Float:x,Float:y,Float:radius,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::Cylinder2D(Float:x,Float:y,Float:minz,Float:maxz,Float:radius,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::Cylinder3D(Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:radius,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::Sphere(Float:x,Float:y,Float:z,Float:radius,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::Rectangle(Float:minx,Float:miny,Float:maxx,Float:maxy,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::StreamCube(Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::Polygon(const Float:points[],Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list),maxpoints = sizeof(points));
CatchItems::CircularSector(Float:x,Float:y,Float:rz,Float:radius,Float:view_angle,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::SphericalSector(Float:x,Float:y,Float:z,Float:rx,Float:rz,Float:radius,Float:vrx,Float:vrz,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::Cone2D(Float:x,Float:y,Float:minz,Float:maxz,Float:radius_a,Float:radius_b,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::Cone3D(Float:xA,Float:yA,Float:zA,Float:xB,Float:yB,Float:zB,Float:pointA_radius,Float:pointB_radius,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::Cube3D(Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,Float:size_x,Float:size_y,Float:size_z,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::Ellipse(Float:cx,Float:cy,Float:size_x,Float:size_y,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::EllipticalCylinder2D(Float:cx,Float:cy,Float:minz,Float:maxz,Float:size_x,Float:size_y,Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::SphericalSectorEx(Float:x,Float:y,Float:z,Float:rx,Float:rz,Float:radius,Float:vrx,Float:vrz,Item3D_Type:element_type,element_list[],ignore_vehicle = INVALID_VEHICLE_ID,ignore_player = INVALID_PLAYER_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_OBJECT,worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::PointInStream(Float:x,Float:y,Float:z,const Stream:AreaData[Stream3D]);
CatchItems::InStream(TRYG3D_ELEMENT_TAG:elementid,Item3D_Type:element_type,const Stream:AreaData[Stream3D],worldid = -1,interiorid = -1);
CatchItems::GetInStream(const Stream:AreaData[Stream3D],Item3D_Type:element_type,element_list[],worldid = -1,interiorid = -1,max_element=sizeof(element_list));
CatchItems::GetStreamType(Stream:data);
CatchItems::IsValidStream(Stream:data);

ScreenToWorld Functions:
ScreenToWorld(playerid,Float:screenX,Float:screenY,&Float:vX,&Float:vY,&Float:vZ);
WorldToScreen(playerid,Float:x,Float:y,Float:z,&Float:screenX,&Float:screenY);
ScreenToWorldCol(playerid,Float:distance,Float:screenX,Float:screenY,&Float:vX,&Float:vY,&Float:vZ);
Tryg3D::NormCrossProduct(&Float:x,&Float:y,&Float:z,Float:v1x,Float:v1y,Float:v1z,Float:v2x,Float:v2y,Float:v2z);

Nero_3D Rotations Functions:
Tryg3D::GetRotationMatrixEuler(Float:matrix[][],Float:rx,Float:ry,Float:rz);
Tryg3D::GetRotationMatrixEulerEx(Float:matrix[][],Float:rx,Float:ry,Float:rz,T3D:eulermode:mode=T3D:euler_default);
Tryg3D::MatrixRotate(Float:matrix[][],Float:oX,Float:oY,Float:oZ,&Float:x,&Float:y,&Float:z);
Tryg3D::QuatRotate(Float:qw,Float:qx,Float:qy,Float:qz,Float:oX,Float:oY,Float:oZ,&Float:tx,&Float:ty,&Float:tz);
Tryg3D::GetQuatFromEuler(Float:rx,Float:ry,Float:rz,&Float:qw,&Float:qx,&Float:qy,&Float:qz,T3D:eulermode:mode=T3D:euler_default);
Tryg3D::EulerRotate(Float:rX,Float:rY,Float:rZ,Float:oX,Float:oY,Float:oZ,&Float:tx,&Float:ty,&Float:tz);
Tryg3D::EulerRotateEx(Float:rX,Float:rY,Float:rZ,Float:oX,Float:oY,Float:oZ,&Float:tx,&Float:ty,&Float:tz,T3D:eulermode:mode=T3D:euler_default);

VehiclePartPosition Functions:
GetVehiclePartPos(vehicleid,partid,&Float:tx,&Float:ty,&Float:tz,Float:offset_x=0.0,Float:offset_y=0.0,Float:offset_z=0.0);
GetDynamicVehiclePartPos(vehicleid,partid,&Float:tx,&Float:ty,&Float:tz,Float:offset_x=0.0,Float:offset_y=0.0,Float:offset_z=0.0);

VehicleCollision Functions:
IsVehicleCollisionEnabled();
Tryg3D::InitVehicleCollision(); //OnGameModeInit / OnFilterScriptInit
Tryg3D::ExitVehicleCollision();
Tryg3D::SyncVehicleCollision(vehicleid); //EVF -> OnVehicleCreated
IsToggledVehicleCollision(vehicleid);
ToggleVehicleCollision(vehicleid,bool:toggle);

PlayerCollision Functions:
IsPlayerCollisionEnabled();
Tryg3D::InitPlayerCollision(); //OnGameModeInit / OnFilterScriptInit
Tryg3D::ExitPlayerCollision();
Tryg3D::SyncPlayerCollision(playerid); //auto called after player spawn
IsToggledPlayerCollision(playerid);
TogglePlayerCollision(playerid,bool:toggle);

ActorCollision Functions:
IsActorCollisionEnabled();
Tryg3D::InitActorCollision(); //OnGameModeInit / OnFilterScriptInit
Tryg3D::ExitActorCollision();
Tryg3D::SyncActorCollision(actorid); //After create/change actor position
IsToggledActorCollision(actorid);
ToggleActorCollision(actorid,bool:toggle);

Extended Functions:
randomex(min,max);
Tryg3D::GetErrorCount();
Tryg3D::ResetErrorCount();
Tryg3D::SetStreamDistance(Float:streamdistance); //default 300.0
Tryg3D::GetStreamDistance();
Tryg3D::GetActiveCount();
Tryg3D::GetVersion(value);
Tryg3D::KeyPressed(key);
Tryg3D::KeyReleased(key);
Tryg3D::KeyHolding(key);
Tryg3D::SecToTimeDay(second);      //Use: %d:%02d:%02d:%02d
Tryg3D::MSToTimeDay(millisecond);  //Use: %d:%02d:%02d:%02d
Tryg3D::SecToTime(second);         //Use: %02d:%02d:%02d
Tryg3D::MSToTime(millisecond);     //Use: %02d:%02d:%02d
Tryg3D::SecToTimeMini(second);     //Use: %02d:%02d
Tryg3D::MSToTimeMini(millisecond); //Use: %02d:%02d

Animation Functions:
Animation::IsPlayerSkydiving(playerid);
Animation::IsPlayerUsingParachute(playerid);
Animation::IsPlayerAiming(playerid);
Animation::IsPlayerStay(playerid);
Animation::IsPlayerRunning(playerid);
Animation::IsPlayerSwim(playerid);
Animation::IsPlayerJump(playerid);
Animation::IsPlayerParaFall(playerid);
Animation::IsPlayerParaGlide(playerid);
Animation::IsPlayerFall(playerid);

Streamer Functions:
SetPlayerAbsolutePosition(playerid,Float:x,Float:y,Float:z,Float:angle,worldid=-1,interiorid=-1,compensatedtime=-1,freezeplayer=1);
SetPlayerAbsolutePositionVeh(playerid,Float:x,Float:y,Float:z,Float:angle,worldid=-1,interiorid=-1,compensatedtime=-1,freezeplayer=1);
IsDynamicActorInRangeOfPoint(actorid,Float:range,Float:x,Float:y,Float:z);
IsVehicleFullyInDynamicArea(vehicleid,areaid);
Random::PointInDynamicArea(STREAMER_TAG_AREA:areaid,&Float:tx,&Float:ty,&Float:tz);
IPL_CreateDynamicObject(modelid,Float:x,Float:y,Float:z,Float:qx,Float:qy,Float:qz,Float:qw,worldid=-1,interiorid=-1,playerid=-1,Float:streamdistance=STREAMER_OBJECT_SD,Float:drawdistance=STREAMER_OBJECT_DD,STREAMER_TAG_AREA:areaid=STREAMER_TAG_AREA:-1,priority=0);

ColAndreas Functions:
MovePointCol(Float:StartX,Float:StartY,Float:StartZ,Float:EndX,Float:EndY,Float:EndZ,&Float:x,&Float:y,&Float:z);
MovePointColCutLine(Float:sX,Float:sY,Float:sZ,Float:eX,Float:eY,Float:eZ,&Float:x,&Float:y,&Float:z,Float:cut_size=0.0);
MovePointColCutLineEx(Float:sX,Float:sY,Float:sZ,Float:eX,Float:eY,Float:eZ,&Float:x,&Float:y,&Float:z,Float:cut_size=0.0);
GetPointInFront3DCol(Float:x,Float:y,Float:z,Float:rx,Float:rz,Float:radius,&Float:tx,&Float:ty,&Float:tz);
GetPointInFront3DColEx(Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,Float:radius,&Float:tx,&Float:ty,&Float:tz);
Float:GetPointInFrontOfPlayerCol(playerid,&Float:tx,&Float:ty,Float:radius);
Float:GetPointInFrontOfCamera2DCol(playerid,&Float:tx,&Float:ty,Float:radius);
GetPointInFrontOfCamera3DCol(playerid,&Float:tx,&Float:ty,&Float:tz,Float:radius,&Float:rx=0.0,&Float:rz=0.0);
Float:GetPointInFrontOfVehicle2DCol(vehicleid,&Float:tx,&Float:ty,Float:radius);
GetPointInFrontOfVehicle3DCol(vehicleid,&Float:tx,&Float:ty,&Float:tz,Float:radius,&Float:rx=0.0,&Float:rz=0.0);
GetGroundRotation(Float:x,Float:y,Float:size,&Float:rx,&Float:ry);
GetPointCollisionFlags(Float:x,Float:y,Float:z,interiorid=0);
IsCollisionFlag(value,flag);
UndergroundFindZ(Float:x,Float:y,&Float:z);
InteriorFindZ(Float:px,Float:py,Float:pz,Float:size=2.0,&Float:z=0.0);
IsPointInWater(Float:x,Float:y,Float:z=0.0);
IsPointInUnderwater(Float:x,Float:y,Float:z);
IsPointInUnderground(Float:x,Float:y,Float:z);
IsPointInAir(Float:x,Float:y,Float:z,bool:interior=false,Float:max_distance=2.2);
IsPointInGround(Float:x,Float:y,Float:z,bool:interior=false,Float:max_distance=2.2);
IsBetweenPlayersIsWall(playerid,targetid);
IsBetweenPlayerToPointIsWall(playerid,Float:x,Float:y,Float:z);
GetPointInWallForPoint(Float:x,Float:y,Float:z,Float:radius,&Float:tx,&Float:ty,&Float:tz,Float:sector=90.0);
SetPlayerCameraDirectionLookAt(playerid,Float:x,Float:y,Float:z,Float:distance = 5.0,Float:rx=20.0,Float:sector=90.0);
GetWallRotation(Float:sx,Float:sy,Float:sz,Float:ex,Float:ey,Float:ez,&Float:rx,&Float:rz,&Float:px=0.0,&Float:py=0.0,&Float:pz=0.0,Float:size=1.0,Float:cut_size=0.0);
ColAndreas::FindGroundZ(Float:x,Float:y,Float:z,&Float:gZ);
Tryg3D::CollisionCheck(Float:StartX,Float:StartY,Float:StartZ,Float:EndX,Float:EndY,Float:EndZ,&Float:x,&Float:y,&Float:z,&Item3D_Type:item_type=Item3D_Type:0,&element_id=0,Float:cut_size=0.0,ignore_vehicle = INVALID_VEHICLE_ID,ignore_player = INVALID_PLAYER_ID,ignore_actor = INVALID_ACTOR_ID,collision_flags = TRYG3D_COLLISION_FLAG_ALL);

ColAndreas Extended Functions:
Tryg3D::IsColAndreasInit();
Tryg3D::SafeColAndreasInit();

ColAndreas Callbacks:
OnColAndreasRemoveBuilding();

Grenade Detection Callbacks (ColAndreas):
OnPlayerDroppingGrenade(playerid,weaponid,Float:x,Float:y,Float:z);

YSF Functions:
Float:GetPlayerHydraReactorRX(playerid);
IsPlayerHydraReactorBoost(playerid);
GetPlayerRotation(playerid,&Float:rx,&Float:ry,&Float:rz);
CountTextDraw();
CountPlayerTextDraw(playerid);
CountVisibleTextDraw(playerid);
CountVisiblePlayerTextDraw(playerid);
CountGangZone();
CountVisibleGangZone(playerid);
CountPlayerGangZone(playerid);
CountVisiblePlayerGangZone(playerid);
IsVehicleOnSpawn(vehicleid,Float:check_radius=1.0);
IsPlayerOnSpawn(playerid,Float:check_radius=1.0);
Random::PointInGangZone(zoneid,&Float:tx,&Float:ty);
Random::PointInPlayerGangZone(playerid,zoneid,&Float:tx,&Float:ty);

FCNPC Functions:
FCNPC::GetPointInFront(npcid,&Float:tx,&Float:ty,Float:radius);
FCNPC::InRangeOfPoint(npcid,Float:range,Float:x,Float:y,Float:z);
FCNPC::GetTargetAngle(npcid,Float:x,Float:y,&Float:rz=0.0);
FCNPC::SetTargetAngle(npcid,Float:x,Float:y,&Float:rz=0.0);
FCNPC::SetVehicleRotation(npcid,Float:rx,Float:ry,Float:rz);
FCNPC::SetVehicleTargetRotation(npcid,Float:tx,Float:ty,Float:tz,Float:ry=0.0);
FCNPC::GoToAir(npcid,Float:x,Float:y,Float:z,type=FCNPC_MOVE_TYPE_AUTO,Float:speed=FCNPC_MOVE_SPEED_AUTO,Float:min_distance=0.0,stopdelay=250);

FCNPC Functions (ColAndreas):
FCNPC::GetPointInFrontCol(npcid,&Float:tx,&Float:ty,Float:radius);
FCNPC::GoToCol(npcid,Float:x,Float:y,Float:z,type=FCNPC_MOVE_TYPE_AUTO,Float:speed=FCNPC_MOVE_SPEED_AUTO,mode = FCNPC_MOVE_MODE_AUTO,Float:cut_size=0.0,bool:set_angle=true,Float:min_distance=0.0,stopdelay=250);
FCNPC::GoToPlayerCol(npcid,playerid,type=FCNPC_MOVE_TYPE_AUTO,Float:speed=FCNPC_MOVE_SPEED_AUTO,mode = FCNPC_MOVE_MODE_AUTO,Float:cut_size=0.0,bool:set_angle=true,Float:min_distance=0.0,stopdelay=250);
FCNPC::GoToPlayerOnGroundCol(npcid,playerid,type=FCNPC_MOVE_TYPE_AUTO,Float:speed=FCNPC_MOVE_SPEED_AUTO,mode = FCNPC_MOVE_MODE_AUTO,Float:cut_size=1.0,Float:climbing=2.0,bool:set_angle=true,Float:min_distance=0.0,stopdelay=250);
FCNPC::GoToPlayerOnGroundColVeh(npcid,playerid,type=FCNPC_MOVE_TYPE_AUTO,Float:speed=FCNPC_MOVE_SPEED_AUTO,mode = FCNPC_MOVE_MODE_AUTO,Float:cut_size=1.0,Float:climbing=2.0,bool:set_angle=true,Float:min_distance=0.0,stopdelay=250);
FCNPC::GoToAirCol(npcid,Float:x,Float:y,Float:z,type=FCNPC_MOVE_TYPE_AUTO,Float:speed=FCNPC_MOVE_SPEED_AUTO,Float:cut_size=0.0,Float:min_distance=0.0,stopdelay=250);
FCNPC::RandomMoveInDynamicArea(npcid,STREAMER_TAG_AREA:areaid,Float:climbing=2.0,type=FCNPC_MOVE_TYPE_AUTO,Float:speed=FCNPC_MOVE_SPEED_AUTO,mode = FCNPC_MOVE_MODE_AUTO,bool:set_angle=true,Float:min_distance=0.0,stopdelay=250);
FCNPC::SetAbsolutePosition(npcid,Float:x,Float:y,Float:z,Float:angle,worldid=-1,interiorid=-1,compensatedtime=-1,freezeplayer=1);
FCNPC::SetFloorPos(npcid);

VehicleStreamer Functions:
GetDynamicVehicleFlags(vehicleid);
Float:GetDynamicVehicleSpeed(vehicleid);
Float:GetPointInFrontOfDynVeh2D(vehicleid,&Float:tx,&Float:ty,Float:radius);
GetPointInFrontOfDynVeh3D(vehicleid,&Float:tx,&Float:ty,&Float:tz,Float:radius,&Float:rx=0.0,&Float:rz=0.0);
IsDynVehInRangeOfPoint(vehicleid,Float:range,Float:x,Float:y,Float:z);
IsDynVehFullyInDynamicArea(vehicleid,areaid);
Float:GetPointInFrontOfDynVeh2DCol(vehicleid,&Float:tx,&Float:ty,Float:radius);
GetPointInFrontOfDynVeh3DCol(vehicleid,&Float:tx,&Float:ty,&Float:tz,Float:radius,&Float:rx=0.0,&Float:rz=0.0);
IsDynamicVehicleOnSpawn(vehicleid,Float:check_radius=1.0);
GetDynamicVehicleRotation(vehicleid,&Float:rx,&Float:ry,&Float:rz);

Deprecated Functions:
GetDistanceBetweenPoints       -> GetDistanceBetweenPoints3D
GetPlayersDistance             -> Item::GetDistance
GetVehiclesDistance            -> Item::GetDistance
GetObjectsDistance             -> Item::GetDistance
GetActorDistanceFromPoint      -> Item::GetDistanceFromPoint
GetDistanceBetweenPlayers      -> Item::GetDistance
GetDistanceBetweenVehicles     -> Item::GetDistance
GetDistanceBetweenObjects      -> Item::GetDistance
GetPlayerActorDistance         -> Item::GetDistance
GetPlayerVehicleDistance       -> Item::GetDistance
GetPlayerObjectDistance        -> Item::GetDistance
IsPlayerInCircle               -> Item::In...
IsPlayerInSphere               -> Item::In...
IsPlayerInRectangle            -> Item::In...
IsPlayerInCube                 -> Item::In...
IsPlayerInPolygon              -> Item::In...
GetPlayerCollisionFlags        -> Item::GetCollisionFlags
GetVehicleCollisionFlags       -> Item::GetCollisionFlags
IsPointInWaterFrontOfPlayer    -> Item::IsPointInWaterOrient
MovePointColWithVehicle        -> Tryg3D::CollisionCheck
MovePointColWithVehicleCut     -> Tryg3D::CollisionCheck
Item::ToPointIsVeh             -> Item::CollisionToPoint
Item::ToItemIsVeh              -> Item::CollisionToItem

Symbols:
FLOAT_PI                       - pi constant value
FLOAT_EULER                    - Euler number
FLOAT_NAN                      - Float NaN
FLOAT_DEFECT                   - Float defect (Arc Test)
FLOAT_INFINITY                 - Float Infinity
VBTP                           - Value Bigger Than Possible
VLTP                           - Value Lower Than Possible

Definitions:                  
VERTICAL_CAMERA_RADIUS         - (modifiable)
HORIZONTAL_CAMERA_RADIUS       - (modifiable)
INVALID_ROTATION               - (modifiable)
MAX_POLYGON_POINTS             - (modifiable)
VEHICLE_SPEED_MULTIPLIER       - (modifiable)
PLAYER_SPEED_MULTIPLIER        - (modifiable)
INVALID_MOVE_TIME              - (modifiable)
INVALID_MOVE_SPEED             - (modifiable)
INVALID_VIRTUAL_WORLD          - (modifiable)
CHARACTER_GROUND_Z_DIFF        - (modifiable)
TRYG3D_MAX_AREA_CHECK          - Define area check limit when using Vehicle/Player/Actor collision system (modifiable)
TRYG3D_RANDOM_MAX_ANGLE
WEAPON_DYNAMIC_EXPLOSION_DMG   - deatch reason by using Cast3D::ExplosionDMG
WEAPON_DYNAMIC_EXPLOSION_RANGE - deatch reason by using Cast3D::ExplosionRangeDMG

Position Flags:
POSITION_FLAG_WORLD
POSITION_FLAG_INTERIOR
POSITION_FLAG_AIR
POSITION_FLAG_GROUND
POSITION_FLAG_WATER
POSITION_FLAG_UNDERWATER
POSITION_FLAG_UNDERGROUND

Tryg3D::CollisionCheck Flags:
TRYG3D_COLLISION_FLAG_NONE
TRYG3D_COLLISION_FLAG_OBJECT
TRYG3D_COLLISION_FLAG_VEHICLE
TRYG3D_COLLISION_FLAG_PLAYER
TRYG3D_COLLISION_FLAG_ACTOR
TRYG3D_COLLISION_FLAG_ALL

Vehicle Flags:
VF_STREET        VF_AIRBORNE      VF_NATATORIAL    VF_MILITARY      VF_TRAIN         VF_RC            VF_CARRIAGE
VF_AIRPLANE      VF_HELICOPTER    VF_BIKES         VF_TRAILER       VF_TOWABLE       VF_POLICE

Vehicle Parts:
VEHICLE_PART_RFTIRE         - Right Front tire
VEHICLE_PART_LFTIRE         - Left Front tire
VEHICLE_PART_RRTIRE         - Right Rear tire
VEHICLE_PART_LRTIRE         - Left Rear tire
VEHICLE_PART_HOOD           - In Front
VEHICLE_PART_TRUNK          - Behind
VEHICLE_PART_ROOF           - Roof
VEHICLE_PART_CHASSIS        - Chassis
VEHICLE_PART_PETROLCAP      - Petrolcap

enum 'element_orientation'
# o_left                    - Orientation Left
# o_right                   - Orientation Right
# o_up                      - Orientation Up
# o_down                    - Orientation Down
# o_front                   - Orientation Front
# o_back                    - Orientation Back
# o_front_left              - Orientation Front left (diagonal)
# o_front_right             - Orientation Front right (diagonal)
# o_back_left               - Orientation Back left (diagonal)
# o_back_right              - Orientation Back right (diagonal)

enum 'Item3D_Type'
# item_player
# item_npc
# item_actor
# item_object
# item_vehicle
# item_dynamic_object
# item_dynamic_pickup
# item_dynamic_cp
# item_dynamic_racecp
# item_dynamic_mapicon
# item_dynamic_3dtext
# item_dynamic_actor
# item_dynamic_vehicle
# item_fcnpc

enum 'StreamType'
# s_invalid
# s_circle
# s_cylinder2d
# s_cylinder3d
# s_sphere
# s_rectangle
# s_cube2d
# s_cube3d
# s_polygon
# s_circularsector
# s_sphericalsector
# s_cone2d
# s_cone3d
# s_ellipse
# s_ellipticalcyl2d
# a_sphericalsectorex

enum 'Vectors3D'
# Float: T3D:X             - Position X
# Float: T3D:Y             - Position Y
# Float: T3D:Z             - Position Z
# Float: T3D:A             - Angle

enum 'Float3D'
# Float: T3D:X             - Position X
# Float: T3D:Y             - Position Y
# Float: T3D:Z             - Position Z
# Float: T3D:rX            - Rotation X
# Float: T3D:rY            - Rotation Y
# Float: T3D:rZ            - Rotation Z
# Float: T3D:tX            - Target Position X
# Float: T3D:tY            - Target Position Y
# Float: T3D:tZ            - Target Position Z
#        T3D:VW            - Virtual World ID
#        T3D:INT           - Interior ID
# Float: T3D:SPEED         - Speed

enum 'LongFloat3D'
# Float: T3D:X             - Position X
# Float: T3D:Y             - Position Y
# Float: T3D:Z             - Position Z
# Float: T3D:rX            - Rotation X
# Float: T3D:rY            - Rotation Y
# Float: T3D:rZ            - Rotation Z
# Float: T3D:tX            - Target Position X
# Float: T3D:tY            - Target Position Y
# Float: T3D:tZ            - Target Position Z
# Float: T3D:trX           - Target Rotation X
# Float: T3D:trY           - Target Rotation Y
# Float: T3D:trZ           - Target Rotation Z
# Float: T3D:VecX          - Vector Position X
# Float: T3D:VecY          - Vector Position Y
# Float: T3D:VecZ          - Vector Position Z
#        T3D:VW            - Virtual World ID
#        T3D:INT           - Interior ID
# Float: T3D:SPEED         - Speed

enum 'OrientationCube3D'
# o_left_back_down
# o_right_back_down
# o_right_front_down
# o_left_front_down
# o_left_back_up
# o_right_back_up
# o_right_front_up
# o_left_front_up

enum 'T3D:eulermode'
# T3D:euler_xzx - Proper / Classic Euler angles
# T3D:euler_xyx - Proper / Classic Euler angles
# T3D:euler_yxy - Proper / Classic Euler angles
# T3D:euler_yzy - Proper / Classic Euler angles
# T3D:euler_zyz - Proper / Classic Euler angles
# T3D:euler_zxz - Proper / Classic Euler angles
# T3D:euler_xzy - Tait-Bryan angles
# T3D:euler_xyz - Tait-Bryan angles
# T3D:euler_yxz - Tait-Bryan angles
# T3D:euler_yzx - Tait-Bryan angles
# T3D:euler_zyx - pitch roll yaw
# T3D:euler_zxy - sa-mp

Download:
3DTryg.inc

More functions available with plugins:
ColAndreas (Recommended 1GB RAM for server by using this plugin)
YSF
Streamer
FCNPC
VehicleStreamer

Compatibility includes:
rotation.inc by Nero_3D
i_quat.inc by IllidanS4
YSI Libraries (with #define ENABLE_3D_TRYG_YSI_SUPPORT if you got error)

Supported elements:
1. Character Elements:
- Player's
- NPC's
- Actor's
- FCNPC's

2. Static Elements:
- Object's
- Vehicle's
- GangZone's

3. Dynamic Elements:
- DynamicObject's
- DynamicPickup's
- DynamicCP's
- DynamicRaceCP's
- DynamicMapIcon's
- Dynamic3DText's
- DynamicActor's
- DynamicVehicles's

4. Areas 2D / 3D:
a) Geometric Figures:
- Circle
- Rectangle
- Polygon
- CircularSector
- Ellipse
- Cone2D

b) Chunk:
- Cylinder2D
- Sphere
- Cube
- EllipticalCylinder2D

c) Rotated Chunk:
- Cylinder3D
- SphericalSector
- Cube3D
- Cone3D
« Next Oldest | Next Newest »



Messages In This Thread
3DTryg - by AbyssMorgan - 2021-04-18, 07:24 AM
RE: 3DTryg - by Pinch - 2021-04-18, 02:48 PM
RE: 3DTryg - by AbyssMorgan - 2021-05-01, 01:24 PM
RE: 3DTryg - by AbyssMorgan - 2021-05-05, 07:52 PM
RE: 3DTryg - by Radical - 2021-05-25, 11:18 PM
RE: 3DTryg - by AbyssMorgan - 2021-05-26, 03:28 PM
RE: 3DTryg - by Radical - 2021-05-30, 09:28 PM
RE: 3DTryg - by AbyssMorgan - 2021-06-03, 06:14 AM
RE: 3DTryg - by AbyssMorgan - 2021-09-17, 08:22 PM
RE: 3DTryg - by AbyssMorgan - 2021-09-19, 04:10 PM
RE: 3DTryg - by AbyssMorgan - 2021-10-31, 10:41 AM
RE: 3DTryg - by Salik_Davince - 2022-04-24, 08:05 AM

  • View a Printable Version
  • Subscribe to this thread
Forum Jump:

© Burgershot - Powered by our Community and MyBB Original Theme by Emerald

Linear Mode
Threaded Mode