Přejít na obsah

Jak vytvořit NPC - překlad ze SA-MP fóra [*]



  • Tohle téma je uzamčeno Toto téma je uzamčeno
311 odpovědí

#1
StarsCream_Cze

StarsCream_Cze

    StarsCream_Cze

  • Uživatel
  • Příspěvků: 914

Jak vytvořit NPC - překlad ze SA-MP fóra

Obtížnost: award_star_gold_2.pngaward_star_silver_2.pngaward_star_silver_2.pngaward_star_silver_2.pngaward_star_silver_2.png



Překlad a úprava: StarsCream
Původní autor: kc
Link na původni topic: http://forum.sa-mp.c...?topic=119947.0

Na tuto věc se bude ptát hodně lidí, takže kc udělal TUT, jak pracovat s NPC, tedy neehratelnými postavami, nebo-li také "boti".

Obsah
1) Nahrávka pohybu NPC
2) Trovba scriptu
3) Import do módu


1) Nahrávka pohybu NPC
Nejdříve potřebujeme zapsat pohyb a všechno okolo toho pro NPC. K tomu slouží nahrávka, která se pak přehrává v postavě NPC.
   Spusťte SA-MP 0.3 server s jakýmkoli módem.
   Přihlašte se pod rcon. (Napište "/rcon login " ) a nahrajte filterscript npc_record (Napište "/rcon loadfs npc_record" )
   Po úspěšném nahrání npc_record nás zajímají 3 základní příkazy.
       /vrecord - Začíná nahrávat vaše pohyby a akce vozidla, ve kterém sedíte do souboru jmeno_souboru.
       /ofrecord - Začíná nahrávat vaše pohyby postavy pěšky do souboru jmeno_souboru.
       /stoprecord - Ukončuje jakékoli nahrávání
   
   V tomto tutorialu programujeme bota, který řídí auto, takže jděte do vozidla a napište /vrecord mujbot (Pzn: musíte být pod RCONem) pro začátek nahrávání.
   Ujedte trasu, kterou má bot vykonávat a pak napiště /stoprecord.
   Ukončete hru a jděte do složky ScriptFiles ve vašem SA-MP 0.3 serveru, tam by měl být soubor mujbot.rec. Přesuňte jej do /npcmodes/recordings/še>
   Hotovo? Super, máte nahrané pohyby NPC a umístěné je v požadované složce.

2) Tvorba scriptu
Pokračujeme ve scriptu:
   Ve složce npcmodes máte spoustu příkladů jak na boty, tyto "mini" scripty určují chování NPC.
   takže pojďme si vytvořit další.
       Zapněte pawno, dejte nový soubor a přepiště všechen obsah tímto   

#define RECORDING "mujbot" //Název souboru, který jsme nahrávali bez přípony .rec
#define RECORDING_TYPE 1 //1 pokud je v autě, pěšky je to 2

#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

       Toto může vaypadat nesrozumitelně, proto to vezmu po řádcích:

#define RECORDING "mujbot" //Název souboru, který jsme nahrávali bez přípony .rec
       Komentář již napovídá, že se jedná o jméno souboru, který má přehrávat, akorát bez přípony .rec. takže pokud se váš soubor mujbot jmenuje alfonz, musíte mít v /npcmodes/recordings/ soubor alfonz.rec
Pak by to vypadalo takto:
#define RECORDING "alfonz" //Název souboru, který jsme nahrávali bez přípony .rec

#define RECORDING_TYPE 1 //1 pokud je v autě, pěšky je to 2
       Jak opět naznačuje komentář, jde o typ přehrávání. Pokud je tvůj NPC ve vozidle, je tam 1, pokud je pěšky 2.

#include 
       Základní include pro boty.

public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
       OnRecordingPlaybackEnd je callback forwardovaný v NPC includu. Tento řádek říká, že jakmile nahrávka končí, začíná opět odznova, takže jee to nekonečná smyčka.

public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);
       Toto je zase callback, také z includu NPC. Způsobuje, že se začne přehrávat, když bot sedne do auta.

