Oggetti iniziali
starting_items.toml contiene gli oggetti ricevuti da un nuovo personaggio. Il file
distribuito è scritto da newbie.dfn UOX3, con voci specifiche dello shard come la
lettera di benvenuto. moongate-convert uox può
rigenerare le sue voci UOX3. IStartingItemsService.GiveAsync lo applica a un nuovo personaggio.
Un personaggio riceve ogni [[set]] con common = true, più ogni insieme di cui
soddisfa i filtri.
[[set]]skill = "alchemy"[[set.items]]items = ["black_pearl"]amount = 3equip = false
[[set.items]]items = ["robe"]hue = 1226equip = true| Campo | Significato |
|---|---|
common |
true dà l’insieme a ogni personaggio, indipendentemente dai filtri |
skill |
Dato ai personaggi che iniziano con questa abilità tra le migliori |
race |
human, elf o gargoyle; non impostato indica tutte le razze |
gender |
male o female; non impostato indica entrambi |
items |
Id dei template oggetto; uno scelto casualmente |
amount |
Quantità, come dadi; non impostato indica 1 |
hue |
Tonalità da dare all’oggetto; non impostata mantiene la propria |
equip |
true mette l’oggetto sul personaggio, false nello zaino |
book_template |
Id facoltativo da templates/books/<id>.toml; scrive il testo sull’oggetto creato |
book_values |
Tabella inline dei valori personalizzati dichiarati dal documento; stringhe, numeri finiti o bool |
newbie |
false fa cadere l’oggetto alla morte; non impostato o true lo rende Newbied (conservato) |
GiveAsync lavora in una transazione sul database del mondo; se qualcosa fallisce,
il personaggio non riceve nulla:
- Prende le
ultima.starting_items.best_skillsabilità più alte del personaggio (predefinito 3; a parità prevale l’id più basso; abilità a 0 non contano). - Applica, in ordine, gli insiemi di quelle abilità, quelli comuni, poi quelli di razza e genere del personaggio.
- Crea lo zaino (
ultima.items.backpack_template) e lo mette sul layerBackpack. - Per ogni voce sceglie un oggetto. Uno impilabile riceve l’intero
amount; qualsiasi altro viene creatoamountvolte. equip = trueindossa l’oggetto sul suo layer: illayerdel template, altrimenti quello del tiledata client quando la grafica è contrassegnata indossabile. Se non c’è layer, o è occupato, l’oggetto va invece nello zaino, quindi il primo oggetto su un layer prevale.- Camicie e tuniche indossate prendono la tonalità della camicia scelta alla creazione, pantaloni e gonne quella dei pantaloni; una tonalità 0 mantiene quella dell’oggetto.
- Gli oggetti nello zaino vanno in una posizione casuale entro i limiti di
containers.toml.
L’oro iniziale è una normale voce: il file distribuito dà 1000 monete tramite una
voce dell’insieme comune. Cambiane amount (massimo 65535) per darne più o meno,
o rimuovi la voce per non darne. Una radice preparata prima di questa modifica
mantiene il proprio starting_items.toml, che mgctl non sovrascrive: aggiungi
questa voce al suo insieme comune, o i nuovi personaggi inizieranno senza oro:
[[set]]common = true[[set.items]]items = ["gold_coin"]amount = 1000equip = falseAnche cibo e bevande sono normali voci: l’insieme comune del file distribuito dà
tre pagnotte e una brocca d’acqua, così un nuovo personaggio ha qualcosa contro
fame e sete. Né essi né l’oro fanno parte di
newbie.dfn UOX3: moongate-convert uox aggiunge da solo le tre voci all’insieme comune,
per gli oggetti presenti nella sorgente.
[[set.items]]items = ["bread_loaf"]amount = 3equip = false
[[set.items]]items = ["pitcher_of_water"]equip = falseIl libro vuoto
Section titled “Il libro vuoto”L’insieme comune distribuito dà anche a ogni nuovo personaggio un libro vuoto in
cui scrivere, come ModernUO: venti pagine, con il nome del personaggio come autore.
La sua sorgente è templates/books/blank_book.toml.
Una radice che mantiene il proprio starting_items.toml lo aggiunge al proprio insieme comune:
[[set.items]]items = ["readable_book"]equip = falsebook_template = "blank_book"Lettere iniziali personalizzate
Section titled “Lettere iniziali personalizzate”L’insieme comune distribuito dà a ogni nuovo personaggio una lettera di benvenuto
nello zaino. La sorgente è templates/books/welcome_letter.toml, e il
nome del destinatario è quello del nuovo personaggio, anche prima del suo ingresso nel mondo.
Aggiungi questa voce dentro l’insieme comune esistente, accanto alle altre voci [[set.items]]:
[[set.items]]items = ["readable_scroll"]equip = falsebook_template = "welcome_letter"book_values = { contact_name = "Vega" }Usa book_template senza suffisso .toml. Fornisci ogni variabile personalizzata
dichiarata, senza chiavi aggiuntive. I numeri usano formattazione indipendente dalla
lingua, i bool diventano true o false, e le stringhe inserite sono letterali:
$player_name dentro un valore personalizzato non viene espanso di nuovo. I valori
incorporati provengono dal contesto di creazione; non metterli in book_values.
Titolo, autore e corpo usano [localization].language e sono salvati come
book.template, book.title, book.author e book.content prima della persistenza
dell’oggetto. I libri scrivibili salvano anche book.writable = true e book.pages,
il numero minimo di pagine riservate. Il nome visualizzato segue il titolo renderizzato.
Scambiare la lettera, rinominare il destinatario o modificare la sorgente non può
cambiare il testo salvato. amount crea copie separate non impilabili; continuano
ad applicarsi le normali regole di tonalità, newbie e posizionamento nello zaino.
Gli allegati della sorgente vengono congelati separatamente per ogni lettera iniziale fisica e salvati prima della prima scrittura dell’oggetto. Le ricompense restano nel diritto salvato finché il portatore non le riscatta, quindi non aggiungono peso iniziale. Qualsiasi errore tardivo nella preparazione degli allegati annulla il personaggio e tutti gli oggetti iniziali precedenti. La sorgente di benvenuto distribuita non contiene ricompense; aggiungile alla tua sorgente per abilitarle.
Ogni id oggetto della voce deve risolversi in stackable = false e usare
script_id = "readable_scroll", "readable_book" o "jail_note"; i valori ereditati
contano. Una sorgente con allegati richiede che ogni oggetto candidato usi
readable_scroll o jail_note, che forniscono il gump di riscatto. Una sorgente
scrivibile richiede che ogni candidato usi readable_book. Gli id oggetto della
voce non devono necessariamente coincidere con item_template della sorgente:
una sorgente di sola lettura senza allegati può essere applicata a qualsiasi di
questi oggetti leggibili. Le voci di testo devono avere equip = false.
Se il rendering fallisce durante la creazione del personaggio, personaggio, zaino
e tutti gli oggetti iniziali vengono annullati nella stessa transazione.
Una radice esistente conserva il proprio data/starting_items.toml modificato
quando esegui mgctl init: aggiungi manualmente la voce sopra e riavvia il server.
Rimuoverla disabilita la lettera. moongate-convert uox rigenera gli oggetti iniziali
senza questa associazione specifica dello shard; aggiungila di nuovo dopo la conversione.
Validazione all’avvio
Section titled “Validazione all’avvio”Il server si arresta quando:
starting_items.tomlnon esiste;- un insieme non ha oggetti, o non è comune e non ha abilità, razza o genere;
- una voce non ha oggetti, nomina un oggetto che non è un template oggetto, o ha
un
amountche può produrre meno di 1 o più di 65535; ultima.items.backpack_templateoultima.items.gold_templatenon è un template oggetto;- il template dell’oro non è impilabile;
- una voce di testo referenzia un documento sconosciuto, è equipaggiata, usa un oggetto inadatto, fornisce valori non validi/mancanti/aggiuntivi o non può renderizzare testo valido;
- una voce fornisce
book_valuessenzabook_template.
Vedi anche
Section titled “Vedi anche”- Panoramica dei file dati: posizioni dei file, ordine di caricamento e formati dei valori condivisi.
- Controllare le modifiche: validare i dati modificati prima di riavviare.
Creato con ❤️ da Tom
