SA-MP Forums Archive
[Tutorial] Creating a new NPC - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Tutorials (https://sampforum.blast.hk/forumdisplay.php?fid=70)
+---- Thread: [Tutorial] Creating a new NPC (/showthread.php?tid=95034)

Pages: 1 2 3 4 5 6 7 8


Re: Tutorial -> Creating a new NPC - ft941 - 04.09.2009

I tried to use AddStaticVehicle but nothing changes.
The problem may be due to my gamemode?


Re: Tutorial -> Creating a new NPC - SFather - 04.09.2009

can bots use animations?

I have recorded action of foot with using of animations, and the result is just walking, and no animations. Preloading animation libraries don't help too. Or I just trying for nothing?


Re: Tutorial -> Creating a new NPC - kc - 04.09.2009

Quote:
Originally Posted by SFather
can bots use animations?

I have recorded action of foot with using of animations, and the result is just walking, and no animations. Preloading animation libraries don't help too. Or I just trying for nothing?
Apply the animation to the NPC, and players who are close to it when you applied the animation will see the NPC with the animation.


Re: Tutorial -> Creating a new NPC - eXchainZ-FoReVeR - 04.09.2009

NPC = a Computer, Like playing Single Player.


Re: Tutorial -> Creating a new NPC - SFather - 04.09.2009

Quote:
Originally Posted by kc
Quote:
Originally Posted by SFather
can bots use animations?

I have recorded action of foot with using of animations, and the result is just walking, and no animations. Preloading animation libraries don't help too. Or I just trying for nothing?
Apply the animation to the NPC, and players who are close to it when you applied the animation will see the NPC with the animation.
thanx for answer.

it's so uncomfortable ;[


Re: Tutorial -> Creating a new NPC - CaLaP - 04.09.2009

hi, my npc not walking noob npc only waiting xD
and animations not working on npc

sorry my english is bad


Re: Tutorial -> Creating a new NPC - Bcklup - 05.09.2009

Hi, i made a NPC that walks around a little area here's the code:

Code:
#include <a_samp>
#include <a_npc>

public OnFilterScriptInit()
{
  ConnectNPC("Guy","ShinderNPC");
	return 1;
}

public OnRecordingPlaybackEnd() StartRecordingPlayback(2, ShinderNPC);
I have this error:
Code:
C:\Documents and Settings\Administrator\Desktop\ETC\GTA SA Stuff\sampserver0.3\filterscripts\NPCs.pwn(10) : warning 235: public function lacks forward declaration (symbol "OnRecordingPlaybackEnd")
C:\Documents and Settings\Administrator\Desktop\ETC\GTA SA Stuff\sampserver0.3\filterscripts\NPCs.pwn(10) : error 017: undefined symbol "StartRecordingPlayback"
i think every callback a_npc have doesn't work on this FS?
Or does the NPC really needs to just drive a stupid car but can't walk?


Re: Tutorial -> Creating a new NPC - JaTochNietDan - 05.09.2009

Quote:
Originally Posted by Bcklup
Hi, i made a NPC that walks around a little area here's the code:

Code:
#include <a_samp>
#include <a_npc>

public OnFilterScriptInit()
{
  ConnectNPC("Guy","ShinderNPC");
	return 1;
}

public OnRecordingPlaybackEnd() StartRecordingPlayback(2, ShinderNPC);
I have this error:
Code:
C:\Documents and Settings\Administrator\Desktop\ETC\GTA SA Stuff\sampserver0.3\filterscripts\NPCs.pwn(10) : warning 235: public function lacks forward declaration (symbol "OnRecordingPlaybackEnd")
C:\Documents and Settings\Administrator\Desktop\ETC\GTA SA Stuff\sampserver0.3\filterscripts\NPCs.pwn(10) : error 017: undefined symbol "StartRecordingPlayback"
i think every callback a_npc have doesn't work on this FS?
Or does the NPC really needs to just drive a stupid car but can't walk?
<a_samp> and <a_npc> cannot be included properly in the same script. Remove <a_samp>


Re: Tutorial -> Creating a new NPC - Bcklup - 05.09.2009

now this error came along after i deleted "#include <a_samp>"

Code:
C:\Documents and Settings\Administrator\Desktop\ETC\GTA SA Stuff\sampserver0.3\filterscripts\NPCs.pwn(3) : warning 235: public function lacks forward declaration (symbol "OnFilterScriptInit")
C:\Documents and Settings\Administrator\Desktop\ETC\GTA SA Stuff\sampserver0.3\filterscripts\NPCs.pwn(5) : error 017: undefined symbol "ConnectNPC"
C:\Documents and Settings\Administrator\Desktop\ETC\GTA SA Stuff\sampserver0.3\filterscripts\NPCs.pwn(9) : warning 235: public function lacks forward declaration (symbol "OnPlayerSpawn")
C:\Documents and Settings\Administrator\Desktop\ETC\GTA SA Stuff\sampserver0.3\filterscripts\NPCs.pwn(11) : error 017: undefined symbol "IsPlayerNPC"
C:\Documents and Settings\Administrator\Desktop\ETC\GTA SA Stuff\sampserver0.3\filterscripts\NPCs.pwn(11) : error 017: undefined symbol "SetPlayerSkin"
C:\Documents and Settings\Administrator\Desktop\ETC\GTA SA Stuff\sampserver0.3\filterscripts\NPCs.pwn(14) : error 017: undefined symbol "ShinderNPC"
lol BTW i added this liiittle script before i compiled w/o #include <a_samp>

Code:
public OnPlayerSpawn(playerid)
{
	if(IsPlayerNPC(playerid) == 1) SetPlayerSkin(playerid, 29);
}
no error or warnings about that when #include <a_samp> was included


EDIT: Almost Fixed it now it says:
Code:
C:\Documents and Settings\Administrator\Desktop\ETC\GTA SA Stuff\sampserver0.3\filterscripts\NPCs.pwn(6) : error 017: undefined symbol "ConnectNPC"



Re: Tutorial -> Creating a new NPC - Zeex - 05.09.2009

As I understand, your script is a filterscript and not npcmode, right? If so, include a_samp instead of a_npc.


Re: Tutorial -> Creating a new NPC - Bcklup - 05.09.2009

Quote:
Originally Posted by ZeeX
As I understand, your script is a filterscript and not npcmode, right? If so, include a_samp instead of a_npc.
sorry for not telling but i fixed it already only on problem, The NPCs spawn at any random time and not at the time i want them to spawn, and they dont move


Re: Tutorial -> Creating a new NPC - Cedimedi - 05.09.2009

pawn Code:
#include <a_samp>

new MyFirstNPCVehicle;
public OnFilterScriptInit()
{
  print("my filterscript");
  ConnectNPC("MyFirstNPC","hydrapilot");
  MyFirstNPCVehicle = CreateVehicle(520, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);
  return 1;
}

public OnPlayerSpawn(playerid)
{
  if(IsPlayerNPC(playerid)) //Checks if the player that just spawned is an NPC.
  {
    new npcname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, npcname, sizeof(npcname)); //Getting the NPC's name.
    if(!strcmp(npcname, "MyFirstNPC", true)) //Checking if the NPC's name is MyFirstNPC
    {
      PutPlayerInVehicle(playerid, MyFirstNPCVehicle, 0); //Putting the NPC into the vehicle we created for it.
    }
    return 1;
  }
  //Other stuff for normal players goes here!
  return 1;
}
Whats wrong there? I've done all correct but the bot still stay at the same pos. i think PutPLayerInVehicle don't work, but why?


