Ano, hra může reagovat na dárky TikTok
Social Stream Ninja zachytí událost a pošle ji vaší stránce. JavaScript rozhodne o akci: zrychlit raketu, vypěstovat zahradu, vytvořit nepřítele nebo posunout společný cíl. Akci i práh nastavujete ve hře. SSN nemění ceny dárků na platformě.
Začněte zde: vyzkoušejte tři šablony, a potom vyberte, co vaše pravidlo používá: jednotky platformy, identita dárku nebo odhadované USD.
Pro zvuk, upozornění, akci OBS nebo webhook začněte s Event Flow. Vlastní HTML stránka se hodí pro herní plochu nebo vlastní stav hry. Hotové hry najdete v galerie her.
Tři malé, upravitelné šablony
Každý náhled má ukázková tlačítka a prohlížeč posledních přijatých dat. Jde o smyšlené události, ne nákupy. Režim náhledu se nikdy nepřipojí k živé relaci.
- Mincová raketa: 10 mincí TikTok, 100 bitů Twitch nebo 100 hvězd Facebook přidá jedno zrychlení. Zbytky se sčítají zvlášť pro každého diváka a platformu. Změňte
COSTv HTML a určete své částky. - Společný cíl podpory: spojte odhadovanou podporu USD ze čtyř platforem a stavte měsíční základnu. Změňte
GOAL_USDnebo nahraďte postup poškozením, palivem či časovačem. - Zahrada dárků a událostí: vybraný dárek TikTok přidá květiny, zachycené sledování přidá strom a bezplatný příkaz
!waterv chatu přidá vodu. NastavteGIFT_IDna zachycené ID nebo nastavteGIFT_NAMEna přesný název. „Demo flower“ je smyšlený příklad.
Otevřete zdroj HTML a najděte EDIT THIS RULE nebo EDIT THESE RULES. receive(data) je funkce, ve které nahradíte ukázkovou akci vlastní logikou. Pomocné funkce spojení a počítání jsou v starter.js; vzhled najdete v starter.css.
Připojte šablonu k vysílání
- Spusťte SSN a připojte zdroj chatu. Ověřte, že chat a dárky/podpora dorazí do docku. Nastavení TikToku: režimy připojení.
- Otevřete šablonu bez
?demo, se svým ID relace SSN. Přidejte i heslo relace, pokud je nastavené. - Ověřte stránku v prohlížeči a přidejte stejnou URL jako zdroj Prohlížeč v OBS, například 1000 × 800. Přidejte
&cleanpro skrytí dat, stavu spojení a ovládacích tlačítek.
https://socialstream.ninja/games/templates/coin-rocket.html?session=YOUR_SESSION&password=YOUR_PASSWORD&clean
Na beta webu ponechte /beta/ před games/. Není-li heslo nastavené, parametr vynechte. Odkazy relace nezveřejňujte.
Výchozí spojení používá stejný iframe most jako překryvy SSN. Pro hostovanou WebSocket cestu zachyceného chatu zapněte v SSN Odesílat zprávy z rozšíření do doku přes server a připojte &server2. Viz Průvodce WebSocket pro místní nastavení; šablony přijímají také &server2&localserver a &localserverport=3000. localserver sám cestu nezapne. Starší server používá jiný kanál a může záviset na docku, který do něj publikuje.
Vytvořte si vlastní kopii
Stáhnout zdrojový ZIP beta verze a rozbalte jej. Upravte soubory v games/templates/, se zachováním struktury složek: šablony načítají také js/local-server-url.js, a cíl podpory načítá currency.js z kořenové složky repozitáře.
Rozbalenou složku zpřístupněte místním webovým serverem. Pokud máte Python, spusťte z této složky:
python -m http.server 8080 --bind 127.0.0.1
Poté použijte http://127.0.0.1:8080/games/templates/coin-rocket.html?session=YOUR_SESSION v prohlížeči nebo OBS. Při hostování jinde zachovejte relativní cesty. Není potřeba sestavení.
Jak vybrat počet mincí pro akci?
Než vyberete číslo, rozhodněte se, co chcete měřit:
| Pravidlo | Přečtěte | Příklad |
|---|---|---|
| Jednotky platformy | TikTok meta.coinsPerGift × meta.tiktokGiftCount , pokud je dodáno, nebo výslovnou hodnotu hasDonation s popiskem jako 10 coins, 100 bits, nebo 100 Stars. | Každých 10 mincí přidá zrychlení. |
| Konkrétní dárek | TikTok meta.giftId nebo meta.giftName, a jeho počet. | Každý odpovídající dárek přidá květinu bez ohledu na odhad USD. |
| Srovnatelná hodnota podpory | getDonationValueUSD(data) z currency.js. | Každý odhadovaný dolar přidá 10 paliva; 25 dolarů dokončí cíl. |
| Bezplatná akce nebo členství | Skutečná hodnota ze zdroje v event, nebo příkaz chatu. | Sledování vypěstuje strom; nové předplatné spustí animaci. |
Rozhodněte, zda částka znamená přesně (coins === 10), nebo minimum na událost (coins >= 10), případně průběžný zůstatek. Raketa používá průběžný zůstatek: 25 mincí znamená dvě zrychlení a pět mincí zbude. Pravidlo „přesně 10“ by 25 mincí ignorovalo. Má-li událost vybrat jednu z více akcí, kontrolujte nejvyšší práh jako první, aby se nespustily všechny nižší úrovně.
Na TikToku diváci kupují mince a utrácejí je za dárky s uvedenou cenou. Vyberte dárky dostupné ve svém LIVE a před zveřejněním pravidla ověřte data. Název dárku, počet dárků, mince a diamanty jsou odlišné míry. Neodvozujte „přesné mince“ z odhadu USD ani nezaměňujte diamanty za mince. Vysvětlení mincí a dárků od TikToku.
Pokud zdroj dodá jen název/počet dárků nebo údaj v diamantech, mincová šablona událost přeskočí, nemá-li výslovná metadata mincí. Použijte pravidlo konkrétního dárku nebo šablonu odhadovaných USD. Metadata mohou pocházet také z mapování dárků SSN; záleží-li na přesné ceně, porovnejte je s aktuální nabídkou LIVE. Katalogy a způsoby zachytávání se liší; žádné univerzální pole mincí není zaručeno v každé zprávě TikTok.
Co posílají jednotlivé platformy
type určuje zdroj; event označuje akci, je-li přítomné. Dostupnost závisí na režimu, nastavení a datech platformy. Příklady popisují současný kód SSN, nezaručují všechny události pro každý účet.
| Platforma | Data podpory a událostí | Rozlišujte |
|---|---|---|
| TikTok | type: "tiktok", event: "gift". Zachytávání příspěvků může dodat hasDonation a donoValue. Metadata mohou obsahovat ID, název, počet, mince či diamanty na dárek a identifikátor série. | Za mince se kupují dárky; diamanty jsou odměny tvůrců. SSApp při zachytávání přes WebSocket nejprve dokončí sérii; prohlížeč může posílat kumulativní aktualizace. Vypnutím zachytávání příspěvků TikTok mohou dárky přijít bez peněžních polí. |
| Twitch | Cheers používají bity, například hasDonation: "100 bits". Zachytávání přes API může používat event: "cheer" a donoValue: 1; zachytávání vykresleného chatu nemusí mít značku události. | Předplatné, darovaná předplatná, raidy a body kanálu jsou samostatné akce. Odznak předplatitele u běžné zprávy neznamená nové předplatné. Přímé Cheers a bity v rozšířeních Twitch jsou různé integrace. |
Viditelné řádky hvězd Live Chat dodávají například hasDonation: "100 Stars" a donoValue: 1, bez event . | API komentářů neodvozuje hvězdy z textu. Zachytávání DOM potřebuje viditelný řádek hvězd; obyčejné komentáře a reakce nedokládají zaplacenou částku. | |
| YouTube | superchat a supersticker nesou původní měnovou částku v hasDonation. Dárky používají jeweldonation s N Jewels, nebo 1 YouTube Gift , když je částka skrytá. | Diváci utrácejí klenoty za dárky, tvůrci získávají rubíny. Členství a darovaná členství jsou jiné události, nikoli klenoty. Super Thanks je samostatný produkt a nezaručuje událost příspěvku v živém chatu. |
Zdroje platforem: Diamanty TikTok; Bity a předplatné Twitch; Přehled hvězd od Meta; YouTube Super Chat a Super Stickers; Klenoty, dárky a rubíny YouTube. Terminologie ověřena 29. září 2026; aktuální podmínky a dostupnost najdete na stránkách platforem.
Jiné zdroje mohou hlásit spropitné, dárky, členství či nákupy. Prohlédněte si přehled událostí než je přidáte do filtru šablony isSupport . Prodej zboží nebo darované předplatné není automaticky spropitné. YouTube například rozlišuje nákup dárku a oznámení příjemci o uplatnění; započtení obou by stejný dárek odměnilo dvakrát.
Používejte donoValue a currency.js správně
hasDonation je původní zobrazovaný popisek, například €5.00 nebo 100 bits. donoValue je volitelná číselná částka USD ze zdroje. Před odhadem z popisku respektujte platnou zadanou hodnotu včetně nuly. Původní popisek zachovejte pro zobrazení.
<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>
Současné chování převodu: SSN nyní odhaduje minci TikTok na 0,01 USD, diamant na 0,005 USD, bit Twitch nebo hvězdu Facebook na 0,01 USD a klenot YouTube na 0,005 USD. Dárek TikTok bez ceny se počítá jako jedna mince za kus; dárek YouTube bez počtu klenotů používá vlastní náhradní odhad 0,01 USD. Měny se také převádějí interními přibližnými kurzy, nikoli živou kurzovní službou.
Jde o porovnávací hodnoty SSN, ne o společnou definici útraty diváka, čistého příjmu tvůrce nebo zůstatku k výběru. Různé způsoby zachytávání mohou dát jiné odhady. Náhradní jedna mince za neznámý dárek TikTok zejména nedokazuje jeho cenu.
Nepoužívejte donoValue || convertToUSD(...): tím by se zahodila záměrná nula. Nezískávejte číslice z chatmessage pro zjištění plateb ani nevyžadujte značku event === "donation": hvězdy Facebook a některé Cheers nemají značku události. Šablona cíle nejprve vybere typy podpory a pak zavolá společný převodník.
Zdroj: currency.js a popis dat. Metadata dárků jsou volitelná; příklady nevymýšlejí chybějící pole.
Sérii dárků započítejte jen jednou
TikTok může hlásit kumulativní počty 1, 2, 3 v jedné sérii. Jsou to tři dárky, ne šest. U sčítacích akcí si pamatujte nejvyšší přijatý počet nebo částku a přidejte jen nárůst. Závěrečná aktualizace se stejným součtem nic nepřidává.
// 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');
Pomocná funkce přednostně používá nativní ID skupiny/odesílatele/dárku TikTok, poté meta.tiktokGiftStreakId nebo ID zpráv. Běžná ID také potlačují opakované doručení. Funkce nečeká na repeatEnd , protože prohlížeč toto pole nemusí nikdy dodat. Jediná akce po dokončení série vyžaduje samostatné pravidlo ukončení z polí, která spojení skutečně posílá.
Výukové šablony drží v paměti nejvýše 2 000 identifikátorů. Reset a obnovení stránky vymažou paměť i postup. Bez stabilních ID nelze spolehlivě odstranit duplicity; druhé zachytávání stejného kanálu může mít jiná ID. Začněte jednou cestou. Raketa seskupuje zůstatky podle platformy a ID uživatele, případně zobrazovaného jména; shodná jména mohou bez ID sdílet zůstatek. Pro trvalou hru přidejte ukládání stavu a obsluhu opakování, než budete spoléhat na zachování placených odměn po restartu.
Odměny bez vlastní hry
V části Event Flow, použijte Porovnat vlastnost s donoValue, větší nebo rovno, a práh v USD. Poté připojte zvuk, animaci nebo ovládání OBS. Porovnání upřednostní platnou hodnotu ze zdroje a podle potřeby použije stávající převod měn.
Pro konkrétní dárek TikTok porovnejte meta.giftId nebo meta.giftName, a omezte tok na události dárků TikTok. Číselná porovnání pole hasDonation se také vyhodnocují v USD; nejde o přímé porovnání mincí. Pro pravidla v mincích použijte nativní metadata nebo vlastní kód.
Práh vyhodnocený pro každou zprávu není totéž co průběžný zůstatek nebo počítadlo série. Nepředpokládejte, že práh Event Flow automaticky sčítá a odstraňuje duplicity jako šablona. Použijte stavové uzly , když tok potřebuje stav, nebo ponechte logiku ve hře.
Vyzkoušejte před zapojením placené akce
- Použijte ukázková tlačítka. Série 1 → 2 → 3 má přidat hodnotu tří dárků; výslovná nula nemá přidat USD; neznámá cena nemá přidat přesné mince.
- Připojte skutečný zdroj a prohlédněte zachycená data. Ověřte název/ID dárku, částku/jednotku, počet a očekávanou událost. Ukázka ověřuje pravidlo, nikoli živé zachytávání platformy.
- Ověřte ve scéně OBS opakované události, opětovné připojení a obnovení stránky. Nevypínejte ani neobnovujte zdroj Prohlížeč, pokud chcete zachovat hru v paměti.
U hry bez obsluhy nebo AFK musí SSN, zachytávání i stránka hry zůstat spuštěné. Uspání počítače, vypršení přihlášení nebo odpojení akce přeruší; šablony nedoplní zmeškané události ani neřeší vrácení peněz. Automatické reakce neznamenají oprávnění zpeněžit vysílání bez obsluhy: ověřte aktuální pravidla LIVE a monetizace pro daný formát.
Pokud nic nepřichází, zkontrolujte dock SSN, pak relaci/heslo a přenos. Přichází-li chat, ale dárek neodpovídá, prohlédněte data a filtry příspěvků/událostí. Dostupnost sledování a předplatného se liší podle zdroje; viz přehled událostí. Podrobnosti o připojení najdete v vlastní překryvy.