Tale (11): save games

Saturday 05 May 2012, 18:16:00 | mud / i.f.

Het is nu mogelijk om de toestand van het spel op te slaan en weer in te lezen! (save/load). Dit is op een erg eenvoudige manier geïmplementeerd: hij slaat een pickle op van alle objecten die de spel wereld voorstellen (alle npc's, de locaties, alle items en de speler zelf natuurlijk). Dus er is wel een beperking: je kunt alleen objecten gebruiken de gepickled kunnen worden (of je moet je eigen getstate/setstate implementeren - dit heb ik hier en daar moeten doen in de basis objecten). Opnieuw laden kan nu alleen nog bij het (her)starten van het spel, niet middenin een lopende sessie.

Alle text output wordt nu netjes gelayout dmv textwrap! Voorbeeld:

>> !set irmen.screen_width=60

  <mudlib.player.Player 'irmen' @ 0x24dbdd0, privs:wizard>
  Field set: irmen.screen_width = 60

>> l

  <mudlib.base.Location 'Main hall of the Tower of Magic' @
  0x24c0290>
  [Main hall of the Tower of Magic]
  The main hall of this ancient wizard tower sparkles with
  traces of magic.  Everything seems to glow a little from
  within.  You can hear a very faint hum.
  A heavy wooden door to the east blocks the noises from the
  street outside.  A small ladder leads up through a hole in
  the ceiling.  A door to the north leads to the kitchen.
  You see an oak table and a rusty key.  Mindless drone is
  here.

>> !set irmen.screen_width=90

  <mudlib.player.Player 'irmen' @ 0x25bedf0, privs:wizard>
  Field set: irmen.screen_width = 90

>> l

  <mudlib.base.Location 'Main hall of the Tower of Magic' @ 0x259f2b0>
  [Main hall of the Tower of Magic]
  The main hall of this ancient wizard tower sparkles with traces of magic.  Everything
  seems to glow a little from within.  You can hear a very faint hum.
  A heavy wooden door to the east blocks the noises from the street outside.  A small
  ladder leads up through a hole in the ceiling.  A door to the north leads to the
  kitchen.
  You see an oak table and a rusty key.  Mindless drone is here.

>>

Er zijn nog een paar nieuwe commando's bij gekomen: insult. again. show. score. time/date. transcript (heeft ook cmd-line optie).

Verder is er een standaard 'verb' op objecten. Als die niet speciaal gezet is, is hij standaard gelijk aan 'examine'. Dit betekent dat je niet meer "examine book" hoeft te typen, het volstaat om simpelweg "book" te typen.

Container-items die je bij je draagt hebben nu standaard achter hum beschrijving "(empty)" of "(containing things)" staan, zodat je snel kunt zien of er nog iets in zit. Wat er precies in zit moet je nog steeds gewoon bekijken dmv examine.

MudObjects bewaren nu oorspronkelijke title en description tekst ook als _title en _description zodat die te gebruiken zijn in eventuele @property varianten van title en description, waarbij alleen maar een stukje tekst erachter wordt gezet (zoals "(open)" en "(closed)")