Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 7,976
» Latest member: daisymiller1561
» Forum threads: 2,414
» Forum posts: 12,335

Full Statistics

Online Users
There are currently 334 online users.
» 1 Member(s) | 329 Guest(s)
Bing, Applebot, Yandex, Google, .::David::.

Latest Threads
Atlanta DeathMatch/Team D...
Forum: Advertisements
Last Post: NixaSha
Yesterday, 04:57 AM
» Replies: 1
» Views: 33
mysql_samp
Forum: Plugins
Last Post: NullSablex
Yesterday, 03:33 AM
» Replies: 0
» Views: 30
backtrace
Forum: Questions and Suggestions
Last Post: Lyvex
2026-03-09, 06:32 AM
» Replies: 0
» Views: 34
Open Multiplayer ✅ loggin...
Forum: Pawn Scripting
Last Post: walid_dz
2026-03-05, 04:19 AM
» Replies: 0
» Views: 104
Argonath RPG SA:MP Reviva...
Forum: Advertisements
Last Post: Melon_Sam
2026-03-03, 06:37 PM
» Replies: 1
» Views: 152
RevolutionX Since (2008) ...
Forum: Advertisements
Last Post: DerekZ905
2026-03-02, 02:46 PM
» Replies: 0
» Views: 91
Consulta warning mismatch...
Forum: Programaci?n
Last Post: carlosmcgrimes
2026-03-01, 04:26 PM
» Replies: 1
» Views: 156
MAP Hot Loader / Map Mana...
Forum: Libraries
Last Post: selmir.beha
2026-02-28, 05:13 AM
» Replies: 0
» Views: 87
[Request] Linko Gaming Ro...
Forum: General Discussions
Last Post: lyly19
2026-02-25, 04:30 AM
» Replies: 1
» Views: 764
IPv6 support
Forum: Questions and Suggestions
Last Post: Knogle
2026-02-22, 01:16 PM
» Replies: 2
» Views: 253

 
  3DTryg
Posted by: AbyssMorgan - 2021-04-18, 07:24 AM - Forum: Libraries - Replies (11)

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


  Help! How hidden the skin select button when the player will spawn ?
Posted by: PutuSuhartawan - 2021-04-18, 04:52 AM - Forum: Pawn Scripting - Replies (1)

i have problem with this function



Code:
public OnPlayerRequestSpawn(playerid)

{

if(IsPlayerNPC(playerid)) return 1;

? SEM(playerid, "OnPlayerRequestSpawn");



if(!IsPlayerNPC(playerid))

{

? ? TogglePlayerSpectating(playerid, 1);

//return cmd_spawn(playerid);

SendClientMessage(playerid, -1, "You are detect was not an NPC sir");

if(!PLAYER_STATE_SPAWNED)

{

SpawnPlayer(playerid);

return cmd_rumahsakit(playerid);

}

return cmd_rumahsakit(playerid);

}



}







Code:
public OnPlayerRequestClass(playerid, classid)

