Skip to content

Commit 0f4cb04

Browse files
committed
Added FCNPC Functions + ColAndreas auto init
1 parent c71fb25 commit 0f4cb04

File tree

1 file changed

+293
-2
lines changed

1 file changed

+293
-2
lines changed

3DTryg.inc

Lines changed: 293 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Foreach Types:
2929
- GetPlayerPoolSize
3030
3131
Compiler Options:
32+
- TRYG3D_DISABLE_INIT //Use before 3DTryg.inc for disable ColAndreas Auto Init
3233
- TRYG3D_ENABLE_PLAYER //Use before 3DTryg.inc for enable Player Module
3334
- TRYG3D_ENABLE_VEHICLE //Use before 3DTryg.inc for enable Module
3435
- TRYG3D_ENABLE_ACTOR //Use before 3DTryg.inc for enable Module
@@ -173,6 +174,8 @@ Tryg3D::GetArcPoints3D(const Float:x, const Float:y, const Float:z, const Float:
173174
Tryg3D::GetCube3DPoint(const OrientationCube3D:orientation, const Float:x, const Float:y, const Float:z, const Float:rx, const Float:ry, const Float:rz, const Float:size_x, const Float:size_y, const Float:size_z, &Float:tx, &Float:ty, &Float:tz);
174175
175176
# ColAndreas Functions
177+
Tryg3D::IsColAndreasInit();
178+
Tryg3D::SafeColAndreasInit();
176179
Tryg3D::IsCollisionFlag(const value, const flag);
177180
Tryg3D::IsPointInUnderwater(const Float:x, const Float:y, const Float:z);
178181
Tryg3D::FindGroundZ(const Float:x, const Float:y, const Float:z, &Float:gZ);
@@ -201,6 +204,11 @@ Tryg3D::GetGroundRotation(const Float:x, const Float:y, const Float:size, &Float
201204
bool: Tryg3D::IsPointInWaterFrontOfPlayer(const playerid, const Float:radius);
202205
bool: Tryg3D::IsPointInSphericalSectorEx(const Float:px, const Float:py, const Float:pz, const Float:x, const Float:y, const Float:z, const Float:rx, const Float:rz, const Float:radius, const Float:vrx, const Float:vrz, const ignore_vehicle = INVALID_VEHICLE_ID, const ignore_player = INVALID_PLAYER_ID, const ignore_actor = INVALID_ACTOR_ID, const collision_flags = TRYG3D_COLLISION_FLAG_OBJECT);
203206
207+
# ColAndreas Callbacks
208+
OnColAndreasRemoveBuilding();
209+
OnColAndreasInitSuccess();
210+
OnColAndreasInitFail();
211+
204212
# Area Functions
205213
bool: Tryg3D::IsPointInCylinder3D(const Float:px, const Float:py, const Float:pz, const Float:xA, const Float:yA, const Float:zA, const Float:xB, const Float:yB, const Float:zB, const Float:radius);
206214
bool: Tryg3D::IsPointInCube(const Float:px, const Float:py, const Float:pz, const Float:minx, const Float:miny, const Float:minz, const Float:maxx, const Float:maxy, const Float:maxz);
@@ -368,6 +376,24 @@ Tryg3D::SetPlayerAbsolutePositionVeh(const playerid, const Float:x, const Float:
368376
bool: Tryg3D::IsVehicleFullyInArea(const vehicleid, const STREAMER_TAG_AREA:areaid);
369377
Tryg3D::GetPointInDynamicArea(const STREAMER_TAG_AREA:areaid, &Float:tx, &Float:ty, &Float:tz);
370378
379+
# FCNPC Functions
380+
bool: FCNPC::InRangeOfPoint(const npcid, const Float:range, const Float:x, const Float:y, const Float:z);
381+
Float: FCNPC::GetPointInFront(const npcid, &Float:tx, &Float:ty, const Float:radius);
382+
FCNPC::GetTargetAngle(const npcid, const Float:x, const Float:y, &Float:rz);
383+
FCNPC::SetTargetAngle(const npcid, const Float:x, const Float:y, &Float:rz = 0.0);
384+
FCNPC::SetVehicleRotation(const npcid, const Float:rx, const Float:ry, const Float:rz);
385+
bool: FCNPC::SetVehicleTargetRotation(const npcid, const Float:tx, const Float:ty, const Float:tz, const Float:ry = 0.0);
386+
FCNPC::GoToAir(const npcid, const Float:x, const Float:y, const Float:z, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const Float:min_distance = 0.0, const stopdelay = 250);
387+
Float: FCNPC::GetPointInFrontCol(const npcid, &Float:tx, &Float:ty, const Float:radius);
388+
FCNPC::GoToCol(const npcid, const Float:x, const Float:y, const Float:z, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const mode = FCNPC_MOVE_MODE_AUTO, const Float:cut_size = 0.0, const bool:set_angle = true, const Float:min_distance = 0.0, const stopdelay = 250);
389+
FCNPC::GoToPlayerCol(const npcid, const playerid, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const mode = FCNPC_MOVE_MODE_AUTO, const Float:cut_size = 0.0, const bool:set_angle = true, const Float:min_distance = 0.0, const stopdelay = 250);
390+
FCNPC::GoToPlayerOnGroundCol(const npcid, const playerid, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const mode = FCNPC_MOVE_MODE_AUTO, const Float:cut_size = 1.0, const Float:climbing = 2.0, const bool:set_angle = true, const Float:min_distance = 0.0, const stopdelay = 250);
391+
FCNPC::GoToAirCol(const npcid, const Float:x, const Float:y, const Float:z, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const Float:cut_size = 0.0, const Float:min_distance = 0.0, const stopdelay = 250);
392+
FCNPC::SetFloorPos(const npcid);
393+
FCNPC::GoToPlayerOnGroundColVeh(const npcid, const playerid, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const mode = FCNPC_MOVE_MODE_AUTO, const Float:cut_size = 1.0, const Float:climbing = 2.0, const bool:set_angle = true, const Float:min_distance = 0.0, const stopdelay = 250);
394+
FCNPC::RandomMoveInDynamicArea(const npcid, const STREAMER_TAG_AREA:areaid, const Float:climbing = 2.0, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const mode = FCNPC_MOVE_MODE_AUTO, const bool:set_angle = true, const Float:min_distance = 0.0, const stopdelay = 250);
395+
FCNPC::SetAbsolutePosition(const npcid, const Float:x, const Float:y, const Float:z, const Float:angle, const worldid = -1, const interiorid = -1, const compensatedtime = -1, const freezeplayer = 1);
396+
371397
# YSF Functions
372398
Tryg3D::GetPlayerHydraReactorRX(const playerid);
373399
Tryg3D::IsPlayerHydraReactorBoost(const playerid);
@@ -996,7 +1022,7 @@ enum 'StreamType'
9961022
#define TRYG3D_INVALID_MOVE_TIME (-1)
9971023
#define TRYG3D_INVALID_MOVE_SPEED (-1.0)
9981024
#define TRYG3D_INVALID_ORIENTATION (-1)
999-
#define TRYG3D_MAX_MODULES_STRING (400)
1025+
#define TRYG3D_MAX_MODULES_STRING (600)
10001026
#define TRYG3D_RANDOM_MAX_ANGLE (359.999999)
10011027
#define TRYG3D_VBTP (0x7FFFFFFF)
10021028
#define TRYG3D_VLTP (0x80000000)
@@ -3161,6 +3187,37 @@ stock Tryg3D::GetPointOnEllipticalCyl2D(const Float:cx, const Float:cy, const Fl
31613187

31623188
#define T3_IsCollisionFlag(%0,%1) ((%0) & (%1))
31633189
#define T3_IsPointInUnderwater(%1,%2,%3) (Tryg3D::IsPointInWater((%1),(%2),(%3)) && ((%3) < -1.0))
3190+
3191+
forward OnColAndreasRemoveBuilding();
3192+
forward OnColAndreasInitSuccess();
3193+
forward OnColAndreasInitFail();
3194+
3195+
stock Tryg3D::IsColAndreasInit(){
3196+
new Float:mapunit;
3197+
ColAndreas::FindZ_For2DCoord(0.0,0.0,mapunit);
3198+
return !(mapunit <= 0.0);
3199+
}
3200+
3201+
stock Tryg3D::SafeColAndreasInit(){
3202+
//check ColAndreas Init
3203+
new bool:ColAndreasLastStat = false;
3204+
if(!Tryg3D::IsColAndreasInit()){
3205+
CallRemoteFunction("OnColAndreasRemoveBuilding","");
3206+
ColAndreas::Init();
3207+
ColAndreasLastStat = true;
3208+
}
3209+
if(!Tryg3D::IsColAndreasInit()){
3210+
print("[ADM] Error: ColAndreas failed to initiated.");
3211+
print("[ADM] Error: Cannot load /scriptfiles/colandreas/ColAndreas.cadb");
3212+
Tryg3D::UpdateErrorCount();
3213+
CallRemoteFunction("OnColAndreasInitFail","");
3214+
} else {
3215+
if(ColAndreasLastStat){
3216+
CallRemoteFunction("OnColAndreasInitSuccess","");
3217+
print("[ADM] Info: ColAndreas successfully init.");
3218+
}
3219+
}
3220+
}
31643221

31653222
stock Tryg3D::FindGroundZ(const Float:x, const Float:y, const Float:z, &Float:gZ){
31663223
new Float:gX,Float:gY;
@@ -5245,6 +5302,167 @@ stock Tryg3D::GetPointOnEllipticalCyl2D(const Float:cx, const Float:cy, const Fl
52455302

52465303
#endif
52475304

5305+
/********************************
5306+
* FCNPC Functions *
5307+
********************************/
5308+
5309+
#if defined TRYG3D_MOD_FCNPC
5310+
5311+
stock bool: FCNPC::InRangeOfPoint(const npcid, const Float:range, const Float:x, const Float:y, const Float:z){
5312+
new Float:px,Float:py,Float:pz;
5313+
FCNPC::GetPosition(npcid,px,py,pz);
5314+
return Tryg3D::GetDistance3D(x,y,z,px,py,pz) <= range;
5315+
}
5316+
5317+
stock Float: FCNPC::GetPointInFront(const npcid, &Float:tx, &Float:ty, const Float:radius){
5318+
new Float:rz;
5319+
FCNPC::GetPosition(npcid,tx,ty,rz);
5320+
if(IsPlayerInAnyVehicle(npcid)){
5321+
GetVehicleZAngle(FCNPC::GetVehicleID(npcid),rz);
5322+
} else {
5323+
rz = FCNPC::GetAngle(npcid);
5324+
}
5325+
Tryg3D::GetPointInFront2D(tx,ty,rz,radius,tx,ty);
5326+
return rz;
5327+
}
5328+
5329+
stock FCNPC::GetTargetAngle(const npcid, const Float:x, const Float:y, &Float:rz){
5330+
new Float:mx,Float:my;
5331+
FCNPC::GetPosition(npcid,mx,my,rz);
5332+
Tryg3D::GetRotationFor2Point2D(mx,my,x,y,rz);
5333+
}
5334+
5335+
stock FCNPC::SetTargetAngle(const npcid, const Float:x, const Float:y, &Float:rz = 0.0){
5336+
new Float:mx,Float:my;
5337+
FCNPC::GetPosition(npcid,mx,my,rz);
5338+
Tryg3D::GetRotationFor2Point2D(mx,my,x,y,rz);
5339+
FCNPC::SetAngle(npcid,rz);
5340+
}
5341+
5342+
stock FCNPC::SetVehicleRotation(const npcid, const Float:rx, const Float:ry, const Float:rz){
5343+
new Float:qw,Float:qx,Float:qy,Float:qz;
5344+
Tryg3D::EulerToQuat(rx,ry,rz,qw,qx,qy,qz);
5345+
FCNPC::SetQuaternion(npcid,qw,qx,qy,qz);
5346+
}
5347+
5348+
stock bool: FCNPC::SetVehicleTargetRotation(const npcid, const Float:tx, const Float:ty, const Float:tz, const Float:ry = 0.0){
5349+
new Float:x,Float:y,Float:z,Float:rx,Float:rz;
5350+
GetVehiclePos(FCNPC::GetVehicleID(npcid),x,y,z);
5351+
if(Tryg3D::GetRotationFor2Point3D(x,y,z,tx,ty,tz,rx,rz)){
5352+
new Float:qw,Float:qx,Float:qy,Float:qz;
5353+
Tryg3D::EulerToQuat(rx,ry,rz,qw,qx,qy,qz);
5354+
FCNPC::SetQuaternion(npcid,qw,qx,qy,qz);
5355+
return true;
5356+
}
5357+
return false;
5358+
}
5359+
5360+
stock FCNPC::GoToAir(const npcid, const Float:x, const Float:y, const Float:z, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const Float:min_distance = 0.0, const stopdelay = 250){
5361+
FCNPC::SetVehicleTargetRotation(npcid,x,y,z);
5362+
FCNPC::GoTo(npcid,x,y,z,type,speed,FCNPC_MOVE_MODE_NONE,FCNPC_MOVE_PATHFINDING_NONE,0.0,false,min_distance,stopdelay);
5363+
}
5364+
5365+
#if defined TRYG3D_MOD_COLANDREAS
5366+
5367+
stock Float: FCNPC::GetPointInFrontCol(const npcid, &Float:tx, &Float:ty, const Float:radius){
5368+
new Float:rz,Float:z;
5369+
FCNPC::GetPosition(npcid,tx,ty,z);
5370+
if(IsPlayerInAnyVehicle(npcid)){
5371+
GetVehicleZAngle(FCNPC::GetVehicleID(npcid),rz);
5372+
} else {
5373+
rz = FCNPC::GetAngle(npcid);
5374+
}
5375+
Tryg3D::GetPointInFront3DCol(tx,ty,z,0.0,rz,radius,tx,ty,z);
5376+
return rz;
5377+
}
5378+
5379+
stock FCNPC::GoToCol(const npcid, const Float:x, const Float:y, const Float:z, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const mode = FCNPC_MOVE_MODE_AUTO, const Float:cut_size = 0.0, const bool:set_angle = true, const Float:min_distance = 0.0, const stopdelay = 250){
5380+
new Float:px,Float:py,Float:pz,Float:tx,Float:ty,Float:tz;
5381+
FCNPC::GetPosition(npcid,px,py,pz);
5382+
Tryg3D::MovePointColCutLine(px,py,pz,x,y,z,tx,ty,tz,cut_size);
5383+
if(Tryg3D::GetDistance3D(px,py,pz,tx,ty,tz) >= 0.0){
5384+
FCNPC::GoTo(npcid,tx,ty,tz,type,speed,mode,FCNPC_MOVE_PATHFINDING_NONE,0.0,set_angle,min_distance,stopdelay);
5385+
}
5386+
}
5387+
5388+
stock FCNPC::GoToPlayerCol(const npcid, const playerid, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const mode = FCNPC_MOVE_MODE_AUTO, const Float:cut_size = 0.0, const bool:set_angle = true, const Float:min_distance = 0.0, const stopdelay = 250){
5389+
new Float:px,Float:py,Float:pz,Float:x,Float:y,Float:z,Float:tx,Float:ty,Float:tz;
5390+
GetPlayerPos(playerid,x,y,z);
5391+
FCNPC::GetPosition(npcid,px,py,pz);
5392+
Tryg3D::MovePointColCutLine(px,py,pz,x,y,z,tx,ty,tz,cut_size);
5393+
if(Tryg3D::GetDistance3D(px,py,pz,tx,ty,tz) >= 0.0){
5394+
FCNPC::GoTo(npcid,tx,ty,tz,type,speed,mode,FCNPC_MOVE_PATHFINDING_NONE,0.0,set_angle,min_distance,stopdelay);
5395+
}
5396+
}
5397+
5398+
stock FCNPC::GoToPlayerOnGroundCol(const npcid, const playerid, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const mode = FCNPC_MOVE_MODE_AUTO, const Float:cut_size = 1.0, const Float:climbing = 2.0, const bool:set_angle = true, const Float:min_distance = 0.0, const stopdelay = 250){
5399+
new Float:px,Float:py,Float:pz,Float:x,Float:y,Float:z,Float:tx,Float:ty,Float:tz;
5400+
GetPlayerPos(playerid,x,y,z);
5401+
FCNPC::GetPosition(npcid,px,py,pz);
5402+
if(Tryg3D::GetDistance1D(pz,z) > climbing) z = pz;
5403+
Tryg3D::MovePointColCutLine(px,py,pz,x,y,z,tx,ty,tz,cut_size);
5404+
if(Tryg3D::GetDistance3D(px,py,pz,tx,ty,tz) >= 0.0){
5405+
FCNPC::GoTo(npcid,tx,ty,tz,type,speed,mode,FCNPC_MOVE_PATHFINDING_NONE,0.0,set_angle,min_distance,stopdelay);
5406+
}
5407+
}
5408+
5409+
stock FCNPC::GoToAirCol(const npcid, const Float:x, const Float:y, const Float:z, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const Float:cut_size = 0.0, const Float:min_distance = 0.0, const stopdelay = 250){
5410+
new Float:px,Float:py,Float:pz,Float:tx,Float:ty,Float:tz;
5411+
GetVehiclePos(FCNPC::GetVehicleID(npcid),px,py,pz);
5412+
Tryg3D::MovePointColCutLine(px,py,pz,x,y,z,tx,ty,tz,cut_size);
5413+
if(Tryg3D::GetDistance3D(px,py,pz,tx,ty,tz) >= 0.0){
5414+
FCNPC::SetVehicleTargetRotation(npcid,tx,ty,tz);
5415+
FCNPC::GoTo(npcid,tx,ty,tz,type,speed,FCNPC_MOVE_MODE_NONE,FCNPC_MOVE_PATHFINDING_NONE,0.0,false,min_distance,stopdelay);
5416+
}
5417+
}
5418+
5419+
stock FCNPC::SetFloorPos(const npcid){
5420+
new Float:x,Float:y,Float:z, Float:target_z;
5421+
FCNPC::GetPosition(npcid,x,y,z);
5422+
Tryg3D::FindGroundZ(x,y,z,target_z);
5423+
FCNPC::SetPosition(npcid,x,y,target_z+TRYG3D_CHARACTER_GROUND_Z_DIFF);
5424+
}
5425+
5426+
#if defined TRYG3D_MOD_VEHICLECOLLISION
5427+
stock FCNPC::GoToPlayerOnGroundColVeh(const npcid, const playerid, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const mode = FCNPC_MOVE_MODE_AUTO, const Float:cut_size = 1.0, const Float:climbing = 2.0, const bool:set_angle = true, const Float:min_distance = 0.0, const stopdelay = 250){
5428+
new Float:px,Float:py,Float:pz,Float:x,Float:y,Float:z,Float:tx,Float:ty,Float:tz;
5429+
GetPlayerPos(playerid,x,y,z);
5430+
FCNPC::GetPosition(npcid,px,py,pz);
5431+
if(Tryg3D::GetDistance1D(pz,z) > climbing) z = pz;
5432+
if(Tryg3D::MovePointColWithVehicleCut(px,py,pz,x,y,z,tx,ty,tz,cut_size)){
5433+
FCNPC::GoTo(npcid,tx,ty,tz,type,speed,mode,FCNPC_MOVE_PATHFINDING_NONE,0.0,set_angle,min_distance,stopdelay);
5434+
}
5435+
}
5436+
#endif
5437+
5438+
#if defined TRYG3D_MOD_STREAMER
5439+
stock FCNPC::RandomMoveInDynamicArea(const npcid, const STREAMER_TAG_AREA:areaid, const Float:climbing = 2.0, const type = FCNPC_MOVE_TYPE_AUTO, const Float:speed = FCNPC_MOVE_SPEED_AUTO, const mode = FCNPC_MOVE_MODE_AUTO, const bool:set_angle = true, const Float:min_distance = 0.0, const stopdelay = 250){
5440+
if(!FCNPC::IsValid(npcid) || FCNPC::IsDead(npcid)) return 0;
5441+
new Float:x,Float:y,Float:z,Float:tx,Float:ty,Float:tz,Float:T3D:tmp,cnt = 0;
5442+
FCNPC::GetPosition(npcid,x,y,z);
5443+
do {
5444+
if(cnt >= 100) return 0;
5445+
Tryg3D::GetPointInDynamicArea(areaid,tx,ty,tz);
5446+
ColAndreas::FindZ_For2DCoord(tx,ty,tz);
5447+
tz += TRYG3D_CHARACTER_GROUND_Z_DIFF;
5448+
cnt++;
5449+
} while (Tryg3D::IsPointInWater(tx,ty) || ColAndreas::RayCastLine(x,y,z,tx,ty,tz,T3D:tmp,T3D:tmp,T3D:tmp) || Tryg3D::GetDistance1D(tz,z) > climbing || !IsPointInDynamicArea(areaid,tx,ty,tz));
5450+
return FCNPC::GoTo(npcid,tx,ty,tz,type,speed,mode,FCNPC_MOVE_PATHFINDING_NONE,0.0,set_angle,min_distance,stopdelay);
5451+
}
5452+
#endif
5453+
#endif
5454+
5455+
#if defined TRYG3D_MOD_STREAMER
5456+
stock FCNPC::SetAbsolutePosition(const npcid, const Float:x, const Float:y, const Float:z, const Float:angle, const worldid = -1, const interiorid = -1, const compensatedtime = -1, const freezeplayer = 1){
5457+
Streamer::UpdateEx(npcid,x,y,z,worldid,interiorid,-1,compensatedtime,freezeplayer);
5458+
if(worldid != -1) FCNPC::SetVirtualWorld(npcid,worldid);
5459+
if(interiorid != -1) FCNPC::SetInterior(npcid,interiorid);
5460+
FCNPC::SetPosition(npcid,x,y,z);
5461+
FCNPC::SetAngle(npcid,angle);
5462+
}
5463+
#endif
5464+
#endif
5465+
52485466
/********************************
52495467
* Streamer Functions *
52505468
********************************/
@@ -5806,7 +6024,66 @@ stock Tryg3D::Init(){
58066024
Tryg3D::UpTime = GetTickCount();
58076025

58086026
new T3D:modules[TRYG3D_MAX_MODULES_STRING];
5809-
/* todo */
6027+
6028+
#if defined TRYG3D_MOD_PLAYER
6029+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_PLAYER);
6030+
#endif
6031+
6032+
#if defined TRYG3D_MOD_VEHICLE
6033+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_VEHICLE);
6034+
#endif
6035+
6036+
#if defined TRYG3D_MOD_ACTOR
6037+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_ACTOR);
6038+
#endif
6039+
6040+
#if defined TRYG3D_MOD_GRENADEDETECTION
6041+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_GRENADEDETECTION);
6042+
#endif
6043+
6044+
#if defined TRYG3D_MOD_VEHICLECOL
6045+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_VEHICLECOL);
6046+
#endif
6047+
6048+
#if defined TRYG3D_MOD_PLAYERCOL
6049+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_PLAYERCOL);
6050+
#endif
6051+
6052+
#if defined TRYG3D_MOD_ACTORCOL
6053+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_ACTORCOL);
6054+
#endif
6055+
6056+
#if defined TRYG3D_MOD_UNIVERSAL
6057+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_UNIVERSAL);
6058+
#endif
6059+
6060+
#if defined TRYG3D_MOD_DRAW3D
6061+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_DRAW3D);
6062+
#endif
6063+
6064+
#if defined TRYG3D_MOD_CAST3D
6065+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_CAST3D);
6066+
#endif
6067+
6068+
#if defined TRYG3D_MOD_CATCHITEMS
6069+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_CATCHITEMS);
6070+
#endif
6071+
6072+
#if defined TRYG3D_MOD_COLANDREAS
6073+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_COLANDREAS);
6074+
#endif
6075+
6076+
#if defined TRYG3D_MOD_STREAMER
6077+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_STREAMER);
6078+
#endif
6079+
6080+
#if defined TRYG3D_MOD_FCNPC
6081+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_FCNPC);
6082+
#endif
6083+
6084+
#if defined TRYG3D_MOD_YSF
6085+
format(T3D:modules,TRYG3D_MAX_MODULES_STRING,"%s %s,",T3D:modules,TRYG3D_MOD_YSF);
6086+
#endif
58106087

58116088
new T3D:ver_name[16];
58126089
format(T3D:ver_name,sizeof(T3D:ver_name),"%d.%d.%d",Tryg3D::GetVersion(TRYG3D_VERSION));
@@ -5838,6 +6115,20 @@ stock Tryg3D::Init(){
58386115
Tryg3D::UpdateErrorCount();
58396116
}
58406117

6118+
#if defined TRYG3D_MOD_FCNPC
6119+
if(!fexist("FCNPC/nodes")){
6120+
print("[ADM] Error: Plugin data not found /scriptfiles/FCNPC/nodes/*.dat");
6121+
Tryg3D::UpdateErrorCount();
6122+
}
6123+
#endif
6124+
6125+
//Init Map Precision
6126+
#if !defined TRYG3D_DISABLE_INIT
6127+
#if defined TRYG3D_MOD_COLANDREAS
6128+
Tryg3D::SafeColAndreasInit();
6129+
#endif
6130+
#endif
6131+
58416132
new T3D:errors = Tryg3D::GetErrorCount();
58426133
if(T3D:errors > 0) printf("[ADM] Info: 3DTryg running with %d errors detected, see above",T3D:errors);
58436134
}

0 commit comments

Comments
 (0)