În acest capitol, vom vorbi despre ce pachete sunt și cum să le configurați.
- Cum funcționează pachetele.
- Cum de a crea o rutină zilnică simplă pentru un NPC.
- Cum se creează un nou pachet.
Termenul "pachet" este utilizat în Kitul de creare pentru a desemna o structură de date care descrie comportamentul caracterelor. La un moment dat, personajul poate fi controlat numai de un singur pachet care-i administrează acțiunile, forțându-l să doarmă, să mănânce, să patruleze teritoriul, să se rătăcească, să lucreze în fierar, și așa mai departe.
Cum determină caracterul care pachet ar trebui să folosească? Aici vine un set de pachete. Ideea este simplă - fiecare personaj are un set de pachete pe care le poate folosi. Periodic, jocul rulează de sus în jos. Verifică dacă pachetul poate fi utilizat. Dacă verificarea are succes, porniți-o. Dacă nu, continuă cu următoarea. Verificarea este reușită dacă:
Personajul urmează întotdeauna primul pachet corect. Caracterele din vecinătatea pachetelor de actualizare ale jucătorilor se întâmplă foarte des, în zone îndepărtate ale lumii - foarte rar.
Să încercăm în practică - să aplicăm la Banda Olo (pentru a continua, termină lecția despre crearea de caractere).
Deschideți GSQBenduOlo și accesați fila AI Packages. Se pare ca aceasta:
Lista pachetelor sale este goală, iar el însuși își petrece ziua în zbor într-un singur loc. Să o facem mai mult ca o persoană vie.
Pentru a adăuga un pachet la caracter, trebuie să faceți clic pe PCM sub lista de pachete și să selectați "Adăugați" sau pur și simplu să trageți pachetul deja pregătit din fereastra Obiect. Selectați nodul pachet din lista obiectelor (în interiorul Caracterului). Introduceți în filtrul "Implicit" și găsiți în lista de pachete începând cu acest cuvânt. Aceste pachete nu sunt georeferențiate și pot fi folosite pentru orice caracter.
Folosind pachete de bază, puteți preda cu ușurință Benda micul dejun și cina, dormiți noaptea și rătăciți în jurul casei în după-amiaza.
Pentru alimente, utilizați un pachet standard care menționează alimentele ("mâncați"). Selectați DefaultEatEditorLoc8x1 (mic dejun) și DefaultEatEditorLoc18x1 (cină).
Conform convenției de denumire în numele pachetului indică timpul său în formatul: NachaloxProdolzhitelnost 8x1 „înseamnă că pachetul poate fi făcută la ora 8 dimineața și ia un caracter la 1:00,“ 18x1 „- respectiv, la 18 și va dura“, de exemplu,“. și 1 oră. O oră de joc este de trei minute de timp real.
Dar numele pachetului poate să nu fie corect. Să ne asigurăm că timpul este setat corect:
Deschideți ambele pachete și accesați fila Programare. Acesta va arata astfel:
După cum puteți vedea, timpul este corect. Glisați aceste pachete în lista de pachete de Banda Olo.
Ordinea pachetelor este foarte importantă. Va fi primul care va îndeplini toate condițiile. Pentru aceste două pachete, acest lucru este neprincipient, deoarece programul lor nu se suprapune. De la 8 la 9, DefaultEatEditorLoc8x1 va fi executat, iar de la 18 la 19 - DefaultEatEditorLoc18x1. Restul timpului, nici unul, nici celălalt nu va trece testul și nu va controla acțiunile personajului. Dar urmatoarele pachete pe care le adaugati la Bendu vor incalca comanda daca nu sunt in ordinea corecta.
Vrei ca Bendu să doarmă noaptea? Localizați pachetul DefaultSleepEditorLoc1x8. Aceasta nu este cea mai bună alegere, dar demonstrează în mod clar cât de importantă este secvența de pachete.
Ca urmare a unor calcule simple, veți observa că noul pachet va fi valabil de la 1 ora la 9 dimineața, care este suprapus pe un pachet de mic dejun (DefaultEatEditorLoc8x1). Să vedem ce se întâmplă dacă ordinea pachetelor se dovedește a fi greșită.
Mutați pachetul de somn la partea superioară a pachetului de pachete. Aici:
Deoarece pachetul superior va fi testat pe tot parcursul acțiunii declarate, până la sfârșitul acesteia, rândul său, la pachetul de mic dejun, care este de mai jos, nu va ajunge. Când timpul de somn se termină, va fi prea târziu pentru a lua micul dejun.
Pentru ca totul să funcționeze corect, mutați pachetul de somn sub pachetul de mic dejun:
Acum la ora 8 dimineața va funcționa DefaultSleepEditorLoc1x8, interceptând gestionarea caracterului. Și Bendu va petrece ultima oră de somn la micul dejun.
Deci, nu ai pictat un mic fragment din rutina Benda - 2 ore pe zi el mănâncă și 7 mai dormi. Puteți continua să completați rutina zilnică, dar în cazul nostru (și în multe altele), cea mai bună opțiune este să îi oferiți un pachet "de rezervă". Fără condiții și rutine care vor fi întotdeauna executate atunci când caracterul nu este gestionat de alte pachete. În mod firesc, acesta trebuie să fie plasat în partea de jos a listei pachetelor.
Cel mai adesea, pentru acest lucru este folosit pachetul "Sandbox" (sandbox). El îi permite personajului să meargă în jurul cartierului, făcând niște acțiuni aleatorii. Este potrivit în acele cazuri în care nu contează exact ce va face PNI în timpul liber, dar vreau să se comporte mai natural.
În cazul nostru, cea mai bună alegere este DefaultSandboxHomeowner. Deschideți-l și consultați tabelul cu date publice privind pachetul public:
Un alt parametru util al acestui pachet este "Unlock On Arrival = True". El spune că în timpul executării pachetului, personajul îi va deschide toate ușile, ceea ce este important - nu vrei ca questorul să se ascundă în spatele unei uși închise.
Consultați fila Condiții și fila Programare pentru a vă asigura că acestea sunt goale, astfel încât pachetul va fi întotdeauna executat dacă o coadă ajunge la ea (ceea ce este ceea ce aveți nevoie).
Trageți acest pachet în partea de jos a listei Bendu. Programul nemaipomenit este gata:
Dacă doriți să verificați totul în practică, salvați modificările și accesați jocul. Deplasați-vă la comanda Band consolă:
Pentru a vedea cum comportamentul său variază în funcție de ora din zi, utilizați comenzile pentru a modifica timpul de redare:
Acum Bendu mănâncă, doarme, se rătăcește în "casa" lui. Dacă refuză să doarmă în timp ce vă apropiați, puteți utiliza comanda toggledetection. atunci el vă va ignora.
Acum știi cum, folosind pachetele "implicite", poți să creezi un program pentru caracter. Este timpul să începeți să scrieți propriul pachet pentru Bandu. Să-l învățăm să meargă în casă în timpul zilei.
Mai întâi, creați un nou pachet. PCM în lista de pachete și selectați "New". Veți vedea o fereastră de pachet goală:
În mod prestabilit, este selectat șablonul Călătorie. Dar aveți nevoie de patrulare (Patrol), selectați-l din listă. Notă: tabelul cu date despre pachete sa modificat - Parametrii șablonului de păstrare sunt diferiți de parametrii Travel. Acum aveți un pachet gol bazat pe șablonul Patrol:
Pe pagina corespunzătoare puteți să vă familiarizați în detaliu cu fiecare dintre parametrii acestui pachet. Între timp, trebuie să stabiliți:
- Patrol Start - unde începe Bandu traseul.
- Programare - la ce oră va fi executat acest pachet.
Nu există încă niciun traseu, hai să o facem. (Dacă aveți deja o casă Bendu, faceți dublu-clic pe marcatorul galben de la ușă, altfel faceți dublu clic pe MixwaterMillExterior în lista de spații Tamriel.)
Dacă nu ați citit Tutorialul Întâlnirilor încă. va fi util să ne cunoaștem, dar aceasta nu este o necesitate. Tot ce aveți nevoie este să creați un traseu din trei puncte:
- Trageți XMarkerGhidul în fereastra de vizualizare.
- Dublați-le dublu cu o combinație de Ctrl + D.
- Mutați marcatorii după cum doriți și îmbinați-i în traseu utilizând fila Legătură asociată a fiecărui marcator.
Ca rezultat, ceva de genul acesta (locația exactă a marcatorilor nu contează):
Acum, în fereastra pachetului, selectați opțiunea Patrol Start și faceți dublu clic pe butonul "Linked Reference" din dreapta. În fereastra care apare, comutați tipul de referință în "Referință specifică" și selectați oricare dintre puncte (nu contează care dintre ele, deoarece acestea sunt legate într-un singur traseu).
De asemenea, am dorit să specificăm perioada de timp în care se va executa acest pachet - de la 10 la 12 ore. specificați:
Rămâne să dai pachetului un nume. De exemplu, GSQBenduPatrol10x2 (nu uitați de convenția de numire). Faceți clic pe butonul "OK" pentru a salva modificările și a închide fereastra.
Ați creat primul dvs. pachet. Acum trebuie să o adăugați la pachetul Bend. Găsiți pachetul în lista de obiecte și trageți în lista de pachete Bandu. În mod implicit, toate pachetele adăugate sunt amplasate în partea de jos a listei. Dar în acest caz coada de dinaintea ei nu va ajunge niciodată, deoarece mai sus este "nisip". Mutați-o în partea de sus:
Faceți clic pe "OK" pentru a închide fereastra de caractere și pentru a salva pluginul. Intrați în joc și asigurați-vă că Bandu urmează traseul pavat:
Acum știi cum să schimbi comportamentul caracterelor folosind pachetele existente și propriile lor pachete. Formatele de pachete existente pot seta aproape orice comportament, trebuie doar să setați parametrii corecți. Dacă aveți nevoie de ceva foarte exotic, puteți crea propriile șabloane.