Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4220 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

  • ,
  • Parašė po 1 mėnesio...

Sveikas, kiek norėtai už pasakymą kodėl man serveryje nėra NPC BOTŪ NORS PAGAL PAMOKĄ DARIAU VA JEI REIK:

Taigi čia Pamoka vieno žmogaus pagal ją dariau bet nėra NPC BOTO nesuprantu kažka jaučiu ne taip padariau bet nemetė erorū nieko taigi gal radote kokiū klaidū ar galite padėt skype: djno0b 0-nulis pamoka::

NPC bot'as

-

netikras žaidėjas. Jūs parašote jo veiksmus, o jis tai atlieka serveryje. ( Pavyzdžiui.: važinėja taxi, vaikšto po miestą ir panašiai. )

įrašome NPC boto veiksmus

Visų pirma mums reikia įrašyti jo veiksmus. Įsijungiame serverį ir prisijungiame kaip rcon adminas. ( /rcon login slaptažodis ). Tada rašome /rcon loadfs npc_record. Viskas. Lyg ir pasiruošėme įrašinėjimui, tik dabar truputį plačiau apie komandas...

* /vrecord pavadinimas - įrašinėja veiksmus, kurie atliekami sėdint transporte.

* /ofrecord pavadinimas - įrašinėja veiksmus, kurie atliekami stovint ant kojų.

* /stoprecord - sustabdo įrašinėjimą.

Tarkim, kad aš pasirinkau, kad mano NPC bot'as važinėtų po miestą. Taigi, įlipu i automobilį ir parašau /vrecord TaksiVairuotojas.

Pavažinėsiu po miestą ir kai man užtenka maršruto, rašau /stoprecord.

Viskas. Uždarome serverį.

Aplanke scriptfiles/ mano atveju bus failas TaksiVairuotojas.rec.

Jį reikia perkelti į <Jūsų serveris>/npcmodes/recordings/.

Kontroliuojame NPC botą

Ko gero pastebėjote, kad npcmodes kataloge yra daug įrašų. Tai yra "mini" skriptukai kurie galbūt padės Jums tvarkyti savo NPC botus.

Na, o mes darome įviešis "žaidiant?".

Atsidarome pawno programą, spaudžiame File, o tada New.

Visą šš ten ištriname, ir įklijuojame kodą, esantį apačioje..

#define RECORDING "TaksiVairuotojas" //Jūsų failo pavadinimas.

#define RECORDING_TYPE 1 //1 reiškia, kad veiksmas vyko transporte, o 2 reiškia, kad veiksmas buvo ant kojų.

#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

Dabar paaiškinsiu kiekvieną funkciją...

---------------------------------------------------------------------

#define RECORDING "TaksiVairuotojas" //Jūsų failo pavadinimas.

Kaip ir komentaras sako, kad čia reikia įrašyti mūsų failo pavadinimą. Pavadinimas turi būti be galūnės. Mūsų failas buvoTaksiVairuotojas.rec, taigi mes įrašome "TaksiVairuotojas"

---------------------------------------------------------------------

#define RECORDING_TYPE 1 //1 reiškia, kad veiksmas vyko transporte, o 2 reiškia, kad veiksmas buvo ant kojų.

Ką daro ši funkcija, ko gero supratote iš komentaro...

clear.png Jeigu Jūs įrašinėjote veiksmą ant kojų, įrašome 2, o jeigu transporte - įrašome 1. Mano atveju buvom Taksi automobilyje ( transporte ), taigi rašome 1.

---------------------------------------------------------------------

#include

SA-MP NPC botų funkcijos.

---------------------------------------------------------------------

public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);

OnRecordingPlaybackEnd callback'as yra NPC botų funkcijose, kuri priklauso a_npc includ'ui. Ši funkcija mūsų NPC boto veiksmus kartoja. Kai mūsų įrašas baigiasi, ši funkcija tą įraša paleidžia iš naujo. Pasaka be galo... :]

---------------------------------------------------------------------

public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);