public OnNPCExitVehicle() StopRecordingPlayback();
       A zase další callback opět z includu NPC. Tento zastavuje přehrávání, kdyykoli je jakkoli bot vyndán z auta.

public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
       A zase další callback opět z includu NPC. Tento spustí nahrávku NPC pokud se spawne a NPC má byt pěšího typu a ne v autě.

       Jak vidíte, jee to velmi jednoduché. Nyní uložte vás NPC "mini" script jako "mujbot.pwn" do /npcmodes/še> a zkompilujte jej.
      Pokud máte hotovo, přesuneme se k dalšímu, poslednímu kroku tohoto tutorialu, pokud vám to vyhodilo errror, ujistěte se, že máte aktualizované includy u pawna na ty u SA-MP 0.3

3) Import do módu
Poslední krok...
   Takže, vytvořili jsme "mini" script pro kontrolu NPC postavy, ale teď potřebujeme bota nahrát na server. Použijeme k mód/filterscipt.
    zavřete "mini" script, a a otevřete váš mód, nebo filterscript v pawnu.
   Je čas, zasvětit vás do funkce ConnectNPC.
Jak už název napovídá, jde o připojení NPC na server.
       Podívejme se na parametry funkce a co znamenají...
ConnectNPC("Michal","mujbot");
       "Michal" - První parametr je jméno bota. Takto rozeznáte různé boty navzájem od sebe.
       "mujbot" - Toto je jméno souboru (bez přípony) našeho dříve vytvořeného "mini" scriptu.
   Nyní známe parametry funkce ConnectNPC. Připojme vašeho prvního bota!
   S vaší novou znalostí funkce ConnectNPC, zkusíme vytvořit NPC připojení při loadu módu/filterscriptu.
   
   Vyzkoušeli? OK, dal jsem to do OnGameModeInit...
public OnGameModeInit()
{
   print("my gamemode");
   ConnectNPC("Michal","mujbot");
   return 1;
}
   
   Nyní, pokud sme vytvářeli bota, co řídí vozidlo, tak mu ho taky musíme dát.
   Takže script upravíme takto:
new AutoBota; //Global variable!
public OnGameModeInit()
{
   print("my gamemode");
   ConnectNPC("Michal","mujbot");
   AutoBota = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);
   return 1;
}
   Pzn: je jedno, kde auto vytvoříte, při začátku přehrávání bota se auto přesune na požadovanou pozici.

   ještě poslední věc, než začnete testovat svého bota. Musíme ho nějak dát do auta.
   Já používám OnPlayerSpawn...
public OnPlayerSpawn(playerid)
{
   if(IsPlayerNPC(playerid)) //Kontrola, pokud je spawnutý NPC.
   {
       new npcname[MAX_PLAYER_NAME];
       GetPlayerName(playerid, npcname, sizeof(npcname)); //Zjišťuje jméno NPC.
       if(!strcmp(npcname, "Michal", true)) //Zjišťuje, jestli je jméno bota Michal
       {
           PutPlayerInVehicle(playerid, AutoBota, 0); //Strčí NPC do auta, které sme vytvořili
       }
   }
   return 1;
}

   Nyní zkompilujte mód/filterscript a hurá na server.
   S trochou štěstí uvidíte bota jezdit v autě přesně tak, jak jste nastavili.
   Gratuluju! Vytvořili jste svého 1. robota
   Nefunguje něco? Napište sem, a společně to opravíme
 

Návod upraven tak, aby odpovídal šabloně pro "Nové návody"

 

[success='Návod označen jako platný']Ten to návod byl označen jako platný.Návod může být kdykoli označen jako nevhodný či neplatný[/success]


  • 0


mtrsign.png


#2
Mischino19

Mischino19

    Maccer

  • Uživatel
  • Příspěvků: 1 953
hmm jak som nato pozrel tak to hned bolo pekne xD neprecital som to cele xD ae myslym ze to je bomba xDD
  • 0
