الانتقال إلى المحتوى الرئيسي
يتكوّن اقتصاد Flock من ثلاثة أجزاء:
  • المتاجر — مجموعات من العناصر القابلة للشراء.
  • عناصر المتجر — عروض مفردة لكلٍّ منها سعر وعملة.
  • المخزون — سجلٌّ بما اشتراه كل لاعب.
النطاق: تُعرَّف المتاجر وعناصرها لكل إصدار لعبة؛ أما المخزون فلكل لاعب.
تخصم عملية الشراء من محفظة اللاعب وتسجّل مدخلًا في المخزون:
وكل عملية شراء تُنشئ مدخلها الخاص، فشراء العنصر نفسه مرتين يمنحك مدخلين. ويحمل كل مدخل حقل status يضبطه الخادم (unused أو used أو revoked بعد الاسترداد) وحقل used_at. واستخدام العنصر، وتسمّيه حزمتا التطوير استهلاكًا، يُعلّم مدخله بأنه مستخدَم. لا تُخصم عملية الشراء مرتين أبدًا، ولا تُصفّ في طابور عند انقطاع الاتصال. ويُجلب المخزون دائمًا محدَّثًا من الخادم؛ أما الكتالوج فمُخزَّن مؤقتًا ويُقدَّم دون اتصال، لذا عامِل أي سعر معروض على أنه استرشادي حتى تنجح عملية الشراء. ويمكن أن تُباع العناصر بمال حقيقي أيضًا، يُدفع عبر App Store أو Google Play على الهاتف: راجع الشراء داخل التطبيق. وعلى Windows وmacOS وLinux وWebGL يُدفع عبر صفحة ويب: راجع الدفع عبر الويب.

المعرّف الذي تأخذه عملية الشراء

