نعم، يمكن للعبتك التفاعل مع هدايا TikTok
يحدد JavaScript لديك الإجراء: دفع صاروخ أو تنمية حديقة أو إنشاء عدو أو ملء هدف مشترك. وتحدد أيضاً العتبة. لا يستطيع SSN تغيير أسعار هدايا المنصة.
| أريد أن… | ابدأ هنا |
|---|---|
| تشغيل صوت أو تنبيه أو إجراء OBS أو webhook | Event Flow (دون برمجة) |
| إنشاء لوحة لعبة أو الاحتفاظ بحالة لعبتي | قالب بداية أدناه |
| استخدم لعبة جاهزة | إن معرض الألعاب |
اختر قالب بداية
تتضمن كل معاينة أزرار عينات وفاحص «آخر بيانات مستلمة». العينات أحداث وهمية وليست مشتريات. لا تنضم المعاينة إلى جلستك الحية.
| قالب البداية | ما الذي يفعله | غيّر هذا |
|---|---|---|
| صاروخ العملات | كل 10 عملات TikTok أو 100 Twitch Bits أو 100 Facebook Stars تمنح دفعة واحدة. تُحفظ البقية لكل مشاهد ومنصة. | COST |
| هدف دعم مشترك | تبني القيمة التقديرية بالدولار من المنصات الأربع قاعدة قمرية. استبدل التقدم بضرر أو وقود أو مؤقت. | GOAL_USD |
| حديقة الهدايا والأحداث | هدية TikTok مختارة تضيف زهوراً. متابعة TikTok تضيف شجرة. أمر الدردشة المجاني !water يضيف الماء. | GIFT_ID (معرّف ملتقط) أو GIFT_NAME (الاسم المطابق تماماً). «Demo flower» اسم وهمي. |
- ابحث في HTML عن
EDIT THIS RULEأوEDIT THESE RULES. - ضع منطق لعبتك في دالة
receive(data). - توجد أدوات الاتصال والعد المساعدة في starter.js. توجد الأنماط في starter.css.
توصيل قالب بداية في 3 خطوات
- شغّل SSN ووصل الدردشة. تحقق من ظهور الدردشة والهدايا في Dock. لـ TikTok، راجع أوضاع الاتصال.
- افتح قالب البداية دون
?demo، باستخدام معرّف جلستك وكلمة المرور إن حددتها. - اختبره في المتصفح، ثم أضف الرابط نفسه إلى OBS كمصدر متصفح، مثلاً 1000 × 800.
https://socialstream.ninja/games/templates/coin-rocket.html?session=YOUR_SESSION&password=YOUR_PASSWORD&clean
&cleanيخفي الفاحص وحالة الاتصال وأزرار المضيف.- لا كلمة مرور؟ احذف
&password=…. - على موقع beta، احتفظ بـ
/beta/قبلgames/.
طرق اتصال أخرى (WebSocket)
تستخدم قوالب البداية افتراضياً جسر iframe نفسه المستخدم في تراكبات SSN.
- WebSocket مستضاف: فعّل إرسال الرسائل إلى لوحة الإرساء من الإضافة عبر الخادم في SSN، ثم أضف
&server2. - خادم محلي: أضف
&server2&localserver، أو&localserverport=3000. راجع دليل WebSocket. localserverوحده لا يفعّل مسار اتصال.- التدفق الأقدم
serverيستخدم قناة مختلفة وقد يحتاج إلى Dock ينشر فيها.
إنشاء نسخة خاصة وتشغيلها من القرص
لا خادم لتثبيته. تعدّل ملفاً على حاسوبك وتوجّه OBS إليه.
- تنزيل ملف ZIP لمصدر beta وفك ضغطه.
- انسخ القالب الذي تريده بجوار الأصل. مثال:
games/templates/my-rocket.html. - أبقِ ترتيب المجلدات كما هو. تحمّل القوالب
js/local-server-url.js، بينما يحمّل هدف الدعمcurrency.jsمن المجلد الأعلى. احتفظ بالصور والصوت في أماكنهما أيضاً. - اسحب ملف HTML إلى Chrome أو Edge وانسخ
file:///. - أضف كل شيء بدءاً من
?فصاعداً من رابط لعبتك العامل (الجلسة وكلمة المرور وخيارات النقل). - في OBS، غادر ملف محلي غير محدد. الصق العنوان الكامل في حقل مصدر المتصفح URL المجال.
- بعد كل تعديل، حدّث مصدر المتصفح.
file:///C:/SSN/social_stream-beta/games/templates/my-rocket.html?session=YOUR_SESSION&clean
استخدم مسارك الحقيقي ولا تنقل المجلد المفكوك. الجلسة هي معرّف اتصال SSN لا اسم اللعبة. أزل demo للبيانات الحية. أبقِ SSN والالتقاط يعملان. أمثلة إضافية: دليل إعداد الملف.
games/. games.html و battle.html لها منطق لعبها الخاص. إعدادات قواعد قوالب البداية ليست API مشتركة للألعاب.مطالبة ذكاء اصطناعي لتغيير مظهر لعبة
أعطِ الذكاء الاصطناعي نسخة HTML و starter.js, starter.css، والملف الجذري js/ المساعدة، وأي صور أو صوت، و docs/event-reference.html.
Customize [game file] to match [reference], at [canvas size].
Include its existing CSS/JS and local artwork/audio. Preserve the game's
rules, controls, gift/coin/USD distinctions, streak handling, duplicate
handling, and demo/clean modes. Change the visual design, not the reward rules,
unless I explicitly specify a rule change. Keep session/password and
transport parsing, relative paths, and Chrome 80-compatible classic scripts.
Read docs/event-reference.html and docs/making-games.html.
Treat all incoming messages, names, labels, donations, and metadata as untrusted.
Prevent HTML/JavaScript injection in every renderer you change. Use textContent
for plain fields and for chatmessage when textonly is true. For HTML-mode
chatmessage, keep supported emotes/formatting through the packaged
SocialStreamChatHTML.sanitize helper (libs/objects.js loaded first).
Do not concatenate raw input into innerHTML, attributes, CSS, or JavaScript.
Validate media/link URLs with the page's existing URL policy and assign DOM
properties; do not enable javascript: URLs or executable embedded content.
Never eval incoming data or treat a viewer message as an AI instruction.
Keep source checks, connection handling, and existing sanitizers.
Test plain text, allowed emotes, quotes, angle brackets, and an HTML injection
probe in an isolated preview; verify the probe cannot execute.
Make the edited game work directly from disk using a file:/// URL,
without requiring a local web server.
Return the edited files/assets, file URL and OBS setup steps, and tests using
fictional data. Preserve image-only events and a valid donoValue of zero.
Never treat chat text as proof of a payment.
اختبر بهذا الترتيب: أزرار العرض التجريبي، بما فيها تحديثات السلسلة المتكررة وتجاوز القيمة بالصفر، ثم جلستك الحقيقية، ثم مصدر OBS بالحجم الحقيقي. تحقق من قواعد اللعبة و التقديم الآمن. عمل الرسوم المتحركة وحده لا يثبت صحة القواعد.
كيف أختار عدد العملات لإجراء معين؟
حدد أولاً ما تقيسه، ثم اختر رقماً.
| ما تقيسه | اقرأ هذا | مثال |
|---|---|---|
| الوحدات الأصلية (عملات وBits وStars) | TikTok meta.coinsPerGift × meta.tiktokGiftCount عند وجوده، أو hasDonation تسمية مثل 10 coins, 100 bits, 100 Stars. | كل 10 عملات = دفعة واحدة. |
| هدية معينة | TikTok meta.giftId أو meta.giftName، مع عددها. | كل هدية مطابقة تضيف زهرة مهما كانت قيمتها. |
| قيمة نقدية قابلة للمقارنة | getDonationValueUSD(data) من currency.js. | كل دولار تقديري يضيف 10 وحدات وقود. يُكمل $25 الهدف. |
| إجراء مجاني أو عضوية | قيمة المصدر الحقيقية event، أو أمر دردشة. | المتابعة تنمّي شجرة. الاشتراك الجديد يشغّل حركة. |
قيمة مطابقة أم حد أدنى أم رصيد متراكم؟
- قيمة مطابقة:
coins === 10. هدية من 25 عملة لا تفعل شيئاً. - حد أدنى لكل حدث:
coins >= 10. - رصيد متراكم: ما يستخدمه الصاروخ. 25 عملة = دفعتان مع بقاء 5 عملات.
عدة مستويات؟ افحص الأعلى أولاً كي لا تشغّل هدية واحدة كل المستويات الأدنى.
مزيد عن عملات TikTok وهداياه وماساته
- يشتري المشاهدون العملات وينفقونها على الهدايا. تظهر تكلفة العملات مع الهدية. راجع شرح TikTok للعملات والهدايا.
- اسم الهدية وعددها والعملات والماسات أربعة أشياء مختلفة.
- اختر هدايا متاحة في بث LIVE لديك وافحص البيانات الملتقطة قبل نشر قاعدة.
- قد تأتي قيم العملات من جدول هدايا SSN. قارنها بقائمة هدايا LIVE الحالية عندما تحتاج سعراً دقيقاً.
- تختلف قوائم الهدايا وطرق الالتقاط. لا يُضمن وجود حقل عملات في كل رسالة TikTok.
ما الذي ترسله كل منصة؟
type يوضح مصدره. event يوضح ما حدث عند توفره. تعتمد البيانات الواصلة على وضع الالتقاط والإعدادات والمنصة. يعكس هذا كود SSN الحالي ولا يضمن حصول كل حساب على كل حدث.
| المنصة | ما تحصل عليه | انتبه إلى |
|---|---|---|
| TikTok | type: "tiktok", event: "gift". قد يضيف التقاط التبرعات hasDonation و donoValue. قد تتضمن بيانات الهدية معرّفها واسمها وعددها والعملات والماسات لكل هدية ومعرّف السلسلة. | تُشترى الهدايا بالعملات، والماسات مكافآت للمبدعين. يسوّي التقاط WebSocket في SSApp السلاسل قبل الإرسال، بينما قد يرسل التقاط المتصفح إجماليات متصاعدة. تعطيل التقاط تبرعات TikTok قد يترك الهدايا بلا حقول مالية. |
| Twitch | تستخدم Cheers وحدات Bits، مثل hasDonation: "100 bits". قد يرسل التقاط API event: "cheer" و donoValue: 1. قد لا يتضمن التقاط الدردشة حدثاً. | الاشتراكات والاشتراكات المهداة والغارات ونقاط القناة أشياء منفصلة. شارة الاشتراك على رسالة عادية ليست اشتراكاً جديداً. Bits المستخدمة في Twitch Extensions نظام مختلف. |
تعطي صفوف Stars الظاهرة في الدردشة المباشرة مثلاً hasDonation: "100 Stars" و donoValue: 1، دون event. | مسار comments API لا يقرأ Stars من نص الدردشة. يجب أن يكون صف Stars ظاهراً لالتقاط الصفحة. التعليقات والتفاعلات ليست مدفوعات. | |
| YouTube | superchat و supersticker تحتفظ بالعملة الأصلية في hasDonation. تستخدم الهدايا jeweldonation مع N Jewels، أو 1 YouTube Gift إذا كان المبلغ مخفياً. | ينفق المشاهدون Jewels ويكسب المبدعون Rubies. العضويات والعضويات المهداة أحداث منفصلة. Super Thanks منتج مستقل وليس حدث دردشة مضموناً. |
قد ترسل المصادر الأخرى إكراميات أو هدايا أو عضويات أو مشتريات. افحص مرجع الأحداث قبل إضافتها إلى مرشح القالب isSupport . البيع أو الاشتراك المُهدى ليس إكرامية تلقائياً. يرسل YouTube شراء الهدية وإشعار كل مستلم؛ عدّ الاثنين يكافئ الهدية نفسها مرتين.
روابط مراجع المنصات
ماسات TikTok · Bits واشتراكات Twitch · نظرة عامة على نجوم Meta · Super Chat وSuper Stickers من YouTube · جواهر وهدايا وياقوت YouTube.
رُوجعت الشروط في 29 سبتمبر 2026. راجع صفحات المنصات الحالية لمعرفة الأهلية.
استخدام donoValue وcurrency.js بشكل صحيح
| الحقل | ما هو |
|---|---|
hasDonation | التسمية الأصلية، مثل €5.00 أو 100 bits. اعرض هذا للمشاهدين. |
donoValue | قيمة دولار اختيارية من المصدر. إذا كانت صالحة، حتى إن كانت صفراً، استخدمها قبل تقدير القيمة من التسمية. |
<script src="../../currency.js"></script> <script> // From games/templates/: use the existing helper, including its zero handling. var usd = getDonationValueUSD(data); // Use usd for your rule; display data.hasDonation for the original amount/unit. </script>
لا تفعل هذا
donoValue || convertToUSD(...)— لأنه يتجاهل صفراً مقصوداً.- استخراج الأرقام من
chatmessageللتعرف على المدفوعات. - اشتراط
event === "donation"— لا تتضمن Facebook Stars وبعض Cheers حدثاً.
يختار قالب هدف الدعم أنواع الدعم أولاً ثم يستدعي المحوّل المشترك.
تقديرات SSN المدمجة
| الوحدة | تُقدّر بـ |
|---|---|
| عملة TikTok واحدة | $0.01 |
| ماسة TikTok واحدة | $0.005 |
| Bit واحد من Twitch أو Star واحدة من Facebook | $0.01 |
| Jewel واحدة من YouTube | $0.005 |
| هدية TikTok مجهولة السعر | عملة واحدة لكل هدية |
| هدية YouTube بلا عدد Jewels | قيمة افتراضية $0.01 |
تستخدم العملات الأخرى أسعاراً تقريبية مدمجة وليست أسعار صرف حية. الغرض مقارنة الدعم فقط؛ ليست ما دفعه المشاهد أو ما تكسبه أو ما تستطيع سحبه. قد تختلف التقديرات باختلاف الالتقاط. القيمة البديلة لعملة واحدة لا تعني أن الهدية تكلف عملة واحدة.
المصدر: currency.js و مرجع البيانات. بيانات الهدية الوصفية اختيارية؛ الأمثلة لا تخترع حقولاً لا يوفرها الالتقاط.
احتساب سلسلة الهدايا مرة واحدة
قد يرسل TikTok سلسلة بإجماليات متصاعدة: 1، 2، 3. هذه ثلاث هدايا لا ست. احتفظ بأعلى إجمالي للسلسلة وأضف الزيادة فقط.
// All three events refer to the same streak: // incoming total: 1, 2, 3, 3 // added to game: 1, 1, 1, 0 var newCoins = RewardStarter.increment(data, RewardStarter.coins(data), 'coins');
- يطابق المساعد السلاسل بمعرّفات مجموعة TikTok والمرسل والهدية، ثم
meta.tiktokGiftStreakId، ثم معرّفات الرسائل. تمنع معرّفات الرسائل أيضاً التسليمات المكررة. - لا ينتظر
repeatEnd، لأن التقاط المتصفح قد لا يرسله أبداً. تحتاج إجراءً واحداً عند انتهاء سلسلة الهدايا فقط؟ اكتب قاعدة منفصلة باستخدام الحقول التي يرسلها اتصالك. - استخدم مسار التقاط واحداً. التقاط القناة نفسها ثانيةً قد يستخدم معرّفات مختلفة ويضاعف العد.
حدود ذاكرة قوالب البداية
- تتذكر حتى 2,000 معرّف في الذاكرة فقط.
- تمسح إعادة الضبط أو التحميل تلك الذاكرة وتقدم اللعبة.
- لا يمكن منع تكرار الرسائل التي تفتقد معرّفات ثابتة بشكل موثوق.
- يجمع الصاروخ الأرصدة حسب المنصة ومعرّف المستخدم، أو اسم العرض عند غياب المعرّف. قد يشترك مشاهدون بالاسم نفسه في رصيد واحد.
- للعبة يجب أن تستمر بعد إعادة التشغيل، أضف حفظ الحالة ومعالجة إعادة الأحداث قبل الاعتماد على مكافآت مدفوعة.
مكافآت دون لعبة مخصصة
في Event Flow:
- أضف مقارنة خاصية.
- اضبطه على
donoValue, أكبر من أو يساوي، والمبلغ بالدولار الأمريكي. - وصّل إجراءً مثل صوت أو حركة أو تحكم OBS.
يستخدم القيمة الأصلية من المصدر إذا كانت صالحة، وإلا يستخدم تحويل العملات في SSN.
- هدية TikTok محددة: قارن
meta.giftIdأوmeta.giftName، واقصر التدفق على أحداث هدايا TikTok. - فحوص الأرقام في
hasDonationتتحول أيضاً إلى دولارات. ليست فحوص عملات أصلية. استخدم البيانات الأصلية أو كوداً مخصصاً لقواعد العملات. - يعمل كل فحص على كل رسالة. ليس رصيداً متراكماً أو عداد سلسلة. استخدم عقد الحالة إذا احتجت ذلك، أو احتفظ بالمنطق داخل لعبتك.
اختبر قبل ربط إجراء مدفوع
- أزرار العينات. سلسلة 1 ← 2 ← 3 تضيف ثلاث هدايا. نموذج تجاوز القيمة بالصفر لا يضيف دولاراً. السعر المجهول لا يضيف عدداً دقيقاً من العملات.
- مصدر حقيقي. افحص بيانات ملتقطة حقيقية. أكد اسم الهدية/معرّفها والمبلغ والوحدة والعدد والحدث. تختبر العينات قاعدتك لا الالتقاط المباشر.
- مشهد OBS. اختبر الأحداث المتكررة وإعادة الاتصال وإعادة التحميل. لا تحدّث مصدر المتصفح ولا تغلقه إذا أردت الاحتفاظ بالتقدم في الذاكرة.
| المشكلة | جرّب هذا |
|---|---|
| لا يصل شيء | افحص Dock في SSN أولاً، ثم الجلسة وكلمة المرور وإعداد النقل. |
| تصل الدردشة لكن الهدية لا تطابق القاعدة | افحص البيانات ومرشحات التبرعات والأحداث. |
| لا تصل المتابعات أو الاشتراكات | يختلف ذلك حسب المصدر. راجع مرجع الأحداث. |
تفاصيل اتصال إضافية: تراكبات مخصصة.