Makra (CBS)
Skrypty w klamrach w dowolnym tekście promptu.
Składnia
Makra to tokeny w podwójnych klamrach rozwijane w chwili żądania. Działają w polach postaci, wpisach lorebooków, presetach, powitaniach i zwykłym tekście czatu, i można je zagnieżdżać.
{{char}} smiles at {{user}}.
{{random::sunny::rainy::foggy}}
{{calc::1+2*3}}Argumenty rozdziela podwójny dwukropek. Nieznane makra rozwijają się do niczego zamiast rzucać błąd, więc literówka nigdy nie psuje żądania.
Makra podstawowe
| Makro | Rozwija się do |
|---|---|
{{char}} | Imię bieżącej postaci (czaty grupowe: bieżący mówca). |
{{user}} | Imię twojej persony. |
{{persona}} | Opis twojej persony. |
{{description}} | Pole opisu bieżącej postaci. |
{{lastmessage}} | Tekst najnowszej wiadomości. |
{{time}} / {{date}} | Bieżący czas / data w twoim języku i strefie czasowej. |
Losowość
random wybiera argument na nowo przy każdym rozwinięciu, pick robi wybór stabilny dla rozmowy, a roll rzuca kośćmi w notacji d.
{{random::a::b::c}} {{pick::a::b::c}} {{roll::d20}}Rzuty i losowania mają ziarno per tura: regeneracja używa tych samych wartości, więc przesuwanie nie przerzuca twoich kości.
Zmienne
Zmienne czatu trwają per gałąź rozmowy; zmienne globalne trwają we wszystkich czatach. Ustawiaj je w dowolnym tekście z makrami albo ze skryptów wyzwalaczy.
{{setvar::mood::happy}}
{{getvar::mood}}
{{setglobalvar::visits::1}}Przechowywanie per gałąź oznacza, że przejście na inną gałąź przywraca jej stan zmiennych; rodzeństwo nigdy nie przecieka wartości między sobą.
Formy blokowe
Bloki otaczają treść: if renderuje ciało tylko przy prawdziwym warunku, each iteruje po tablicach z podstawianiem slotu, a when dodaje liniowe gałęzie else.
{{#if {{equal::{{getvar::mood}}::happy}}}}
{{char}} is in a great mood.
{{/if}}
{{#each {{array::red::green::blue}} item}}
Color: {{slot::item}}
{{/each}}pure i escape chronią dosłowne klamry przed rozwinięciem; każdy tag zamykający zamyka najbardziej wewnętrzny otwarty blok.
Komentarze i literały
Makra komentarzy znikają, zanim model je zobaczy, idealne na notatki w polach karty. Użyj bloków pure, gdy chcesz pokazać składnię makr dosłownie.
{{// note to self, never sent to the model}}
{{#pure}}{{char}} stays literal here{{/pure}}