- In acest tutorial va voi arata cum sa realizati un NPC dar si cum sa il folositi.
Inainte de toate setati Numarul de NPCii pe care vreti sa-i folositi in script in server.cfg
Unde X este numarul de NPCii folositi.
Inregistrarea rutei NPCului
Incarcati filterscriptul "npc_record" (npc_record.amx). Mergeti in joc, logati-va ca RCON ( /rcon login PASS ). Folositi comanda /ofrecord [nume] -pt a inregistra o ruta fara vehicul- sau /vrecord [nume] -pt a inregistra o ruta cu vehicul- , folositi comanda /stoprecord pt a finaliza inregistrarea.
Mergeti in folderul scriptfiles si cautati un fisier de formatul "nume.rec" -unde nume este numele folosit mai sus- , mutati acest fisier in folderul recordings aflat in folderul npcmodes .
Controlarea NPCului
Creeaza un fisier .pwn, gol in folderul npcmodes. In fisierul .pwn scrieti codul acesta:
Inlocuim "mynpc" cu numele inregistrarii facute mai sus, fara extensie -daca inregistrarea este "bla.rec" atunci scriem "bla" fara extensie- .
Aici scriem 1 sau 2 in functie de: 1 - NPCul are un vehicul, 2 - NPCul nu are un vehicul.
Dupa ce am facut tot de mai sus, compliem scriptul ( F5 ).
Conectarea NPCului
Deschidem GameModeul sau FilterScriptul in care folosim NPCul. Sub OnGameModeInit (sau OnFilterScriptInit ), adaugam
unde inlocuim "NUME" cu numele ales pt NPC si "inregistrare" cu numele inregistrarii, fara extensie.
Daca NPCul conduce un vehicul, trebuie sa il cream.
-doar un exemplu-
Iar acum sa il punem in vehicul, aici trebuie mai intai sa il recunoastem.
Pt a recunoaste un NPC ne folosim de Nume. Si il vom recunoaste cand se spawneaza.
-puteti sa-i adaugati si alte caracteristici, nu doar sa il asezati intr-un vehicul, puteti sa-i schimbati skinul, culoarea pe harta etc.-
Daca aveti probleme la conectarea NPCului de exemplu este dat afara, adaugati urmatoarea verificare la OnPlayerConnect
-Cititi cu atentie inainte de a intreba.-
Inainte de toate setati Numarul de NPCii pe care vreti sa-i folositi in script in server.cfg
- Cod:
maxnpc X
Unde X este numarul de NPCii folositi.
Inregistrarea rutei NPCului
Incarcati filterscriptul "npc_record" (npc_record.amx). Mergeti in joc, logati-va ca RCON ( /rcon login PASS ). Folositi comanda /ofrecord [nume] -pt a inregistra o ruta fara vehicul- sau /vrecord [nume] -pt a inregistra o ruta cu vehicul- , folositi comanda /stoprecord pt a finaliza inregistrarea.
Mergeti in folderul scriptfiles si cautati un fisier de formatul "nume.rec" -unde nume este numele folosit mai sus- , mutati acest fisier in folderul recordings aflat in folderul npcmodes .
Controlarea NPCului
Creeaza un fisier .pwn, gol in folderul npcmodes. In fisierul .pwn scrieti codul acesta:
- Cod:
#define RECORDING "mynpc" //This is the filename of your recording without the extension.
#define RECORDING_TYPE 1 //1 for in vehicle and 2 for on foot.
#include
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
#if RECORDING_TYPE == 1
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);
public OnNPCExitVehicle() StopRecordingPlayback();
#else
public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
#endif
Inlocuim "mynpc" cu numele inregistrarii facute mai sus, fara extensie -daca inregistrarea este "bla.rec" atunci scriem "bla" fara extensie- .
- Cod:
#define RECORDING_TYPE 1 //1 for in vehicle and 2 for on foot.
Aici scriem 1 sau 2 in functie de: 1 - NPCul are un vehicul, 2 - NPCul nu are un vehicul.
Dupa ce am facut tot de mai sus, compliem scriptul ( F5 ).
Conectarea NPCului
Deschidem GameModeul sau FilterScriptul in care folosim NPCul. Sub OnGameModeInit (sau OnFilterScriptInit ), adaugam
- Cod:
ConnectNPC("NUME", "inregistrare");
unde inlocuim "NUME" cu numele ales pt NPC si "inregistrare" cu numele inregistrarii, fara extensie.
Daca NPCul conduce un vehicul, trebuie sa il cream.
- Cod:
#include
new NPCvehicle;
public OnGameModeInit()
{
NPCvehicle = CreateVehicle(411, 0.0, 0.0, 0.0, 0.0, -1, -1, 1000);
return 1;
}
-doar un exemplu-
Iar acum sa il punem in vehicul, aici trebuie mai intai sa il recunoastem.
Pt a recunoaste un NPC ne folosim de Nume. Si il vom recunoaste cand se spawneaza.
- Cod:
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid)) //Verifica daca playerul este NPC
{
new npcname[MAX_PLAYER_NAME];
GetPlayerName(playerid, npcname, sizeof(npcname)); //Luam numele NPCului
if(!strcmp(npcname, "NUME", true)) //Verificam daca numele NPCului este "NUME"
{
PutPlayerInVehicle(playerid, NPCvehicle, 0); //Punem NPCul in vehicul
}
return 1;
}
//Celelalte lucruri din OnPlayerSpawn
return 1;
}
-puteti sa-i adaugati si alte caracteristici, nu doar sa il asezati intr-un vehicul, puteti sa-i schimbati skinul, culoarea pe harta etc.-
Daca aveti probleme la conectarea NPCului de exemplu este dat afara, adaugati urmatoarea verificare la OnPlayerConnect
- Cod:
if(IsPlayerNPC(playerid)) return 1;
-Cititi cu atentie inainte de a intreba.-