Re: Tutorial -> Creating a new NPC - ft941 - 05.09.2009


sorry, there is a solution to my problem?


Re: Tutorial -> Creating a new NPC - Whiteagle - 05.09.2009

Quote:
Originally Posted by Cedimedi
pawn Code:
#include <a_samp>

new MyFirstNPCVehicle;
public OnFilterScriptInit()
{
  print("my filterscript");
  ConnectNPC("MyFirstNPC","hydrapilot");
  MyFirstNPCVehicle = CreateVehicle(520, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);
  return 1;
}

public OnPlayerSpawn(playerid)
{
  if(IsPlayerNPC(playerid)) //Checks if the player that just spawned is an NPC.
  {
    new npcname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, npcname, sizeof(npcname)); //Getting the NPC's name.
    if(!strcmp(npcname, "MyFirstNPC", true)) //Checking if the NPC's name is MyFirstNPC
    {
      PutPlayerInVehicle(playerid, MyFirstNPCVehicle, 0); //Putting the NPC into the vehicle we created for it.
    }
    return 1;
  }
  //Other stuff for normal players goes here!
  return 1;
}
Whats wrong there? I've done all correct but the bot still stay at the same pos. i think PutPLayerInVehicle don't work, but why?
OnPlayerRequestClass , if the player is an NPC you have to return 1....


Re: Tutorial -> Creating a new NPC - Cedimedi - 05.09.2009

I edited now a FS from the pack or somewhere.

pawn Code:
#include <a_samp>

new hydra;

public OnGameModeInit()
{
    ConnectNPC("Driver","hydrapilotA");
    hydra = AddStaticVehicle(520,2044.8854,1473.2106,10.4494,181.3339,6,1); // Taxi
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnPlayerConnect(playerid)
{
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
  if(IsPlayerNPC(playerid)) //Checks if the player is an NPC.
  {
    new npcname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, npcname, sizeof(npcname));
    if(!strcmp(npcname, "Driver", true))
    {
      PutPlayerInVehicle(playerid, hydra, 0);
    }
  }
  return 1;
}
Now it still don't work, the Bot don't spawn... only after /rcon gmx but then he do nothing just stay arround... omg im tired of scripting :/


Re: Tutorial -> Creating a new NPC - _Ben_[Fux-c.co.il RP] - 05.09.2009