تُسمّي عملية الشراء عنصر المتجر بمعرّفه: حقل id الخاص بالعنصر داخل متجره. وهو ليس اسم العنصر، وليس معرّف المتجر. اقرأه من المتجر بدل كتابته يدويًا: تسرد حزمة التطوير متاجر إصدار اللعبة الذي يشغّله بناؤك، ومع كلٍّ منها عناصره. وتحمل عناصر المتجر المولَّدة في Unreal المعرّفَ سلفًا. ينتمي المتجر إلى إصدار لعبة واحد، فالمتجر الذي أُنشئ تحت إصدار آخر لا يُسرَد ولا يُعثر عليه بالاسم. وإن عادت القائمة فارغة، فتحقّق من أن لوحة التحكم تُظهر المتجر تحت إصدار اللعبة الذي يشغّله بناؤك.
تُنشأ المحفظة عند تسجيل اللاعب. يبني الخادم محفظة كل لاعب من قالب العملات لإصدار اللعبة عند التسجيل، وتبدأ كل عملة من الصفر. أنشئ قالب العملات قبل أن يسجّل لاعب الاختبار؛ فاللاعب الذي سجّل قبل وجوده لا محفظة لديه يدفع منها. أمّا اللاعب الذي أُنشئت محفظته تحت إصدار لعبة آخر فيحتفظ بها: عند تسجيل الدخول ينقلها الخادم إلى قالب العملات لهذا الإصدار، مع الإبقاء على الأرصدة وبدء العملات الجديدة من الصفر. راجع العملات والمحافظ.
وحين يفشل استدعاء، يذكر نصّ حزمة التطوير ما الخطأ وكيف تصلحه. فعملية الشراء التي أُعطيت اسم العنصر بدل معرّفه تُقرأ هكذا:
ويعني الخطأ 404 بالرمز request.not_found وسببُه Not Found المجرّدة أن الطلب لم يصل إلى أي مسار أصلًا (وأي سبب آخر يسمّي سجلًّا لم يجده المسار): يجب أن يكون API URL عنوان خادم Flock وحده، دون /v1 أو أي مسار بعده.
تمنح عمليات الشراء محتوياتها من جهة الخادم. أعطِ عنصر المتجر نوع حزمة عملة أو عنصر قابل للاستهلاك وأرفق به مكافآت، فيضيف الخادم المكافأة إلى رصيد اللاعب ضمن العملية نفسها التي تخصم السعر. ولا يمكن أن يقع أحد الشقّين دون الآخر، ولا تقرّر اللعبة ما الذي مُنح — لذا لا يستطيع تطبيق معدَّل أن يمنح نفسه شيئًا، ولا يترك انقطاع الاتصال اللاعب مخصومًا منه دون مقابل.أما العنصر القياسي فهو السلوك الأقدم ولا يزال الافتراضي: يخصم السعر ويسجّل مدخل مخزون تفسّره لعبتك كما تشاء. وتبيع المحفظة العنصر القياسي من جديد مع كل عملية شراء، لذا تحقّق قبل عرضه من أن اللاعب لا يملكه مسبقًا. (أما المتجر فيبيعه مرة واحدة فقط: راجع الشراء داخل التطبيق.)
يُسعَّر العنصر بعملة، فأنشئ أولًا إعداد العملات لهذا الإصدار (راجع العملات والمحافظ). ومن دونه تقول عناصر المتجر Add a currency config to enable item creation، ومعها Go to Currencies. (نذكر الأسماء كما تظهر في لوحة التحكم بالإنجليزية.)
  1. من القائمة أعلى الصفحة، اختر لعبتك وإصدار اللعبة الذي يشغّله بناؤك. فالمتجر يخصّ ذلك الإصدار وحده.
  2. افتح Monetization → Shops، واضغط New تحت Your Shops.
  3. اكتب Shop Name، واترك Status على Active، واضغط Create Shop. علامة النجاح: تقول الصفحة Shop created. Add your first item. ويظهر المتجر تحت Your Shops.
  4. والمتجر محدَّد، افتح تبويب Items واضغط Add Item.
  5. في نافذة New Item املأ:
    • Item Name، وStatus (Active لتبيعه).
    • Item type، وهو يحدّد ما يناله اللاعب:
      • Standard يضيف قيدًا إلى مخزون اللاعب ولا يمنح شيئًا آخر؛ ولعبتك تقرّر معناه. وتبيعه المحفظة من جديد في كل شراء.
      • Currency pack يدفع مكافآته مباشرةً إلى محفظة اللاعب عند الشراء، دون قيد في المخزون.
      • Consumable يبقى غير مستخدَم في مخزون اللاعب، ويدفع مكافآته حين تستهلكه لعبتك.
    • Price وCurrency. بعملة اللعبة يكون السعر عددًا صحيحًا، مثل 50. وبعملة حقيقية اكتبه كما يراه اللاعب، مثل 4.99: فالخادم يحفظه بأصغر وحدة في العملة، فتقرؤه حزمة التطوير 499.
    • Store product IDs (App Store وGoogle Play): للعنصر الذي يُباع داخل تطبيق للهاتف فقط (راجع الشراء داخل التطبيق).
    • Rewards، لحزمة العملة أو العنصر المستهلَك: اضغط Add reward، واختر عملة غير عملة السعر، وأدخل Amount عددًا صحيحًا أكبر من صفر. وتحتاج الحزمة إلى عملة ثانية في إعداد العملات.
  6. اضغط Add Item. علامة النجاح: يظهر العنصر في Shop Items بسعره وعملته ومكافآته، وعليه Real money إن سُعِّر بعملة حقيقية.
ويعرض Preview as player المتجر كما يراه اللاعب. ويُقفَل الإصدار المنشور إلى Production: فتصير متاجره وعناصره للقراءة فقط، ولا تتغيّر إلا عبر رقعة (patch).
صفحة Shops وفيها متجران تحت Your Shops وعناصر المتجر المحدَّد

Monetization → Shops: تبويب Items لمتجر، ومعه Add Item.

راجع العملات والمحافظ للاطّلاع على الأرصدة التي تقوم عليها عمليات الشراء.