MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | |
| 2 | |
| 3 | ACHTUNG: DIESER LEITFADEN IST FURCHTBAR VERALTET! :-( |
| 4 | |
| 5 | |
| 6 | DER LEITFADEN 'WIE SCHLIESSE ICH ERFOLGREICH MEIN GEBIET AN'. |
| 7 | (in sieben Schritten zum Erfolg, von Tsunami und Feuerwehr) |
| 8 | ------------------------------------------------------------- |
| 9 | |
| 10 | Dieser Leitfaden ist absolut unverbindlich und kein Reglement. Die |
| 11 | Reihenfolge muss nicht eingehalten werden, und auch die Anmerkungen |
| 12 | zu den einzelnen Punkten sind nicht zwingend zu befolgen. |
| 13 | |
| 14 | Fuer Schnellleser: |
| 15 | |
| 16 | 1) Raeume/Objekte/NPCs proggen |
| 17 | 2) Alles Testen und Mail an die Regionsmagier (RM) schicken. |
| 18 | 3) RMs pruefen Code und weisen auf moegliche Probleme hin. |
| 19 | 4) Antrag Balance verfassen ('goto /players/paracelsus/office'). |
| 20 | 5) Forscherpunkte beantragen (hilfe erzmagier). |
| 21 | 6) Mail an RMs, dass nun alles i.O. ist. |
| 22 | 7) RMs schliessen Gebiet an. |
| 23 | |
| 24 | Nun etwas ausfuehrlicher. |
| 25 | |
| 26 | ------------------------------------------------------------- |
| 27 | P H A S E 1 |
| 28 | ------------------------------------------------------------- |
| 29 | Du bist nun also Magier, voller Ideen und Tatendrang. Bevor Du wild drauflos |
| 30 | programmierst, ein paar Tips, um Dir und den zustaendigen RMs das Leben zu |
| 31 | erleichtern: |
| 32 | |
| 33 | Fertige Dir eine ASCII-Karte an, und schreibe einen kurzen Text, der Dein |
| 34 | neues Gebiet beschreibt. Frage schon mal Deinen RM, wo ungefaehr dieses |
| 35 | neue Gebiet angeschlossen werden koennte. So kannst Du Dir ein paar Gedanken |
| 36 | machen, wie die Anschlussraeume ausschauen koennten. |
| 37 | |
| 38 | Erstelle sinnvolle Unterverzeichnise: es hat sich folgendes bewaehrt: |
| 39 | Ein Hauptverzeichnis mit dem Namen des Gebietes (kurz, wenns geht). Dort |
| 40 | kommen dann die Unterverzeichnise rein: z.B. '+/doc +/mon +/obj +/rooms'. |
| 41 | In das '+/doc' kommen dann Deine Karten und Texte. Falls Du mit |
| 42 | 'NotifyPlayerDeath()' Deine Kerben loggen willst, oder andere wichtige |
| 43 | Sachen loggen moechtest, dann schreibe diese Files in das '/log/<deinname>/' |
| 44 | Verzeichnis. |
| 45 | In das '+/mon' Verzeichnis kommen alle NPCs usw. |
| 46 | |
| 47 | Wenn Du ein Textfile aufrufen willst, dass den Inhalt der Unterverzeichnise |
| 48 | beschreibt, so lege einfach eine '.readme' Datei im entsprechenden |
| 49 | Verzeichnis an. Dieses File wird bei jedem 'cd' aufgerufen. |
| 50 | |
| 51 | Bevor Du jetzt losschlaegst, ueberlege Dir ein Define-File, worin Du die |
| 52 | ganzen Pfade definierst. Denn wenn Du zuerst alles in Deinem Player- |
| 53 | Verzeichnis proggst, und vor Anschluss wird das Gebiet in das Regions- |
| 54 | verzeichnis gemoved, will niemand die ganzen Pfadnamen abaendern. |
| 55 | Ein Beispiel: in Dein 'gebiet.h' (gib ihm einen praktischen Namen der zu |
| 56 | Deinem Gebiet passt: eismine.h, hoehle.h oder keller.h usw) kaeme sowas |
| 57 | in der Art: |
| 58 | |
| 59 | #define EISMINE(x) ("/d/polar/tsunami/eismine/"+x) |
| 60 | #define ROOM(x) (EISMINE("rooms/"+x)) |
| 61 | #define MON(x) (EISMINE("mon/"+x)) |
| 62 | #define OBJ(x) (EISMINE("obj/"+x)) |
| 63 | |
| 64 | Dein Raum included dann das File: #include "../gebiet.h" |
| 65 | Dein Ausgang in einen anderen Raum machst Du dann folgendermassen: |
| 66 | AddExit("norden", ROOM("raum02")); |
| 67 | |
| 68 | Ein NPC wuerde somit folgendermassen in den Raum gestellt: |
| 69 | AddItem(MON("eiself"), REFRESH_DESTRUCT); |
| 70 | |
| 71 | Wenn spaeter aus irgend einem Grund Dein Gebiet verschoben werden muss, dann |
| 72 | kann der RM einfach die erste Zeile in 'gebiet.h' abaendern. Das spart Zeit |
| 73 | und Nerven. |
| 74 | |
| 75 | Weiter bietet das Define-File die Moeglichkeit, laengere Befehle zu |
| 76 | verkuerzen. Ein Beispiel: Du moechtest Namen des Spielers (gross geschrieben) |
| 77 | ausgeben. Der Befehl dazu waere: this_player()->Name(WER) |
| 78 | Das ist ziemlich lang. Definiere in Deinem Define-File doch einfach: |
| 79 | #define TPN this_player()->Name(WER) |
| 80 | und schon wird Dein Code etwas uebersichtlicher. Die Anwendung waere z.B. |
| 81 | say(TPN+" popelt in der Nase.\n"); |
| 82 | |
| 83 | Wenn Du automatische Zeilenumbrueche moechtest, dann schreibe folgendes |
| 84 | in Dein Define File: |
| 85 | #define BS(x) break_string(x, 78 , "", BS_LEAVE_MY_LFS) |
| 86 | BS_LEAVE_MY_LFS bewirkt, dass Du immer noch selbst Zeilenumbrueche einbauen |
| 87 | kannst mit \n. Und so wird BS dann benutzt: |
| 88 | AddDetail( ({"wand","waende"}),BS( |
| 89 | "Die Waende bestehen wie alles hier aus purem Saphir. In die noerdliche "+ |
| 90 | "Wand wurde ein schrecklich gezacktes und scharfkantiges Loch gesprengt.")); |
| 91 | |
| 92 | Um dies zu benutzen musst Du allerdings noch #include <break_string.h> in das |
| 93 | Headerfile setzen (vor die #define BS(x)...)-Zeile), sonst kennt der |
| 94 | Precompiler den Ausdruck BS_LEAVE_MY_LFS nicht. |
| 95 | |
| 96 | Du wirst Dein Gebiet evtl. in Deinem Home-Verzeichnis (/players/...) |
| 97 | schreiben, da Du noch nicht den Sprung zu Level 21 geschafft hast. Du |
| 98 | solltest aber wissen, dass Deine RegionsmagierInnen nur Gebiete annehmen |
| 99 | werden, welche im Regionsverzeichnis /d/.../dein_name/ gespeichert sind. Das |
| 100 | ist wichtig, denn in Deinem Heim-Verzeichnis koennen sie nicht schreiben und |
| 101 | so keine Fehler korrigieren. Denke daran! Benutze unbedingt die Defines, |
| 102 | denn vor dem Anschluss wirst Du das Gebiet in das Regionsverzeichnis |
| 103 | schieben muessen. |
| 104 | |
| 105 | Viele Spieler 'loggen', also speichern gerne Tode oder Aktionen von Spielern |
| 106 | in ihren Heim-Verzeichnissen. Dieses Schreiben funktioniert nicht von |
| 107 | Regionsverzeichnissen in Heim-Verzeichnisse. Benutze auch hier ein define! |
| 108 | |
| 109 | Nun kommen wir zum proggen. Falls Du noch nie programmiert hast, ist es |
| 110 | sinnvoll, sich Beispielfiles anzuschauen. Wuehl Dich durch das '/doc' |
| 111 | Verzeichnis oder noch besser: frag Deinen Papimagier/Deine Mamimagierin oder |
| 112 | den RM, ob er Dir ein paar seiner Files zuschickt. Hast Du diese Huerde |
| 113 | ueberwunden, kann es losgehen. Wenn Du anfaengst zu proggen und nicht weisst, |
| 114 | wie man einen bestimmten Befehl benutzt, kannst Du die 'man page' konsultieren |
| 115 | (das Manual = Online Hilfe). Tipp einfach 'man <befehl>' und schon kommt die |
| 116 | entsprechende Hilfeseite, falls vorhanden. |
| 117 | |
| 118 | Ein paar Worte zu den Raeumen: Details sind hier sehr wichtig. |
| 119 | Mach viele Details und beschreibe sie nett. 'unt boden' -> 'Der ist unter Dir.' |
| 120 | ist nicht sehr interessant. Ein Raum mit weniger als 20 Details wird |
| 121 | mittlerweile als ungenuegend angesehen, auch wenn es noch ein paar Gebiete |
| 122 | im MG gibt, wo die Raeume fast keine Details haben (diese Zahl schwankt |
| 123 | natuerlich von Region zu Region -- trotzdem: je mehr Details, desto besser). |
| 124 | AddSmells und AddSounds solltest Du ebenfalls nicht vergessen. Der Spieler |
| 125 | von Welt will auch riechen und hoeren koennen. Wenn Du einen Raum erstellst, |
| 126 | ueberlege Dir auch witzige und/oder sinnvolle Befehle, die man in dem Raum |
| 127 | ausfuehren kann. Bei laengeren Prozeduren ist es fuer den RM hilfreich, wenn |
| 128 | Du im jeweiligen Raum einen kurzen Kommentar absetzt. |
| 129 | |
| 130 | Schau, dass Du ein atmosphaerisch schoenes Gebiet programmierst. Schau, |
| 131 | dass es sich mit seiner Umgebung vertraegt. Bevor Du ein abgestuerztes |
| 132 | Raumschiff von der Vega programmierst, frage lieber Deinen RM, denn |
| 133 | wahrscheinlich passt es thematisch nicht in seine Region (welche Region auch |
| 134 | immer es ist :-)). |
| 135 | |
| 136 | Achte darauf, dass die Toedlichkeit Deines Gebiets sich mit Deiner Umgebung |
| 137 | vertraegt. Ueber-Schwere-Mega-Monster sollten von kleinen Spielern nicht |
| 138 | problemlos erreicht werden koennen. Benutze nicht ganz so toedliche |
| 139 | 'Block-Monster', welche den Zugang versperren. So muss ein Spieler erst |
| 140 | seine Wuerdigkeit beweisen, bevor er an die harten Monster kommt. Tigonen im |
| 141 | Glockenwald sind KEINE gute Idee. |
| 142 | |
| 143 | Viele Magier finden es lustig, Spieler in ihren Gebieten durch Fallen |
| 144 | sterben zu lassen. Das sind z.B. Knoepfe, die man drueckt, und die dann sofort |
| 145 | this_player()->die() aufrufen. Nachdem vor einiger Zeit die Todesfolgen |
| 146 | verschaerft wurden, sind derartige Fallen nicht mehr gern gesehen. Vermeide |
| 147 | sie wenn moeglich. Spieler machen jeden Muell, aber lass sie nicht dafuer |
| 148 | sterben, wenn Du es anders regeln kannst. Jede Todesfalle ist dem RM |
| 149 | aufzuzueigen. |
| 150 | |
| 151 | Die Objekte: dazu gehoeren auch Waffen und Ruestungen, sowie alle anderen |
| 152 | schraengen Dinge, die Dir noch so einfallen werden. Bevor Du Dir Deine |
| 153 | erste Mega-Super-Alles-Kaputtschlag-Axt oder den Alle-Schaeden-Abwehr-Panzer |
| 154 | zusammenbastelst, setz Dich hin, atme ruhig durch und tipp dann 'man balance'. |
| 155 | Dort stehen alle wichtigen Eckdaten, die Du befolgen solltest. Und denk daran, |
| 156 | nicht zuviele exklusiven Waffen und/oder Ruestungen in einem einigen Gebiet. |
| 157 | Wenn Du grosse Objekte schreibst, ist hier auch wieder ein kleiner Kommentar |
| 158 | im File sehr hilfreich fuer den RM. Denk daran, Du bist vielleicht irgendwann |
| 159 | einmal nicht mehr erreichbar und dann ist es gut, wenn im File geschrieben |
| 160 | steht, was das Programm ungefaehr macht. |
| 161 | |
| 162 | Jetzt kommen wir zu ein paar haeufigen Problemen: |
| 163 | Erzeugst Du ein Objekt, das in einen Spieler geschoben wird, musst Du |
| 164 | unbedingt den Return-Wert abfragen, ob der Spieler das noch tragen kann: |
| 165 | Ein Beispiel: Eine eigene Funktion 'nehmen'. |
| 166 | In das create() vom Raum kommt: |
| 167 | AddCmd(({"nimm","nehm","nehme"}),"nehmen"); |
| 168 | |
| 169 | Die Funktion 'nehmen' erzeugt eine Zigarre. Sie prueft, ob einen Zigarre |
| 170 | schon im Raum liegt, dann nimmt der Spieler diese. Falls keine Zigarre |
| 171 | rumliegt, wird eine neue erzeugt und in den Spieler geschoben. |
| 172 | Damit ein Spieler nicht hunderte Zigarren erzeugen kann, wurde eine |
| 173 | globale Variable 'int zaehler; zaehler=5; oben im create() vom Raum erstellt. |
| 174 | Nach einem Raumreset steht der Zaehler wieder auf 5, wenn man das in der |
| 175 | reset() Funktion (siehe unten) definiert. |
| 176 | |
| 177 | nehmen(string str) |
| 178 | { |
| 179 | object ob; |
| 180 | |
| 181 | notify_fail("Was moechtest Du nehmen?\n"); |
| 182 | if(!str) return 0; |
| 183 | if(str=="zigarre") { |
| 184 | if(present("zigarre",this_object())) return 0; |
| 185 | // so wird die Zigarre IM Raum genommen |
| 186 | |
| 187 | if (zaehler) { |
| 188 | write(BS("Du nimmst eine Zigarre aus dem Fach.")); |
| 189 | say(TPN+" nimmt eine Zigarre aus einem Fach.\n",this_player()); |
| 190 | // TPN: siehe oben, Abschnitt 'Defines' |
| 191 | ob=clone_object(OBJ("zigarre")); |
| 192 | if (ob->move(this_player(),M_GET) !=1) { |
| 193 | // dieses '!=1' faengt ME_TOO_HEAVY, ME_TOO_MANY_OBJECTS, |
| 194 | // und ME_CANT_BE_INSERTED ab |
| 195 | |
| 196 | write("Du kannst die Zigarre nicht mehr tragen. Sie faellt zu "+ |
| 197 | "Boden.\n"); |
| 198 | ob->move(environment(TP),M_PUT); |
| 199 | } |
| 200 | zaehler--; |
| 201 | return 1; |
| 202 | } |
| 203 | write(BS("So ein Pech. Jemand hat die besten Stuecke bereits genommen.")); |
| 204 | return 1; |
| 205 | } |
| 206 | // und damit man auch andere Sachen als Zigarren im Raum nehmen kann: |
| 207 | return 0; |
| 208 | |
| 209 | } |
| 210 | |
| 211 | reset() |
| 212 | { |
| 213 | ::reset(); |
| 214 | // nach 30-45 min kann man wieder 5 neue Zigarren nehmen |
| 215 | zaehler=5; |
| 216 | } |
| 217 | |
| 218 | Die NPCs. Es gibt (noch) keine Vorschrift, wie stark maximal NPCs sein duerfen, |
| 219 | aber schau Dir trotzdem 'man balance' zu diesem Thema an. |
| 220 | NPCs werden oft schmerzlich von ihren Magiern vernachlaessigt. Oft |
| 221 | steht der grosse Drache auf dem Speicher, kann Dich in einem Schlag umhaun, |
| 222 | weiss aber nicht einmal seinen Namen und besitzt nicht ein Detail. Kuemmer |
| 223 | Dich um Deine NPCs. Gib ihnen eine schoene Beschreibung, lass sie etwas |
| 224 | ueber sich erzaehlen, gib ihnen Details, gib ihnen Kleidung. |
| 225 | |
| 226 | Oft will man NPCs durch Gebiete laufen lassen, so dass sie mal Land und |
| 227 | Leute kennenlernen. Das ist etwas rechnerlastig, und auch wenn wir jetzt |
| 228 | jede Menge Power unter der Haube haben, sollte man einige Dinge beachten: |
| 229 | * Es gibt einige sehr schoene Standard-Lauf-NPCs. Es bietet sich an, diese |
| 230 | zu benutzen. Sie haben alle noetigen Eigenschaften, unter anderem, dass sie |
| 231 | stehen bleiben, wenn sie keine Spieler mehr antreffen. Das spart |
| 232 | Performance. Ausserdem werden sie oft von einem Master gesteuert, und das |
| 233 | spart call_outs. |
| 234 | * Aufwendig ist besonders das Bewegen von NPCs. Rennende NPCs sind doch |
| 235 | oede. Lass sie sich langsam bewegen. Jedes schoene Gespraech mit einem NPC |
| 236 | geht in die Hose, wenn der NPC staendig vor einem weglaeuft. |
| 237 | |
| 238 | Denke generell daran, uebersichtlich zu programmieren. Benutze nicht |
| 239 | mehr als 78 Zeichen pro Zeile, fuege ruhig Leerzeilen ein, um die Struktur |
| 240 | zu unterstreichen. Ruecke in Schleifen den Code ein paar (z.B. 3) Zeichen |
| 241 | ein. Kommentare machen Deinen RM gluecklich! Wenn Du einst vielleicht nicht |
| 242 | mehr da bist, wird irgend jemand Deinen Code warten muessen. Denk an den |
| 243 | armen Kerl! Fuege bei Deinen Objekten einen Hinweis darauf ein, wovon und |
| 244 | wofuer sie benutzt werden! Wenn Du die Wahl hast, Code in einer |
| 245 | fuerchterlich effizienten, aber unuebersichtlichen Weise zu schreiben, oder |
| 246 | etwas weniger effizient, aber intuitiv und einleuchtend, nimm die |
| 247 | einleuchtende Weise. |
| 248 | |
| 249 | Zaubertraenke, Gildenobjekte, Gildenquests |
| 250 | |
| 251 | Zaubertraenke |
| 252 | |
| 253 | Zaubertraenke sind wichtig, und obwohl es sie schon an vielen Stellen im MG |
| 254 | gibt, sind sie immer noch gefragt. Man sollte beim Einbauen von ZTs daran |
| 255 | denken, sie nicht tief in Quest-Gebieten zu verstecken, so dass ein Spieler |
| 256 | keine Quest nochmal spielen muss, nur um den ZT zu bekommen. Ausserdem |
| 257 | sollten sie nicht zu schwer versteckt werden. Ein Zaubertrank in einem Buch |
| 258 | bekommt man z.B. durch: |
| 259 | |
| 260 | create() { |
| 261 | ... |
| 262 | AddReadDetail("buch","@@det_buch@@"); |
| 263 | } |
| 264 | |
| 265 | string det_buch() |
| 266 | { |
| 267 | if (this_player()->FindPotion("Du findest Macht in diesem Buch...\n")) |
| 268 | return ""; |
| 269 | else |
| 270 | return "Du findest keine Macht in diesem Buch. Wie schade...\n"; |
| 271 | } |
| 272 | |
| 273 | Denke daran, auch einen Vers zu schreiben, welcher im Orakel den Tip fuer |
| 274 | diesen ZT darstellt. Du kennst diese Verse sicher schon zur Genuege :-). |
| 275 | Du musst den Zaubertrank spaeter zusammen mit den Forscherpunkten anmelden. |
| 276 | |
| 277 | Gilden- und Miniquests. |
| 278 | |
| 279 | Gildenquests sind kleine Aufgaben, nicht gross genug fuer richtige Quests, |
| 280 | welche von den Mitgliedern einer Gilde geloest werden muessen, bevor sie |
| 281 | aufsteigen koennen. Die Dinger sind voll im Kommen. Zauberer-, Kaempfer- |
| 282 | oder Chaos-Gildenmagier sind immer hinter denen her. Quests wie 'Finde das |
| 283 | verschollene Buch' oder 'Befreie den Verurteilten' lassen sich oft ohne |
| 284 | grossen Aufwand in Gebiete einbauen. Sie garantieren auch eine gewisse |
| 285 | permanente Besucherzahl im Gebiet :-)). Bevor man diese Quests einbaut, |
| 286 | sollte man das prinzipielle OK der Gildenmagier holen, nachher muss man |
| 287 | ihnen die Quest vorstellen, damit sie sie bewerten und freigeben. |
| 288 | |
| 289 | Will man eine kleine Aufgabe nicht gildenabhaengig, sondern fuer alle |
| 290 | Spieler einbauen und dafuer Stufenpunkte vergeben, dann kann man die Aufgabe |
| 291 | auch als Miniquest eintragen lassen, und zwar beim gleichen EM, der auch die |
| 292 | FPs eintraegt. Es folgen Code-Beispiele fuer die Vergabe der Quests... |
| 293 | |
| 294 | int befreie(string wen) |
| 295 | { |
| 296 | notify_fail("Wen moechtest Du befreien?\n"); |
| 297 | if (wer != "gefangener") |
| 298 | return 0; |
| 299 | |
| 300 | // Hier werden die Stufenpunkte fuer die Miniquest vergeben... |
| 301 | // Falls man keine Miniquest angemeldet hat, laesst man das natuerlich weg |
| 302 | SCOREMASTER->GiveMiniQuest(this_player()); |
| 303 | |
| 304 | // Hier sind die Kaempfer. Der Code kann variieren... |
| 305 | call_other("/p/kaempfer/std/k_master","SetzeAufgabe",getuid(this_player()), |
| 306 | "Befreie den Gefangenen"); |
| 307 | |
| 308 | // Letztes Beispiel: Hier sind die Zauberer: |
| 309 | call_other("/p/zauberer/npc/test","GiveQuest",this_player(), |
| 310 | "Befreie den Gefangenen"); |
| 311 | ... |
| 312 | } |
| 313 | |
| 314 | Gildenobjekte |
| 315 | |
| 316 | Gildenobjekte wirken noch besser als Gildenquesten, um Spieler in Gebiete zu |
| 317 | locken :-). Dies sollte jedoch kein Anlass sein, ein Gebiet mit derartigen |
| 318 | Dingen zu ueberladen aber dafuer die Details und die Atmosphaere zu |
| 319 | vergessen. Ganz generell gilt: Maessige Dich! Weniger ist mehr! |
| 320 | |
| 321 | Ganz generell sind Gildenobjekte z.B. Utensilien der Zauberer, Waffen mit |
| 322 | Kaempfer-Boni fuer Kaempfer oder Kreiden etc. fuer Chaoten. Diese Objekte |
| 323 | muessen natuerlich von den Gildenmagiern genehmigt werden, bevor das Gebiet |
| 324 | angeschlossen wird. Sprecht frueh genug mit den Gildenmagiern. Sie werden |
| 325 | euch sicher genug Beispiele fuer derartige Objekte geben, weshalb hier auf |
| 326 | derartiges verzichtet wird. |
| 327 | |
| 328 | ------------------------------------------------------------- |
| 329 | P H A S E 2 |
| 330 | ------------------------------------------------------------- |
| 331 | Du hast nun alle Raeume/Objekte/NPCs erstellt. Nun geht es in die Testphase. |
| 332 | Erzeuge Dir einen Testspieler, damit Du Deine Raummeldungen wie z.B. mittels |
| 333 | tell_room() auf ihre Richtigkeit ueberpruefen kannst. Schau Dir in Ruhe |
| 334 | Deine Sachen an und versuche, die unsinnigsten Sachen darin zu tun. Das werden |
| 335 | die Spieler naemlich nachher auch machen. Ist Deiner Meinung nach alles OK, |
| 336 | schreib eine Email an Deine zustaendigen RMs. Sehr hilfreich (fuer die RMs) |
| 337 | waere eine zusaetzliche Liste (siehe auch Phase 4) mit: |
| 338 | |
| 339 | 1) allen NPCs (welche Objekte tragen sie) und allfaellige Sonderfunktionen |
| 340 | ganz kurz erlaeutert. |
| 341 | 2) Eine Liste aller Objekte. Bei komplizierten Objekten eine kurze Beschreibung |
| 342 | 3) Eine Liste, in welchem Raum liegt welches Objekt/ZT/Heilstelle/NPC |
| 343 | |
| 344 | Diese Liste kannst Du natuerlich in Dein /doc Verzeichnis legen, was dann auch |
| 345 | spaeter sehr hilfreich sein kann. |
| 346 | |
| 347 | Falls sich Deine RMs nicht melden, sprich sie an, mail ihnen nochmal. |
| 348 | Vielleicht haben sie Deine Mail vergessen. RMs sind prinzipiell vergesslich. |
| 349 | Sie unterhalten sich jedoch sicherlich gern mit Dir. Keine falsche |
| 350 | Bescheidenheit, ran an den Feind. |
| 351 | |
| 352 | - Testspieler - oder - Zwischen Legalitaet und Wahnsinn - |
| 353 | |
| 354 | Kaum ein Magier kann die merkwuerdigen, oft widersinnigen und kranken |
| 355 | Gedankengaenge eines Spielers nachvollziehen. Deshalb ist es eine gute |
| 356 | Sache, sein Gebiet von Spielern testen zu lassen. Sie koennen die Staerke |
| 357 | der NPCs gut einschaetzen und korrigieren, kennen die geheimen Kniffe der |
| 358 | Gilden und machen generell das, woran man nie gedacht hat. |
| 359 | |
| 360 | Spielertesties sind so eine Sache. Als erstes muss man kompetente Spieler |
| 361 | finden, welche bereit sind, das Gebiet zu testen. Dies ist nicht einfach, |
| 362 | denn die wirklich guten Tester sind oft hoffnungslos ueberbelegt. Hat man |
| 363 | einen willigen Spieler gefunden, kreiert man sich einen Testspieler, indem |
| 364 | man einen neuen Spieler einloggt und im P_TESTPLAYER auf den eigenen Namen |
| 365 | setzt. Das kannst Du z.B. so machen: |
| 366 | xcall testi->SetProp(P_TESTPLAYER,"<Magier>") wobei <Magier> Dein Name ist. |
| 367 | |
| 368 | Danach darf man ihn wild in Gilden eintreten lassen, ihm seine |
| 369 | Werte setzen und ihm Ausruestung clonen. Es gibt einige schoene |
| 370 | Testspieler-Tools, mit denen sich Testies Ruestungen setzen und sich heilen |
| 371 | koennen. |
| 372 | |
| 373 | Hat man Spieler und Testspieler, so kommt man an die legalen Probleme. Alles |
| 374 | wichtige erfaehrt man durch 'hilfe testspieler'. Dort steht, dass |
| 375 | Testspieler bei Erzmagiern angemeldet werden muessen, welche sie dann in ein |
| 376 | Ueberwachungstool eintragen, so dass seine Handlungen geloggt werden. |
| 377 | Tatsache ist, dass sich aber kaum einer seine Testspieler bei einem |
| 378 | Erzmagier anmeldet und die meisten EMs das selbst nicht tun. (Testies neuer |
| 379 | Gilden moegen hier eine Ausnahme bilden). |
| 380 | |
| 381 | Generell beachte folgendes: Mach keine Spieler zu Testspielern, denen Du nicht |
| 382 | traust oder die Du nicht kennst. Wenn ein Spieler mit seinen Tools durchs MG |
| 383 | laeuft und Unsinn anstellt, bist Du mit Schuld, egal ob der Testie |
| 384 | angemeldet ist oder nicht. Wenn Du einen Spieler durch ein Gebiet laufen |
| 385 | laesst, bevor die FPs eingetragen wurden, dann ist das nicht legal, aber es |
| 386 | wird keiner meckern, wenn Du ihn ueberwachst und somit aufpasst, dass er |
| 387 | keinen Unsinn ausserhalb des Gebiets anstellt. Wenn Du einen Spieler durch |
| 388 | ein Gebiet mit FPs laufen laesst und der Spieler die von ihm gefundenen FPs |
| 389 | bekommen will, so musst Du ihn bei einem Erzmagier anmelden, denn FPs kann |
| 390 | nur ein Erzmagier setzen. |
| 391 | |
| 392 | Oh, und schreibe Dir die Namen und Passwoerter Deiner Testspieler auf. Falls |
| 393 | man mehrere hat, vergisst man verflucht schnell die Namen :-). |
| 394 | |
| 395 | ------------------------------------------------------------- |
| 396 | P H A S E 3 |
| 397 | ------------------------------------------------------------- |
| 398 | Die RMs schauen alle Files an, die Du erzeugt hast. Danach werden sie Dir |
| 399 | eine Liste zurueckschicken mit allen Problemfaellen, die sie gefunden haben. |
| 400 | Je nach Umfang Deines Gebietes kann das natuerlich etwas dauern. |
| 401 | Hast Du die Informationen zurueckbekommen, kannst Du Dich an den Feinschliff |
| 402 | machen. In der Zwischenzeit solltest Du Phase 4 und Phase 5 erledigen. |
| 403 | |
| 404 | ------------------------------------------------------------- |
| 405 | P H A S E 4 |
| 406 | ------------------------------------------------------------- |
| 407 | Falls Du Objekte hast, die genehmigungspflichtig sind (man balance), so musst |
| 408 | Du einen Antrag an das Balanceteam stellen. In der Zwischenzeit sollte Dein |
| 409 | Magierlevel so hoch sein, dass Du den Befehl 'goto' benutzen kannst. Es |
| 410 | gibt einen Extra Raum fuer die Balanceantraege: |
| 411 | goto /players/paracelsus/office |
| 412 | Dort gibt es dann eine gute Hilfeseite. |
| 413 | Wichtiges zum Antrag: mach bitte nicht fuer jedes Objekt einen eigenen |
| 414 | Antrag, sondern schreibe Dir einen grossen Antrag, in den alle Deine |
| 415 | Objekte reinkommen, die der Balance vorgelegt werden muessen (siehe Phase 2: |
| 416 | aus der Liste, die Du erstellt hast). Dazu solltest Du jedes Objekt kurz |
| 417 | beschreiben. Dazu kommen die wichtigsten Werte, bei Waffen z.B. Waffenart, |
| 418 | P_WC, P_NR_HANDS, P_DAM_TYPE, P_WEIGHT, und eine kurze Beschreibung der |
| 419 | Sonderfunktionen. |
| 420 | Das Bewilligen Deiner Objekte kann eine ziemlich lange Zeit in Anspruch |
| 421 | nehmen (Wochen). Hier nicht ungeduldig sein. Das dauert seine Zeit. |
| 422 | Wenn Du Objekte proggst, die bestimmt durch die Balance muessen, gib doch |
| 423 | Deinem RM fruehzeitig Bescheid, dass er sich das anguckt. Dann kannst Du |
| 424 | die Sachen bereits beantragen, und in der Zeit, bis die Antraege |
| 425 | bewilligt wurden, die anderen Dinge proggen. Dieser Ansatz gilt aber eher |
| 426 | fuer Magier, die bereits etwas angeschlossen haben und neue Gebiete |
| 427 | erstellen. Fuer den Neuling ist es empfehlenswerter, alles fertigzumachen |
| 428 | und dann zu beantragen. Grund: siehe oben: So kannst Du vorweisen, dass Du |
| 429 | Dir Muehe gegeben hast, tolle Sachen auf die Beine zu stellen, und nicht |
| 430 | einfach einen NPC in die Welt stellen willst, mit hunderten toller Objekte. |
| 431 | |
| 432 | ------------------------------------------------------------- |
| 433 | P H A S E 5 |
| 434 | ------------------------------------------------------------- |
| 435 | Gleichzeitig solltest Du die Forscherpunkte beantragen. Welcher Erzmagier |
| 436 | dafuer zustaendig ist, findest Du mit 'man erzmagier' heraus. Die |
| 437 | Faustregel lautet: etwa 1 FP pro 10 Raeume. Vermeide FP fuer Details, damit |
| 438 | die 'Untersuche-Skripte' keine Chance haben. Geh lieber so vor: |
| 439 | Detail: 'gras' -> 'Du wuerdest Dich am liebsten ins Gras legen.' |
| 440 | Wenn der Spieler dann eintippt 'lieg ins gras' oder so aehnlich, gib dafuer |
| 441 | den FP, aber nicht fuers Untersuchen vom Gras. |
| 442 | Wofuer Du alles Forscherpunkte eintragen kannst, erfaehrst Du durch |
| 443 | 'hilfe forscherpunkte'. |
| 444 | Mache ein paar Vorschlaege, und schick sie dann dem zustaendigen Erzmagier. |
| 445 | Der wird aus Deinen Vorschlaegen ein paar rauspicken und anschliessen. |
| 446 | Aber bevor Du das tust, muss Dein Gebiet zwingend schon im Regionsverzeichnis |
| 447 | liegen, damit keine FPs aus /players eingetragen werden. |
| 448 | |
| 449 | Gleichzeit mit den FPs meldest Du auch MiniQuests und Zaubertraenke |
| 450 | bei diesem Erzmagier an. Du musst angeben, wieviele Stufenpunkte die |
| 451 | Miniquest bringen soll und in welche der 3 Kategorien einfach/mittel/schwer |
| 452 | Deine Zaubertraenke fallen. |
| 453 | |
| 454 | Denke daran, spaetestens jetzt die Gildenquests und Gildenobjekte bei den |
| 455 | Gildenmagiern anzumelden. Unangemeldetes darf nicht angeschlossen werden. |
| 456 | Wende Dich also frueh genug an diese Leute. |
| 457 | |
| 458 | ------------------------------------------------------------- |
| 459 | P H A S E 6 |
| 460 | ------------------------------------------------------------- |
| 461 | Ist alles von der Balance genehmigt worden, und sind die FP angeschlossen, |
| 462 | solltest Du Deine RMs informieren. Falls Dein Gebiet immer noch im |
| 463 | Heimverzeichnis liegt, wird es nun in dein Regionsverzeichnis |
| 464 | verschoben. Du stehst nun kurz vor dem Anschliessen. Ueberleg Dir doch |
| 465 | schon eine nette Botschaft, die Du dann in der MPA veroeffentlichen wirst. |
| 466 | |
| 467 | ------------------------------------------------------------- |
| 468 | P H A S E 7 |
| 469 | ------------------------------------------------------------- |
| 470 | GRATULATION! Du hast es geschafft! Aber jetzt nicht auf den Lohrbeeren |
| 471 | ausruhen. Die ersten Spieler werden sich einfinden, und viele sind |
| 472 | wandelnde Konversationslexikons, die auch den kleinsten Grammatikfehler |
| 473 | in Deinen Beschreibungen finden. Andere Spieler werden Dir neue Vorschlaege |
| 474 | fuer commands zusenden, die in die entsprechenden Raeume passen wuerden. |
| 475 | In /log/report/<magiername>.rep wird automatisch Dein Report-File erzeugt, |
| 476 | in das die Spieler die gefundenen Typos, Bugs und sonstige Ideen reinschreiben. |
| 477 | Schau Dir Dein Repfile an, und arbeite es ab so gut es geht. |
| 478 | Nur so wird das Gebiet zu einem wirklich 'gepflegten' Gebiet. |
| 479 | Denke daran, das rep-File nach dem Abarbeiten zu loeschen, sonst wird |
| 480 | es zu voll. |
| 481 | |
| 482 | |
| 483 | SIEHE AUCH: |
| 484 | balance, hilfe magier, /doc/wiz/ |
| 485 | |
| 486 | ---------------------------------------------------------------------------- |
| 487 | Last modified: 16:00 2003-02-22 by Humni |