[Tutorial] Agregar NPC a un RP
#1

[size=20pt][size=10pt][size=10pt]Para empezar usaremos el Filterscript npc_record

abrimos el archivo Server.cfg y nos dirigimos a la linea

FilterScript y agregaremos npc_record
quedandonos asi

Код:
Filterscript npc_record
Una ves echo esto vamos al servidor y utilizamos los siguientes comandos:

Quote:

/vrecord te gravas en un vehiculo

/ofrecord te gravas andando a pie

/stoprecord detienes la gravaciуn

De aqui una ves echa la grabacion, vamos a Scriptfiles y copiamos el archivo que grabamos... ejemplo "Grabacion.rec"
lo copiamos y lo pegamos en la carpeta

Quote:

npcmodes/ recording

luego volvemos acia atras y nos cituamos en "npcmodes" alli creamos un archivo .pawno "NUEVO" y le ponemos el msmo nombre que el archivo que grabamos...

ejemplo mi archivo se llamaba Grabacion.rec y creare el archivo Gravacion.pwn

en ese archivo agregamos lo siguiente....

Quote:

#define RECORDING "Grabacion"
#define RECORDING_TYPE 2 // 1 = si esta en Vehiculos - 2 = si esta Caminando

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

solo deben cambiar "GRABACION" por el nombre de su archivo .rec

luego Compilamos y nos vamos al Gm, o al fs que quieran agregarlo.....

************************************************** ********************

ATENCION

************************************************** ********************
----------------------
Vamos a

Quote:
Public OnplayerConnect

