wer kennt das nicht: da sendet man seinen geliebte Gelehrten-Helden über eine vermeintlich sichere Landstraße – und prompt kommt ein Trio banditischer Störenfrieden und luchst einem die sicher geglaubte Trankrezepte, Zutaten und – oh weh – auch noch das letzte Holzplättchen ab, dass man irgendwo unten im Rucksack vergessen hatte!
Eine gute Nachricht für alle die wegen solchen Vorkommnissen schon mal kräftig in die Tastatur gebissen haben: Im aktuellen Wochenprojekt könnt ihr selbst Abhilfe schaffen.
Wir wollen uns dieses Mal besonders häufige Kampf-Begegnungen widmen und bei diesen:
- Neue Optionen für Nichtkämpfer einbauen, um sich vor einem Kampf rauszureden, davonzustehlen, zu verstecken, zu bluffen oder zu verwirren.
- Neulinge schonen, in dem ein „Welpenschutz“ eingebaut wird.
- Die Begegnungen verschönern, in dem sich die Schurken jedes Mal ein bisschen anders verhalten, anders aussehen, zu verschiedenen Jahreszeiten zuschlagen und und und…
Bitte schreibt unten eure Ideen, Vorschläge und bitte, bitte auch Textbausteine für die betreffenen ZBs auf. Programmieren müsst ihr nicht, das übernehmen wir. Wenn ihr Probleme habt, die Begegnungen hinter all dem Code gut zu verstehen, fragt gerne nach. Ihr findet die Begegnungen in den folgenden Spoilern:
ZB1: Krakenmolch auf hoher See
Spoiler:
- Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<scene xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://eisentrutz.antamar.eu/aoqml.xsd">
<p>Es ist nebelig heute, und kaum ein Lufthauch ist zu erwarten, der die grauen Schleier vertreiben könnte. Ohnehin sind alle Segel eingeholt, der Anker geworfen. Bei diesem Wetter Fahrt zu machen ist unmöglich! Verärgert über die Verzögerung der ohnehin öden Reise vertrittst du dir an Deck die Füße, während die meisten Matrosen und Passagiere unter Deck beim Licht der trüben Öllampen und flackernden Kerzen würfeln, ihr Glück mit Karten versuchen oder sich mit Liedern, Geschichten und kleinen Handarbeiten die Zeit vertreiben. Außer dir sind nur zwei Matrosen als Wache an Deck, dazu der Ausguck im Mast, der als Einziger leidlich über den Nebel hinwegschauen kann.</p>
<challenge talent="Sinnenschärfe" mod="3">
<success> <!-- Held kämpft zu Zweit gegen den Krakenmolch -->
<p>Irgend etwas ist seltsam. Obwohl es keinerlei Seegang gibt, gluckert und schwappt es... Gerade noch kannst du sehen, wie ein langer schleimiger Tentakel über die Reling nach einem der Matrosen tastet! Ein Riesenkrake kriecht an Bord, er hat den Matrosen schon am Bein gepackt und zerrt ihn ins Wasser - du musst ihm helfen!</p>
<fight>
<friends>
<npc npcid="389" name="Matrose" escape="false" weapon="Säbel"/>
</friends>
<rivals>
<npc npcid="533" name="Krakenmolch" gender="male" escape="true"/>
</rivals>
<victory takeDroppedWeapons="false">
<switch name="rivals:#1:status">
<case val="geflohen">
<p>Mit heftigen Schlägen vertreibst du das riesige Seeungeheuer, und als die anderen Matrosen an Deck eilen, kümmerst du dich schon um den Verletzten. Dankbar geben dir die Matrosen eine Runde doppelten Grog aus.</p>
</case>
<else>
<p>Mit heftigen Schlägen trennst du die widerlichen Tentakel des Seeungeheuers ab und kannst den Matrosen so befreien. Der Krake hat sich unterdessen unter Wasser zurückgezogen. Als die anderen Matrosen an Deck eilen, kümmerst du dich schon um den Verletzten. Dankbar geben dir die Matrosen eine Runde doppelten Grog aus.</p>
</else>
</switch>
<set attribute="EP" show="none" inc="14"/>
</victory>
<escape>
<p>Das Monstrum hat sich zurückgezogen, doch auch du bist vom Kampf geschwächt. Es ist ungewiss wann, aber du bist dir sicher, es gibt ein nächstes Mal.</p>
<p>Hilflos musst du mit ansehen, wie das Monstrum den Matrosen in die Tiefen des Meeres reißt. Auch als die anderen Matrosen nach oben kommen, können sie nichts mehr tun.</p>
<set attribute="EP" show="none" inc="5"/>
</escape>
<defeat>
<p>Da das Monstrum dir seine Tentakel mit aller Kraft um die Ohren haut, wird dir schwarz vor Augen. Als du später unter Deck erwachst, musst du erfahren, dass es den Matrosen über Bord gerissen und verschlungen hat.</p>
<set attribute="EP" show="none" inc="2"/>
</defeat>
</fight>
</success>
<failure> <!-- Held muss alleine gegen den Krakenmolch kämpfen -->
<p>In deine Gedanken versunken schlenderst du an der Reling entlang, als urplötzlich etwas sehr großes, kaltes und schleimiges mit Saugnäpfen nach dir greift - ein Krakenmolch klettert gerade über die Reling, um sich einige Matrosen als Häppchen zu angeln!</p>
<fight>
<rivals>
<npc npcid="533" name="Krakenmolch" gender="male" escape="true"/>
</rivals>
<victory takeDroppedWeapons="false">
<p>Als du einige Tentakel des Monsters zerhackt hast, zieht es sich hungrig in die finsteren Tiefen des Meeres zurück. Nachdem die Besatzung gemerkt hat, was los ist, lässt der Kapitän doppelte, bewaffnete Wachen aufstellen.</p>
<set attribute="EP" show="none" inc="14"/>
</victory>
<escape>
<p>Nachdem die glitschigen Tentakel dir übel zugesetzt haben, kannst du dich gerade noch auf das erhöhte Achterdeck zurückziehen. Der schleimige Körper des Unteheuers zieht sich an Deck, und nur mit vereinter Kraft können die Matrosen ihn wieder vertreiben.</p>
<set attribute="EP" show="none" inc="5"/>
</escape>
<defeat>
<p>Die peitschenden und quetschenden Arme des Seemonsters walken dich durch wie ein Bäcker seinen Teig. Gerade, als das Monstrum dich ins Wasser ziehen will, kommen einige der Matrosen mit Äxten und Bootshaken hinzu und können dich eben noch retten.</p>
<set attribute="EP" show="none" inc="2"/>
</defeat>
</fight>
</failure>
</challenge>
<!-- Hagen vH: Folgendes To-Do war in PHP vermerkt und soll durch meine AOQML-Konvertierung nicht abhanden kommen:
#################
@todo (Kampf gegen 4 Tentakel des Krakenmolches (AT 8, PA 0, RS 1, LE 10, 1W6+6 Schaden, Ini W6+15))
#################-->
</scene>
Spoiler:
- Code: Alles auswählen
function sub_rast_goblin($zeitpunkt, $weg) {
$arr_1 = array('Du hast dich eingerichtet und zur Ruhe begeben. Eigentlich könntest du auch schlafen, immerhin liegst du jetzt schon ewig bewegungslos herum.','Aufmerksam beobachtest du deine Umgebung, doch auf die Dauer ist das unheimlich langweilig.');
$arr_4 = array('Da entdeckst du durch deine halb geschlossenen Lider, wie sich doch tatsächlich ein Grasbüschel an deinen Sachen zu schaffen macht!');
showText($arr_1[array_rand($arr_1)]);
showText($arr_4[array_rand($arr_4)]);
showText('Du raffst dich auf und schwingst deine Waffe. <q>Wer da, sprich!</q>');
$erschwernis = roll_dice(1,4);
if(eigenschafts_probe('CH', $erschwernis) < 0){
showText('Anscheinend wirkst du gerade nicht wie ein strahlender Verteidiger oder gar Held, jedenfalls greift das Büschel dich jetzt an.');
$npc_id = roll_dice(1,3,324);
$kampf_optionen = array();
$kampfausgang = kampf_npc_duell($npc_id, $zeitpunkt, $kampf_optionen);
switch($kampfausgang['held']) {
case KAMPF_GEWONNEN:
if($kampfausgang[KAMPF_GEFLOHEN]['gegner'] == 1) {
$arr_2 = array('Da läuft er davon.',
'Da flieht er.',
'Der Goblin läuft so schnell er noch kann und entwischt dir.',
'Der hat es sich wohl anders überlegt.',
'Der musste wohl einsehen, dass du kein Federlesen machst.');
showText($arr_2[array_rand($arr_2)]);
ap_vergabe(8, true, __FUNCTION__);
} else {
waffen_erbeuten($kampfausgang);
$goblin_gold = roll_dice(15, 6);
aktualisiere_gold($goblin_gold);
$ausruestung = array(array('id' => 478, 'name' => 'ein eisernes Essmesser'),
array('id' => 1003, 'name' => 'einen irdener Teller'),
array('id' => 924, 'name' => 'einen Henkelbecher'),
array('id' => 614, 'name' => 'ein Fernrohr, wohl eine vorherige Beute'),
array('id' => 884, 'name' => 'eine Halskette'),
array('id' => 1669, 'name' => 'einen Ring'));
$beute = array_rand($ausruestung);
aendere_gepaeck($ausruestung[$beute]['id'],1);
if(talent_probe_noout('Alchimie', 5) > 0) {
aendere_gepaeck(627, 1); // Ohrenschmalz vom Goblin
}
$arr_2 = array('Mit einem letzten Hieb erledigst du den Dieb.',
'Ein letzter Schlag und der Goblin ist dahin. Der wird niemanden mehr bestehlen.',
'So, das war′s. Einfach arglose Reisende beklauen wollen. Tztztz...',
'Juhuuu, gesiegt!',
'Du hast ihn besiegt.');
showText($arr_2[array_rand($arr_2)]);
showText('Neben dessen Waffe erbeutest du ' . $goblin_gold . ' Groschen und ' . $ausruestung[$beute]['name'] . '.');
ap_vergabe(9, true, __FUNCTION__);
}
break;
case KAMPF_GEFLOHEN:
flucht_ergreifen();
ap_vergabe(8, false, __FUNCTION__);
break;
case KAMPF_VERLOREN:
if(ist_held_noobie()) {
$arr_3 = array('Schwer verletzt gehst du zu Boden und siehst, wie sich der Goblin an deinem Geldbeutel zu schaffen macht, dann aber doch von dir ablässt ...');
} else {
$arr_3 = array('Schwer verletzt gehst du zu Boden und siehst, wie sich der Goblin mit deinem Geldbeutel davon macht.',
'So ein Mistvieh...<br />Du brichst zusammen und der Goblin krallt sich dein Geld.',
'Du kannst nicht mehr und musst aufgeben. Der Goblin verhöhnt dich und spaziert mit deinem Gold davon.');
klaue_gold(50);
}
showText($arr_3[array_rand($arr_3)]);
ap_vergabe(8, false, __FUNCTION__);
break;
}
} else {
showText('Deine Ausstrahlung, deine feste Stimme und vielleicht auch der Fakt, dass du gar nicht schläfst, veranlassen den Beinahe-Dieb zur schnellen Abkehr und Flucht.');
ap_vergabe(4, false, __FUNCTION__);
}
return true;
}
Spoiler:
- Code: Alles auswählen
function sub_meer_raeuber_neonix64($zeitpunkt, $weg) {
$Kampf = false;
showText('Eigentlich hattest du dich an das Schlafen an Bord schon halbwegs gewöhnt, aber irgendwas hat dich heute Nacht nicht ruhen lassen. Müde reibst du dir die Augen und kletterst an Deck, damit die frische Seeluft deinen Geist klärt.');
if(talent_probe('sinnenschaerfe', 3) >= 0) {
showText('Eben streckst du noch deine müden Glieder aus, da fällt dir ein an Deck liegender Matrose auf. Sofort witterst du Unheil, und tatsächlich, eine finstere Gestalt mit einer Keule wollte sich von hinten an dich heranschleichen! Du kannst dem Angreifer eben noch ausweichen und einen Alarmschrei ausstoßen, aber da kommt ihm auch schon sein Kumpan zu Hilfe...');
$Kampf = true;
} else {
showText('Gerade als du an Deck kommst, trifft dich etwas hartes am Hinterkopf!');
$schaden = schaden(roll_dice(1,6,5), true, $zeitpunkt, 'LE', 0, true, true, false, 'Kopf');
$KO_Wert = $_SESSION['KO'] / 2; // halbe Konstitution
if(!ist_held_noobie() && $schaden > $KO_Wert) {
showText('Dir wird schwarz vor Augen. Als du wieder aufwachst, fehlen dir etwas: Offenbar haben sich in der Nacht einige Strandräuber per Boot auf das Schiff geschlichen, die Wachen betäubt und alles geklaut, was sie kriegen konnten.');
ap_vergabe(2, false, __FUNCTION__);
klaue_waffen(1000);
klaue_gold(30);
} else {
showText('Dir klingelt der Kopf, aber trotz des hinterhältigen Treffers kannst du dich noch auf den Beinen halten und sogar einen Alarmschrei ausstoßen. Dann ziehst du deine Waffe und erwehrst dich deiner Haut, denn zwei üble Möchtegernpiraten greifen dich an!');
$Kampf = true;
}
}
if($Kampf) {
// Kampf gegen zwei Räuber, mit Keulen
$npc_ids = array(757, 758);
$kampf_optionen = array('gegner' => array('flucht_moeglich' => false, 'waffe_id' => 1071)); // Gegner kämpfen mit Keule
$kampfausgang = kampf_npc_multi(array(), $npc_ids, $zeitpunkt, $kampf_optionen);
switch($kampfausgang['held']) {
case KAMPF_GEWONNEN:
showText('Na also! Mit einigen derben Schlägen zeigst du dem Gesindel, wem die See gehört! Die an Deck eilenden Matrosen müssen die blutenden Bündel nur noch fesseln und in den Laderaum werfen, während ihre treulosen Kameraden mit der winzigen Nussschale fliehen. Immerhin bekommst du ihre Keulen und einige Münzen als Beute.');
aktualisiere_gold(roll_dice(4,6));
aendere_gepaeck(1071, 2); // Keulen
ap_vergabe(7, true, __FUNCTION__);
ruhm_vergabe(1, true);
break;
case KAMPF_GEFLOHEN:
showText('Nachdem die beiden Schurken dich in die Zange genommen haben, musstest du unter Deck fliehen. Leider hatten sie so Zeit, auf ihr Boot zu klettern und zu fliehen.');
ap_vergabe(7, false, __FUNCTION__);
break;
case KAMPF_VERLOREN:
showText('Die derben Keulenschläge der Strolche schicken dich auf die Decksplanken, dir wird schwarz vor Augen. Als du einige Zeit später wach wirst, haben die von dir alarmierten Matrosen die Gauner längst verjagt', true, false);
if(roll_dice(1,2) == 1) {
showText(', aber diese konnten noch etwas mitnehmen...', false, true);
klaue_waffen(1000);
} else {
showText('.', false, true);
}
ap_vergabe(7, false, __FUNCTION__);
break;
}
}
return true;
}
Spoiler:
- Code: Alles auswählen
function sub_raeuber_nacht1($zeitpunkt, $weg) {
$arr_1 = array('Du kommst an das Lagerfeuer eines einsamen Wanderers...',
'Es ist mal wieder Zeit für eine Rast und am Wegesrand entdeckst du einen anderen Reisenden...',
'In der aufziehenden Abenddämmerung machst du ein kleines Feuer vor dir aus, an dem ein Mann sitzt...');
$arr_2 = array('Freundlich, wie du bist, fragst du ihn, ob du dich zu ihm gesellen darfst, was er erfreut bejaht.',
'Du setzt dich nach einer allgemeinen Begrüßung zu ihm, froh nicht alleine die Nacht verbringen zu müssen.',
'Als du heran trittst winkt er dir, dich zu ihm zu setzen. Er wirkt glücklich über Gesellschaft in der Wildnis hier.');
$arr_3 = array('Nach einer Stunde, in der ihr euch nett unterhalten und Erfahrungen über diese Gegend ausgetauscht habt, wirst du müde und legst dich schlafen.',
'Lange Zeit unterhaltet ihr euch über vergangene Abenteuer, aber irgendwann wirst du müde und suchst dir einen Schlafplatz.',
'Der Gesprächigste scheint er nicht zu sein, so dass du dich bald schlafen legst.',
'Ihr plauscht angeregt über eure verflossenen Liebschaften bis euch die Müdigkeit übermannt und ihr euch eine Schlafposition zurecht macht.',
'Irgendwie ist der Typ seltsam. Einerseits scheint er froh nicht alleine hier zu sein, andererseits wirkt er angespannt. Während du noch diese Gedanken verfolgst fallen dir die Augen zu und du entschlummerst.',
'Ihr schweigt euch einige Zeit an und kommt dann wortlos überein, dass ihr stattdessen eigentlich auch schlafen könntet, wozu ihr dann auch übergeht.');
$arr_4 = array('Einige Zeit später wirst du wach, weil irgendetwas in deiner Nähe raschelt und dein Kopf plötzlich absackt. Da hat dir dieser Kerl doch tatsächlich deinen Rucksack unter dem Kopf weggezogen und will damit verschwinden.',
'Dein Kopf schlägt auf den Boden auf und benommen schreckst du aus deinem Schlaf hoch. Wo ist dein Rucksack-Kopfkissen?');
$arr_5 = array('<q>Na warte, Freundchen!</q>, denkst du dir, packst deine Waffe und springst ihm hinterher.',
'<q>Ja spinnt der?</q> Wütend ziehst du deine Waffe und forderst ihn zum Kampf.');
showText(get_bild_html('./bilder/quests/mann_am_feuer_zb.gif', '[Bild: Wanderer]', 'zb_pic').$arr_1[array_rand($arr_1)]);
showText($arr_2[array_rand($arr_2)]);
showText($arr_3[array_rand($arr_3)]);
showText($arr_4[array_rand($arr_4)]);
showText($arr_5[array_rand($arr_5)]);
$npc_id = roll_dice(1,4,336);
$kampf_optionen = array('gegner' => array('flucht_moeglich' => false));
$kampfausgang = kampf_npc_duell($npc_id, $zeitpunkt, $kampf_optionen);
switch($kampfausgang['held']) {
case KAMPF_GEWONNEN:
$gegner_gold = roll_dice(4, 6);
aktualisiere_gold($gegner_gold);
aendere_gepaeck(1717, 1); // Säbel
$ausruestung = array(array('id' => 924, 'name' => 'einen Henkelbecher aus Zinn'),
array('id' => 457, 'name' => 'einen einfachen Holzteller'),
array('id' => 478, 'name' => 'ein eisernes Essmesser'),
array('id' => 461, 'name' => 'ein einfaches Trinkhorn'),
array('id' => 1454, 'name' => 'eine Öllampe'),
array('id' => 3054, 'name' => 'eine Figur'),
array('id' => 3055, 'name' => 'eine Figur'),
array('id' => 3056, 'name' => 'eine Figur'),
array('id' => 3057, 'name' => 'eine Figur'),
array('id' => 3058, 'name' => 'eine Figur'),
array('id' => 3059, 'name' => 'eine Figur'),
array('id' => 3060, 'name' => 'eine Figur'),
array('id' => 3061, 'name' => 'eine Figur'),
array('id' => 3062, 'name' => 'eine Figur'),
array('id' => 3063, 'name' => 'eine Figur'),
array('id' => 3064, 'name' => 'eine Figur'),
array('id' => 3065, 'name' => 'eine Figur'),
array('id' => 3076, 'name' => 'eine Figur'),
array('id' => 3077, 'name' => 'eine Figur'),
array('id' => 3074, 'name' => 'eine Figur'),
array('id' => 2261, 'name' => 'eine Zunderdose'));
$beute = array_rand($ausruestung);
aendere_gepaeck($ausruestung[$beute]['id'], 1);
$arr_6 = array('Das hat er sich wohl so gedacht! Aber nicht mit dir... Möge Nergas seiner verderbten Seele gnädig sein und sich seiner nun annehmen.',
'Na toll, das musste ja so kommen. Warum nur, warum musste er das versuchen?',
'<q>Selbst schuld</q>, denkst du dir, während du deine Habe wieder einsammelst.',
'Und wieder ein Übler weniger, der harmlosen Reisenden auflauern könnte.',
'Ob er von Anfang an plante, dich auszurauben oder das eine spontane Idee war?',
'Das hat er nun davon. So ein Mistkerl. Jetzt musst du deine Waffe schon wieder sauber machen.');
showText($arr_6[array_rand($arr_6)]);
if(!geklaute_waren_rueckerobern())
showText('Du erbeutest ' . $gegner_gold . ' Groschen, einen Säbel und ' . $ausruestung[$beute]['name'] . '.');
ap_vergabe(9, true, __FUNCTION__);
ruhm_vergabe(-1, true);
break;
case KAMPF_GEFLOHEN:
flucht_ergreifen();
ap_vergabe(9, false, __FUNCTION__);
break;
case KAMPF_VERLOREN:
$arr_7 = array('Dir wird schwarz vor Augen...',
'<q>Autsch, der letzte Schlag hat gesessen</q>, ist das letzte was dir durch den Kopf geht, bevor du umkippst...',
'<q>Wer hat denn jetzt das Licht ausgemacht?</q>',
'Ohje, den hast du wohl unterschätzt...');
showText($arr_7[array_rand($arr_7)]);
showText('Klaut der dir doch einen Teil deiner Ausrüstung! Wenn dieser Wegelagerer dir nochmal unter die Augen kommt...');
if(ist_held_noobie())
klaue_ausruestung(3, 'anzahl', null, 300);
else
klaue_ausruestung(roll_dice(1,6,8), 'anzahl');
ap_vergabe(9, false, __FUNCTION__);
break;
}
return true;
}
Spoiler:
- Code: Alles auswählen
function sub_zwei_bis_drei_raeuber($zeitpunkt, $weg) {
if($_SESSION['held_AP_gesamt'] < 10000) {
return auf_andere_zb_ausweichen($zeitpunkt, $weg);
}
$Kampf_mit_Raeubern = false;
$Waffe_auch_klauen = false;
$Anzahl_Raeuber = 2;
$ap = 0;
showText('Du bist heute schon lange unterwegs, doch der Tag ist schön und der
Weg ist zwar kurvig aber eben.');
$erschwernis = roll_dice(1, 2, 2);
if(talent_probe('sinnenschaerfe', $erschwernis) >= 0) {
$ap += 3;
showText('Du hörst jemanden auf dich zukommen. Es sind mindestens zwei, die miteinander diskutieren.');
if(talent_probe('sich_verstecken', 4) >= 0) {
$ap += 3;
showText('Schnell versteckst du dich geschickt neben dem Weg. Da
kommen auch schon zwei Räuber des Weges, die sich
darüber unterhalten, dass heute die Beute der letzten
Tage aufgeteilt werden soll.');
if(eigenschafts_probe('IQ', 0) >= 0) {
$ap += 2;
showText('Dir kommt ein verwegener Plan in den Sinn.');
if(eigenschafts_probe('MU', 6) >= 0) {
$ap += 4;
showText('Du beschließt, den beiden zu folgen.');
if(talent_probe('schleichen', 4) >= 0) {
$ap += 5;
showText('Du schaffst es, ihnen unentdeckt bis zu ihrem
Versteck zu folgen. Dort angekommen legst du
dich auf die Lauer. Die Räuber scheinen tatsächlich
einen ganzen Haufen Beute fein säuberlich nach Rang
sortiert aufzuteilen. Nach ein paar Minuten vernimmst
du die Stimme des Wachpostens, der dir bei der
Annäherung ans Lager schon aufgefallen ist. Anscheinend
zieht ganz in der Nähe des Lagers fette Beute vorbei.
Schon greifen alle zu den Waffen und wollen los stürmen,
als eine Warnung des selben Wachposten sie innehalten
lässt. Hinter den Geldsäcken nähert sich anscheinend
eine Gruppe Bewaffneter. Kurz ein leises Fluchen hier
und da, dann kehrt Stille ein. Erst einige Minuten
nachdem die Gruppe außer Sicht ist, gehen die Räuber
wieder ihrer bisherigen Beschäftigung nach. Nun aber
ist dein Plan vollendet.');
// Stimmen Imitieren Probe
$erschwernis = -1 + roll_dice(1,2);
if(talent_probe('stimmen_imitieren', $erschwernis) >= 0) {
$ap += 15;
showText('Du klingst wie der Wachposten, der jetzt wahrscheinlich
ziemlich verdutzt schaut. Auf dein Geheiß hin stürmen
die Räuber mit ihren Waffen auf den Weg zu, um den
vermeintlichen Opfern ihre Wertsachen abzunehmen. Du
hast nicht viel Zeit. Doch da die Gier alle Räuber
weg stürmen ließ, nutzt du dies bisschen Zeit, um einige
Geldbeutel und Schmuckstücke einzusacken und dann sofort
zu verschwinden.');
$fund_gold = roll_dice(1,17,2); // Gulden
aktualisiere_gold($fund_gold*100);
aendere_gepaeck(1936, 1); // silberner Pokal
aendere_gepaeck(1935, 1); // Goldenes Essbesteck
aendere_gepaeck(884, 1); // Halskette
aendere_gepaeck(708, roll_dice(1,2,1)); // Geldbeutelchen
ap_vergabe($ap, true, __FUNCTION__);
} else {
showText('Du schaffst es nicht, sie zu täuschen und einige
Räuber kommen in deine Richtung, um diesem Witzbold
eine Lektion zu erteilen. Da du darauf verzichten
kannst, nimmst du deine Beine in die Hand. Trotzdem
holen dich drei der Räuber nach längerer Verfolgungsjagd
ein.');
$Kampf_mit_Raeubern = true;
$Anzahl_Raeuber = 3;
$Waffe_auch_klauen = true;
}
} else {
showText('Du wurdest entdeckt.');
$erschwernis = roll_dice(1, 3);
if(talent_probe('athletik', $erschwernis) >= 0) {
$ap += 3;
showText('Du bist gut in Form und hast zum Glück genug
Abstand gehalten. So schaffst du es leicht
die Räuber abzuhängen.');
ap_vergabe($ap, true, __FUNCTION__);
} else {
showText('Du versuchst zu entkommen, aber sie sind schneller.');
$Kampf_mit_Raeubern = true;
$Waffe_auch_klauen = true;
}
}
} else {
showText('Für deinen Geschmack allerdings zu verwegen.
Mit einem Schmunzeln auf den Lippen
machst du dich wieder auf den Weg.');
ap_vergabe($ap, true, __FUNCTION__);
}
} else {
showText('Zum Glück haben sie dich nicht bemerkt und du
kannst deinen Weg fortsetzen.');
ap_vergabe($ap, true, __FUNCTION__);
}
} else {
showText('Du willst dich verstecken, doch findest du kein passendes Versteck.');
$Kampf_mit_Raeubern = true;
}
} else {
showText('Plötzlich stehst du vor zwei Räubern, die im ersten Moment genauso
blöd dastehen wie du, dann allerdings ein breites Grinsen aufsetzen.');
$Kampf_mit_Raeubern = true;
}
if($Kampf_mit_Raeubern) {
$npc_gegner_ids = array(339, 340);
if($Anzahl_Raeuber == 3) {
$npc_gegner_ids[] = 341;
}
$kampfausgang = kampf_npc_multi(array(), $npc_gegner_ids, $zeitpunkt, array());
switch($kampfausgang['held']) {
case KAMPF_GEWONNEN:
if($Anzahl_Raeuber == 3) {
$ap += 15;
showText('Die drei wären geschafft. Schnell weg hier, bevor noch welche nachkommen.');
} else { // 2 Raeuber
$ap += 10;
$arr_1 = array('Das ist ja nochmal gut gegangen.',
'Puuh, da hast du nochmal Glück gehabt.');
showText($arr_1[array_rand($arr_1)]);
// 2 Räuberwaffen und bissi Geld
$AnzahlTote = $kampfausgang[KAMPF_VERLOREN]['gegner'];
aendere_gepaeck(1717, $AnzahlTote); // Säbel
$fund_gold = roll_dice(2, 6, 3);
aktualisiere_gold($fund_gold);
$MoeglicheBeute = array(
array('id' => 1180, 'name' => 'ein Kurzschwert'),
array('id' => 1178, 'name' => 'einen Kurzbogen'),
array('id' => 1195, 'name' => 'einen Langbogen'),
array('id' => 1196, 'name' => 'einen Langdolch'),
array('id' => 1871, 'name' => 'ein Schwert'),
array('id' => 379, 'name' => 'einen Degen'),
array('id' => 1602, 'name' => 'ein Rapier'));
$Beute = array_rand($MoeglicheBeute, 2);
$Beutenamen = array();
foreach($Beute as $ArrayKey) {
aendere_gepaeck($MoeglicheBeute[$ArrayKey]['id'], 1);
$Beutenamen[] = $MoeglicheBeute[$ArrayKey]['name'];
}
showText('Du erbeutest '.$fund_gold.' Groschen, sowie ', true, false);
if($AnzahlTote > 0) {
showText($AnzahlTote.' Säbel, ', false, false);
}
showText($Beutenamen[0].' und '.$Beutenamen[1].'.', false, true);
}
geklaute_waren_rueckerobern();
ap_vergabe($ap, true, __FUNCTION__);
ruhm_vergabe(-1, true);
break;
case KAMPF_GEFLOHEN:
if($Anzahl_Raeuber == 3) {
$ap += 15;
} else {
$ap += 10;
}
flucht_ergreifen();
ap_vergabe($ap, false, __FUNCTION__);
break;
case KAMPF_VERLOREN:
if($Anzahl_Raeuber == 3) {
$ap += 15;
} else {
$ap += 10;
}
showText('Das war wohl nix. Ein heftiger Schlag auf den Kopf führt zur Bewusstlosigkeit.');
if(ist_held_noobie()) {
showText('Du kannst von Glück reden, dass sie dich einfach so liegen gelassen haben ohne deinen Rucksack nach Wertgegenständen zu durchsuchen.');
} else if($Waffe_auch_klauen) {
showText('Als du wieder zu dir kommst, fehlt dir einiges. Die waren wohl ganz schön sauer.');
klaue_waffen(1000);
klaue_gold(80);
// Ausruestung auch klauen
if($Anzahl_Raeuber == 3) {
klaue_ausruestung(roll_dice(1,10,5));
showText('Ein paar deiner Ausrüstungsgegenstände haben sie auch mitgehen lassen...');
}
} else {
showText('Als du wieder zu dir kommst, fehlt dein ganzes Geld. Aber ansonsten
hat die Räuber anscheinend nichts interessiert.');
klaue_gold();
}
ap_vergabe($ap, false, __FUNCTION__);
break;
}
}
return true;
}
Ein Kommentar an unsere Programmier-Veteranen:
Die folgenden ZBs sind alle noch in PHP geschrieben, du müssten in AOQML portiert werden wenn wir sie sowieso erneuern. Eine habe ich dabei schon mal umgesetzt. Ihr könnt euch gerne eine oder zwei weitere vornehmen.