[0.3] Cum sa adaugi un NPC

Vezi subiectul anterior Vezi subiectul urmator In jos

[0.3] Cum sa adaugi un NPC

Mesaj  k1d*;x la data de Sam Iun 26, 2010 4:16 am

TUTORIAL REALIZAT DE CMG4Life!
- 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

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 <a_npc>
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 <a_samp>

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.-

Verificati [Trebuie sa fiti inscris si conectat pentru a vedea acest link] pt mai multe detalii.

_________________
[Trebuie sa fiti inscris si conectat pentru a vedea acest link] .... Ca intodeauna ....

[Trebuie sa fiti inscris si conectat pentru a vedea aceasta imagine]

I am the best administraotr for Choose-Community

k1d*;x
Administrator
Administrator

Mesaje Mesaje : 245
Puncte Puncte : 14195
Localizare Localizare : Prin Romania...
Data de inscriere Data de inscriere : 12/06/2010
Stare de spirit Stare de spirit : Foarte Buna :)

http://xtreme-comunnity.forumz.ro

Sus In jos

Vezi subiectul anterior Vezi subiectul urmator Sus


 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum