15.04.2017, 13:08
Update v4.2.0:
- Added functions:
- Added Universal Functions:
- Added Stream3D Functions:
- Added FCNPC Functions (ColAndreas):
- Added Stream3D types:
Videos:
Random NPC Moving In Area
Marica Mortar V2
Example code for Stream3D Moving:
- Added functions:
PHP Code:
Float:GetEllipseRadius(Float:x,Float:y,Float:angle);
bool:GetArcPoints3D(Float:x,Float:y,Float:z,Float:tx,Float:ty,Float:tz,Float:ry,Float:height,Float:points[][],max_points = sizeof(points));
bool:IsPointInEllipse(Float:px,Float:py,Float:cx,Float:cy,Float:size_x,Float:size_y);
bool:IsPointInEllipticalCylinder2D(Float:px,Float:py,Float:pz,Float:cx,Float:cy,Float:minz,Float:maxz,Float:size_x,Float:size_y);
bool:IsPlayerInEllipse(playerid,Float:cx,Float:cy,Float:size_x,Float:size_y);
bool:IsPlayerInEllipticalCylinder2D(playerid,Float:cx,Float:cy,Float:minz,Float:maxz,Float:size_x,Float:size_y);
GetRandomPointInEllipse(Float:cx,Float:cy,Float:size_x,Float:size_y,&Float:tx,&Float:ty);
GetRandomPointInEllipticalCyl2D(Float:cx,Float:cy,Float:minz,Float:maxz,Float:size_x,Float:size_y,&Float:tx,&Float:ty,&Float:tz);
GetRandomPointOnEllipse(Float:cx,Float:cy,Float:size_x,Float:size_y,&Float:tx,&Float:ty);
GetRandomPointOnEllipticalCyl2D(Float:cx,Float:cy,Float:minz,Float:maxz,Float:size_x,Float:size_y,&Float:tx,&Float:ty,&Float:tz);
PHP Code:
bool:IsElementInEllipse(elementid,Item3D_Type:element_type,Float:cx,Float:cy,Float:size_x,Float:size_y);
bool:IsElementInEllipticalCylinder2D(elementid,Item3D_Type:element_type,Float:cx,Float:cy,Float:minz,Float:maxz,Float:size_x,Float:size_y);
PHP Code:
Stream:StreamEllipse(Float:cx,Float:cy,Float:size_x,Float:size_y);
Stream:StreamEllipticalCylinder2D(Float:cx,Float:cy,Float:minz,Float:maxz,Float:size_x,Float:size_y);
PHP Code:
//Streamer:
FCNPC_RandomMoveInDynamicArea(npcid,STREAMER_TAG_AREA areaid,Float:climbing = 2.0,type = MOVE_TYPE_AUTO,Float:speed = MOVE_SPEED_AUTO,bool:UseMapAndreas = false,bool:setangle = true);
//Stream3D:
FCNPC_RandomMoveInStream(npcid,Stream:StreamData[Stream3D],Float:climbing = 2.0,type = MOVE_TYPE_AUTO,Float:speed = MOVE_SPEED_AUTO,bool:UseMapAndreas = false,bool:setangle = true);
PHP Code:
s_ellipse
s_ellipticalcyl2d
Random NPC Moving In Area
Marica Mortar V2
Example code for Stream3D Moving:
PHP Code:
#include <a_samp>
#include <ColAndreas>
#include <FCNPC>
#define ENABLE_3D_TRYG_STREAM3D
#include <SAM/3DTryg>
new NPC[6],
StreamCreate(NPCArea);
public OnFilterScriptInit(){
NPCArea = StreamCircle(2178.25,997.89,150.0);
/*
Also:
NPCArea = StreamRectangle(869.40,596.30,2997.00,2993.80); //Las Venturas
*/
NPC[0] = FCNPC_Create("Alusia");
FCNPC_Spawn(NPC[0],216,2178.25, 997.89, 10.82);
NPC[1] = FCNPC_Create("Luna");
FCNPC_Spawn(NPC[1],91,2100.56, 989.82, 10.82);
NPC[2] = FCNPC_Create("Skadi");
FCNPC_Spawn(NPC[2],11,2135.66, 1042.71, 10.81);
NPC[3] = FCNPC_Create("Lusia");
FCNPC_Spawn(NPC[3],13,2162.48, 1009.77, 10.52);
NPC[4] = FCNPC_Create("Nika");
FCNPC_Spawn(NPC[4],12,2141.83, 1009.89, 10.52);
NPC[5] = FCNPC_Create("Zero");
FCNPC_Spawn(NPC[5],294,2132.12, 1028.96, 10.52);
return 1;
}
public FCNPC_OnUpdate(npcid){
if(!FCNPC_IsMoving(npcid)){
FCNPC_RandomMoveInStream(npcid,NPCArea,_,MOVE_TYPE_WALK,MOVE_SPEED_AUTO,true,true);
}
return 1;
}
public OnFilterScriptExit(){
for(new i = 0; i <= 5; i++) FCNPC_Destroy(NPC[i]);
return 1;
}