SmartNPC
3,401
pregleda
21
postova
2. Avg. 2021.
bandodior wrote on August 2, 2021, 5:22 pm:
Da li si testirao da se SmartNPC udari u vozilo od pravog igraca?
Radi na svima, samo ako ima neki lik msm da se zove Srdjan, njega pregazi vise put ☹️
7. Avg. 2021.
Prastaj bratski ali to je primer u filterscriptama jos od kad su uvedeni NPC-evi (to jest od prve 0.3 verzije)...
Ime fajla, taxi_ls_test u npcmodes (default samp paket).
Ime fajla, taxi_ls_test u npcmodes (default samp paket).
//
// A test driver NPC with very basic AI
// Kye 2009
//
#include
new gStoppedForTraffic = 0;
new gPlaybackActive = 0;
public ScanTimer();
#define AHEAD_OF_CAR_DISTANCE 11.0
#define SCAN_RADIUS 11.0
//------------------------------------------
main(){}
//------------------------------------------
stock GetXYInfrontOfMe(Float:distance, &Float:x, &Float:y)
{
new Float:z, Float:angle;
GetMyPos(x,y,z);
GetMyFacingAngle(angle);
x += (distance * floatsin(-angle, degrees));
y += (distance * floatcos(-angle, degrees));
}
//------------------------------------------
public OnNPCModeInit()
{
SetTimer("ScanTimer",200,1);
}
//------------------------------------------
LookForAReasonToPause()
{
new Float:X,Float:Y,Float:Z;
new x=0;
GetMyPos(X,Y,Z);
GetXYInfrontOfMe(AHEAD_OF_CAR_DISTANCE,X,Y);
while(x!=MAX_PLAYERS) {
if(IsPlayerConnected(x) && IsPlayerStreamedIn(x)) {
if( GetPlayerState(x) == PLAYER_STATE_DRIVER ||
GetPlayerState(x) == PLAYER_STATE_ONFOOT )
{
if(IsPlayerInRangeOfPoint(x,SCAN_RADIUS,X,Y,Z)) {
return 1;
}
}
}
x++;
}
//new msg;
//new Float:angle;
//GetMyFacingAngle(angle);
//format(msg,256,"My yaw/heading = %f",angle);
//SendChat(msg);
return 0;
}
//------------------------------------------
public ScanTimer()
{
//new ticker = GetTickCount() - g_LastTick;
//printf("npctest: timer (%d)ms", ticker);
//g_LastTick = GetTickCount();
new ReasonToPause = LookForAReasonToPause();
if(ReasonToPause && !gStoppedForTraffic)
{
//SendChat("I'm pausing");
PauseRecordingPlayback();
gStoppedForTraffic = 1;
}
else if(!ReasonToPause && gStoppedForTraffic)
{
//SendChat("I'm resuming");
ResumeRecordingPlayback();
gStoppedForTraffic = 0;
}
}
//------------------------------------------
StartPlayback()
{
StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"taxi_test_1282");
gStoppedForTraffic = 0;
gPlaybackActive = 1;
}
//------------------------------------------
public OnRecordingPlaybackEnd()
{
StartPlayback();
}
//------------------------------------------
public OnNPCEnterVehicle(vehicleid, seatid)
{
StartPlayback();
}
//------------------------------------------
public OnNPCExitVehicle()
{
StopRecordingPlayback();
}
//------------------------------------------
7. Avg. 2021.
Deleted User wrote on August 7, 2021, 9:34 am:
Prastaj bratski ali to je primer u filterscriptama jos od kad su uvedeni NPC-evi (to jest od prve 0.3 verzije)...
Ime fajla, taxi_ls_test u npcmodes (default samp paket).
Ime fajla, taxi_ls_test u npcmodes (default samp paket).
//
// A test driver NPC with very basic AI
// Kye 2009
//
#include
new gStoppedForTraffic = 0;
new gPlaybackActive = 0;
public ScanTimer();
#define AHEAD_OF_CAR_DISTANCE 11.0
#define SCAN_RADIUS 11.0
//------------------------------------------
main(){}
//------------------------------------------
stock GetXYInfrontOfMe(Float:distance, &Float:x, &Float:y)
{
new Float:z, Float:angle;
GetMyPos(x,y,z);
GetMyFacingAngle(angle);
x += (distance * floatsin(-angle, degrees));
y += (distance * floatcos(-angle, degrees));
}
//------------------------------------------
public OnNPCModeInit()
{
SetTimer("ScanTimer",200,1);
}
//------------------------------------------
LookForAReasonToPause()
{
new Float:X,Float:Y,Float:Z;
new x=0;
GetMyPos(X,Y,Z);
GetXYInfrontOfMe(AHEAD_OF_CAR_DISTANCE,X,Y);
while(x!=MAX_PLAYERS) {
if(IsPlayerConnected(x) && IsPlayerStreamedIn(x)) {
if( GetPlayerState(x) == PLAYER_STATE_DRIVER ||
GetPlayerState(x) == PLAYER_STATE_ONFOOT )
{
if(IsPlayerInRangeOfPoint(x,SCAN_RADIUS,X,Y,Z)) {
return 1;
}
}
}
x++;
}
//new msg;
//new Float:angle;
//GetMyFacingAngle(angle);
//format(msg,256,"My yaw/heading = %f",angle);
//SendChat(msg);
return 0;
}
//------------------------------------------
public ScanTimer()
{
//new ticker = GetTickCount() - g_LastTick;
//printf("npctest: timer (%d)ms", ticker);
//g_LastTick = GetTickCount();
new ReasonToPause = LookForAReasonToPause();
if(ReasonToPause && !gStoppedForTraffic)
{
//SendChat("I'm pausing");
PauseRecordingPlayback();
gStoppedForTraffic = 1;
}
else if(!ReasonToPause && gStoppedForTraffic)
{
//SendChat("I'm resuming");
ResumeRecordingPlayback();
gStoppedForTraffic = 0;
}
}
//------------------------------------------
StartPlayback()
{
StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"taxi_test_1282");
gStoppedForTraffic = 0;
gPlaybackActive = 1;
}
//------------------------------------------
public OnRecordingPlaybackEnd()
{
StartPlayback();
}
//------------------------------------------
public OnNPCEnterVehicle(vehicleid, seatid)
{
StartPlayback();
}
//------------------------------------------
public OnNPCExitVehicle()
{
StopRecordingPlayback();
}
//------------------------------------------
Svakako nisam se vodio tim fajlom, nisam znao ni da postoji.
// fejza wrote on August 7, 2021, 10:28 am:
UUUUUUUUU Jebeno, svaka cast 10/10
Zahvaljujem.
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava