Das Efferdland ist eröffnet!

Bild: Tür

Hallo,

Nach einer langen Entwicklungsphase haben wir uns dazu entschlossen, das Efferdland heute (am 15.2.2020 um 20.30 Uhr) für alle Spieler zugänglich zu machen. Gleichzeitig wird das Vorgängerspiel ‘AnderLand’ geschlossen.

Zum Spielen empfehlen wird den Mud-Client Mudlet, der für fast alle relevanten Betriebssysteme verfügbar ist.

Das Efferdland ist zu erreichen unter: efferdland.de 31415 (31415 ist der sogenannte Port, auf dem das Efferdland läuft.) Zum Reinschnuppern könnt Ihr aber auch erst einmal hier klicken.

Ideen, Fehlermeldungen und Wünsche eurerseits sind immer willkommen!

Wir wünschen Euch viel Spaß im Efferdland.

LG, – It –

EL Eröffnung am 15.2.2020

Bild: Tor

Hallo zusammen,                                                            
wir gehen in die heiße Phase. Das bedeutet, dass ab Dienstag, den 11.02.20, ab exakt 18 Uhr im AnderLand nichts mehr gespeichert wird. Sprich: jeglicher Fortschritt in Sachen Skills, Quests, Forschen etc. solltet ihr ab diesem Zeitpunkt unterlassen. 🙂

Anmerkung von It@Efferdland: Vielleicht ist das auch mal eine Möglichkeit, sich gefährliche Gegenden anzuschauen, in die man sonst niemals gehen würde, denn Ihr könnt ja nichts verlieren. 🙂

                               
Eure Spielerdaten werden an den darauffolgenden Tagen ins Efferdland übernommen und es ist geplant, am Samstag, den 15.02.20, im Laufe des Tages/Abends das Efferdland regulär in Betrieb zu nehmen.

Gruß, Torin@Efferdland

NPC Firstkill Nummern

Bild: Cyberworld

Seit kurzem besitzt jeder (metzelbare) NPC eine eindeutige ID. Diese ID

  • wird vom Killmaster in jedem metzelbaren NPC gesetzt
  • kann im NPC über die Property P_NPC_KILL_NUM abgerufen werden. Die Property ist in /sys/npc/combat.h definiert.

Beispielweise ist die P_NPC_KILL_NUM von einem Drachen die 284.

Will man nun wissen, ob der Spieler diesen Drachen schon getötet hat, dann kann man das wie folgt realisieren:

public int test_kill(object pl) {
  if(objectp(pl) && interactive(pl)) {
   
    // Alle Kills des Spielers befinden sich in diesem
    // Bitfeld (String) direkt in Spielerobjekt
    string|int killbits = pl->GetKillBits();  

    // Noch keine Kills im Spieler gesetzt
    if(!stringp(killbits)) {
      return 0; 
    }
    // Testet auf die ID (284) unseres Drachen
    if(long_test_bit(killbits,284)) {
      
      // Drache bereits einmal getötet
      return 1;  
    } 
  }
  return 0;  // Drache noch nie getötet.
}

Man kann natürlich auch eine ganze Liste von NPCs anlegen und diese dann abfragen. Hier ein Beispiel mit einem Mapping:

protected mapping killmap = 
([
  284: "Drache 1",
  285: "Drache 2",
  400: "Drache 3",
]);

public int|int* test_kill(object pl) {
  if(objectp(pl) && interactive(pl)) {
    string|int killbits = pl->GetKillBits();

    if(!stringp(killbits)) {
      return 0; // Noch keine Kills im Spieler gesetzt
    }

    // Hier schreiben wir später unser Ergebnis rein
    int *ret = ({});

    // Durchlaeuft alle Keys des Mappings killmap
    foreach(int num:m_indices(killmap)) {

      // auf Key (num) testen
      if(long_test_bit(killbits,num)) {

        // falls bereits im Spieler gesetzt, dann in
        // einem Array eintragen, das wir später zurück
        // geben können. 
        ret += ({num});                    
      }
    }
    // Array mit allen NPCs aus killmap, die der Spieler 
    // bereits getötet hat, zurück geben.
    return num; 
  }
  return 0;
}

Ich hoffe, diese kleinen Beispiele regen etwas Eure Fantasie an. Damit kann man einige interessante Aufgaben schreiben. Ich selbst arbeite gerade an einen ‘Orden der Drachentöter’.

LG, It@Efferdland

Kompass

Bild: Kompass

Hallo liebe Magier,

für die Quest ‘Bildschön’ in Ollenhayn an der südlichen Grenze zum Mittland erhält man als Belohnung einen Kompass. Dieser führt Spieler durch den Sumpf am Großen See in der Ebene.

Der Kompass befindet sich in /p/pool/special/kompass.c

Inzwischen kann man den Kompass auch für andere Gebiete benutzen und so z.B. Hinweise zu versteckten Wegen geben. Dazu müsst ihr in Euren Räumen den Header:

/p/pool/special/kompass/sys/kompass.h

includen und danach im Raum die Property P_KOMPASS setzen. P_KOMPASS enthält dann die Richtung, in der sich die Kompassnadel dreht.

Beispiel: SetProp(P_KOMPASS,”norden”);

LG, It@Efferdland