Salta ai contenuti

Anelli incisi

Un gioielliere incide un anello o una fede nuziale per un giocatore: un testo di al massimo 60 caratteri all’interno, per un matrimonio, un’amicizia o un ricordo. L’anello viene fatto al momento, a pagamento, e il testo compare nel suo tooltip.

  1. Avvicinati a un gioielliere. Scegli Engraving: nel suo menu contestuale (il testo del client per questa voce), oppure di’ il suo nome e la parola engrave, per esempio “Gilbert, engrave a ring for me”, da 4 caselle.
  2. Si apre un gump con un campo per il testo. Scrivilo, poi premi il pulsante dell’anello (500 monete d’oro) o della fede nuziale (1000 monete d’oro). Cancel chiude il gump.
  3. Il gioielliere dice il prezzo e ricorda l’ordine. Lascia su di lui esattamente quell’oro, da 2 caselle o meno.
  4. L’anello è nello zaino. Chiunque vede cosa c’è inciso nel suo tooltip, e un doppio clic ti dice il testo.

Il gioielliere prende solo la somma esatta: qualsiasi altro oro prosegue come per ogni venditore (paga una lezione che il gioielliere ha quotato, o ti torna indietro) e il prezzo viene ripetuto. Un ordine vive nella memoria del server per dieci minuti, uno per ogni gioielliere e giocatore: uno nuovo sostituisce l’ultimo, Cancel o un testo vuoto lo dimentica, e dopo un riavvio si ordina di nuovo. Un fantasma non paga nulla.

I caratteri di controllo vengono tolti, gli spazi alle due estremità vengono tagliati e il testo viene troncato a 60 caratteri. Anche <, > e un # iniziale vengono tolti: il testo compare in un tooltip, dove verrebbero letti come markup o come riferimento a un testo del client. L’anello è benedetto, quindi chi lo indossa da morto lo conserva, e a terra non decade mai. L’anello viene fatto prima che l’oro sia preso, quindi uno zaino senza spazio non perde nulla: il gioielliere lo dice e l’ordine resta.

I venditori il cui template di mobile è jeweler, m_jeweler o f_jeweler. L’elenco e i prezzi sono le costanti JEWELERS e KINDS di scripts/common/engraving.lua: si cambiano lì.

La voce del menu usa il testo del client Engraving: perché una voce indica un testo del client con il suo numero, e il client non ha un testo per “Incidi un anello”.

File Cos’è
templates/items/misc/engraved-rings.toml i template engraved_ring e engraved_wedding_band: la grafica di un anello (0x108A), layer anello, non impilabile, mai in decadimento, benedetto, script_id = "engraved_ring"
scripts/common/engraving.lua la voce del menu, la parola, l’ordine, il prezzo e il pagamento
scripts/mobiles/shopkeeper.lua, scripts/common/shop.lua i venditori che lo richiamano: la voce, la parola e l’oro lasciato
scripts/items/engraved_ring.lua on_use dice il testo, on_tooltip aggiunge la riga Engraved: …
templates/gumps/ring_engrave.xml e scripts/gumps/ring_engrave.lua il gump; lo script costruisce il campo e i pulsanti e prende l’ordine

Il testo vive nella prop ring.text, salvata con l’oggetto. Il gump non si fida della risposta del client: l’ordine ricontrolla che il venditore sia un gioielliere, che il giocatore sia vivo ed entro 8 caselle da lui, e ripulisce il testo. L’oro è il template gold_coin.

I template normali ring e weddingband che i gioiellieri vendono e il loot dà restano invariati: non portano alcun testo.

Creato con ❤️ da Tom

Offrimi un caffè