Page 1 of 1

Creare NPC in vehicul

Posted: Mon Oct 24, 2011 6:10 am
by RoberTo
[center]Image[/center]

Am facut un NPC in vehicul, mai bine zic intr-un autobuz si am mam gandit ca poate vreti si voi sa faceti si nu va descurcati :grin:

[glow=red,2,300]Pasul 1[/glow]
Descarcati aces FS de aici, si bagati in filterscript editati server.cfg si la linia cu filterscripts adaugati npc_record.

[glow=red,2,300]Pasul 2[/glow]
Deschidem server, intram in joc si tastam /rcon login ( rcon din server.cfg), dupa tastam /vrecord {nume} intr-un vehicul ca sa facem inregistrarea. Dupa ce am facut inregistrarea tastam /stoprecord.

[glow=red,2,300]Pasul 3[/glow]
Mergem in scriptfiles si avem nume.rec (nume insemnand ce ati scris voi la /vrecord {nume}) si il mutam in folderul cu npcmodes -> recordings.

[glow=red,2,300]Pasul 4[/glow]
Deschidem pawno, facem un nou script si adaugam in el:

Code: Select all

#define RECORDING "nume" //numele inregistratii
#define RECORDING_TYPE 1 //1 npc fiind in vehicul

#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);
public OnNPCExitVehicle() StopRecordingPlayback();
Salvam si compilam si folderul npcmodes.

[glow=red,2,300]Pasul 5[/glow]
Mergem in gamemode si salvam vehiculul si ii facem conexiunea !
Definim global:

Code: Select all

new buscar1;
la public OnPlayerSpawn adaugam:

Code: Select all

if(IsPlayerNPC(playerid))
    {
        new npcname[MAX_PLAYER_NAME]; GetPlayerName(playerid, npcname, sizeof(npcname));
        if(!strcmp(npcname, "Mihai", true))// Mihai find numele botului
        {
            PutPlayerInVehicle(playerid, buscar1, 0);// pune botul in vehicul
            SetPlayerSkin(playerid, 253);// skinul botuui
            SetPlayerColor(playerid,COLOR_WHITE);// culoare lui
            PlayerInfo[playerid][pCarLic] = 1;// in caz ca vreti sa adaugati pe RP mai recomandat este sa ii dati licenta
            return 1;
        }
    }
Bagam vehiculul la public OnGameModeInit():

Code: Select all

buscar1 = AddStaticVehicle(coordonate, etc...); //
si tot aici adaugam:
ConnectNPC("Mihai","nume");// nume find .amx din npcmodes iar Mihai numele botului

Mergem la public OnPlayerRequestClass si adaugam:

Code: Select all

if(IsPlayerNPC(playerid))
    {
        new playername[64];
        GetPlayerName(playerid,playername,64);

        if(!strcmp(playername,"Mihai",true)) { // Mihai fiind numele botului
            SetPlayerColor(playerid,COLOR_WHITE); // culoare lui
            SetSpawnInfo(playerid,69,236,1462.0745,2630.8787,10.8203,0.0,-1,-1,-1,-1,-1,-1);
        }
        return 1;
    }
Mergem la public OnPlayerConnect(playerid)

Code: Select all

if(IsPlayerNPC(playerid)) {
        new ip_addr_npc[64+1];
        new ip_addr_server[64+1];
        GetServerVarAsString("bind",ip_addr_server,64);
        GetPlayerIp(playerid,ip_addr_npc,64);

        if(!strlen(ip_addr_server)) {
            ip_addr_server = "127.0.0.1";
        }

        if(strcmp(ip_addr_npc,ip_addr_server,true) != 0) {
            printf("NPC: Got a remote NPC connecting from %s and I'm kicking it.",ip_addr_npc);
            Kick(playerid);
            return 0;
        }
        printf("NPC: Connection from %s is allowed.",ip_addr_npc);
    }
Si mai avem de adaugat la public OnPlayerDisconnect

Code: Select all

if(IsPlayerNPC(playerid))
        return 1;
EDIT: sa va asugurati ca in server.cfg aveti maxnpc 1 ( 1 find doar 1 bot pe server)
Daca intampinati probleme nu ezitati sa postati