Bu öğreticide, bir oyunda OpenAI API üzerinden bir görevi tamamlandı olarak işaretlemenin nasıl yapılacağını öğreneceksin. Oyunun istemcisinin, yani oyuncunun tarayıcısının şu bilgiyi alması önemlidir: Görev başarıyla tamamlandı. Böylece oyuncuya Dr. Owen ile konuşma şansı verilir ve oyun hedefine bir adım daha yaklaşılır. Detaylara birlikte göz atalım!
En Önemli Hususlar
- Görev, yanıt nesnesindeki completedQuest özelliği aracılığıyla işaretlenir.
- Bu bilgi, görevin durumunu güncelleyebilmek için istemciye iletilir.
- Görev tamamlandı olarak işaretlendiğinde, oyuncu Dr. Owen ile etkileşimde bulunabilecektir.
Adım Adım Kılavuz
Başlamak için, temel uygulamanızın doğru şekilde hazırlandığından emin olmak için kurulumla başlayın. Bu örnekte, görev durumunu güncellemek için bir yanıt mesajı kullanıyoruz.
Yanıt mesajına completedQuest adında yeni bir özellik ekliyoruz. Bu özellik, Dr. Owen'ın ikram ettiği içeceğe bağlı olarak görevin mevcut durumunu saklamamıza olanak tanır.
Kodumuzda, completedQuest'i by Dr. Owen Drink olarak ayarlıyoruz. Bu, işlev çağrıldığında görevin tamamlandığı olarak kabul edileceği anlamına gelir.
Ardından, bu görevin adını completedQuest özelliğine yazıyoruz. Bu, birden fazla görevi yönetmemize olanak sağlar.
completedQuest özelliğinin tanımlanmasının ardından, bu yanıt nesnesini istemciye gönderiyoruz. Yanıtın metnini değil, bu ek bilgiyi göndermenin önemli olduğunu unutmayın.
Daha sonra bu yanıtı istemcide alıp answer nesnesini işliyoruz. Doğru özelliğe eriştiğimizden emin olmamız gerekiyor.
chat.jsx dosyasından yanıtı alırken, answer nesnesi içeriğine erişiyoruz. Burada content ve completedQuest özelliklerine erişiyoruz.
completedQuest özelliği undefined değilse, ilgili görev ID'sini bulabiliriz. Bu ID, tamamlanması gereken belirli bir görevi bulmamızı sağlar.
Görev ID'sine sahip olduktan sonra, completed özelliğini true olarak ayarlayarak görevi gerçekten tamamlanmış olarak işaretliyoruz.
Bu işlem sırasında, ID'nin completedQuest-ID ile eşleştiğinden ve doğru görevin bulunduğundan emin olmak için bir sorgu kullanıyoruz.
Tüm görevleri içeren Oyun Çalışma Zamanı Verilerini görüntüleriz. Başlangıçta, her görevin durumu false olarak ayarlanmıştır. Görev tamamlandı olarak işaretlendiğinde, bu durumu true olarak değiştiriyoruz.
Kodunuzu basitleştirmek için Oyun Çalışma Zamanı Verilerini Chat bileşenimize prop olarak iletiyoruz. Böylece görevleri kodunuzun doğru yerinde yönetip kullanabiliriz.
Chat bileşeninde bu verileri kullanarak görevleri alıyoruz. Doğru tamamlanmış görevi bulabilmek için uygun bir ID'ye sahip olduğumuzdan emin oluyoruz.
Hedef görevi bulduktan sonra durumu true olarak ayarlıyoruz. Böylece oyun içindeki görsel durum da güncellenir.
Davranışı test etmek için bara gidiyoruz ve barmene etkileşimde bulunuyoruz. Bu sırada Dr. Owen için içki ısmarlamasını tekrar komutunu veriyoruz.
Mesajı gönderiyoruz: “Lütfen Dr. Owen'e bir içki alın.” Bu noktada görevin tamamlandığı görüntülenmelidir.
Hepsi doğru şekilde uygulandığında, Dr. Owen kullanıcı arayüzünde gösterilecek ve durum buna göre güncellenecektir.
Şimdi, görev tam olarak tamamlanmamışsa, oyuncunun Dr. Owen ile etkileşime geçememesi sağlanmalıdır.
Görev durumu true olarak ayarlandığında, Dr. Owen ile etkileşime geçebilirsin. Bu oyun deneyimini geliştirir ve görevin anlamlı görünmesini sağlar.
Etkileşimi daha da rafine etmek için, bir sonraki adımda çoklu konuşma ortakları seçilebilecek bir açılır menü eklemelisin. Oyuncular oyun içinde farklı karakterlerle iletişim kurabilmelidir.
Özet
Bu rehberde, bir görevin nasıl tamamlandığını işaretleyebileceğini ve bunun için hangi adımların gerektiğini öğrendin. Doğru görev durumu yönetimi, oyun içinde etkileşimi artırmanıza ve oyuncuların deneyimini daha heyecanlı hale getirmenize olanak tanır.
Sık Sorulan Sorular
"Tamamlanmış Görev" nedir?"Tamamlanmış Görev" oyuncunun başarıyla tamamladığı bir görev veya misyondur.
Görev Durumu nasıl güncellenir?Görev Durumu, yanıt mesajındaki completedQuest Özelliği ile güncellenir.
Birden fazla görevi aynı anda yönetebilir miyim?Evet, farklı Görev Kimliklerini kullanarak ve durumlarını bireysel olarak güncelleyerek birden fazla görevi yönetebilirsin.
completedQuest Özelliği ne işe yarar?completedQuest Özelliği, belirli bir görevin oyun içinde tamamlandığını belirtir, bu nedenle istemci buna uygun şekilde tepki verebilir.
Dr. Owen ile konuşmadan önce ne yapmalıyım?Oyuncunun Dr. Owen ile etkileşime geçebilmesi için ilgili Görevin durumunun true olarak ayarlanmış olması gerektiğinden emin olmalısın.