{

? StatusBaruLogin[playerid] = 1;

if(IsPlayerNPC(playerid)) return 1;

? TogglePlayerSpectating(playerid, 1);

? SpawnPlayer(playerid);

? /*

? SetSpawnInfo(0, 0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);

? SetPlayerCameraPos(playerid, Float:1494.7446, Float:-2293.4832, Float:18.2991);

? SetPlayerCameraLookAt(playerid, Float:1494.7446, Float:-3763.4832, Float:12.29911557, CAMERA_MOVE);

? */

?

?

? cmd_rumahsakit(playerid);

? SEM(playerid, "OnPlayerRequestClass");

if(!PLAYER_STATE_SPAWNED)

{



? ?

SpawnPlayer(playerid);

return 1;

}







How to remove select player class or skin system on player will spawn?


  [SOLVED] How users can fishing anywhere as long as there is water everywhere.
Posted by: PutuSuhartawan - 2021-04-18, 04:43 AM - Forum: Pawn Scripting - Replies (11)

SOLUTION with?Radical?Pinch?AbyssMorgan?arber:

?

Code:
#include <progress2>

[/font][/size][/color]





#include <foreach>// color with string







#include <3DTryg>



#include <colandreas>







// the variabel meaning of water object







#define? ? ? ? FISH_THRESHOLD? ? ? ? ? ? 3.0



#define? ? ? ? WATER_CHECK_RADIUS? ? ? ? 15.0











IsPlayerNearWater(playerid)







{







? ? new







Float:x,







Float:y,







Float:z,







Float:cx,







Float:cy,







Float:cz,







Float:angle;















? ? GetPlayerPos(playerid, x, y, z);















? ? // Will not work near the dam







? ? if(z > 0.0 && z < FISH_THRESHOLD)







? ? {







? ? ? ? for(new i = 0; i < 4; i)







? ? ? ? {







? ? ? ? ? ? cx = x  (WATER_CHECK_RADIUS * floatsin(-angle, degrees));







? ? ? ? ? ? cy = y  (WATER_CHECK_RADIUS * floatcos(-angle, degrees));







? ? ? ? ? ? angle = 90.0;















? ? ? ? ? ? CA_FindZ_For2DCoord(cx, cy, cz);















? ? ? ? ? ? // Doesn't work under bridges







? ? ? ? ? ? if(cz == 0.0) return 1;







? ? ? ? }







? ? }







? ? return 0;



}











CMD:fish(playerid, params[])







{







if (IsPlayerNearWater(playerid))







//if(IsPlayerInRangeOfPoint(playerid, 100.0, 1062.4270,-2567.9729,-0.5079)) // lokasi mancing







{







? ? ? ? if(WormAttached[playerid] < 1) return SendClientMessage(playerid, COLOR_LIGHTRED, ""COL_LIGHTBLUE"FISH: "COL_WHITE"Sir sorry you need to have a bait worm attached to the fishing rod to fish with"COL_YELLOW"'/attachworm'");







? ? ? ? if(FishingEquipped[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to have your fishing rod equipped.");







? ? ? ? if(Fishing[playerid] == true) return SendClientMessage(playerid, COLOR_LIGHTRED, "You are already fishing.");







? ? ? ? if(pInfo[playerid][pFishes] > 5)







? ? {







? ? SendClientMessage(playerid, COLOR_LGREEN, ""COL_LIGHTBLUE"FISH: "COL_WHITE"Please the fish the on sale first with "COL_YELLOW"'/sellfish'");







? ? cmd_fishingrod(playerid);







? ? ApplyAnimation(playerid, "PED", "idle_taxi", 4.0, 0, 1, 1, 1, -1, 1);







? ? return 1;







? ? }







? new string[140];







format(string, sizeof(string), "* %s begins to fish with his fishing rod.", GetRPName(playerid));







LocalMessage(ACTION_DISTANCE, playerid, ACTION_COLOR, string);







? fish[playerid] = 2; //change it with the timer time























? new Float:BBCoord[4];







? ? GetPlayerPos(playerid, BBCoord[0], BBCoord[1], BBCoord[2]);







? ? GetPlayerFacingAngle(playerid, BBCoord[3]);























EfekPancingan[playerid] = SpawnObject_InfrontOfPlayer(playerid, 18717);







//CreateDynamicObject(18717, BBCoord[0], BBCoord[1], BBCoord[2]-2.4, 0.0, 0.0, 0.0, 0,? 0);























? ? TimerFish[playerid] = SetTimerEx("timerFish", 1000, 1, "i", playerid);







? ? TogglePlayerControllable(playerid, 0);







? ? WormAttached[playerid] = 0;







? ? ApplyAnimation(playerid, "ped", "ARRESTgun", 4.0, 0, 1, 1, 1, -1, 1);







? ? Fishing[playerid] = true;







?







?







}







else return SendClientMessage(playerid, COLOR_RED, "You can't sir fishing here with out river .");







? return 1;



}











THE PROBLEM:



Code:
i just know IsPlayerInRangeOfPoint,







if (IsPlayerInRangeOfPoint(playerid, 7.0, 2695.6880, -1704.6300, 11.8438))



? ? {



? ? ? ? SendClientMessage(playerid,0xFFFFFFFF,"Need around water area to fishing");



? ? }

[color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif][color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif]
[/font][/size][/color]


  hammering animation?
Posted by: Boxi - 2021-04-17, 10:38 PM - Forum: Pawn Scripting - Replies (2)

well, I would like to know the name for the animation of using a hammer, thanks!


  [SOLVED] How to make a textdraw object that looks circle? replace box which is usuall
Posted by: PutuSuhartawan - 2021-04-17, 06:46 AM - Forum: Pawn Scripting - Replies (2)

Solution:

Code:
[color=#333333][size=small][font=Roboto]Create a sprite textdraw.[/font][/size][/color]

[color=#333333][size=small][font=Roboto]Circle:[/font][/size][/color]

[color=#333333][size=small][font=Roboto]LD_BEAT:chit[/font][/size][/color]





List of all sprites:?https://open.mp/docs/scripting/resources...rawsprites



Problem:

I don't know a circle?object that can replace a box in textdraw. I can't even find the big round object in the textdraw


  Getting online players of specific team
Posted by: Turk54721 - 2021-04-17, 06:09 AM - Forum: Pawn Scripting - Replies (2)

Hello, how can I get online players of specific team?


Tongue How unprocessed queries looks like
Posted by: kalEd - 2021-04-17, 06:07 AM - Forum: Pawn Scripting - Replies (4)

How a unprocessed query?should it look like?

What this mean?


  Server economy ideas?
Posted by: Snow - 2021-04-16, 11:06 PM - Forum: General Discussions - Replies (2)

So I am running a freeroam server and I'm pretty much stuck at server economy. There are not much uses of money atm. Right now, money can be used for buying houses, adding objects in the house, attaching objects on the skin and buying weapons. Not to forget a little amount that gets deducted on death. I think its not much for a freeroam server but then again, its freeroam so limiting things such as vehicles to money will be bad for server aswell. So what are your suggestions?


  Sending message to all owner of key (from SQL)
Posted by: Axitz - 2021-04-16, 10:46 PM - Forum: Pawn Scripting - Replies (1)

Hi,



How do I make something like sending message to all key's holder from sql function?



example like :



PHP Code:
mysql_format(sqldatapQuerysizeof pQuery"SELECT doorkey FROM `bizkeys` WHERE bizid = %d;"bizid);

new 
Cache:result mysql_query(sqldatapQuery);



then?



sendclientmsg to all holder of "doorkey" from bizid = %d



or something.


  Getting the size of an array
Posted by: Torque - 2021-04-16, 02:37 PM - Forum: Pawn Scripting - Replies (3)

I have a multi-dimensional array, and I want to get the size of each line.

Code:
new BusRoutes[][] = {
? ? {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
? ? {0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 10}
};


Code:
new const MaxStops[] = sizeof(BusRoutes[]);

Code:
format(sStops, sizeof(sStops), "Stops: 0/%d", MaxStops[vRoute]);

If vRoute = 0, it works fine, but if it equals 1, the function crashes and it doesn't continue running the rest of the function. Something is wrong with MaxStops[vRoute] if vRoute equals anything other than 0.

What am I doing wrong?