Dar viena funkcija, priklausanti NPC botų funkcijoms. Ji pradeda įrašinėti, kai NPC botas atsisėda į transportą.

---------------------------------------------------------------------

public OnNPCExitVehicle() StopRecordingPlayback();

Ir dar viena funkcija. Ji nutraukia įrašinėjimą, jeigu NPC botas dėl kaškokios priežasties išlipa iš transporto.

---------------------------------------------------------------------

public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);

Ši funkcija neišsiskiria iš kitų... Ji taip pat NPC botų funkcijose yra. Ji pradeda rodyti mūsų įrašytus veiksmus, kai NPC botas būna paleidžiamas serveryje.

---------------------------------------------------------------------

Prijungiame NPC botą į serverą

Mes turime "mini" skriptą. Taip pat turime ir savo NPC botą. Dabar mums reikia savo NPC bot'ą įkelti i GameMod'ą ar FilterScript'?.

ConnectNPC funkcija padės mums tai padaryti.

Panagrinėkime tai truputį...

Viskas turi atrodyti:

ConnectNPC("Martin_M","TaksiVairuotojas");

Dabar paaiškinsiu.

Martin_M - mūsų NPC boto vardas. Taip jūs galėsite prijungti daugybė NPC botų. Svarbiausia, kad būtų skirtingi vardai.

TaksiVairuotojas - mūsų įrašo pavadinimas ( be .rec galųnės ).

Ką gi... Dabar pamėginkime padaryti mūsų NPC boto prisijungimą į serverį, kai GameMod'as ar FilterScript'as užkraunamas.

Jeigu jungiate NPC botą GameMod'e, tada rašome...

public OnGameModeInit()

{

print("NPC botas GameMod'e prijungtas");

ConnectNPC("Martin_M","TaksiVairuotojas");

return 1;

}

O, jeigu jungiame į FilterScript'ą, rašome..

public OnFilterScriptInit()

{

print("NPC botas FilterScript'e prijungtas");

ConnectNPC("Martin_M","TaksiVairuotojas");

return 1;

}

---------------------------------------------------------------------

Ką gi. Mano NPC bot'as važinėjo su Taksi. Tai man reikia sukurti automobilį, kuriuo jis važinėjo.

GameMod'o ar FilterScript'o viršuje, rašome...

new TaksiMasina;

Ir dabar OnGameModeInit turėtų atrodyti šitaip...

public OnGameModeInit()

{

print("NPC botas GameMod'e prijungtas");

ConnectNPC("Martin_M","TaksiVairuotojas");

TaksiMasina = CreateVehicle(420, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);

return 1;

}

O jeigu, NPC bot'ą kuriate FilterScript'e, tada turi atrodyti šitaip..

FilterScript'o viršuje:

new TaksiMasina;

O OnFilterScriptInit turi atrodyti šitaip...

public OnFilterScriptInit()

{

print("NPC botas FilterScript'e prijungtas");

ConnectNPC("Martin_M","TaksiVairuotojas");

MyFirstNPCVehicle = CreateVehicle(420, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);

return 1;

}

DĖMESIO!! Jeigu Jūsų NPC boto veiksmai buvo ant kojų, o ne transporte, šitą dalį praleiskite.

PASTABA: Transpoto vieta nėra svarbi. Vistiek transportas būna nuteleportuotas NPC botui, kai įrašas pradedamas rodyti.

---------------------------------------------------------------------

Ir liko paskutinis žingsnis, kad galėtumėme NPC bot'ą pamatyti žaidime. Tai - pasodinti NPC bot'ą į jam sukurtą transportą.

Tai darome, naudodamiesi OnPlayerSpawn...

PASTABA: Jeigu Jūsų NPC boto veiksmai buvo ant kojų, o ne transporte, šitą dalį praleiskite.

OnPlayerSpawn turi atrodyti šitaip...

public OnPlayerSpawn(playerid)