Moj GM

AmazingX Stunt-Drift/Race-DM

Web:http://www.axstunt.tk

DOWNLOAD v2
http://solidfiles.com/d/f0d91/ //Verzia 2 na download,je tam podrobné info ako na admin script,vip script a iné... prečítajte ReadMe_SK
http://solidfiles.com/d/7095/ //opravené


INFO



Vložený obrázek

Vložený obrázek

#3
Marwin37

Marwin37

    Maria Latore

  • Uživatel
  • Příspěvků: 2 590
hezke vyuziju na osfada
a proc si tam misto alfonz nedal Osfald :d :d
  • 0

#4
7.Host

7.Host

    Old Reece

  • Uživatel
  • Příspěvků: 1 105
super tut akorát by mě zajímalo jak přidat víc botů? Ještě jsem teda nezkoušel ani jednoho no ale tak do budoucna :d
  • 0
Vložený obrázek

#5
StarsCream_Cze

StarsCream_Cze

    StarsCream_Cze

  • Uživatel
  • Příspěvků: 914
pojmenuješ je jinak a uděláš novou nahrácku, nebo prostě timer a jiné jméno na jednu nahrávku :d
  • 0

mtrsign.png


#6
ATomas

ATomas

    RZE for life, SP for ever !

  • Ověřený uživatel
  • Příspěvků: 2 819
  •   
