[TuT] NPC - Botine

Započeo []Flynâ„¢, Januar 13, 2012, 02:28:40 PRE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.





Prvi Korak:

-Za pocetak skinite ovu FS: KLIK.
-Ta FS ce nam trebati kako bi mogli snimati kretanje NPC Botine
-Ubacite tu FS u folder "filterscripts" i predjite na drgui Korak.

To je to za Prvi Korak!!!





Drugi Korak:

-Pokrenite Server i udjite na njega.
-Logirajte se kao RconADMIN, /rcon login "sifra"
-Zatim kucajte /rcon loadfs npc_record (Loadamo FS kojom cemo snimati)
-Sada cemo ih snimati, dostupne komande su:


/ofrecord [Ime]
-Ovo cemo kucati kada je na nogama.


/onrecord [Ime]
-Ovo cemo kucati kada je u vozilu.


/stoprecord
-Ovo cemo kucati da zaustavimo snimanje Botine



To je to za Drugi Korak!!!




Treci Korak:

-Kada ste snimali kretanje NPCa, on ce biti sacuvan u folder "scriptfiles" kao .rec datoteka.
-Uzmite tu datoteku i prebacite je u npcmodes/recordings/
-Sada trebamo napraviti "filterScriptu" za tog bota.
-Otvorite Pawno idite na "new" i obrisite sve.
-Zatim dodajte ovako (AKO JE NA NOGAMA)


Kod (pacijent_) [Izaberi]
#define RECORDING "ImeBotine"
#define RECORDING_TYPE 2

#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


Kompajlaj te i sacuvajte je u "npcmodes" folder.




Cetvrti Korak:

-Sada prelazimo na GameMoDe.
-Otvorite vas GM.
-CTRL+F i ukucajte "public OnPlayerSpawn"
-Ispod toga dodajte sledece:


Kod (pacijent_) [Izaberi]
if(IsPlayerNPC(playerid))//Proverava da li je to NPC Botina
     {
          new npc_name[24];
          GetPlayerName(playerid,npc_name,sizeof(npc_name));
          if(!strcmp(npc_name,"ImeBotine",false))
          {
               SetPlayerSkin(playerid,268);//Stavlja botini skin
               ImeBotine = Create3DTextLabel("Seka_Aleksic",0x008080FF,30.0,40.0,50.0,40.0,0);//Ovde stavimo kordinate i sta ce da pise na 3DTextu
               Attach3DTextLabelToPlayer(ImeBotine, playerid, 0.0, 0.0, 0.0);//Kacimo 3DText na Botinu
  }
return 1;
}




-Sada stisnite CTRL+F i ukucajte "public OnGameModeInit"
-Ispod tog publica dodajte ovako:


Kod (pacijent_) [Izaberi]
ConnectNPC("ImeBotine","ImeBotine");//Connecta igraca, izbegava registraciju i login

-Sada jos samo da definiramo ime 3DTexta, gore pri vrhu gde su vam svi "new" dodajte:
Kod (pacijent_) [Izaberi]
new Text3D:ImeBotine;

To bi bilo to za sad... :)
Ako imate pitanja pitajte u temi.....

Moguce da ima gresaka jer sam na brzinu pisao.



TuTorial by joXy

lijepo,lijepo ;)

samo bi mozda trebao dodat kad lezi, npr. kad sjedi i tako to ;)

Citat: |W| Seagalâ,,¢ poslato Januar 13, 2012, 02:31:48 PRE PODNE
lijepo,lijepo ;)

samo bi mozda trebao dodat kad lezi, npr. kad sjedi i tako to ;)

Pa samo dodas animaciju, na primer:

if(!strcmp(npc_name,"ImeBotine",false))
{
        SetPlayerSkin(playerid,268);//Stavlja botini skin
        ImeBotine = Create3DTextLabel("Seka_Aleksic",0x008080FF,30.0,40.0,50.0,40.0,0);//Ovde stavimo kordinate i sta ce da pise na 3DTextu
        Attach3DTextLabelToPlayer(ImeBotine, playerid, 0.0, 0.0, 0.0);//Kacimo 3DText na Botinu
        ApplyAnimation(playerid,"PED","ANIMACIJU_KOJU_HOCES",4.1,1,1,1,1,1,1);
}