{

if(IsPlayerNPC(playerid)) //Tikrina, ar žaidėjas paleistas kaip NPC botas.

{

new npcname[MAX_PLAYER_NAME];

GetPlayerName(playerid, npcname, sizeof(npcname)); //Gauna NPC boto vardą.

if(!strcmp(npcname, "Martin_M", true)) //Tikrina, ar NPC boto vardas Martin_M

{

PutPlayerInVehicle(playerid, TaksiMasina, 0); //Pasodina NPC botą į jam sukurtą transportą.

}

return 1;

}

//Visa kita paprastam žaidėjui.

return 1;

}

Jeigu mes norime pridėti dar vieną NPC botą, tai nėra sunku.

clear.pngTiesiog mums reikia pridėti

if(!strcmp(npcname, "KitasNPCvardas", true))

{

PutPlayerInVehicle(playerid, KitaMasina, 0);

return 1;

}

Taigi, 2 NPC botams, viskas turi atrodyti šitaip..

public OnPlayerSpawn(playerid)

{

if(IsPlayerNPC(playerid)) //Tikrina, ar žaidėjas paleistas kaip NPC botas.

{

new npcname[MAX_PLAYER_NAME];

GetPlayerName(playerid, npcname, sizeof(npcname)); //Gauna NPC boto vardą.

if(!strcmp(npcname, "Martin_M", true)) //Tikrina, ar NPC boto vardas Martin_M

{

PutPlayerInVehicle(playerid, TaksiMasina, 0); //Pasodina NPC botą į jam sukurtą transportą.

}

if(!strcmp(npcname, "KitasNPCvardas", true))

{

PutPlayerInVehicle(playerid, KitaMasina, 0);

return 1;

}

return 1;

}

//Visa kita paprastam žaidėjui.

return 1;

}

Viskas. Dabar sukompiliuokite GameMod'ą ar FilterScript'ą paspausdami F5 ir pirmyn tikrinti NPC boto. Jis važinės taip, kaip Jūs jį įrašėte. Sveikinu! Jūs sukūrėte savo NPC botą! [SVARBU]: Pamoką kūriau ne aš, o Martin_M.

galėtum padėt? rašyk čia.

Sveikas, kiek norėtai už pasakymą kodėl man serveryje nėra NPC BOTŪ NORS PAGAL PAMOKĄ DARIAU VA JEI REIK:

Taigi čia Pamoka vieno žmogaus pagal ją dariau bet nėra NPC BOTO nesuprantu kažka jaučiu ne taip padariau bet nemetė erorū nieko taigi gal radote kokiū klaidū ar galite padėt skype: djno0b 0-nulis pamoka::

NPC bot'as

-

netikras žaidėjas. Jūs parašote jo veiksmus, o jis tai atlieka serveryje. ( Pavyzdžiui.: važinėja taxi, vaikšto po miestą ir panašiai. )

įrašome NPC boto veiksmus

Visų pirma mums reikia įrašyti jo veiksmus. Įsijungiame serverį ir prisijungiame kaip rcon adminas. ( /rcon login slaptažodis ). Tada rašome /rcon loadfs npc_record. Viskas. Lyg ir pasiruošėme įrašinėjimui, tik dabar truputį plačiau apie komandas...

* /vrecord pavadinimas - įrašinėja veiksmus, kurie atliekami sėdint transporte.

* /ofrecord pavadinimas - įrašinėja veiksmus, kurie atliekami stovint ant kojų.

* /stoprecord - sustabdo įrašinėjimą.

Tarkim, kad aš pasirinkau, kad mano NPC bot'as važinėtų po miestą. Taigi, įlipu i automobilį ir parašau /vrecord TaksiVairuotojas.

Pavažinėsiu po miestą ir kai man užtenka maršruto, rašau /stoprecord.

Viskas. Uždarome serverį.

Aplanke scriptfiles/ mano atveju bus failas TaksiVairuotojas.rec.

Jį reikia perkelti į <Jūsų serveris>/npcmodes/recordings/.

Kontroliuojame NPC botą

Ko gero pastebėjote, kad npcmodes kataloge yra daug įrašų. Tai yra "mini" skriptukai kurie galbūt padės Jums tvarkyti savo NPC botus.

