blob: 947ea31e7ac6d9d4f18cf1f246b5b03c3c0772a9 [file] [log] [blame]
notstromf9193d32018-11-10 23:43:59 +01001Hallo zusammen,
2hallo lieber Lehrling!
3
4Diese Beispiele habe ich fuer Saitha zusammengestellt. Der Zweck ist, eine
5Reihe von aktuellen, modernen Beispielen fuer zeitgemaesses LPC zu haben,
notstrom3d78b092018-11-11 00:17:05 +01006anhand derer ein frischgebackener Lehrling seine ersten eigenen Objekte
notstromf9193d32018-11-10 23:43:59 +01007zusammenbasteln kann, aber auch Code hat, den er spaeter nachgucken und
8im Zweifelsfall einfach uebernehmen und selbst erweitern kann. Haeufig ist
notstromafae0382018-11-11 00:18:29 +01009es ja einfacher, sich an Wohlbekanntem entlangzuhangeln, als von Grund auf
notstromf9193d32018-11-10 23:43:59 +010010alles selbst neu anzufangen.
11
12Bedenkt bitte, dass die Beispiele genau das sind: Beispiele. Sie ersetzen
13keinen LPC-Kurs, und es wird davon ausgegangen, dass man grundlegende
14Programmier-Techniken beherrscht. Haeufig habe ich Code weggelassen, der
15fuer das Beispiel nicht noetig ist bzw. ablenken wuerde, den man aber in
16einem fertig gebastelten Objekt nicht weglassen wuerde, z.B. vollstaendig
notstrom62812ba2018-12-03 23:01:16 +010017beschriebene Details. Dennoch sollten alle Beispiel ladbar sein, so dass
18man die illustrierte Technik daran interaktiv ausprobieren kann.
notstromf9193d32018-11-10 23:43:59 +010019
20Gelegentlich mag es notwendig sein, einen Magier zu befragen, WARUM man
21etwas in bestimmter Weise macht, und dringend ist empfohlen, alles in den
22Manpages nachzuschlagen, was einem unbekannt erscheint, speziell alle
23Properties, die man nicht bereits gut kennt. Ich habe versucht, in den
24Kommentaren auf nicht-offensichtliche Manpages hinzuweisen. Befragt im
25Zweifelsfall Euren Sponsor oder einen Mitmagier.
26
27Ich habe versucht, den Beispielen eine Struktur zu geben und die Komplexitaet
28nach und nach zu steigern, also immer nur ganz wenige Dinge jeweils pro
29Beispiel neu einzufuehren. Damit sind die Beispiele natuerlich keine
30Enzyklopaedie und erheben keinen Anspruch auf Vollstaendigkeit.
31
32Denkt bitte daran, dass das letzte Wort in Bezug auf Euer neues Gebiet oder
33Gesellenstueck der zustaendige Regionsmagier hat. Fragt ihn im Zweifelsfall
34nach seiner Meinung. Oh - und liebe Lehrlinge, wenn Ihr selbst Vollmagier
35mit ergrauten Haaren seid, wenn dieses Tutorial alt und vergilbt ist,
36dann bastelt ein neues, das dann wieder schick und modern ist. :)
37
38 Notstrom, November 2018.
39
40
notstrom8df40412018-11-04 18:12:55 +010041A. Unser erster eigener Raum
42============================
43
441. Ein einfacher Raum ohne alles
45 room/huette1.c
462. Ein Raum mit Details
47 room/huette2.c
483. Zwei Raeume, die durch Ausgaenge miteinander verbunden sind
49 room/huette3a.c, room/huette3b.c
notstrom72ff8992018-11-04 20:34:21 +0100504. Eine oberflaechliche Kurzeinfuehrung in Commands. Viel zu kurz, aber
51 irgendwo muss man ja anfangen.
52 room/huette4.c
notstrom9e3d7be2018-11-08 18:25:09 +0100535. Ein Raum mit unserem ersten NPC.
54 room/huette5.c, npc/zwerg1.c
notstrom7c6edc22018-11-09 09:52:37 +0100556. Ein Raum mit einem ausgeruesteten NPC.
56 room/huette6.c, npc/zwerg2.c
notstrom6f80d2d2018-11-12 18:41:29 +0100577. Ein Raum mit einem NPC, der ueber Spells und Resistenzen verfuegt.
58 room/huette7.c, npc/zwerg3.c
notstroma4e01e32018-11-12 20:22:28 +0100598. Ein Raum mit einem NPC, der ein eigenes Defend() definiert.
notstrom2b580792018-12-03 10:12:20 +010060 room/huette8.c, npc/zwerg4.c
619. Ein Raum mit einem NPC, der eine persoenliche Waffe und einen
62 Spezialangriff nutzt.
63 room/huette9.c, npc/zwerg5.c
notstrom2c844922018-12-03 10:40:03 +01006410. Ein Raum mit einem NPC, dessen Waffe auf eine andere Weise "persoenlich",
65 naemlich in diesem Fall nur fuer ihn zu zuecken, ist.
66 room/huette10.c, npc/zwerg6.c
notstrombe6b03f2018-12-12 18:14:06 +01006711. Ein Raum mit dynamischer Langbeschreibung, geloest ueber eine Inline-
68 Closure.
69 room/huette11.c
notstrom63889b22018-12-12 19:59:59 +01007012. Ein Raum, wo man etwas anfassen kann. Ausserdem enthaelt er Geruch und
71 Geraeusch.
72 room/huette12.c
notstrom22f99b52018-12-15 14:37:07 +01007313. Ein weiteres Beispiel fuer eine dynamische Langbeschreibung, dynamisches
74 Detail. Ausserdem ein NPC, der eine selbstdefinierte Prop benutzt.
75 room/huette13.c
notstromd8a66ae2019-01-12 12:46:38 +01007614. Ein Beispiel fuer call_out().
notstroma8a195b2019-01-06 15:36:17 +010077 room/huette14.c
notstromd8a66ae2019-01-12 12:46:38 +01007815. Ein Beispiel mit einem Raum, wo etwas im init() passiert. Gleichzeitig
79 ein weiteres Beispiel fuer call_out().
80 room/huette15.c
notstromb7b29922019-08-01 16:04:56 +02008116. Ein Beispiel fuer einen Raum, bei dem im reset() etwas passiert, und fuer
82 einen Behaelter. Gleichzeitig ein Beispiel fuer filter() mit Inline-Closure
83 und fuer bewegen eines Arrays Gegenstaende.
84 room/huette16.c, obj/kiste.c
notstrom7c6edc22018-11-09 09:52:37 +010085
notstrom9e3d7be2018-11-08 18:25:09 +010086
87B. Unser erster eigener NPC
88===========================
89
901. Ein Zwerg, der nur rumstehen kann.
91 npc/zwerg1.c
notstrom59fbae92018-11-09 09:12:04 +0100922. Ein toll ausgeruesteter Zwerg.
93 npc/zwerg2.c, obj/krempel.c, obj/axt.c, obj/schild.c
notstrom6f80d2d2018-11-12 18:41:29 +0100943. Ein Zwerg mit Resistenzen und Spells.
95 npc/zwerg3.c
notstroma4e01e32018-11-12 20:22:28 +0100964. Ein Zwerg mit eigenem Defend().
97 npc/zwerg4.c
notstrom2c844922018-12-03 10:40:03 +0100985. Ein Zwerg mit eigenem Attack() und einer speziellen Waffe.
notstrom2b580792018-12-03 10:12:20 +010099 npc/zwerg5.c
notstrom098c0ac2018-12-09 17:27:19 +01001006. Ein Zwerg mit einer speziellen Waffe.
notstrom2c844922018-12-03 10:40:03 +0100101 npc/zwerg6.c
notstrom22f99b52018-12-15 14:37:07 +01001027. Ein Zwerg, der eine selbstdefinierte Prop verwendet.
103 npc/zwerg7.c
notstrom59fbae92018-11-09 09:12:04 +0100104
notstrom7c6edc22018-11-09 09:52:37 +0100105
106C. Unsere ersten eigenen Gegenstaende
107=====================================
108
1091. Eine einfache Waffe.
110 obj/axt.c
1112. Ein Schild (Beispiel fuer eine Ruestung).
112 obj/schild.c
1133. Ein Gegenstand, der weder Waffe noch Ruestung ist.
114 obj/krempel.c
notstrom958ddb62018-12-03 23:09:58 +01001155. Eine Waffe, die nur fuer einen bestimmten NPC zu zuecken ist, nicht fuer
116 Spieler.
notstromd60962e2018-12-09 18:17:44 +0100117 obj/axt2.c
notstrom958ddb62018-12-03 23:09:58 +01001186. Eine Waffe, die nur fuer beliebige NPCs zu zuecken ist, nicht fuer
119 Spieler.
notstromd60962e2018-12-09 18:17:44 +0100120 obj/axt3.c
notstromb7b29922019-08-01 16:04:56 +02001217. Ein grosser, nicht bewegbarer Behaelter.
122 obj/kiste.c
123
notstrom2b580792018-12-03 10:12:20 +0100124