Soo, mal wieder ein Update. Links im ersten Post sind aktualisiert. Ich habe jetzt noch ein gröberes XML Format eingebaut, mit dem man massenweise Encounter einbauen kann. Diese tauchen dann in den Encounter-Tabellen auf, aber beinhalten nur die Anzahl und den Kreaturentyp (sowie einen Link auf weitergehende Informationen). Ist allerdings nicht mehr ganz so generisch, da ich für Pathfinder CR<->XP Umrechnung benutze um die Encounter zusammen zu stellen.
Ein Beispiel für eine solche XML-Datei:
<?xml version="1.0" encoding="UTF-8"?>
<generichexcrawl>
<creatures>
<creature name="Giant Spider" cr="1" environment="Sandy Desert, Rocky Desert" organization="1,2,5,8" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/vermin/spider/giant-spider"/>
<creature name="Skeletal Champion" cr="2" environment="Sandy Desert, Rocky Desert" organization="1,2,5,12" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/undead/skeletal-champion"/>
<creature name="Bat Swarm" cr="2" environment="Sandy Desert, Rocky Desert" organization="1,2,3,6,11" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/bat/bat-swarm"/>
<creature name="Giant Scorpion" cr="3" environment="Sandy Desert, Rocky Desert" organization="1,2,4" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/vermin/scorpion/scorpion-giant"/>
<creature name="Dire Bat" cr="2" environment="Sandy Desert, Rocky Desert" organization="1" tableWeight="2" probability="0.05" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/bat/bat-dire"/>
<creature name="Venomous Snake" cr="1" environment="Sandy Desert, Rocky Desert" organization="1,2,5" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/snake/snake-venomous"/>
<creature name="Basilisk" cr="5" environment="Sandy Desert, Rocky Desert" organization="1,2,4" probability="0.05" href="http://www.d20pfsrd.com/bestiary/monster-listings/magical-beasts/basilisk"/>
<creature name="Mummy" cr="5" environment="Sandy Desert, Rocky Desert" organization="1,3,8" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/undead/mummy"/>
<creature name="Squid" cr="1" environment="Ocean" organization="1,2,3,6,12" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/squid"/>
<creature name="Water Mephit" cr="3" environment="Ocean, Sea" organization="1,2,3,4,5,6,7,8,9,10,11,12" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/outsiders/mephit/mephit-water"/>
<creature name="Sea Hag" cr="4" environment="Ocean, Sea" organization="1,3" behaviour="hunter" tableWeight="0.5" probability="0.1" href="http://paizo.com/pathfinderRPG/prd/bestiary/seaHag.html"/>
<creature name="Sahuagin" cr="2" environment="Ocean, Sea" organization="1,2,5,8" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/monstrous-humanoids/sahuagin"/>
<creature name="Shark" cr="2" environment="Ocean" organization="1,2,4,9" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/shark/shark"/>
<creature name="Skum" cr="2" environment="Ocean, Sea" organization="1,3,10" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/monstrous-humanoids/skum"/>
<creature name="Giant Moray Eel" cr="5" environment="Ocean" organization="1,2,5" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/eel/eel-moray-giant"/>
<creature name="Large Water Elementals" cr="5" environment="Ocean, Sea" organization="1,2,5" tableWeight="0.5" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/outsiders/elemental/elemental-water/large-water-elemental"/>
<creature name="Dire Shark" cr="9" environment="Ocean" organization="1" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/shark/dire-shark"/>
</creatures>
</generichexcrawl>
Die meisten attribute sollten selbsterklärend sein, probability bezeichnet die Wahrscheinlichkeit, dass diese Kreatur auf einem Hex mit dem angegebenen Umgebungstyp vor kommt. Organization bezeichnet die Anzahl dieser Kreaturen. Der CR der Begegnung wird entsprechend angepasst, wenn mehrere vorkommen. D.h. wenn ich 3 Giant Spider habe (CR 1) wird der Encounter nur in Gebieten vorkommen, die etwa CR 4 haben (CR 1 = 400 XP, 3 x 400 XP = 1200 XP = CR 4).
Das oben stehende Beispiel habe ich mit benutzt, um die aktuelle Demo zu generieren. Was man jetzt mal bräuchte, wäre eine schöne Sammlung an solchen Dateien. Da man diese einfach so in den events/ Ordner schmeissen kann und die dann dort ausgewertet werden, kann man so ganz einfach die Dateien je nach Laune austauschen. Wie man die genau sortiert, z.B. eine Datei nur für Wüstenbegegnungen, oder eine große für alles oder was weis ich, bleibt einem selbst überlassen.
Ach so, wenn ihr die Demo anschaut: Die meisten Begegnungen gibt es gerade in der Stein- oder Sandwüste sowie im Ozean.
Edit: Habe noch ein weiteres Update hochgeladen. In diesem habe ich die Zufallstabellengeneration noch einmal überarbeitet und für alle Gebiete Kreaturen hinzugefügt.
Die Generation erfolgt jetzt so, dass es eine minimale Anzahl und eine maximale Anzahl von Tabelleneinträgen gibt. So lange die minimale Anzahl noch nicht überschritten ist, werden weitere Aufrufe an den Generator getriggert. Wenn zu viele in der Tabelle sind, werden aus den vorhandenen zufällig welche rausgeschmissen.
Außerdem wurde für die Schwierigkeitsgrade eine Gewichtung eingefügt. D.h. leichte oder schwerere encounter als die des Hex-CR sind seltener (niedriger Table-Weight) als welche mit dem gleichen Schwierigkeitsgrad.
Des weiteren kann man die Attribute der einzelnen Kreaturen auch dem "<creatures>" element übergeben, diese dienen dann als default-wert für die darunter stehende Gruppe. Das macht es übersichtlicher, wenn man z.B. nur "Ocean" Kreaturen in einer Liste hat.
Was ich auch schon eingebaut, aber nicht getestet habe, ist, einfache Behaviour-Typen zu generieren:
<creature name="Shark" cr="2" environment="Ocean" organization="1,2,4,9" behaviour="hunter" perceptionDC="15" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/shark/shark"/>
Die HTML-Seiten dafür sind bisher noch hardcoded, aber grundsätzlich funktioniert es so, dass man einen HTML-Text hat, dort Variablen mit ?varname Kennzeichnet und diese Variablen dann durch passende Attribute ersetzt werden. Das Template für den "hunter" sieht z.B. so aus:
<h1>?name Hinterhalt(CR ?totalcr, XP ?totalxp)</h1>
<p class="description">Du wirst aus dem Hinterhalt angegriffen.</p>
<p class="option">Würfle perception gegen DC ?perceptionDC, wenn nicht geschafft, bekommt der Gegner eine Überraschungsrunde.
<p class="stats">?number x <a href="?href">?name (CR ?cr, XP ?xp)</a><br/></p>
</html>
?totalxp und ?totalcr werden vom Script selbst berechnet.
Was ich bisher gemerkt habe ist, dass ich nicht beides unter einen Hut bekommen kann: Totale Flexibilität und trotzdem passend für Pathfinder. Außerdem komme ich mit der Doku kaum hinterher. Aber das macht nix, es ist ja nur ein Prototyp um mal auszuloten, was so alles geht.