Na, o mes darome įviešis "žaidiant?".

Atsidarome pawno programą, spaudžiame File, o tada New.

Visą šš ten ištriname, ir įklijuojame kodą, esantį apačioje..

#define RECORDING "TaksiVairuotojas" //Jūsų failo pavadinimas.

#define RECORDING_TYPE 1 //1 reiškia, kad veiksmas vyko transporte, o 2 reiškia, kad veiksmas buvo ant kojų.

#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

Dabar paaiškinsiu kiekvieną funkciją...

---------------------------------------------------------------------

#define RECORDING "TaksiVairuotojas" //Jūsų failo pavadinimas.

Kaip ir komentaras sako, kad čia reikia įrašyti mūsų failo pavadinimą. Pavadinimas turi būti be galūnės. Mūsų failas buvoTaksiVairuotojas.rec, taigi mes įrašome "TaksiVairuotojas"

---------------------------------------------------------------------

#define RECORDING_TYPE 1 //1 reiškia, kad veiksmas vyko transporte, o 2 reiškia, kad veiksmas buvo ant kojų.

Ką daro ši funkcija, ko gero supratote iš komentaro... clear.png Jeigu Jūs įrašinėjote veiksmą ant kojų, įrašome 2, o jeigu transporte - įrašome 1. Mano atveju buvom Taksi automobilyje ( transporte ), taigi rašome 1.

---------------------------------------------------------------------

#include

SA-MP NPC botų funkcijos.

---------------------------------------------------------------------

public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);

OnRecordingPlaybackEnd callback'as yra NPC botų funkcijose, kuri priklauso a_npc includ'ui. Ši funkcija mūsų NPC boto veiksmus kartoja. Kai mūsų įrašas baigiasi, ši funkcija tą įraša paleidžia iš naujo. Pasaka be galo... :]

---------------------------------------------------------------------

public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);

Dar viena funkcija, priklausanti NPC botų funkcijoms. Ji pradeda įrašinėti, kai NPC botas atsisėda į transportą.

---------------------------------------------------------------------

public OnNPCExitVehicle() StopRecordingPlayback();

Ir dar viena funkcija. Ji nutraukia įrašinėjimą, jeigu NPC botas dėl kaškokios priežasties išlipa iš transporto.

---------------------------------------------------------------------

public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);

Ši funkcija neišsiskiria iš kitų... Ji taip pat NPC botų funkcijose yra. Ji pradeda rodyti mūsų įrašytus veiksmus, kai NPC botas būna paleidžiamas serveryje.

---------------------------------------------------------------------

Prijungiame NPC botą į serverą

Mes turime "mini" skriptą. Taip pat turime ir savo NPC botą. Dabar mums reikia savo NPC bot'ą įkelti i GameMod'ą ar FilterScript'?.

ConnectNPC funkcija padės mums tai padaryti.

Panagrinėkime tai truputį...

Viskas turi atrodyti:

ConnectNPC("Martin_M","TaksiVairuotojas");

Dabar paaiškinsiu.

Martin_M - mūsų NPC boto vardas. Taip jūs galėsite prijungti daugybė NPC botų. Svarbiausia, kad būtų skirtingi vardai.

TaksiVairuotojas - mūsų įrašo pavadinimas ( be .rec galųnės ).

Ką gi... Dabar pamėginkime padaryti mūsų NPC boto prisijungimą į serverį, kai GameMod'as ar FilterScript'as užkraunamas.

Jeigu jungiate NPC botą GameMod'e, tada rašome...

public OnGameModeInit()

{

print("NPC botas GameMod'e prijungtas");

ConnectNPC("Martin_M","TaksiVairuotojas");

return 1;

}

O, jeigu jungiame į FilterScript'ą, rašome..

public OnFilterScriptInit()

{

print("NPC botas FilterScript'e prijungtas");

ConnectNPC("Martin_M","TaksiVairuotojas");

return 1;

}

---------------------------------------------------------------------

Ką gi. Mano NPC bot'as važinėjo su Taksi. Tai man reikia sukurti automobilį, kuriuo jis važinėjo.

