Mesaje : 579 Data de inscriere : 27/01/2013
| Subiect: [0.3] Cum sa adaugi un NPC (Read 15096 times) Mar Apr 02, 2013 7:02 pm |
|
| - 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 Code: [Select] 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: Code: [Select] #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- .
Code: [Select]
#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 Code: [Select]
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.
Code: [Select]
#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. Code: [Select]
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 Code: [Select]
if(IsPlayerNPC(playerid)) return 1;
-Cititi cu atentie inainte de a intreba.- |
|