غلاف لـ Game Jolt API الذي يعمل من خلال طلبات HTTP. فهو يحتوي على جميع نقاط نهاية Game Jolt API ويهدف إلى تبسيط استخدامه حيثما كان ذلك ممكنًا. متوافق مع جودو 4.x. للحصول على إصدار Godot 3.x، راجع هذا الفرع.
للحصول على أمثلة للاستخدام، راجع الوثائق أدناه. يوجد أيضًا مشهد نموذجي في addons/gamejolt/example
يحتوي على جميع نقاط النهاية والمعلمات على الواجهة الرسومية.
ملاحظة: أي معلمة متبوعة بـ ?
هو اختياري. مثال: sessions_ping(status?) -> GameJolt
.
Project Settings > Plugins
Project Settings > General > Game Jolt > Config > Global
.Project Settings > General > Game Jolt > Config > Debug
. بعد هذا الإعداد، يمكنك تنفيذ طلبات واجهة برمجة التطبيقات (API) باستخدام الطرق الموضحة أدناه على GameJolt
المفرد الموجود على الكود الخاص بك.
تُصدر كل طريقة من طرق Game Jolt API إشارة بعد اكتمال الطلب، سواء كان ناجحًا أم لا. يمكنك توصيل إشارات محددة لالتقاط الاستجابات عند عمليات رد اتصال الطريقة:
func _ready () -> void :
GameJolt . time_completed . connect ( _on_GameJolt_time_completed )
GameJolt . time ()
func _on_GameJolt_time_completed ( result : Dictionary ) -> void :
# Do something with the request result...
أو يمكنك await
نتيجة الإشارة في متغير:
func _onButtonTime_pressed () -> void :
GameJolt . time ()
var result : Dictionary = await GameJolt . time_completed
# Do something with the request result...
ملحوظة: جميع الإشارات ترجع response: Dictionary
.
عام
user_name_changed
user_token_changed
game_id_changed
private_key_changed
المستخدمين
users_fetch_completed(response: Dictionary)
users_auth_completed(response: Dictionary)
الجلسات
sessions_open_completed(response: Dictionary)
sessions_ping_completed(response: Dictionary)
sessions_check_completed(response: Dictionary)
sessions_close_completed(response: Dictionary)
عشرات
scores_fetch_completed(response: Dictionary)
scores_tables_completed(response: Dictionary)
scores_add_completed(response: Dictionary)
scores_get_rank_completed(response: Dictionary)
الجوائز
trophies_fetch_completed(response: Dictionary)
trophies_add_achieved_completed(response: Dictionary)
trophies_remove_achieved_completed(response: Dictionary)
تخزين البيانات
data_store_set_completed(response: Dictionary)
data_store_update_completed(response: Dictionary)
data_store_remove_completed(response: Dictionary)
data_store_fetch_completed(response: Dictionary)
data_store_get_keys_completed(response: Dictionary)
أصدقاء
friends_completed(response: Dictionary)
وقت
time_completed(response: Dictionary)
المكالمات الجماعية
batch_completed(response: Dictionary)
الطرق العامة لتكوين GameJolt
المفرد محليًا.
قم بتعيين اسم المستخدم للمصادقة ومهام نطاق المستخدم الأخرى. يصدر user_name_changed
.
value: String
-> اسم المستخدم. الحصول على اسم المستخدم الحالي.
قم بتعيين رمز المستخدم للمصادقة ومهام نطاق المستخدم الأخرى. يصدر user_token_changed
.
value: String
-> رمز لعبة المستخدم. احصل على رمز لعبة المستخدم الحالي.
قم بتعيين معرف اللعبة المطلوب لجميع المهام. يصدر game_id_changed
.
value: String
-> معرف اللعبة من مشروع Game Jolt الخاص بك. احصل على معرف اللعبة الحالي.
قم بتعيين المفتاح الخاص اللازم لجميع المهام. ينبعث private_key_changed
.
value: String
-> المفتاح الخاص للعبة من مشروع Game Jolt الخاص بك. احصل على المفتاح الخاص للعبة الحالية.
إرجاع بيانات المستخدم. يُصدر users_fetch_completed
.
user_name: String
(اختياري) -> اسم المستخدم للمستخدم الذي تريد جلب بياناته.user_ids: Array[String|int]
(اختياري) -> معرفات المستخدمين الذين ترغب في جلب بياناتهم. ملاحظة: المعلمات user_name
و user_ids
متنافيتان، ويجب عليك استخدام واحد منهما فقط، أو لا شيء. إذا لم يتم توفير أي شيء، فسيتم جلبه من اسم المستخدم الحالي المعين في GameJolt
Singleton.
يصادق على معلومات المستخدم. يجب أن يتم ذلك قبل إجراء أي مكالمات للمستخدم، للتأكد من صحة بيانات اعتماد المستخدم (اسم المستخدم والرمز المميز). يجب تعيين اسم المستخدم والرمز المميز على GameJolt
المفرد حتى ينجح. يُصدر users_auth_completed
.
يفتح جلسة لعبة لمستخدم معين ويسمح لك بإخبار Game Jolt بأن المستخدم يلعب لعبتك. يجب عليك تنفيذ الأمر ping على الجلسة لإبقائها نشطة ويجب عليك إغلاقها عند الانتهاء منها. يصدر sessions_open_completed
.
ملحوظات:
GameJolt
المفرد. يصدر اتصالًا بجلسة مفتوحة لإخبار النظام بأنه لا يزال نشطًا. إذا لم يتم اختبار اتصال الجلسة خلال 120 ثانية، فسيقوم النظام بإغلاق الجلسة وسيتعين عليك فتح جلسة أخرى. يوصى بإجراء اختبار الاتصال كل 30 ثانية تقريبًا لمنع النظام من مسح جلستك. يمكنك أيضًا السماح للنظام بمعرفة ما إذا كان اللاعب في حالة "active"
أو "idle"
داخل لعبتك. يصدر sessions_ping_completed
.
status: String
(اختياري) -> لتعيين حالة الجلسة إما "active"
أو "idle"
. ملاحظة: يتطلب تعيين اسم المستخدم والرمز المميز على GameJolt
المفرد.
يتحقق لمعرفة ما إذا كانت هناك جلسة مفتوحة للمستخدم. يمكن استخدامه لمعرفة ما إذا كان حساب مستخدم معين نشطًا في اللعبة. يصدر sessions_check_completed
.
ملحوظات:
false
لحقل "success"
في حالة عدم وجود جلسة مفتوحة. يختلف هذا السلوك عن نقاط النهاية الأخرى التي تستخدم هذا الحقل للإشارة إلى حالة الخطأ.GameJolt
المفرد. يغلق الجلسة النشطة. تنبعث sessions_close_completed
.
ملاحظة: يتطلب تعيين اسم المستخدم والرمز المميز على GameJolt
المفرد.
إرجاع قائمة بالنتائج إما للمستخدم أو عالميًا للعبة. ينبعث scores_fetch_completed
.
limit: String|int
(اختياري) -> عدد الدرجات التي ترغب في إرجاعها.table_id: String|int
(اختياري) -> معرف جدول النتائج.guest: String
(اختياري) -> اسم الضيف.better_than: String|int
(اختياري) -> جلب النتائج الأفضل من قيمة فرز النتيجة هذه فقط.worse_than: String|int
(اختياري) -> جلب الدرجات الأسوأ من قيمة فرز النتيجة هذه فقط.this_user: bool
(اختياري) -> إذا كان true
، فاجلب عشرات المستخدمين الحاليين فقط. بخلاف ذلك، قم بإحضار عشرات من كافة المستخدمين.ملحوظات:
GameJolt
المفرد إذا كان this_user
true
.limit
هي 10
درجات. الحد الأقصى لعدد النقاط التي يمكنك استردادها هو 100
.table_id
فارغًا، فسيتم إرجاع النتائج من جدول النتائج الأساسي.this_user
على أنه true
فقط إذا كنت ترغب في استرداد النتائج الخاصة بالمستخدم الذي تم تعيينه في مُنشئ الفصل فقط. اترك this_user
كـ true
guest
كـ ""
لاسترداد كافة النتائج.guest
بجلب النتائج حسب اسم ضيف محدد. قم فقط بتمرير إما this_user
على أنه true
أو guest
(أو لا شيء)، وليس كليهما أبدًا. إرجاع قائمة بجداول النتائج العالية للعبة. ينبعث scores_tables_completed
.
يضيف النتيجة للمستخدم أو الضيف. يصدر scores_add_completed
.
score: String
-> هذه قيمة سلسلة مرتبطة بالنتيجة. مثال: "500 Points"
.sort: String|int
-> هذه قيمة فرز رقمية مرتبطة بالنتيجة. سيتم إجراء جميع عمليات الفرز على هذا الرقم. مثال : 500
.table_id: String|int
(اختياري) -> معرف جدول النتائج المراد الإرسال إليه.guest: String
(اختياري) -> اسم الضيف. يتجاوز اسم مستخدم GameJolt
المفرد.extra_data: String|int|Dictionary|Array
(اختياري) -> إذا كانت هناك أية بيانات إضافية ترغب في تخزينها كسلسلة، فيمكنك استخدام هذا المتغير.ملحوظات:
GameJolt
وترك guest
فارغًا. إذا كنت تقوم بالتخزين لضيف، فيجب عليك تمرير معلمة guest
.extra_data
إلا من خلال واجهة برمجة التطبيقات (API) ولوحة التحكم الخاصة باللعبة. ولا يتم عرضها علنًا أبدًا للمستخدمين على الموقع. إذا كانت هناك بيانات أخرى مرتبطة بالنتيجة مثل وقت اللعب والعملات المعدنية المجمعة وما إلى ذلك، فيجب عليك تضمينها بالتأكيد. سيكون ذلك مفيدًا في الحالات التي تعتقد فيها أن اللاعب قد حقق درجة عالية بشكل غير قانوني.table_id
فارغًا، فسيتم إرسال النتيجة إلى جدول الدرجات العالية الأساسي. إرجاع تصنيف درجة معينة على جدول النتائج. يصدر scores_get_rank_completed
.
sort: String|int
-> هذه قيمة فرز رقمية يتم تمثيلها برتبة في جدول النتائج.table_id: String|int
(اختياري) -> معرف جدول النتائج الذي تريد الحصول على الرتبة منه.ملحوظات:
table_id
فارغًا، فسيتم إرجاع الرتب من جدول النقاط العالية الأساسي. تقوم بإرجاع كأس واحد أو عدة جوائز، اعتمادًا على المعلمات trophies_fetch_completed
تم تمريرها.
sort: bool|null
(اختياري) -> تمرير true
لإرجاع الجوائز التي تم تحقيقها للمستخدم فقط. قم بالتمرير false
لإرجاع الجوائز التي لم يحققها المستخدم فقط. قم بالتمرير null
لاسترداد جميع الجوائز.trophy_ids: Array[String|int]
(اختياري) -> إذا كنت ترغب في إرجاع كأس واحد أو عدة جوائز، قم بتمرير معرفات الكأس هنا إذا كنت تريد إرجاع مجموعة فرعية من جميع الجوائز.ملحوظات:
trophy_ids
إلى تجاهل المعلمة achieved
إذا تم تمريرها.GameJolt
المفرد. يحدد الكأس كما تم تحقيقه لمستخدم معين. يصدر trophies_add_achieved_completed
.
trophy_id: String|int
-> معرف الكأس المراد إضافته للمستخدم. ملاحظة: يتطلب تعيين اسم المستخدم والرمز المميز على GameJolt
المفرد.
إزالة الكأس التي تم تحقيقها مسبقًا لمستخدم معين. يصدر trophies_remove_achieved_completed
.
trophy_id: String|int
-> معرف الكأس المطلوب إزالته من المستخدم. ملاحظة: يتطلب تعيين اسم المستخدم والرمز المميز على GameJolt
المفرد.
يضبط البيانات في مخزن البيانات. يصدر data_store_set_completed
.
key: String
-> مفتاح عنصر البيانات الذي ترغب في تعيينه.data: String|Array|Dictionary
-> البيانات التي ترغب في تعيينها.global_data: bool
(اختياري) -> إذا تم التعيين على true
، فسيتم تجاهل اسم المستخدم والرمز المميز المعين في GameJolt
ومعالجة البيانات العامة بدلاً من بيانات المستخدم.ملحوظات:
global_data
false
، فيتطلب تعيين اسم المستخدم والرمز المميز على GameJolt
المفرد. تحديث البيانات في مخزن البيانات. يصدر data_store_update_completed
.
key: String
-> مفتاح عنصر البيانات الذي ترغب في تحديثه.operation: String
-> العملية التي ترغب في تنفيذها.value: String|int
-> القيمة التي ترغب في تطبيقها على عنصر مخزن البيانات.global_data: bool
(اختياري) -> إذا تم التعيين على true
، فسيتم تجاهل اسم المستخدم والرمز المميز المعين في GameJolt
ومعالجة البيانات العامة بدلاً من بيانات المستخدم.ملحوظات:
operation
: "add"
و "subtract"
و "multiply"
و "divide"
و "append"
و "prepend"
.global_data
false
، فيتطلب تعيين اسم المستخدم والرمز المميز على GameJolt
المفرد. يزيل البيانات من مخزن البيانات. يصدر data_store_remove_completed
.
key: String
-> مفتاح عنصر البيانات الذي تريد إزالته.global_data: bool
(اختياري) -> إذا تم التعيين على true
، فسيتم تجاهل اسم المستخدم والرمز المميز المعين في GameJolt
ومعالجة البيانات العامة بدلاً من بيانات المستخدم.ملحوظات:
global_data
false
، فيتطلب تعيين اسم المستخدم والرمز المميز على GameJolt
المفرد. إرجاع البيانات من مخزن البيانات. يصدر data_store_fetch_completed
.
key: String
-> مفتاح عنصر البيانات الذي ترغب في جلبه.global_data: bool
(اختياري) -> إذا تم التعيين على true
، فسيتم تجاهل اسم المستخدم والرمز المميز المعين في GameJolt
ومعالجة البيانات العامة بدلاً من بيانات المستخدم.ملحوظات:
global_data
false
، فيتطلب تعيين اسم المستخدم والرمز المميز على GameJolt
المفرد. إرجاع إما جميع المفاتيح الموجودة في مخزن البيانات العالمي للعبة، أو جميع المفاتيح الموجودة في مخزن بيانات المستخدم. يصدر data_store_get_keys_completed
.
pattern: String
(اختياري) -> النمط المطلوب تطبيقه على أسماء المفاتيح في مخزن البيانات.global_data: bool
(اختياري) -> إذا تم التعيين على true
، فسيتم تجاهل اسم المستخدم والرمز المميز المعين في GameJolt
ومعالجة البيانات العامة بدلاً من بيانات المستخدم.ملحوظات:
"*"
."key"
. يمكن أن تظهر قيمة الإرجاع "key"
أكثر من مرة.global_data
false
، فيتطلب تعيين اسم المستخدم والرمز المميز على GameJolt
المفرد. إرجاع قائمة أصدقاء المستخدم. ينبعث friends_completed
.
ملاحظة: يتطلب تعيين اسم المستخدم والرمز المميز على GameJolt
المفرد.
إرجاع وقت خادم Game Jolt. ينبعث time_completed
.
الطلب المجمع عبارة عن مجموعة من الطلبات الفرعية التي تمكن المطورين من إرسال استدعاءات متعددة لواجهة برمجة التطبيقات (API) بطلب HTTP واحد. لاستخدام المكالمات المجمعة في التعليمات البرمجية الخاصة بك، قم بإجراء مكالمات الطلب الخاصة بك بين batch_begin
و batch_end
. على سبيل المثال، استخدم الأساليب الخاصة بك بالترتيب التالي:
func _onButtonBatch_pressed () -> void :
# Begin to gather batch requests
GameJolt . batch_begin ()
# Add the time request to the batch
GameJolt . time ()
# Add the scores_tables request to the batch
GameJolt . scores_tables ()
# Stop gathering batch requests
GameJolt . batch_end ()
# Perform the batch call with the two requests above (time and score_tables)
GameJolt . batch ()
var result : Dictionary = await GameJolt . batch_completed
قم بتنفيذ الطلب المجمع بعد تجميع الطلبات باستخدام batch_begin
و batch_end
. ينبعث batch_completed
.
parallel: bool
(اختياري) -> افتراضيًا، تتم معالجة كل طلب فرعي على الخوادم بالتسلسل. إذا تم تعيين هذا على true
، فستتم معالجة جميع الطلبات الفرعية في نفس الوقت، دون انتظار انتهاء الطلب الفرعي السابق قبل بدء الطلب الفرعي التالي.break_on_error: bool
(اختياري) -> إذا تم تعيين هذا على true
، فسيؤدي فشل طلب فرعي واحد إلى توقف الدفعة بأكملها عن معالجة الطلبات الفرعية اللاحقة وإرجاع قيمة false
لتحقيق النجاح.ملحوظات:
parallel
و break_on_error
متنافية ولا يمكن استخدامها في نفس الطلب. يبدأ في جمع طلبات الدفعة. لن تقوم الأساليب بإرجاع الاستجابات بعد هذه المكالمة. اتصل بـ batch_end
لإنهاء عملية تجميع طلبات الدُفعات.
توقف عن جمع طلبات الدفعة. سوف تقوم الطرق بإرجاع الاستجابات مرة أخرى بعد هذه المكالمة. يجب استخدامه بعد batch_begin
.