blob: e7308e46b24052ffc8317e85a7c553f724ff6f5f [file] [log] [blame]
Hallo zusammen,
hallo lieber Lehrling!
Diese Beispiele habe ich fuer Saitha zusammengestellt. Der Zweck ist, eine
Reihe von aktuellen, modernen Beispielen fuer zeitgemaesses LPC zu haben,
anhand derer ein frischgebackener Lehrling seine ersten eigenen Objekte
zusammenbasteln kann, aber auch Code hat, den er spaeter nachgucken und
im Zweifelsfall einfach uebernehmen und selbst erweitern kann. Haeufig ist
es ja einfacher, sich an Wohlbekanntem entlangzuhangeln, als von Grund auf
alles selbst neu anzufangen.
Bedenkt bitte, dass die Beispiele genau das sind: Beispiele. Sie ersetzen
keinen LPC-Kurs, und es wird davon ausgegangen, dass man grundlegende
Programmier-Techniken beherrscht. Haeufig habe ich Code weggelassen, der
fuer das Beispiel nicht noetig ist bzw. ablenken wuerde, den man aber in
einem fertig gebastelten Objekt nicht weglassen wuerde, z.B. vollstaendig
beschriebene Details. Dennoch sollten alle Beispiel ladbar sein, so dass
man die illustrierte Technik daran interaktiv ausprobieren kann.
Gelegentlich mag es notwendig sein, einen Magier zu befragen, WARUM man
etwas in bestimmter Weise macht, und dringend ist empfohlen, alles in den
Manpages nachzuschlagen, was einem unbekannt erscheint, speziell alle
Properties, die man nicht bereits gut kennt. Ich habe versucht, in den
Kommentaren auf nicht-offensichtliche Manpages hinzuweisen. Befragt im
Zweifelsfall Euren Sponsor oder einen Mitmagier.
Ich habe versucht, den Beispielen eine Struktur zu geben und die Komplexitaet
nach und nach zu steigern, also immer nur ganz wenige Dinge jeweils pro
Beispiel neu einzufuehren. Damit sind die Beispiele natuerlich keine
Enzyklopaedie und erheben keinen Anspruch auf Vollstaendigkeit.
Denkt bitte daran, dass das letzte Wort in Bezug auf Euer neues Gebiet oder
Gesellenstueck der zustaendige Regionsmagier hat. Fragt ihn im Zweifelsfall
nach seiner Meinung. Oh - und liebe Lehrlinge, wenn Ihr selbst Vollmagier
mit ergrauten Haaren seid, wenn dieses Tutorial alt und vergilbt ist,
dann bastelt ein neues, das dann wieder schick und modern ist. :)
Notstrom, November 2018.
A. Unser erster eigener Raum
============================
1. Ein einfacher Raum ohne alles
room/huette1.c
2. Ein Raum mit Details
room/huette2.c
3. Zwei Raeume, die durch Ausgaenge miteinander verbunden sind
room/huette3a.c, room/huette3b.c
4. Eine oberflaechliche Kurzeinfuehrung in Commands. Viel zu kurz, aber
irgendwo muss man ja anfangen.
room/huette4.c
5. Ein Raum mit unserem ersten NPC.
room/huette5.c, npc/zwerg1.c
6. Ein Raum mit einem ausgeruesteten NPC.
room/huette6.c, npc/zwerg2.c
7. Ein Raum mit einem NPC, der ueber Spells und Resistenzen verfuegt.
room/huette7.c, npc/zwerg3.c
8. Ein Raum mit einem NPC, der ein eigenes Defend() definiert.
room/huette8.c, npc/zwerg4.c
9. Ein Raum mit einem NPC, der eine persoenliche Waffe und einen
Spezialangriff nutzt.
room/huette9.c, npc/zwerg5.c
10. Ein Raum mit einem NPC, dessen Waffe auf eine andere Weise "persoenlich",
naemlich in diesem Fall nur fuer ihn zu zuecken, ist.
room/huette10.c, npc/zwerg6.c
11. Ein Raum mit dynamischer Langbeschreibung, geloest ueber eine Inline-
Closure.
room/huette11.c
12. Ein Raum, wo man etwas anfassen kann. Ausserdem enthaelt er Geruch und
Geraeusch.
room/huette12.c
13. Ein weiteres Beispiel fuer eine dynamische Langbeschreibung, dynamisches
Detail. Ausserdem ein NPC, der eine selbstdefinierte Prop benutzt.
room/huette13.c
14. Ein Beispiel fuer einen Call_out.
room/huette14.c
B. Unser erster eigener NPC
===========================
1. Ein Zwerg, der nur rumstehen kann.
npc/zwerg1.c
2. Ein toll ausgeruesteter Zwerg.
npc/zwerg2.c, obj/krempel.c, obj/axt.c, obj/schild.c
3. Ein Zwerg mit Resistenzen und Spells.
npc/zwerg3.c
4. Ein Zwerg mit eigenem Defend().
npc/zwerg4.c
5. Ein Zwerg mit eigenem Attack() und einer speziellen Waffe.
npc/zwerg5.c
6. Ein Zwerg mit einer speziellen Waffe.
npc/zwerg6.c
7. Ein Zwerg, der eine selbstdefinierte Prop verwendet.
npc/zwerg7.c
C. Unsere ersten eigenen Gegenstaende
=====================================
1. Eine einfache Waffe.
obj/axt.c
2. Ein Schild (Beispiel fuer eine Ruestung).
obj/schild.c
3. Ein Gegenstand, der weder Waffe noch Ruestung ist.
obj/krempel.c
5. Eine Waffe, die nur fuer einen bestimmten NPC zu zuecken ist, nicht fuer
Spieler.
obj/axt2.c
6. Eine Waffe, die nur fuer beliebige NPCs zu zuecken ist, nicht fuer
Spieler.
obj/axt3.c