Extra je ...Svaka cast ! :D

Btw,kako lepo zvuci "botina" ! :D

Mr.Gagi

Za botova animacije idu 2 puta, a i pod OnPlayerStream treba da se stavi takodje. Tako nesto je meni i Gottiu Gigi objasnio da nebi bilo problema kada se igrac odalji da se animacija skloni, a i da bi radilo dobro.
Inace dobar tutorial

EDIT:
A da trudis se dosta za ovaj pdf moram sada i ja napisati nekakav dobar tutorial :)
Poslednja Izmena: Januar 13, 2012, 10:22:12 PRE PODNE od [TL:RP]Mr.Gagi

Napravim sve kak pise, nemam ni jedan warning ni error udjem u igru i botine nema :S

Mr.Gagi

Citat: Max_Mambo poslato Januar 13, 2012, 10:48:19 PRE PODNE
Napravim sve kak pise, nemam ni jedan warning ni error udjem u igru i botine nema :S
Promenio u server.cfg pod maxnpc broj na broj botova kolko imas? Ako nisi promeni

maxnpc mi je na 500 :S
i postavio sam koordinate i nema nicega :S
Poslednja Izmena: Januar 13, 2012, 10:57:31 PRE PODNE od Max_Mambo


echo Executing Server Config...
lanmode 1
rcon_password 1337
maxplayers 32
port 7777
hostname Balkan Country Life [HardCore RP] [0.3d]
gamemode0 rcrp 1
filterscripts youtube 1 npc_record 1
announce 0
plugins streamer
query 1
weburl www.sa-mp.com
maxnpc 500
onfoot_rate 30
incar_rate 30
weapon_rate 40
stream_distance 200.0
stream_rate 1000

Mr.Gagi

Citat: Max_Mambo poslato Januar 13, 2012, 11:05:50 PRE PODNE
echo Executing Server Config...
lanmode 1
rcon_password 1337
maxplayers 32
port 7777
hostname Balkan Country Life [HardCore RP] [0.3d]
gamemode0 rcrp 1
filterscripts youtube 1 npc_record 1
announce 0
plugins streamer
query 1
weburl www.sa-mp.com
maxnpc 500
onfoot_rate 30
incar_rate 30
weapon_rate 40
stream_distance 200.0
stream_rate 1000

server_log ne server.cfg
server_log mi daj da vidim da li ti pise da se konektuje da vidim sta se desava da bih znao sta je problem
A i kod callback-ova koji se pozivaju na nesto za igraca dodaj
if(IsPlayerNPC(playerid)) return 1;

nece mi paste server log, al pise ugl [10:46:17] [npc:join] botich has joined the server (1:127.0.0.1)
[10:46:17] [npc:part] botich has left the server (1:2)
[10:46:19] Max_Mambo has logged in.

Mr.Gagi

Citat: Max_Mambo poslato Januar 13, 2012, 11:32:43 PRE PODNE
nece mi paste server log, al pise ugl [10:46:17] [npc:join] botich has joined the server (1:127.0.0.1)
[10:46:17] [npc:part] botich has left the server (1:2)
[10:46:19] Max_Mambo has logged in.

Znaci:
CitatA i kod callback-ova koji se pozivaju na nesto za igraca dodaj
if(IsPlayerNPC(playerid)) return 1;
Stavljas npr pod: OnPlayerConnect,OnPlayerRequestClass...


Mr.Gagi

Citat: Max_Mambo poslato Januar 13, 2012, 11:43:08 PRE PODNE
to stavim pod oboje?
Da stavis pod oboje i ako treba pod jos neki callback koji ce traziti nesto od igraca, a bot to nece moci uraditi. Ta dva ce pomoci da preskoci registraciju (trebalo bi)