I dette tutorialen vil du lære hvordan du kan markere en oppgave som fullført i et spill gjennom OpenAI API. Det er viktig at klienten, altså spillerens nettleser, mottar følgende informasjon: Oppgaven ble vellykket fullført. Dette gir spilleren muligheten til å snakke med Dr. Owen og komme nærmere spillets mål. La oss dykke inn i detaljene!
Viktigste funn
- Oppgaven blir markert som fullført i responsobjektet gjennom egenskapen completedQuest.
- Denne informasjonen blir overført til klienten slik at oppgavens status kan oppdateres.
- Når oppgaven er markert som fullført, vil spilleren kunne samhandle med Dr. Owen.
Trinn-for-trinn veiledning
Begynn med å sette opp, og forsikre deg om at ditt grunnprogram er korrekt forberedt. I dette eksempelet bruker vi en responsmelding for å oppdatere oppgavens status.
Vi legger til en ny egenskap kalt completedQuest i responsmeldingen. Denne egenskapen lar oss lagre den nåværende statusen til oppgaven knyttet til drinken som Dr. Owen har gitt.
I koden vår setter vi completedQuest til av Dr. Owen Drink. Dette betyr at oppgaven anses som fullført når funksjonen blir kalt.
Derefter legger vi navnet på denne oppgaven inn i egenskapen. Dette gir oss muligheten til å håndtere flere oppgaver.
Etter å ha definert completedQuest-egenskapen, sender vi dette responsobjektet til klienten. Det er viktig at vi ikke bare sender teksten i responsen, men også denne ekstra informasjonen.
Deretter mottar vi denne responsen i klienten og behandler svarobjektet. Her må vi sørge for å få tilgang til riktig egenskap.
Ved mottak av responsen i chat.jsx-filen, må vi få tak i innholdet av svarobjektet. Vi får tilgang til innholdet og completedQuest-egenskapen.
Hvis completedQuest-egenskapen ikke er undefinert, kan vi finne den tilsvarende oppgave-IDen. Denne IDen gjør det mulig for oss å finne den spesifikke oppgaven som må fullføres.
Når oppgave-IDen er tilgjengelig, setter vi completed-egenskapen til true, noe som faktisk markerer oppgaven som fullført.
Her bruker vi en spørring for å sikre at IDen samsvarer med completedQuest-IDen og finner riktig oppgave.
Vi søker gjennom Game Runtime Data, som inneholder alle oppgaver. I begynnelsen er statusen til hver oppgave satt til false. Når oppgaven nå er markert som fullført, endrer vi denne statusen til true.
For enkelhets skyld sender vi Game Runtime Data som Prop til vår Chat-komponent. Dette lar oss håndtere og bruke oppgavene på riktig sted i koden.
I Chat-komponenten bruker vi disse dataene til å hente oppgavene. Vi forsikrer oss om at vi har riktig ID for å finne den riktig fullførte oppgaven.
Når vi har funnet måloppgaven, setter vi statusen til true. Dette oppdaterer også den visuelle statusen i spillet.
For å teste oppførselen, går vi til baren og samhandler med bartenderen. Deretter gir vi igjen kommandoen om å gi drinker til Dr. Owen.
Vi sender meldingen: “Please buy Dr. a drink.” På dette punktet bør oppgaven vises som fullført.
Hvis alt er riktig implementert, vil Dr. Owen vises i grensesnittet, og statusen vil bli oppdatert tilsvarende.
Nå må det sikres at hvis oppgaven ikke er fullstendig utført, kan spilleren ikke samhandle med Dr. Owen.
Når oppgavestatus er satt til true, kan du tillate interaksjon med Dr. Owen. Dette forbedrer spillopplevelsen og gjør oppgaven meningsfull.
For å finjustere interaksjonen ytterligere, bør du i neste trinn legge til en rullegardinmeny der flere samtalepartnere kan velges. Spillere bør kunne kommunisere med forskjellige karakterer i spillet.
Oppsummering
I denne veiledningen har du lært hvordan en oppgave i spillet kan markeres som fullført og hvilke trinn som trengs for det. Riktig håndtering av oppgavestatusen lar deg øke interaktiviteten i spillet og gjøre opplevelsen mer spennende for spillerne.
Vanlige spørsmål
Hva er en "fullført quest"?En "fullført quest" er en oppgave eller misjon som spilleren har fullført vellykket.
Hvordan oppdateres oppgavestatusen?Oppgavestatusen oppdateres via completedQuest Property i svarmeldingen.
Kan jeg håndtere flere oppgaver samtidig?Ja, du kan håndtere flere oppgaver ved å bruke ulike quest-ID-er og oppdatere statusen individuelt.
Hva er formålet med completedQuest Property?completedQuest egenskapen signaliserer at en bestemt oppgave i spillet er fullført, slik at klienten kan reagere deretter.
Hva må jeg gjøre før jeg kan snakke med Dr. Owen?Du må forsikre deg om at statusen for den relevante oppgaven er satt til true før spilleren kan samhandle med Dr. Owen.