dobre napsany este sem to neskousel ale mam dotaz s tim spawnem GetPlayerName(playerid to zjistuje jmeno hrace a ne boti co kdyz na serveru bude hrac jmenem Michal a bot se taky bude jmenoval michal?
este dotaz ja se na sa-mpforum moc nevyznam kde sezenu sa-mp 0.3 a pawno 0.3 nebo aspon beta proste neco aby sem ty "boti" mohl vyskouset docela mne to zajima XD
potom este dotaz kdyz nahrajes jizdu toho bota a treba do nej narazis tak ho projedes nebo ti spadne server neco co se stane?
  • 0
play.superparba.eu:7777
www.superparba.eu
pawno.cz kazí dva typy lidí:
1. "Najdi do to na googlu/wiki" <- sakra tak od toho je tu ta sekce help ne ? Protože to asi nenašel / nepochopil / neví
2. Ovce. <- Člověk by se mohl smát kdyby to nebylo tak smutné jak tu někdo zavedl termín kid/děcko a všichni ho začali bezhlavě používat na každého, kdo se jenom opováží na něco zeptat nebo projevit svůj nazor.

#7
AvestX

AvestX

    Claude Speed

  • Uživatel
  • Příspěvků: 3 248
ATomasi už sem to skoušel nějáký LVDM nebo jak to je já se moc v těch zahraničních modech neviznam ale vim že jeden NPC kdyš sem do něj narazil jel rychlejc a pak odjetěl jako by ten NPC měl S0Beit :d :lol: .
  • 0

#8
ATomas

ATomas

    RZE for life, SP for ever !

  • Ověřený uživatel
  • Příspěvků: 2 819
  •   
aha diky a kdyz uz si to skousel kde sezenu pawno+ windows ci linux server 0.3(beta) klienta uz mam :d
mimochodem ty NPC vypadaji jako hraci zejo to az do nic hnekdo narazi tak budou povazovani za cheatery :d :d
  • 0
play.superparba.eu:7777
www.superparba.eu
pawno.cz kazí dva typy lidí:
1. "Najdi do to na googlu/wiki" <- sakra tak od toho je tu ta sekce help ne ? Protože to asi nenašel / nepochopil / neví
2. Ovce. <- Člověk by se mohl smát kdyby to nebylo tak smutné jak tu někdo zavedl termín kid/děcko a všichni ho začali bezhlavě používat na každého, kdo se jenom opováží na něco zeptat nebo projevit svůj nazor.

#9
AvestX

AvestX

    Claude Speed

  • Uživatel
  • Příspěvků: 3 248
Je to možný že je budou považovat za cheatery xD
Server seženeš na SA-MP Forku nebo jestli chceš pošlu ti ho xD...
// - Edit: Jako cheateři mno skoušel si někdy dát v normal GTA SA cheat rypazha (nebo jak...) tak tak něják že jen odletí prostě něco jako letadlo ale jinak to jezdilo jako vozembouch..... :d
  • 0

#10
Marwin37

Marwin37

    Maria Latore

  • Uživatel
  • Příspěvků: 2 590
Avest podivej se jestli nekdo nahraje bota a bude cheatovat tak bude teoreticky i bot cheatovat --> takhle sem to pochopil :d
  • 0

#11
AvestX

AvestX

    Claude Speed

  • Uživatel
  • Příspěvků: 3 248
Nehrál byl to jen Hamachi server..... byl sem tam z kámošem ten on nebyl xD
  • 0

#12
StarsCream_Cze

StarsCream_Cze

    StarsCream_Cze

  • Uživatel
  • Příspěvků: 914
Michal byl jen příkaldový název bota, klidně se může jmenovat T1000_Arnie.
A je sranda, když si nahrajete let letadla a pak bota posadíte do auta....pak je to cheater. Jinak když jsem chtěl mou policejní hlídku zastavit, tak v klidu proejl 10 erampami a tank mi rozbil :d
  • 0

mtrsign.png


#13
ATomas

ATomas

    RZE for life, SP for ever !

  • Ověřený uživatel
  • Příspěvků: 2 819
  •   

Je to možný že je budou považovat za cheatery xD
Server seženeš na SA-MP Forku nebo jestli chceš pošlu ti ho xD...
// - Edit: Jako cheateři mno skoušel si někdy dát v normal GTA SA cheat rypazha (nebo jak...) tak tak něják že jen odletí prostě něco jako letadlo ale jinak to jezdilo jako vozembouch..... :d

cau no na sa-mp forum mam nejaky ucet neznam heslo a nejde se mi regnou tak jestli by si mi to pls mohl poslat?
ICQ
Spoiler

nejsem tam moc online protoze kdyz mam zaply icq tak mam co delat abych si zahral gta sa njn vista vsak vis :d kdyz tak napis ze mne cekas nebo tak neco rad by sem si s tim botem dal zavod :d
  • 0
play.superparba.eu:7777
www.superparba.eu
pawno.cz kazí dva typy lidí:
1. "Najdi do to na googlu/wiki" <- sakra tak od toho je tu ta sekce help ne ? Protože to asi nenašel / nepochopil / neví
2. Ovce. <- Člověk by se mohl smát kdyby to nebylo tak smutné jak tu někdo zavedl termín kid/děcko a všichni ho začali bezhlavě používat na každého, kdo se jenom opováží na něco zeptat nebo projevit svůj nazor.

#14
Marwin37

Marwin37

    Maria Latore

  • Uživatel
  • Příspěvků: 2 590
Lidi skousel sem to asi 30x ale nepodarilo se mi rozjet chodícího Bota spawne se a stojí na místě a kdyz do neho naburam motorkou tak se posune ale za par sekund o5 vrati.
muzete mi helpnut
  • 0

#15
ATomas

ATomas

    RZE for life, SP for ever !

  • Ověřený uživatel
  • Příspěvků: 2 819
  •   
njn a ja sem porad nesehnal pawno0.3 (beta) a server linux nebo windows ale aspon klienta mam :d
  • 0
play.superparba.eu:7777
www.superparba.eu
pawno.cz kazí dva typy lidí:
1. "Najdi do to na googlu/wiki" <- sakra tak od toho je tu ta sekce help ne ? Protože to asi nenašel / nepochopil / neví
2. Ovce. <- Člověk by se mohl smát kdyby to nebylo tak smutné jak tu někdo zavedl termín kid/děcko a všichni ho začali bezhlavě používat na každého, kdo se jenom opováží na něco zeptat nebo projevit svůj nazor.

#16
癌癌癌

癌癌癌

    ちんこ

  • Uživatel
  • Příspěvků: 4 265

njn a ja sem porad nesehnal pawno0.3 (beta) a server linux nebo windows ale aspon klienta mam :d





search.php --> Includes a ono ti to najde :d
  • 0
"We go about our daily lives understanding almost nothing of the world. We give little thought to the machinery that generates the sunlight that makes life possible, to the gravity that glues us to an Earth that would otherwise send us spinning off into space, or to the atoms of which we are made and on whose stability we fundamentally depend. Except for children (who don't know enough not to ask the important questions), few of us spend much time wondering why nature is the way it is; where the cosmos came from, or whether it was always here; if time will one day flow backward and effects precede causes; or whether there are ultimate limits to what humans can know."
~ Carl Sagan (From an introduction to "A Brief History of Time" by Stephen Hawking).

#17
ATomas

ATomas

    RZE for life, SP for ever !

  • Ověřený uživatel
  • Příspěvků: 2 819
  •   
njn sem hledal vsude a nic ani seznam ani google ani yaho ani ty japonci to nemaj a to uz je co rict :d
  • 0
play.superparba.eu:7777
www.superparba.eu
pawno.cz kazí dva typy lidí:
1. "Najdi do to na googlu/wiki" <- sakra tak od toho je tu ta sekce help ne ? Protože to asi nenašel / nepochopil / neví
2. Ovce. <- Člověk by se mohl smát kdyby to nebylo tak smutné jak tu někdo zavedl termín kid/děcko a všichni ho začali bezhlavě používat na každého, kdo se jenom opováží na něco zeptat nebo projevit svůj nazor.

#18
Marwin37

Marwin37

    Maria Latore

  • Uživatel
  • Příspěvků: 2 590
možte mi helpnut ci tocit film
  • 0

#19
Jean

Jean

    Marc Wayne "B-Dup"

  • Uživatel
  • Příspěvků: 385
Velmi užitečný TuT, rozhodně vyzkouším a doufám že nakonec uvidím svého prvního bota dělat první krůčky xD

Zajímalo by mne, kdyz nahravam toho bota tak:
1. Jestly k tomu potrebuju ten filterscript nekde stahnout
2. Kdyz uz nahravam bota, tak kdyz se nekam portnu jestly on pak udela to same x)
  • 0