GameMod'o ar FilterScript'o viršuje, rašome...

new TaksiMasina;

Ir dabar OnGameModeInit turėtų atrodyti šitaip...

public OnGameModeInit()

{

print("NPC botas GameMod'e prijungtas");

ConnectNPC("Martin_M","TaksiVairuotojas");

TaksiMasina = CreateVehicle(420, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);

return 1;

}

O jeigu, NPC bot'ą kuriate FilterScript'e, tada turi atrodyti šitaip..

FilterScript'o viršuje:

new TaksiMasina;

O OnFilterScriptInit turi atrodyti šitaip...

public OnFilterScriptInit()

{

print("NPC botas FilterScript'e prijungtas");

ConnectNPC("Martin_M","TaksiVairuotojas");

MyFirstNPCVehicle = CreateVehicle(420, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);

return 1;

}

DĖMESIO!! Jeigu Jūsų NPC boto veiksmai buvo ant kojų, o ne transporte, šitą dalį praleiskite.

PASTABA: Transpoto vieta nėra svarbi. Vistiek transportas būna nuteleportuotas NPC botui, kai įrašas pradedamas rodyti.

---------------------------------------------------------------------

Ir liko paskutinis žingsnis, kad galėtumėme NPC bot'ą pamatyti žaidime. Tai - pasodinti NPC bot'ą į jam sukurtą transportą.

Tai darome, naudodamiesi OnPlayerSpawn...

PASTABA: Jeigu Jūsų NPC boto veiksmai buvo ant kojų, o ne transporte, šitą dalį praleiskite.

OnPlayerSpawn turi atrodyti šitaip...

public OnPlayerSpawn(playerid)

{

if(IsPlayerNPC(playerid)) //Tikrina, ar žaidėjas paleistas kaip NPC botas.

{

new npcname[MAX_PLAYER_NAME];

GetPlayerName(playerid, npcname, sizeof(npcname)); //Gauna NPC boto vardą.

if(!strcmp(npcname, "Martin_M", true)) //Tikrina, ar NPC boto vardas Martin_M

{

PutPlayerInVehicle(playerid, TaksiMasina, 0); //Pasodina NPC botą į jam sukurtą transportą.

}

return 1;

}

//Visa kita paprastam žaidėjui.

return 1;

}

Jeigu mes norime pridėti dar vieną NPC botą, tai nėra sunku. clear.pngTiesiog mums reikia pridėti

if(!strcmp(npcname, "KitasNPCvardas", true))

{

PutPlayerInVehicle(playerid, KitaMasina, 0);

return 1;

}

Taigi, 2 NPC botams, viskas turi atrodyti šitaip..

public OnPlayerSpawn(playerid)

{

if(IsPlayerNPC(playerid)) //Tikrina, ar žaidėjas paleistas kaip NPC botas.

{

new npcname[MAX_PLAYER_NAME];

GetPlayerName(playerid, npcname, sizeof(npcname)); //Gauna NPC boto vardą.

if(!strcmp(npcname, "Martin_M", true)) //Tikrina, ar NPC boto vardas Martin_M

{

PutPlayerInVehicle(playerid, TaksiMasina, 0); //Pasodina NPC botą į jam sukurtą transportą.

}

if(!strcmp(npcname, "KitasNPCvardas", true))

{

PutPlayerInVehicle(playerid, KitaMasina, 0);

return 1;

}

return 1;

}

//Visa kita paprastam žaidėjui.

return 1;

}

Viskas. Dabar sukompiliuokite GameMod'ą ar FilterScript'ą paspausdami F5 ir pirmyn tikrinti NPC boto. Jis važinės taip, kaip Jūs jį įrašėte. Sveikinu! Jūs sukūrėte savo NPC botą! [SVARBU]: Pamoką kūriau ne aš, o Martin_M.

galėtum padėt? rašyk čia.

 

Jeigu reikia pagalbos rašyk man į skypę, nemokamai aš negaliu padėti.

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4220 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai



×
×
  • Sukurti naują...