I got problem..
Its creating vehicle, But nobody drive on it.
I did all the things are needed in the folder npcmodes.

The amx I called: Police_PatrolNPC

Here what I did:


Top:
Quote:

new NPCP;

OnGameModeInit:
Quote:

ConnectNPC("PoliceMan_","Police_PatrolNPC");
NPCP = CreateVehicle(596,1535.8658,-1668.4530,13.0795,358.5437,1,0, 5000);




OnPlayerSpawn:
Quote:

if(IsPlayerNPC(playerid))
{
new npcname[MAX_PLAYER_NAME];
GetPlayerName(playerid, npcname, sizeof(npcname)); //Getting the NPC's name.
if(!strcmp(npcname, "PoliceMan_", true)) //Checking if the NPC's name is MyFirstNPC
{
//SetPlayerSkin(playerid, 280);
PutPlayerInVehicle(playerid, NPCP, 0); //Putting the NPC into the vehicle we created for it.
//SetSpawnInfo( playerid, 0, 280, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 );
}
return 1;
}



And In Police_PatrolNPC, I wrote:

Quote:

#define RECORDING "Police_Patrol" //This is the filename of your recording without the extension.
#define RECORDING_TYPE 1 //1 for in vehicle and 2 for on foot.

#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);
public OnNPCExitVehicle() StopRecordingPlayback();

And the bot is stays high in the sky,
And he doesn't spawn to the vehicle.























edit:
I did Police man walking..
He is spawn to the walk place, but he is not walking!



Re: Tutorial -> Creating a new NPC - kc - 05.09.2009

Quote:
Originally Posted by _Ben_[Fux-c.co.il RP
]
I got problem..
Its creating vehicle, But nobody drive on it.
I did all the things are needed in the folder npcmodes.
Look at the define in the "mini" script... (and especially its comment)

pawn Code:
#define RECORDING_TYPE 1 //1 for in vehicle and 2 for on foot.



Re: Tutorial -> Creating a new NPC - XxerykxX - 05.09.2009

How can i download server for samp 0.3?? if there are scripts so samp and servers are onnline?? Can somebody tell me where to download samp 0.3 and server to it?? thanks


Re: Tutorial -> Creating a new NPC - Youtube - 29.11.2009

Hey guys,im new to this,i got many errors on the gamemode script so i just created a filterscript.
I still get errors lol can anyone help?

Code:
public OnFilterScriptInit()
{
  print("my filterscript");
  ConnectNPC("MyFirstNPC","BOT");
  return 1;
}

new MyFirstNPCVehicle; //Global variable!
public OnFilterScriptInit()
{
  print("my filterscript");
  ConnectNPC("MyFirstNPC","BOT");
  MyFirstNPCVehicle = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);
  return 1;
}

public OnPlayerSpawn(playerid)
{
  if(IsPlayerNPC(playerid)) //Checks if the player that just spawned is an NPC.
  {
    new npcname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, npcname, sizeof(npcname)); //Getting the NPC's name.
    if(!strcmp(npcname, "MyFirstNPC", true)) //Checking if the NPC's name is MyFirstNPC
    {
      PutPlayerInVehicle(playerid, MyFirstNPCVehicle, 0); //Putting the NPC into the vehicle we created for it.
    }
    return 1;
  }
  //Other stuff for normal players goes here!
  return 1;
}
BOT is the filename.
Errors:
Code:
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(1) : warning 235: public function lacks forward declaration (symbol "OnFilterScriptInit")
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(3) : error 017: undefined symbol "print"
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(4) : error 017: undefined symbol "ConnectNPC"
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(9) : warning 235: public function lacks forward declaration (symbol "OnFilterScriptInit")
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(10) : error 021: symbol already defined: "OnFilterScriptInit"
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(11) : error 017: undefined symbol "print"
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(12) : error 017: undefined symbol "ConnectNPC"
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(13) : error 017: undefined symbol "CreateVehicle"
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(17) : warning 235: public function lacks forward declaration (symbol "OnPlayerSpawn")
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(19) : error 017: undefined symbol "IsPlayerNPC"
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(21) : error 017: undefined symbol "MAX_PLAYER_NAME"
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(21) : error 009: invalid array size (negative, zero or out of bounds)
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(21) : error 036: empty statement
C:\Program Files\gta.sa\GTA San Andreas\filterscripts\npc_test_2.pwn(21) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase
Can anyone fix it and post it or just help me?thanks very much!


Re: Tutorial -> Creating a new NPC - Rac3r - 30.11.2009

Very nice tutorial, it cleared up a few things for me. Thanks KC.

*******, you need to use the includes. Silly boy
Code:
#include <a_samp> // top of script
Quote:
Originally Posted by matrix_smq
Having problems when adding a NPC, i added
Code:
if(IsPlayerNPC(playerid)) return 1;
everywhere and still... the NPC connects and after like 20-30 seconds it times out, any ideas?
You're not telling people enough information. which callback is that code from? What does the console say? What GM are you using?