Po dvou letech opět na pawno.cz, mam nápad na dobrý mód ted už jen abych si vzpoměl jak jsem to před lety dělal...

Spoiler

Vložený obrázek


#20
癌癌癌

癌癌癌

    ちんこ

  • Uživatel
  • Příspěvků: 4 265

Lidi skousel sem to asi 30x ale nepodarilo se mi rozjet chodícího Bota spawne se a stojí na místě a kdyz do neho naburam motorkou tak se posune ale za par sekund o5 vrati.
muzete mi helpnut



a ma chodit nebo jezdit??

... zkus to znova ... kdyžtak to doma zkusim a dam ti vedet.. zatim sem delal jen bus :d a s cheatem :DD on jel tak funny rychle :d
  • 0
"We go about our daily lives understanding almost nothing of the world. We give little thought to the machinery that generates the sunlight that makes life possible, to the gravity that glues us to an Earth that would otherwise send us spinning off into space, or to the atoms of which we are made and on whose stability we fundamentally depend. Except for children (who don't know enough not to ask the important questions), few of us spend much time wondering why nature is the way it is; where the cosmos came from, or whether it was always here; if time will one day flow backward and effects precede causes; or whether there are ultimate limits to what humans can know."
~ Carl Sagan (From an introduction to "A Brief History of Time" by Stephen Hawking).





Také označeno jedním nebo více klíčovými slovy: Návod

0 uživatelů si prohlíží toto fórum

0 uživatelů, 0 návštěvníků 0 anonymních uživatelů

© 2015 IPS, Inc.

Zajímat Vás mohou ještě aktuální zprávy. sleviště, slevy dnes Herbalife je skvělou cestou pro dobré zdraví. Je libo dětský web?