إضافة أحداث إلى لعبتك

بعد إيقاف Google Sign-In API نهائيًا، سنزيل الإصدار v1 من حزمة تطوير البرامج (SDK) الخاصة بـ "خدمات ألعاب Play". في عام 2026. بعد فبراير 2025، لن يكون بإمكانك نشر الألعاب التي تتكامل مع الإصدار v2 من حزمة SDK الخاصة بـ "خدمات ألعاب Play". ننصحك باستخدام الإصدار v2 حزمة SDK الخاصة بـ "خدمات ألعاب Play". بدلاً من ذلك.
مع أنّ التطبيقات الحالية التي تتكامل مع الإصدار v1 من حزمة SDK الخاصة بـ "خدمات ألعاب Play" ستستمر في العمل لعدّة سنوات، ننصحك بالانتقال إلى الإصدار v2 بدءًا من يونيو 2025.
هذا الدليل مخصّص لاستخدام الإصدار v1 من حزمة SDK الخاصة بـ "خدمات ألعاب Play". حزمة SDK الخاصة بالإصدار 2 من "خدمات ألعاب Play" للتطبيقات بلغة ++C غير متاحة بعد.

يوضّح لك هذا الدليل كيفية استخدام خدمة "الأحداث" في تطبيق بلغة ++C.

قبل البدء

إذا لم يسبق لك إجراء ذلك، قد يكون من المفيد مراجعة مفاهيم أحداث الألعاب.

لإعداد بيئة التطوير بلغة ++C لاستخدام خدمة "الأحداث"، اتّبِع التعليمات الواردة في دليل بدء استخدام خدمة "الأحداث" بلغة ++C. يمكنك تنزيل حزمة C++ SDK الخاصة بـ "خدمات ألعاب Play" من صفحة تنزيلات حزمة SDK.

قبل أن تتمكّن لعبتك من الوصول إلى الأحداث، عليك تحديدها أولاً في Google Play Console.

إرسال حدث

يمكنك إضافة رمز برمجي إلى لعبتك لإرسال إشعار إلى خدمة "الأحداث" كلما وقع حدث يهم لعبتك. تشمل أمثلة الأحداث التي يمكنك تسجيلها في لعبتك ما يلي: قتل الأعداء أو استكشاف مناطق مختلفة في اللعبة أو العودة إليها أو الحصول على عناصر داخل اللعبة. عادةً، يمكنك استدعاء طريقة Increment في أداة إدارة الأحداث لزيادة عدد الأحداث بمقدار 1 في كل مرة ينفّذ فيها اللاعب إجراءً مرتبطًا بالحدث (على سبيل المثال، "قتل وحشًا واحدًا").

يوضّح المثال التالي كيفية إرسال عدد الأحداث المعدَّل إلى خدمة "الأحداث".

  // Increment the event count when player performs the 'Attack blue
  // monster' action.
  game_services_->Events().Increment(BLUE_MONSTER_EVENT_ID);

استرداد الأحداث

لاسترداد قيمة العدد الحالي المخزَّنة في خوادم Google لحدث معيّن، استدعِ إحدى طرق Fetch*. يمكنك إجراء ذلك، على سبيل المثال، إذا أردت عرض إحصاءات اللاعب داخل اللعبة أو مستوى تقدّمه من واجهة مستخدم مخصّصة في لعبتك.

يوضّح المثال التالي كيفية استرداد بيانات الحدث وتسجيلها في لعبتك.

  // Log Events details.
  LogI("---- Showing Event Counts -----");
  gpg::EventManager::FetchAllCallback callback =
      [](gpg::EventManager::FetchAllResponse const &response) {
    for (auto i : response.data) {
      gpg::Event const &event = i.second;
      LogI("Event name: %s  count: %d", event.Name().c_str(),
           event.Count());
    }
  };
  game_services_->Events().FetchAll(callback);