Код:
  public OnPlayerConnect(playerid)
  {
    if(IsPlayerNPC(playerid)) // Esta funcion es para verificar si se conecta un Npc
    {
            ShowPlayerMarkers(0); // Esta funcion es para que aparezca en el mapa con color. 1 = Si || 2 = No
       PutPlayerInVehicle(playerid, PorDefecto, 0); // Esto no cmbiarlo, Sin asignar vehiculo el bot no spawnea
     SpawnPlayer(playerid); // Con esto EL bot spawnea sin pasar registros ni nada.... Directamente spawnea
    }
Luego Definimos el vehiculo "PORDEFECTO" ya que sin el el bot no spaneara
Arriba de todo agregamos

Код:
new PorDefecto;
luego en Ongamemodeinit o en OnFilterscript
agregamos

Код:
PorDefecto = AddStaticVehicle(420,2044.8854,1473.2106,10.4494,181.3339,6,1);
es un vehiculo en el agua, apartado de todo, ya que solo se usa para el spawn de los bots, No afecta en anda
Seguimos....

Asta ahora les ecplique como crear los archivos y editar para q los bots spawneen sin ningun error...
Ahoro les explicare a poner el NpC (bot)

Vamos a Ongamemodeinit y agregamos lo siguiente

Quote:

ConnectNPC("NOMBRE_DelNpC","Nombre_Del_NpcMode");

solo deben editar este cod..

aqui un ejemplo de como seria

Quote:

ConnectNPC("Taxista","Grabacion");

Quote:

"NOMBRE_DelNpC" = Nombre q le asignamos y con el cual logeara el npc (bot)
"Nombre_Del_NpcMode" = Nombre del archivo .amx del pawno q esta en la carpeta npcmode q creamos anteriormente

y por ultimo El Npc.... Vamos a onplayerspawn

y agregamos lo siguiente

Quote:

if(!IsPlayerNPC(playerid)) return 0; //

new playername[64];
GetPlayerName(playerid,playername,64);

if(!strcmp(playername,"Taxista",true)) { // Aqui le asignamos el recorrido al bot "TAXISTA"
// PutPlayerInVehicle(playerid, VEHICULO, 0); // Si tu npc tendria q ahcer su recorrido en un vehiculo asignaselo con esta funcion
SetSpawnInfo(playerid, 0, 255, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 ); // Solo cambien el skin
}

pues la funcion

SetSpawnInfo(playerid, 0, 255, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 );

solo modifiquen el numero en rosa que es el skin que tendra el npc

pero por si las dudas se lo explico

SetSpawnInfo(playerid, Team, Skin, coord x, coord y, coord z, Angulo, Arma1, balas, Arma2, Balas, Arma3, Balas ); //

pero eso no haec falta solo cambien skin y ara su recorrido

bueno espero que les aya servido.
Reply
#2

Muy Bueno lo voy a probar

Me alegra que en este foro aiga gente q hable espaсol
Reply
#3

Muy buenb tutorial
Reply
#4

Muy Bueno xD
Reply
#5

exelente muy bueno!

el aporte esta muy bien relatado
Reply
#6

Esta todo muy bien pero a mi no me va

icluyo los codigos que puse para hacer un conductor de autobus

pawn Код:
public OnPlayerConnect(playerid)
{
    GameTextForPlayer(playerid,"~w~SA-MP: ~r~Las Venturas ~g~MoneyGrub",5000,5);
    SendPlayerFormattedText(playerid, "Welcome to Las Venturas MoneyGrub, For help type /help.", 0);
    gActivePlayers[playerid]++;
    gLastGaveCash[playerid] = GetTickCount();
    return 1;
   
    if (IsPlayerNPC(playerid)) // Esta funcion es para verificar si se conecta un Npc
    {
            ShowPlayerMarkers(0); // Esta funcion es para que aparezca en el mapa con color. 1 = Si || 2 = No
       PutPlayerInVehicle(playerid, PorDefecto, 0); // Esto no cmbiarlo, Sin asignar vehiculo el bot no spawnea
     SpawnPlayer(playerid); // Con esto EL bot spawnea sin pasar registros ni nada.... Directamente spawnea
    }
  return 1;
}
pawn Код:
new PorDefecto;
pawn Код:
PorDefecto = AddStaticVehicle(420,2044.8854,1473.2106,10.4494,181.3339,6,1);
pawn Код:
ConnectNPC("Conductor_Autobus","Autobus");
pawn Код:
public OnPlayerSpawn(playerid)
{
    GivePlayerMoney(playerid, PocketMoney);
    SetPlayerInterior(playerid,0);
    SetPlayerRandomSpawn(playerid);
    TogglePlayerClock(playerid,1);
    return 1;
    if(!IsPlayerNPC(playerid)) return 0; //

    new playername[64];
    GetPlayerName(playerid,playername,64);

    if(!strcmp(playername,"Conductor_Autobus",true)) { // Aqui le asignamos el recorrido al bot "TAXISTA"
    PutPlayerInVehicle(playerid, VEHICULO, 1); // Si tu npc tendria q ahcer su recorrido en un vehiculo asignaselo con esta funcion
    SetSpawnInfo(playerid, 0, 255, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 ); // Solo cambien el skin
    }
}
errores y warnings al copilar:

pawn Код:
C:\Users\Administrador\Desktop\samp03asvr_R4_win32\gamemodes\lvdm.pwn(159) : warning 225: unreachable code
C:\Users\Administrador\Desktop\samp03asvr_R4_win32\gamemodes\lvdm.pwn(268) : warning 225: unreachable code
C:\Users\Administrador\Desktop\samp03asvr_R4_win32\gamemodes\lvdm.pwn(274) : error 017: undefined symbol "VEHICULO"
C:\Users\Administrador\Desktop\samp03asvr_R4_win32\gamemodes\lvdm.pwn(277) : warning 209: function "OnPlayerSpawn" should return a value
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
Reply
#7

GroX0r:
Quote:

...
maxnpc 3 <-- pones el numero de bots en el server.cfg
...

Te falto esta parte

Cesar_Biker:
pawn Код:
public OnPlayerSpawn(playerid)
{
    GivePlayerMoney(playerid, PocketMoney);
    SetPlayerInterior(playerid,0);
    SetPlayerRandomSpawn(playerid);
    TogglePlayerClock(playerid,1);
    return 1;
    if(!IsPlayerNPC(playerid)) return 0; //

    new playername[64];
    GetPlayerName(playerid,playername,64);

    if(!strcmp(playername,"Conductor_Autobus",true)) { // Aqui le asignamos el recorrido al bot "TAXISTA"
    PutPlayerInVehicle(playerid, VEHICULO, 1); // Si tu npc tendria q ahcer su recorrido en un vehiculo asignaselo con esta funcion
    SetSpawnInfo(playerid, 0, 255, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 ); // Solo cambien el skin
    }
return 1;//<--- te falto esto
}
Reply
#8

Код:
  public OnPlayerConnect(playerid)
  {
    if(IsPlayerNPC(playerid)) // Esta funcion es para verificar si se conecta un Npc
    {
            ShowPlayerMarkers(0); // Esta funcion es para que aparezca en el mapa con color. 1 = Si || 2 = No
       PutPlayerInVehicle(playerid, PorDefecto, 0); // Esto no cmbiarlo, Sin asignar vehiculo el bot no spawnea
     SpawnPlayer(playerid); // Con esto EL bot spawnea sin pasar registros ni nada.... Directamente spawnea
    }
El ShowPlayerMakers(0); -->deberias ponerlo en el on gamemodeinit para que no te de problemas
El PutPlayerInVehicle(playerid, PorDefecto, 0); -->Deberias ponerlo solo en el onplayerspawn
no?
Reply
#9

Quote:
Originally Posted by camiloasc1
GroX0r:
Quote:

...
maxnpc 3 <-- pones el numero de bots en el server.cfg
...

Te falto esta parte

Cesar_Biker:
pawn Код:
public OnPlayerSpawn(playerid)
{
    GivePlayerMoney(playerid, PocketMoney);
    SetPlayerInterior(playerid,0);
    SetPlayerRandomSpawn(playerid);
    TogglePlayerClock(playerid,1);
    return 1;
    if(!IsPlayerNPC(playerid)) return 0; //

    new playername[64];
    GetPlayerName(playerid,playername,64);

    if(!strcmp(playername,"Conductor_Autobus",true)) { // Aqui le asignamos el recorrido al bot "TAXISTA"
    PutPlayerInVehicle(playerid, VEHICULO, 1); // Si tu npc tendria q ahcer su recorrido en un vehiculo asignaselo con esta funcion
    SetSpawnInfo(playerid, 0, 255, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 ); // Solo cambien el skin
    }
return 1;//<--- te falto esto
}
Me da estos errores, intente incluir el include a_npc pero sigue igual

Код:
C:\Users\Administrador\Desktop\samp03asvr_R4_win32\gamemodes\lvdm(2).pwn(160) : warning 225: unreachable code
C:\Users\Administrador\Desktop\samp03asvr_R4_win32\gamemodes\lvdm(2).pwn(160) : error 017: undefined symbol "IsPlayerNPC"
C:\Users\Administrador\Desktop\samp03asvr_R4_win32\gamemodes\lvdm(2).pwn(272) : warning 225: unreachable code
C:\Users\Administrador\Desktop\samp03asvr_R4_win32\gamemodes\lvdm(2).pwn(272) : error 017: undefined symbol "IsPlayerNPC"
C:\Users\Administrador\Desktop\samp03asvr_R4_win32\gamemodes\lvdm(2).pwn(404) : error 017: undefined symbol "ConnectNPC"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


3 Errors.
Otra cosa lo estoy probando con el lvdm podria ser eso el problema, que es de DM??

Saben que puede pasar les agradeceria mucho
Reply
#10

Porfavor ayudenme nose lo que pasa gracias
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)