
FAMILIEN
********


BESCHREIBUNG
============

   Eine Familie umfasst den Erstie und alle Zweities, sprich alle
   diese haben den gleichen "Familiennamen". Dieser Name ist in der
   Regel die UUID des Ersties dieser Familie. Falls aber der Erstie
   sich aendern sollte (z.B. Magierwerdung eines Zweities) und sich
   der Familienname nicht aendern soll, dann koennen wir den Namen
   dieser Familie beibehalten (d.h. alter Erstie).

   Will man wissen, welcher Familie ein Char angehoert (egal, ob
   Erstie oder Zweitie), dann geht das mit:

      # xcall /secure/zweities->QueryFamilie(player_object)

   Des Weiteren liefert dieses Objekt auch noch zu jedem Zweitie den
   Erstie und zu jedem Erstie die Liste aller bekannten Zweities:

      # xcall /secure/zweities->QueryErstieName(player_object)
      # xcall /secure/zweities->QueryErstieUUID(player_object)
      # xcall /secure/zweities->QueryZweities(player_object)

   Der Datenbestand ist (noch) nicht vollstaendig, daher fehlen da
   noch viele Chars. Die werden aber in absehbarer Zeit dort
   nachgetragen.

   Die Familie wird in Zukunft genutzt, um Dinge zu personalisieren,
   welche fuer den Spieler, aber nicht fuer den Char individuell sein
   sollen. Sprich: personalisiert man irgendwas ueber die Familie,
   koennen alle Chars dieser Familie das irgendwas nutzen.


VERWALTUNG
==========

   Wenn sich der Erstie aendert, aber die Familie aller Zweities
   erhalten bleiben soll (z.B. weil sich der Erstie innerhalb der
   Familie wegen Magierwerdung aendert), muss dies in der
   Familienverwaltung hinterlegt werden, indem fuer den *neuen* Erstie
   die alte Familien-ID eingetragen wird. Dies koennen zur Zeit EM+.

   Beispiel: Der alte Erstie einer Familie ist bert_123456, der neue
   Erstie ist alice_654321. Die Familie soll aber weiterhin
   bert_123456 sein:

      # xcall /secure/zweities->SetFamilie("alice_654321, "bert_123456")

   Ein solcher expliziter Familieneintrag kann wieder geloescht
   werden:

      # xcall /secure/zweities->DeleteFamilie("alice_654321")

   EM+ koennen Zweities wieder aus der Datenbank loeschen (UUID
   angeben!):

      # xcall /secure/zweities->DeleteZweitie("bert_12345")

SIEHE AUCH:
   P_SECOND, P_SECOND_MARK

LETZTE AeNDERUNG:
   8.1.2019, Zesstra
