Makrolar (CBS)
Her prompt metninde küme parantezli betikleme.
Söz dizimi
Makrolar, istek anında genişleyen çift küme parantezli belirteçlerdir. Karakter alanlarında, lorebook girdilerinde, ön ayarlarda, açılışlarda ve düz sohbet metninde çalışır; iç içe geçebilir.
{{char}} smiles at {{user}}.
{{random::sunny::rainy::foggy}}
{{calc::1+2*3}}Argümanlar çift iki nokta ile ayrılır. Bilinmeyen makrolar hata yerine hiçliğe genişler; yazım hatası bir isteği asla bozmaz.
Çekirdek makrolar
| Makro | Şuna genişler |
|---|---|
{{char}} | Geçerli karakterin adı (grup sohbetlerinde geçerli konuşmacı). |
{{user}} | Personanın adı. |
{{persona}} | Personanın açıklaması. |
{{description}} | Geçerli karakterin açıklama alanı. |
{{lastmessage}} | En son mesajın metni. |
{{time}} / {{date}} | Dilinde ve saat diliminde geçerli saat / tarih. |
Rastgelelik
random her genişlemede yeni argüman seçer, pick konuşma boyunca sabit bir seçim yapar, roll ise d-notasyonuyla zar atar.
{{random::a::b::c}} {{pick::a::b::c}} {{roll::d20}}Zarlar ve rastgeleler tur başına tohumlanır: yeniden üretim aynı değerleri kullanır; kaydırmak zarlarını yeniden atmaz.
Değişkenler
Sohbet değişkenleri konuşma dalı başına kalıcıdır; küresel değişkenler tüm sohbetlerde kalıcıdır. Makro destekleyen her metinde veya tetikleyici betiklerinden ayarla.
{{setvar::mood::happy}}
{{getvar::mood}}
{{setglobalvar::visits::1}}Dal bazlı saklama, başka dala kaydırmanın o dalın değişken durumunu geri getirmesi demektir; kardeş dallar birbirine asla değer sızdırmaz.
Blok biçimleri
Bloklar içeriği sarar: if gövdesini yalnızca koşul doğruysa işler, each dizilerde yuva ikamesiyle döner, when satır bazlı else dalları ekler.
{{#if {{equal::{{getvar::mood}}::happy}}}}
{{char}} is in a great mood.
{{/if}}
{{#each {{array::red::green::blue}} item}}
Color: {{slot::item}}
{{/each}}pure ve escape gerçek küme parantezlerini genişlemeden korur; her kapanış etiketi en içteki açık bloğu kapatır.
Yorumlar ve değişmezler
Yorum makroları model onları görmeden yok olur; kart alanlarındaki notlar için idealdir. Makro sözdizimini olduğu gibi göstermek gerektiğinde pure blokları kullan.
{{// note to self, never sent to the model}}
{{#pure}}{{char}} stays literal here{{/pure}}