Šioje pamokoje sužinosite, kaip pažymėti užduotį kaip įvykdytą žaidime naudojant "OpenAI API". Svarbu, kad klientas, t. y. žaidėjo naršyklė, gautų šią informaciją: Užduotis sėkmingai įvykdyta. Tai suteikia žaidėjui galimybę pasikalbėti su daktaru Owenu ir taip priartėti prie žaidimo tikslo. Pasinerkime į detales!
Svarbiausios išvados
- Užduotis pažymima per atsakymo objekto savybę completedQuest.
- Ši informacija siunčiama klientui, kad būtų galima atnaujinti užduoties būseną.
- Kai užduotis bus pažymėta kaip įvykdyta, žaidėjas galės bendrauti su daktaru Owenu.
Žingsnis po žingsnio vadovas
Pradėkite sąranką įsitikindami, kad jūsų bazinė programa yra tinkamai parengta. Šiame pavyzdyje užduoties būklei atnaujinti naudosime atsakymo pranešimą.

Atsakymo pranešimą papildysime nauja savybe, pavadinta completedQuest. Ši savybė leidžia mums išsaugoti dabartinę užduoties, susijusios su gėrimu, kurį mums davė daktaras Owenas, būseną.
Savo kode nustatome completedQuest į Dr. Owen Drink. Tai reiškia, kad užduotis laikoma baigta, kai tik iškviečiama funkcija.
Tada į savybę įrašome šios užduoties pavadinimą. Tai suteikia mums galimybę lanksčiai valdyti kelias užduotis.
Apibrėžę savybę completedQuest, siunčiame šį atsako objektą klientui. Svarbu, kad siųstume ne tik atsakymo tekstą, bet ir šią papildomą informaciją.

Tada gauname šį atsakymą kliente ir apdorojame atsakymo objektą. Čia turime įsitikinti, kad kreipiamės į teisingą savybę.

Gavę atsakymą, atsakymo objekto turinio ieškome chat.jsx faile. Taip pasiekiame turinį ir savybę completedQuest.

Jei completedQuest savybė nėra neapibrėžta, galime ieškoti atitinkamo užduoties ID. Šis ID leidžia mums rasti konkrečią užduotį, kurią reikia užbaigti.

Radę užduoties ID, nustatome baigtos užduoties savybę į true, kuri iš tikrųjų žymi, kad užduotis baigta.

Čia naudojame užklausą, kad užtikrintume, jog ID atitinka užbaigtos užduoties ID, ir rastume tinkamą užduotį.

Atliekame paiešką žaidimo vykdymo metu esančiuose duomenyse, kuriuose yra visos užduotys. Iš pradžių kiekvienos užduoties būsena nustatoma į false. Jei dabar užduotis pažymėta kaip įvykdyta, šią būseną pakeičiame į true.

Kad būtų paprasčiau, žaidimo vykdymo laiko duomenis perduodame kaip rekvizitą mūsų pokalbių komponentui. Tai leidžia mums valdyti ir naudoti užduotis tinkamoje kodo vietoje.

Pokalbių komponente šiuos duomenis naudojame užduotims gauti. Įsitikiname, kad turime tinkamą ID, kad rastume teisingai įvykdytą užduotį.

Radę tikslinę užduotį, nustatome būseną true. Tai taip pat atnaujina vizualinę būseną žaidime.

Norėdami išbandyti elgesį, einame į barą ir bendraujame su barmenu. Dar kartą duodame komandą nupirkti gėrimų daktarui Owenui.

Siunčiame pranešimą: "Prašome nupirkti daktarui gėrimų". Šiuo metu užduotis turėtų būti rodoma kaip įvykdyta.

Jei viskas įgyvendinta teisingai, Dr. Owenas bus rodomas naudotojo sąsajoje, o būsena bus atitinkamai atnaujinta.
Dabar reikia įsitikinti, kad jei užduotis nėra visiškai užbaigta, žaidėjas negalės bendrauti su daktaru Owenu.

Kai tik užduoties būsena bus nustatyta kaip teisinga, galėsite leisti sąveikauti su daktaru Owenu. Tai pagerina žaidimo patirtį ir padaro užduotį prasmingą.
Kad dar labiau patobulintumėte sąveiką, kituose žingsniuose turėtumėte pridėti išskleidžiamąjį meniu, kuriame būtų galima pasirinkti kelis dialogo partnerius. Žaidėjai turėtų turėti galimybę bendrauti su skirtingais žaidimo veikėjais.
Apibendrinimas
Šiame vadove sužinojote, kaip žaidime pažymėti užduotį kaip įvykdytą ir kokius veiksmus reikia atlikti norint tai padaryti. Teisingas užduoties būsenos valdymas leidžia padidinti interaktyvumą žaidime ir padaryti jį įdomesnį žaidėjams.
Dažniausiai užduodami klausimai
Kas yra "įvykdyta užduotis"?"Įvykdyta užduotis" - tai misija arba užduotis, kurią žaidėjas sėkmingai įvykdė.
Kaip atnaujinama užduoties būsena?Užduoties būsena atnaujinama per atsakymo pranešimo ypatybę "completed quest" (įvykdyta užduotis).
Ar galiu vienu metu tvarkyti kelias užduotis?Taip, galite tvarkyti kelias užduotis naudodami skirtingus užduoties ID ir atskirai atnaujindami jų būseną.
Kam naudojama savybė completedQuest?Savybė completedQuest signalizuoja, kad tam tikra užduotis žaidime buvo įvykdyta, kad klientas galėtų atitinkamai reaguoti.
Ką reikia padaryti prieš pradedant bendrauti su daktaru Owenu?prieš žaidėjui pradedant bendrauti su daktaru Owenu, reikia įsitikinti, kad atitinkamos užduoties būsena yra nustatyta į true.