Pietre incise
Un giocatore compra una pietra da un architetto per 10000 monete d’oro, la posa a terra e ci scrive un titolo e un breve testo. Chiunque passi può leggerla con un doppio clic; solo il proprietario può sollevarla di nuovo.
Come si usa
Section titled “Come si usa”- Compra una pietra incisa da un architetto. L’acquirente ne diventa il proprietario.
- Posala a terra dove vuoi. Nessun altro può sollevarla: possono farlo il proprietario e lo staff.
- Scrivi
.writee seleziona la pietra. Si apre un gump con un campo per il titolo (40 caratteri) e sei righe di testo (60 caratteri ciascuna), già riempiti con quello che c’è scritto. Save conserva la risposta, Cancel chiude il gump. - Chiunque fa doppio clic sulla pietra per leggerla in un gump a parte. Una pietra su cui nessuno ha scritto lo dice.
Il titolo diventa il nome della pietra, così il client lo mostra al passaggio del mouse; un titolo vuoto restituisce alla pietra il suo nome. I caratteri di controllo vengono tolti e i testi più lunghi dei limiti vengono tagliati. I testi sono mostrati come testo semplice: nulla di quello che scrive un giocatore viene letto come HTML.
Chi ne è il proprietario
Section titled “Chi ne è il proprietario”Il tag owner_on_buy = "true" su un template di oggetto fa sì che il venditore assegni la prop owner (il serial
dell’acquirente) a ogni oggetto che crea per un acquisto. È generico: qualunque template può usarlo, la pietra incisa è
la prima. Una pietra creata con .add engraved_stone non ha proprietario, quindi solo lo staff può sollevarla o
scriverci.
La prop resta con la pietra. Lo script della pietra rifiuta ogni sollevamento tranne quello del proprietario e dello
staff (can_pick_up), e ogni rilascio in un contenitore che non è del proprietario (can_drop, a cui viene detto il
serial che il rilascio indica): una pietra può andare a terra, sul suo proprietario, o in una borsa o nella banca che il
proprietario porta con sé, mentre una borsa a terra, la borsa di un altro giocatore o un altro personaggio la
rifiutano, così nessuno può portarla via dentro una borsa. Anche rilasciarla su un oggetto a terra viene rifiutato:
rilasciala su una casella vuota. Lo staff può metterla dove vuole.
Il template è benedetto, quindi un proprietario morto tiene la pietra fuori dal cadavere, e a terra non svanisce mai.
Quello che lo script non vede è uno spostamento fatto dallo staff o da un altro script, di cui non viene interrogato.
Testi: il titolo non può contenere <, > né un # iniziale (il titolo è il nome dell’oggetto, che i tooltip
mostrano), e quello che è scritto viene conservato come digitato, quindi ${name} in una riga è una riga e non un
segnaposto.
Dati e script
Section titled “Dati e script”| File | Cos’è |
|---|---|
templates/items/misc/engraved-stones.toml |
il template engraved_stone: una lapide (0x1165), non impilabile, spostabile (la sua grafica ha il peso 255 del tiledata, che conterebbe come fissa), senza decadimento, benedetta, script_id = "engraved_stone", il tag owner_on_buy |
templates/shops/architect.toml |
la riga di acquisto: 10000 monete, cinque pezzi in magazzino |
scripts/items/engraved_stone.lua |
on_use apre il gump di lettura, can_pick_up lascia sollevare il proprietario e lo staff |
scripts/common/engraved_stone.lua |
i limiti e le regole condivise da script e gump |
templates/gumps/stone_read.xml |
il gump di sola lettura |
templates/gumps/stone_write.xml e scripts/gumps/stone_write.lua |
il gump per scrivere; lo script costruisce i campi e salva |
Il testo sta nelle prop stone.title e stone.text (le righe unite da un a capo), salvate con l’oggetto. I limiti
sono le costanti TITLE_MAX, LINES e LINE_MAX in scripts/common/engraved_stone.lua: cambiale lì e i campi le
seguono.
Il salvataggio non si fida della risposta del client: ricontrolla che la pietra sia una pietra incisa e che il giocatore ne sia il proprietario, o lo staff, e ripulisce e taglia ogni testo prima di conservarlo.
Vedi anche
Section titled “Vedi anche”Creato con ❤️ da Tom
