Projekt: Kampf ZBs

Das aktuelle Projekt, meist kleinen Umfangs, wird hier besprochen und bearbeitet. Jeder ist willkommen, seinen Beitrag zu leisten.

Moderator: A-Team

Projekt: Kampf ZBs

Beitragvon Hagen vH » Sa 22 Okt, 2016 12:02

Liebe Bewohner Antamars,

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>
ZB 2: Goblin bei Rast
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&prime;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;
}
ZB 3: Räuber an Bord
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;
}
ZB 4: Räuber bei Nacht
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;
}
ZB 5: 2 bis 3 Räuber
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.
Zuletzt geändert von cvk am Mo 06 Feb, 2017 19:20, insgesamt 2-mal geändert.
Grund: angepinnt
Kanzler der Charukin, aktuell aktiv für Alt-Korumand.
Hagen vH
Ritter
Ritter
 
Beiträge: 764
Registriert: Di 04 Feb, 2014 19:50
Heldenname: Paquadea

Re: Projekt: Kampf ZBs

Beitragvon Micha1972 » Sa 22 Okt, 2016 12:44

In dem Zuge könnten doch auch diese Piraten ZB geändert werden um die eine Mut Probe die bei einer 20 automatisch misslingt gegen eine andere Probe auszutauschen?
Es ist dem Untertanen untersagt, den Maßstab seiner begrenzten Einsicht an die Handlungen der Obrigkeit anzulegen!

Ich liebe Ich spiele: Bild
Benutzeravatar
Micha1972
Engel
Engel
 
Beiträge: 9176
Registriert: Mi 11 Jun, 2008 13:27
Heldenname: Sechser/Rhallond/Konstanze
Mitglied bei: Hände des Schicksals, Zur großen Bühne, Assassinen

Re: Projekt: Kampf ZBs

Beitragvon Gaddezwerch » Sa 22 Okt, 2016 13:30

Gib mal bitte einen Textausschnitt der ZB.
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 4848
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken

Re: Projekt: Kampf ZBs

Beitragvon Valygar » Sa 22 Okt, 2016 14:29

Schwer beladen mit Handelsgütern und einigen wohlhabenden Passagieren fährt euer Schiff immer knapp in Sichtweite der Küste dahin. Der Wind ist gut, die Matrosen singen bei der Arbeit einige fröhliche Lieder und du langweilst dich. Für einen Helden gibt es einfach nicht viel zu tun an Bord... Plötzlich mischt sich dünn die Stimme des Ausgucks in den Gesang der Matrosen: "Schiff backbord voraus!" Was ja an sich nichts ungewöhnliches ist, es vergeht eigentlich kaum ein Tag, an dem ihr nicht wenigstens ein oder zwei Schiffe in der Entfernung sichtet. In den meisten Fällen haltet ihr einfach Abstand und die anderen Schiffer halten es ebenso.

Aber nicht diese.

Kapitän, das Schiff hat den Kurs gewechselt! Fast eine halbe Stunde später ist aus dem winzigen hellen Fleck am Horizont schon ein richtiger Satz Segel geworden, der offenbar eine kleine Karavelle antreibt. Das schlanke Schiff scheint leicht beladen, denn es macht mehr Fahrt als ihr. Und es hält verdächtig wenig Abstand zu euch.

Alle Segel setzen! Kurs ändern auf vier Strich Steuerbords! Eine leichte Kurskorrektur soll zeigen, ob das andere Schiff feindselig gesinnt ist oder nicht. Und zunächst ist die Besatzung erleichtert, auch das kleine Schiff dreht etwas ab. Doch gerade, als es fast an euch vorbei ist, dreht es plötzlich und hält direkt auf euch zu! Nur Minuten später flattert die schwarze Flagge mit weißen Knochen über dem Mast und lässt keine Hoffnung mehr auf ein Missverständnis: PIRATEN!

Sofort beginnt der Kapitän lauthals Befehle zu brüllen, die Matrosen rennen hektisch umher, einige suchen sich Waffen, andere gehen an die Segel, und dazwischen geraten die einfachen Passagiere zunehmend in Panik.

Mut-Probe gelungen
Während um dich herum Matrosen und Passagiere in Panik geraten, behältst du kühlen Kopf. Das Piratenschiff ist nicht eben groß, und ihr habt genügend Matrosen und Passagiere an Bord, um nicht völlig unterlegen zu sein. Und Geschütze scheinen die Piraten auch nicht zu haben...

"Sinnenschärfe"-Probe +5 gelungen
Misstrauisch kneifst du die Augen zusammen. Irgendwas stimmt nicht mit diesen Piraten... Da! In der Bordwand wurden erst kürzlich etliche Löcher geflickt, und viele der Piraten in der zweiten und dritten Reihe tragen Verbände, einige können nicht einmal aufrecht stehen! Offenbar sind sie in den letzten Tagen in einen schweren Kampf geraten und haben kaum die Kampfkraft, es mit euch aufzunehmen. Sofort berichtest du dem Kapitän und den anderen Mitreisenden von deiner Entdeckung. Gemeinsam beschließt ihr, hart zu bleiben! Dann sind die Piraten heran:

Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so dabei habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund! Na los, gebt schon auf und rettet eure jämmerliche Haut!

Lachend und johlend verspottet ihr die Piraten: Seht euch doch einmal an, euer Kahn zieht Wasser wie ein Sieb und die Hälfte von euch ist näher am Tode als sonst etwas! Bettelt lieber um Eimer zum Schöpfen, die habt ihr wohl nötiger! Verschwindet, oder WIR kapern EUCH! Zähneknirschend drohen und fordern sie noch einige Minuten, schießen etliche wirkungslose Pfeile zu euch herüber, drehen dann aber frustriert ab. Pack, elendes, denen habt ihr es gezeigt! Am Abend feiern dich die anderen Passagiere für deine Scharfsinnigkeit schenken dir zum Dank ein kleines Fässchen Rum und 8 Gulden.
Valygar
Herold
Herold
 
Beiträge: 129
Registriert: Di 24 Mai, 2016 20:04
Heldenname: Valygar

Projekt: Kampf ZBs

Beitragvon SID » Sa 22 Okt, 2016 15:45

So, mal etwas Futter für die Goblin ZB.
Echt blöde, das hier. Musste mich erneut einloggen, Text weg.
Hoffe ich habe alles rekonstruiert ohne Fehler.
Bitte prüfen, ob alle losen Enden verwoben sind.

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!');
Wenn Goblin nicht entdeckt, weiter wie bisher.

Spoiler:
1. Heimliche Abfrage wenn Goblin entdeckt wurde:
1.1 hat Fackel und Begleiter (Lasttier/Ausgebildeter Jagdhund)?
wenn nein dann 1.2
wenn ja dann random roll
wenn gerade, dann weiter bei 2.
wenn ungerade dann weiter bei 4.
1.2 hat Fackel?
dann weiter bei 2.
1.3 hat Begleiter (Lasttier/Ausgebildeter Jagdhund)?
dann weiter bei 4.
1.4 hat weder Fackel, noch Lasttier, noch ausgebildeter Jagdhund
weiter bei showText('Du raffst dich auf und schwingst deine Waffe. <q>Wer da, sprich!</q>');

2. probe Heimlichkeit
wenn misslungen dann 2.2
wenn gelungen dann 2.1
2.1
TEXT:
Empört beobachtest du das Geschehen. Dieser kleine Mistkäfer versucht doch glatt DICH,
einen gestandenen Abenteurer zu beklauen, einen HELD!
*So geht das aber nicht* denkst du, greifst dir geschickt und leise eine Fackel aus deinem Vorrat und zündest sie an.
Noch ehe der Goblin weiß, wie ihm geschieht schleuderst du die Fackel voll gerechter Empörung in seine Richtung.


Probe: Werfen.
Wenn misslungen, dann 3.
Wenn gelungen, dann
TEXT
"Wusch", mit einem fauchenden Geräusch geht die Tarnung des Goblins in Flammen auf. Für den Augenblick eines Herzschlages erstarrt der der Goblin wie eine Salzsäule, bevor er sich mit einem "Aiiiiiih" in Bewegung setzt. Hmm, du wusstest gar nicht das Goblins soooo schnell sein können. Mental machst du dir eine Notiz *Feuer ist ein prima Goblinbeschleuniger*. Grinsend sammelst du ein, was der Goblin in seiner Hast verloren hat.
gehe zum bisherigen Ende, verteile EP und Loot. EP: 1d4+(1/pro erfolgreiche Probe), 1 Holzspeer/Steinbeil/Dolch und 15+2d6 Groschen

3. Heimliche Probe 1d6
roll=6, dann 3.1
else 3.2

3.1 TEXT
Oh, schhh..., die Fackel landet genau auf deiner Ausrüstung. Verärgert quiekt der Goblin dich an.
,verbrannt 1 Gegenstand beliebig, Wert <5G
Fortsetzung TEXT
Nenene, so war das aber nicht gedacht. Dein(e) <<setzte verbrannten Gegenstand ein>> ist jetzt Kohle und zu allem Überfluss hast du auch noch einen verärgerten Goblin am Hals
Fortsetzung bei...showText('Anscheinend wirkst du gerade nicht wie ein strahlender Verteidiger oder gar Held, jedenfalls greift das Büschel dich jetzt an.');

3.2 TEXT
Mit einem Funkenregen schlägt die Fackel auf dem Boden auf
Fortsetzung bei ... showText('Du raffst dich auf und schwingst deine Waffe. <q>Wer da, sprich!</q>');
2.2 TEXT
"Hey, du nichtsnutziges Etwas"...entfährt es Dir
Fortsetzung bei ... showText('Du raffst dich auf und schwingst deine Waffe. <q>Wer da, sprich!</q>');

4. IQ-Probe +1
4.1 Misslungen
Fortsetzung bei: showText('Du raffst dich auf und schwingst deine Waffe. <q>Wer da, sprich!</q>');
4.2 Gelungen
Abfrage hat ausgebildeten Jagdhund?
Nein Fortsetzung 4.3
TEXT
Leise lächelnd löst du die Leine deines treuen Begleiters. "Fass".
Dein Kommando schallt in die Stille hinein wie ein Donnerschlag. "Rrrrrr"...mit gefletschten Zähnen springt Dein Hund auf den Goblin zu. Vor lauter Schreck lässt der Goblin seine Sachen fallen und sucht das Weite. "Aus". Etwas enttäuscht ob der Unterbrechung schaut dein Hund dich fragend an. Ein leises "Hol's" und dein Hund bringt dir die verdiente Beute herbei, während du dich weiter deiner Siesta widmest. "Feiner Hund", belohnst du ihn noch mit einem Leckerchen. Du könntest dir allerdings vorstellen, dass der Goblin eine gaaanz andere Meinung zu deinem treuen Begleiter hat

Weiter am Ende...
4.3
Probe Umgang mit Tieren
Wenn misslungen, dann weiter bei showText('Du raffst dich auf und schwingst deine Waffe. <q>Wer da, sprich!</q>');
sonst: TEXT
Leise löst du das Halfter deines <<Insert Name Lasttier>> und gibst ihm noch einen kräftigen Klapps auf den Hintern.
Aus seiner Ruhe aufgeschreckt sprengt das Tier auf den Goblin zu, der gerade noch Zeit hat zur Seite zu hechten. Panisch vor Angst rennt er davon und lässt dabei alles liegen, was er bei sich hatte.

Weiter am Ende



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();
SID
Leutnant
Leutnant
 
Beiträge: 863
Registriert: Di 08 Mär, 2011 16:01
Heldenname: Liam Sternentänzer

Re: Projekt: Kampf ZBs

Beitragvon Gaddezwerch » So 23 Okt, 2016 09:28

Habe die angesprochene Piraten-ZB rausgesucht.
Spoiler:
Code: Alles auswählen
function sub_meer_piraten_neonix54($zeitpunkt, $weg) {
  $zg = array('Karavelle', 'Thalucke', 'Lorcha');
  showText('Schwer beladen mit Handelsgütern und einigen wohlhabenden Passagieren fährt euer Schiff immer knapp in Sichtweite der Küste dahin. Der Wind ist gut, die Matrosen singen bei der Arbeit einige fröhliche Lieder und du langweilst dich. Für einen Helden gibt es einfach nicht viel zu tun an Bord... Plötzlich mischt sich dünn die Stimme des Ausgucks in den Gesang der Matrosen: "Schiff backbord voraus!" Was ja an sich nichts ungewöhnliches ist, es vergeht eigentlich kaum ein Tag, an dem ihr nicht wenigstens ein oder zwei Schiffe in der Entfernung sichtet. In den meisten Fällen haltet ihr einfach Abstand und die anderen Schiffer halten es ebenso.');
  showText('Aber nicht diese.');
  showText('<q>Kapitän, das Schiff hat den Kurs gewechselt!</q> Fast eine halbe Stunde später ist aus dem winzigen hellen Fleck am Horizont schon ein richtiger Satz Segel geworden, der offenbar eine kleine '.$zg[array_rand($zg)].' antreibt. Das schlanke Schiff scheint leicht beladen, denn es macht mehr Fahrt als ihr. Und es hält verdächtig wenig Abstand zu euch.');
  showText('<q>Alle Segel setzen! Kurs ändern auf vier Strich Steuerbords!</q> Eine leichte Kurskorrektur soll zeigen, ob das andere Schiff feindselig gesinnt ist oder nicht. Und zunächst ist die Besatzung erleichtert, auch das kleine Schiff dreht etwas ab. Doch gerade, als es fast an euch vorbei ist, dreht es plötzlich und hält direkt auf euch zu! Nur Minuten später flattert die schwarze Flagge mit weißen Knochen über dem Mast und lässt keine Hoffnung mehr auf ein Missverständnis: PIRATEN!');
  showText('Sofort beginnt der Kapitän lauthals Befehle zu brüllen, die Matrosen rennen hektisch umher, einige suchen sich Waffen, andere gehen an die Segel, und dazwischen geraten die einfachen Passagiere zunehmend in Panik.');
  if(eigenschafts_probe('MU', 0) >= 0) {
    showText('Während um dich herum Matrosen und Passagiere in Panik geraten, behältst du kühlen Kopf. Das Piratenschiff ist nicht eben groß, und ihr habt genügend Matrosen und Passagiere an Bord, um nicht völlig unterlegen zu sein. Und Geschütze scheinen die Piraten auch nicht zu haben...');
    if(talent_probe('sinnenschaerfe', 5) >= 0) {
      showText('Misstrauisch kneifst du die Augen zusammen. Irgendwas stimmt nicht mit diesen Piraten... Da! In der Bordwand wurden erst kürzlich etliche Löcher geflickt, und viele der Piraten in der zweiten und dritten Reihe tragen Verbände, einige können nicht einmal aufrecht stehen! Offenbar sind sie in den letzten Tagen in einen schweren Kampf geraten und haben kaum die Kampfkraft, es mit euch aufzunehmen. Sofort berichtest du dem Kapitän und den anderen Mitreisenden von deiner Entdeckung. Gemeinsam beschließt ihr, hart zu bleiben! Dann sind die Piraten heran:');
      showText('<q>Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so dabei habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund! Na los, gebt schon auf und rettet eure jämmerliche Haut!</q>');
      $gold = roll_dice(1,6,3);
      showText('Lachend und johlend verspottet ihr die Piraten: <q>Seht euch doch einmal an, euer Kahn zieht Wasser wie ein Sieb und die Hälfte von euch ist näher am Tode als sonst etwas! Bettelt lieber um Eimer zum Schöpfen, die habt ihr wohl nötiger! Verschwindet, oder WIR kapern EUCH!</q> Zähneknirschend drohen und fordern sie noch einige Minuten, schießen etliche wirkungslose Pfeile zu euch herüber, drehen dann aber frustriert ab. Pack, elendes, denen habt ihr es gezeigt! Am Abend feiern dich die anderen Passagiere für deine Scharfsinnigkeit schenken dir zum Dank ein kleines Fässchen Rum und '.$gold.' Gulden.');
      aktualisiere_gold($gold*100);
      aendere_gepaeck(5532, 1); // Fässchen Rum
      ap_vergabe(20, true, __FUNCTION__);
    } else {
      showText('Nun, kampflos wirst du nicht aufgeben, aber erst musst du den Kapitän, die Mannschaft und die Passagiere davon überzeugen, dass ihr eine Chance habt!');
      $p1 = talent_probe('ueberzeugen', 3);
      $p2 = talent_probe('kriegskunst', 3);
      if($p1 >= 0 && $p2 >= 0) {
        showText('Geschlossen stehen die Passagiere und Matrosen hinter dir, nachdem du ihnen erklärt hast, wie du die Piraten sicher und mit minimalen Verlusten abwehren kannst. Verdutzt, dass ihr nicht wie normale Kaufläute vor Furcht bebt, sagt der Piratenkapitän seinen Spruch auf:');
        showText('<q>Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so an Bord habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund, bei! Na los, gebt schon auf und rettet eure jämmerliche Haut!</q>');
        showText('Aber davon lasst ihr euch nicht einschüchtern! <q>Blut und Eisen könnt ihr haben, aber sonst nichts! Wir sind gut bewaffnet und wissen zu kämpfen! Hier, damit werde ich euch lehren, friedliche Schiffe zu überfallen!</q> Einstimmig brüllen die Matrosen und Passagiere ihre Kampfbereitschaft heraus, schwenken die Waffen und rufen den Piraten Beleidigungen und Herausforderungen zu. Mögen sie ruhig kommen, dann bekommen sie, was sie verdient haben! Fast eine halbe Stunde lang versuchen die Piraten euch einzuschüchtern, aber da niemand einknickt, drehen sie schließlich wütend und frustriert ohne eine Dublone Beute ab. Jämmerliche Seeratten, feige!');
        $gold = roll_dice(2,6,3);
        showText('Als Lohn für deine heldenhafte Führung legen die Passagiere zusammen und überreichen dir '.$gold.' Gulden!');
        aktualisiere_gold($gold*100);
        ap_vergabe(28, true, __FUNCTION__);
      } elseif($p1 >= 0 || $p2 >= 0) {
        showText('Irgendwie schaffst du es, die Panik zu mildern und so etwas wie Ordnung zu erzeugen. Mit den Waffen in den zitternden Händen stellen sich die Männer und Frauen in Kampfposition und überlassen dir die Führung. Dann liegen die Piraten längsseits...');
        showText('<q>Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so an Bord habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund! Na los, gebt schon auf und rettet eure jämmerliche Haut!</q>');
        showText('Nervös aber geschlossen stehen die Matrosen hinter dir. <q>Blut und Eisen könnt ihr haben, aber sonst nichts! Wir sind gut bewaffnet und wissen zu kämpfen! Hier, damit werde ich euch lehren, friedliche Schiffe zu überfallen!</q> Zwar macht es die offenkundige Furcht in den Augen der Matrosen nicht leicht, zu verhandeln, aber am Ende einigst du dich mit den Piraten darauf, nur einige Fässer Rum aus der Ladung und einige Gulden aus der Bordkasse zu übergeben. Unzufrieden ziehen die Piraten mit ihrer Mageren Beute ab. Die anderen Passagiere loben dich wegen deines Mutes, der ihnen viel Geld gerettet hat, aber eine Belohnung springt nicht für dich heraus. Dafür mussten sie zu viel Geld und Rum an die Piraten abgeben.');
        ap_vergabe(20, true, __FUNCTION__);
      } else {
        showText('So sehr du dich auch bemühst, keiner der jämmerlichen Leichtmatrosen und Pfeffersäcke an Bord scheint den Mumm für einen Kampf zu haben, und alleine hast du keine Chance. Zähneknirschend musst du zusehen, wie die Piraten sich nähern...');
        showText('<q>Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so an Bord habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund! Na los, gebt schon auf und rettet eure jämmerliche Haut!</q>');
        showText('Während die anderen sofort einknicken, stellst du dich mutig mit der Waffe in der Hand an die Reling. <q>Blut und Eisen könnt ihr haben, aber sonst nichts! Wir sind gut bewaffnet und wissen zu kämpfen! Hier, damit werde ich euch lehren, friedliche Schiffe zu überfallen!</q> Panisch bemühen sich Kapitän und Passagiere, deine Kampfeslust zu bremsen. Schließlich kommen die Piraten doch an Bord und plündern euch gründlich aus, aber vor dir scheinen sie einen gewissen Respekt zu haben. Zwar nehmen sie dir die Waffe, mit der du ihnen gedroht hast, lassen dir aber dein restliches Zeug. Nachdem sie eure Segel zerschnitten haben, suchen sie das Weite.');
        if(!ist_held_noobie())
          klaue_waffen(100);
        reisezeit_verlaengern(24);
        ap_vergabe(20, false, __FUNCTION__);
      }
    }
  } else {
    showText('Gegen ein ganzes Schiff voll blutrünstiger Piraten ist nichts auszurichten! Hektisch versuchst du, den Matrosen bei ihrer Arbeit zu helfen, stehst dabei aber mehr im Weg als zu helfen. Schon kann man auf dem Piratenschiff lachende und mit ihren blanken Klingen drohende Piraten sehen, übles Gesindel, ebenso blut- wie goldgierig! Doch alle Manöver nützen wenig, euer Schiff ist einfach zu schwer beladen, die Piraten sind zu beweglich. Irgendwann liegen sie längsseits keine 50 Schritt entfernt, die ersten Pfeile haben sich schon in eure Segel gebohrt und etliche Piraten lassen Enterhaken an langen Seilen über ihrem Kopf kreisen.');
    showText('Doch glücklicherweise kommt es nicht zum Enterkampf.');
    showText('<q>Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so an Bord habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund! Na los, gebt schon auf und rettet eure jämmerliche Haut!</q> Was gibt es noch groß zu sagen, ihr gehorcht.');
    showText('Minuten später durchwühlen Piraten jeden Winkel des Schiffes, während andere euch grinsend ihre Klingen an den Hals halten. Ihr seid entwaffnet und umzingelt, könnt euch nicht wehren. Aber immerhin meucheln sie euch nicht und schicken euch auch nicht in die Sklaverei, sondern räumen nur die besten Sachen der Ladung und des Gepäcks auf ihr Schiff. Nach über drei Stunden sind sie endlich fertig, feiern mit eurem Wein, Bier und Rum ihren Sieg und fahren davon, nachdem sie noch alle eure Segel zerschnitten haben. Sie zu flicken wird einige Zeit dauern, und von deiner Waffe, deinem Geld und Teilen deiner Ausrüstung musstest du dich auch verabschieden. Verdammtes Piratenpack...');
    if(ist_held_noobie()) {
      klaue_gold(33);
      klaue_ausruestung2(3);
    } else {
      klaue_gold();
      klaue_waffen(1000);
      klaue_ausruestung2(10);
    }
    reisezeit_verlaengern(24);
    ap_vergabe(6, false, __FUNCTION__);
  }
  return true;
}

Auftreten ist alle Seewege und Wahrscheinlichkeit war für meinen Geschmack dafür etwas hoch eingestellt, habe mal die Auftretenswahrscheinlichkeit reduziert.


Wenn es Fragen gibt zu der PHP-Programmierung, raus damit, ich versuche gerne zu erklären. Weitestgehend sollten die Funktionsnamen sprechend sein, hier noch ein paar technische Erläuterungen.
showText() -- gibt für den Spieler den Text aus, der in den Klammern steht
ap_vergabe() -- gibt dem Held Erfahrungspunkte
talent_probe() -- führt eine Fertigkeitsprobe durch. Rückgabe sind die FeW* der Probe.
eigenschafts_probe() -- führt eine Eigenschaftsprobe durch. Rückgabe sind die FeW* der Probe.
aktualisiere_gold() -- der Held erhält Gold (die Zahl entspricht dem Wert in Groschen)
aendere_gepaeck() -- der Held erhält Items. In der Klammer ist die WarenID und die Menge angegeben. Meistens als Kommentar angegeben, was es für eine Ware ist. Falls nicht, einfach fragen.
kampf_npc_duell() -- es wird ein Kampf zwischen Held und dem NPC, der in Klammern angegeben ist, gestartet
kampf_npc_multi() -- Held kämpft gegen mehrere NPC
waffen_erbeuten() -- Held erhält die Waffen der gefallenen NPC
klaue_gold() -- wenn in den Klammern nix steht, verliert der Held all sein Gold. Wenn eine Zahl in Klammern steht, entspricht es dem Wert in Groschen, der entwendet wird.
klaue_waffen() -- Der Held verliert seine Hauptwaffe. Wenn Zahl in Klammern steht, verliert der Held seine Hauptwaffe nur, wenn sie dem Wert in Groschen übersteigt.
klaue_ausruestung2() -- klaut dem Helden mitgeführte Ausrüstung, der Wert gibt den Anteil in Prozent an
ist_held_noobie() -- prüft, ob der Held unter den Welpenschutz fällt

P.S: Zum Nachvollziehen der PHP-Zufallsbegegnungen empfehle ich einen Editor wie Notepad++. Die ZB dort per Copy & Paste übernehmen, einmal als *.php Datei abspeichern (oder unter Sprachen -> P -> PHP auswählen), dann wird auch das Syntax Highlighting vorgenommen, das heißt, es wird durch die grafische Darstellung schwarz/blau/grau einfacher, das Coding nachzuvollziehen.

Ziel sollte es m.E. sein, die geänderten/neuen ZB in AOQML abzulegen.
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 4848
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken

Re: Projekt: Kampf ZBs

Beitragvon cvk » So 23 Okt, 2016 17:39

AOQML Debatte hierher verschoben: viewtopic.php?f=77&t=7658&start=2115#p319724
"[T]he Land of Antamar, where freedom reigns for all."
Beatty, Susi; Gunter, Kery: Angie the Ant and the Bumblebee Tree. O.O., o.V., 2005.
Benutzeravatar
cvk
Oberst
Oberst
 
Beiträge: 3088
Registriert: Fr 13 Jul, 2012 16:10
Heldenname: Lunarias Mondenweh

Re: Projekt: Kampf ZBs

Beitragvon cvk » So 23 Okt, 2016 20:43

Hier ist die Piraten-ZB in AOQML angenähert. Manches geht halt nicht 1 zu 1. Zum Beispiel nur Waffen aus der Hand zu klauen, wenn sie mindestens 1000 Groschen wert sind oder bei der EP-Vergabe zwischen verloren und gewonnen zu unterscheiden, was dann intern nochmal ne kleine Rechnung anschmeißt.

Hab nix getestet, AOQML-Editor hat aber zumindest nix zu meckern. ;) Und sie ist natürlich keineswegs entschärft. Aber vielleicht in der Form lesbarer um Ideen zu entwickeln.

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">

<!--  Autor: neonix
      Auftreten: Schifffahrt
      Häufigkeit: rar
      Humor: nein
      Gruppe: nein
      Inhalt: Piraten, Raub und so. -->


<p>Schwer beladen mit Handelsgütern und einigen wohlhabenden Passagieren fährt euer Schiff immer knapp in Sichtweite der Küste dahin. Der Wind ist gut, die Matrosen singen bei der Arbeit einige fröhliche Lieder und du langweilst dich. Für einen Helden gibt es einfach nicht viel zu tun an Bord... Plötzlich mischt sich dünn die Stimme des Ausgucks in den Gesang der Matrosen: "Schiff backbord voraus!" Was ja an sich nichts ungewöhnliches ist, es vergeht eigentlich kaum ein Tag, an dem ihr nicht wenigstens ein oder zwei Schiffe in der Entfernung sichtet. In den meisten Fällen haltet ihr einfach Abstand und die anderen Schiffer halten es ebenso.</p>
<p>Aber nicht diese.</p>
<p><q>Kapitän, das Schiff hat den Kurs gewechselt!</q> Fast eine halbe Stunde später ist aus dem winzigen hellen Fleck am Horizont schon ein richtiger Satz Segel geworden, der offenbar eine kleine <random><case>Karavelle</case><case>Thalucke</case><case>Lorcha</case></random> antreibt. Das schlanke Schiff scheint leicht beladen, denn es macht mehr Fahrt als ihr. Und es hält verdächtig wenig Abstand zu euch.</p>
<p><q>Alle Segel setzen! Kurs ändern auf vier Strich Steuerbords!</q> Eine leichte Kurskorrektur soll zeigen, ob das andere Schiff feindselig gesinnt ist oder nicht. Und zunächst ist die Besatzung erleichtert, auch das kleine Schiff dreht etwas ab. Doch gerade, als es fast an euch vorbei ist, dreht es plötzlich und hält direkt auf euch zu! Nur Minuten später flattert die schwarze Flagge mit weißen Knochen über dem Mast und lässt keine Hoffnung mehr auf ein Missverständnis: PIRATEN!</p>
<p>Sofort beginnt der Kapitän lauthals Befehle zu brüllen, die Matrosen rennen hektisch umher, einige suchen sich Waffen, andere gehen an die Segel, und dazwischen geraten die einfachen Passagiere zunehmend in Panik.</p>
<challenge quality="MU">
  <failure>
    <p>Gegen ein ganzes Schiff voll blutrünstiger Piraten ist nichts auszurichten! Hektisch versuchst du, den Matrosen bei ihrer Arbeit zu helfen, stehst dabei aber mehr im Weg als zu helfen. Schon kann man auf dem Piratenschiff lachende und mit ihren blanken Klingen drohende Piraten sehen, übles Gesindel, ebenso blut- wie goldgierig! Doch alle Manöver nützen wenig, euer Schiff ist einfach zu schwer beladen, die Piraten sind zu beweglich. Irgendwann liegen sie längsseits keine 50 Schritt entfernt, die ersten Pfeile haben sich schon in eure Segel gebohrt und etliche Piraten lassen Enterhaken an langen Seilen über ihrem Kopf kreisen.</p>
    <p>Doch glücklicherweise kommt es nicht zum Enterkampf.</p>
    <p><q>Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so an Bord habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund! Na los, gebt schon auf und rettet eure jämmerliche Haut!</q> Was gibt es noch groß zu sagen, ihr gehorcht.</p>
    <p>Minuten später durchwühlen Piraten jeden Winkel des Schiffes, während andere euch grinsend ihre Klingen an den Hals halten. Ihr seid entwaffnet und umzingelt, könnt euch nicht wehren. Aber immerhin meucheln sie euch nicht und schicken euch auch nicht in die Sklaverei, sondern räumen nur die besten Sachen der Ladung und des Gepäcks auf ihr Schiff. Nach über drei Stunden sind sie endlich fertig, feiern mit eurem Wein, Bier und Rum ihren Sieg und fahren davon, nachdem sie noch alle eure Segel zerschnitten haben. Sie zu flicken wird einige Zeit dauern, und von deiner Waffe, deinem Geld und Teilen deiner Ausrüstung musstest du dich auch verabschieden. Verdammtes Piratenpack ...</p>
   
    <switch attribute="welpenschutz">
      <case val="true">
        <store name="reduktion"><eval>round(<get attribute="cash"/>*0.33)</eval></store>
        <set attribute="cash" dec="${reduktion}"/>   
        <drop item="*3%" />
      </case>
      <else>
        <set attribute="cash" val="0"/>
        <drop weapon="true" />
        <drop item="*10%" />
      </else>
    </switch>
   
    <delay hours="24" />
    <set attribute="EP" inc="6" show="none" />
  </failure>
  <success>
    <p>Während um dich herum Matrosen und Passagiere in Panik geraten, behältst du kühlen Kopf. Das Piratenschiff ist nicht eben groß, und ihr habt genügend Matrosen und Passagiere an Bord, um nicht völlig unterlegen zu sein. Und Geschütze scheinen die Piraten auch nicht zu haben ...</p>
    <challenge talent="Sinnenschärfe" mod="5">
      <success>
        <set name="gold" val="${1W6+3}" scope="scene" show="none" />
        <p>Misstrauisch kneifst du die Augen zusammen. Irgendwas stimmt nicht mit diesen Piraten... Da! In der Bordwand wurden erst kürzlich etliche Löcher geflickt, und viele der Piraten in der zweiten und dritten Reihe tragen Verbände, einige können nicht einmal aufrecht stehen! Offenbar sind sie in den letzten Tagen in einen schweren Kampf geraten und haben kaum die Kampfkraft, es mit euch aufzunehmen. Sofort berichtest du dem Kapitän und den anderen Mitreisenden von deiner Entdeckung. Gemeinsam beschließt ihr, hart zu bleiben! Dann sind die Piraten heran:</p>
        <p><q>Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so dabei habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund! Na los, gebt schon auf und rettet eure jämmerliche Haut!</q></p>
        <p>Lachend und johlend verspottet ihr die Piraten: <q>Seht euch doch einmal an, euer Kahn zieht Wasser wie ein Sieb und die Hälfte von euch ist näher am Tode als sonst etwas! Bettelt lieber um Eimer zum Schöpfen, die habt ihr wohl nötiger! Verschwindet, oder WIR kapern EUCH!</q> Zähneknirschend drohen und fordern sie noch einige Minuten, schießen etliche wirkungslose Pfeile zu euch herüber, drehen dann aber frustriert ab. Pack, elendes, denen habt ihr es gezeigt! Am Abend feiern dich die anderen Passagiere für deine Scharfsinnigkeit schenken dir zum Dank ein kleines Fässchen Rum und <fetch name="gold" /> Gulden.</p>
        <store name="geld" scope="scene"><eval><fetch name="gold" /> * 100</eval></store>
        <set attribute="cash" inc="${geld}" />
        <take item="#5532" /> <!-- Fässchen Rum -->
        <set attribute="EP" inc="20" />
      </success>
      <failure>
        <p>Nun, kampflos wirst du nicht aufgeben, aber erst musst du den Kapitän, die Mannschaft und die Passagiere davon überzeugen, dass ihr eine Chance habt!</p>
        <challenge talent="Überzeugen" mod="3">
          <success>
            <challenge talent="Kriegskunst" mod="3">
              <success>
                <p>Geschlossen stehen die Passagiere und Matrosen hinter dir, nachdem du ihnen erklärt hast, wie du die Piraten sicher und mit minimalen Verlusten abwehren kannst. Verdutzt, dass ihr nicht wie normale Kaufläute vor Furcht bebt, sagt der Piratenkapitän seinen Spruch auf:</p>
                <p><q>Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so an Bord habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund, bei! Na los, gebt schon auf und rettet eure jämmerliche Haut!</q></p>
                <p>Aber davon lasst ihr euch nicht einschüchtern! <q>Blut und Eisen könnt ihr haben, aber sonst nichts! Wir sind gut bewaffnet und wissen zu kämpfen! Hier, damit werde ich euch lehren, friedliche Schiffe zu überfallen!</q> Einstimmig brüllen die Matrosen und Passagiere ihre Kampfbereitschaft heraus, schwenken die Waffen und rufen den Piraten Beleidigungen und Herausforderungen zu. Mögen sie ruhig kommen, dann bekommen sie, was sie verdient haben! Fast eine halbe Stunde lang versuchen die Piraten euch einzuschüchtern, aber da niemand einknickt, drehen sie schließlich wütend und frustriert ohne eine Dublone Beute ab. Jämmerliche Seeratten, feige!</p>
                <set name="gold" val="${2W6+3}" scope="scene" show="none" />
                <p>Als Lohn für deine heldenhafte Führung legen die Passagiere zusammen und überreichen dir <fetch name="gold" /> Gulden!</p>
                <store name="geld" scope="scene"><eval><fetch name="gold" /> * 100</eval></store>
                <set attribute="cash" inc="${geld}" />
                <set attribute="EP" inc="28" />
              </success>
              <failure>
                <p>Irgendwie schaffst du es, die Panik zu mildern und so etwas wie Ordnung zu erzeugen. Mit den Waffen in den zitternden Händen stellen sich die Männer und Frauen in Kampfposition und überlassen dir die Führung. Dann liegen die Piraten längsseits...</p>
                <p><q>Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so an Bord habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund! Na los, gebt schon auf und rettet eure jämmerliche Haut!</q></p>
                <p>Nervös aber geschlossen stehen die Matrosen hinter dir. <q>Blut und Eisen könnt ihr haben, aber sonst nichts! Wir sind gut bewaffnet und wissen zu kämpfen! Hier, damit werde ich euch lehren, friedliche Schiffe zu überfallen!</q> Zwar macht es die offenkundige Furcht in den Augen der Matrosen nicht leicht, zu verhandeln, aber am Ende einigst du dich mit den Piraten darauf, nur einige Fässer Rum aus der Ladung und einige Gulden aus der Bordkasse zu übergeben. Unzufrieden ziehen die Piraten mit ihrer Mageren Beute ab. Die anderen Passagiere loben dich wegen deines Mutes, der ihnen viel Geld gerettet hat, aber eine Belohnung springt nicht für dich heraus. Dafür mussten sie zu viel Geld und Rum an die Piraten abgeben.</p>
                <set attribute="EP" inc="20" />
              </failure>
            </challenge>
          </success>
          <failure>
            <challenge talent="Kriegskunst" mod="3">
              <success>
                <p>Irgendwie schaffst du es, die Panik zu mildern und so etwas wie Ordnung zu erzeugen. Mit den Waffen in den zitternden Händen stellen sich die Männer und Frauen in Kampfposition und überlassen dir die Führung. Dann liegen die Piraten längsseits...</p>
                <p><q>Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so an Bord habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund! Na los, gebt schon auf und rettet eure jämmerliche Haut!</q></p>
                <p>Nervös aber geschlossen stehen die Matrosen hinter dir. <q>Blut und Eisen könnt ihr haben, aber sonst nichts! Wir sind gut bewaffnet und wissen zu kämpfen! Hier, damit werde ich euch lehren, friedliche Schiffe zu überfallen!</q> Zwar macht es die offenkundige Furcht in den Augen der Matrosen nicht leicht, zu verhandeln, aber am Ende einigst du dich mit den Piraten darauf, nur einige Fässer Rum aus der Ladung und einige Gulden aus der Bordkasse zu übergeben. Unzufrieden ziehen die Piraten mit ihrer Mageren Beute ab. Die anderen Passagiere loben dich wegen deines Mutes, der ihnen viel Geld gerettet hat, aber eine Belohnung springt nicht für dich heraus. Dafür mussten sie zu viel Geld und Rum an die Piraten abgeben.</p>
                <set attribute="EP" inc="20" />
              </success>
              <failure>
                <p>So sehr du dich auch bemühst, keiner der jämmerlichen Leichtmatrosen und Pfeffersäcke an Bord scheint den Mumm für einen Kampf zu haben, und alleine hast du keine Chance. Zähneknirschend musst du zusehen, wie die Piraten sich nähern...</p>
                <p><q>Heda, fette Pfeffersäcke! Streicht die Segel und lasst uns an Bord, wir wollen sehen, was ihr so an Bord habt! Wenn ihr aufgebt, nehmen wir nur die besten Sachen. Wenn ihr aber kämpft, bringen wir euch alle um und schicken euer Schiff auf den Meeresgrund! Na los, gebt schon auf und rettet eure jämmerliche Haut!</q></p>
                <p>Während die anderen sofort einknicken, stellst du dich mutig mit der Waffe in der Hand an die Reling. <q>Blut und Eisen könnt ihr haben, aber sonst nichts! Wir sind gut bewaffnet und wissen zu kämpfen! Hier, damit werde ich euch lehren, friedliche Schiffe zu überfallen!</q> Panisch bemühen sich Kapitän und Passagiere, deine Kampfeslust zu bremsen. Schließlich kommen die Piraten doch an Bord und plündern euch gründlich aus, aber vor dir scheinen sie einen gewissen Respekt zu haben. Zwar nehmen sie dir die Waffe, mit der du ihnen gedroht hast, lassen dir aber dein restliches Zeug. Nachdem sie eure Segel zerschnitten haben, suchen sie das Weite.</p>
                <switch attribute="welpenschutz">
                  <case val="true">
                    <!-- nix -->
                  </case>
                  <else>
                    <drop weapon="true" />
                  </else>
                </switch>
                <set attribute="EP" inc="15" />
                <delay hours="24" />
              </failure>
            </challenge>
          </failure>
        </challenge>
      </failure>
    </challenge>
  </success>
</challenge>

</scene>


PS.: Gleich der erste Satz negiert globales auftreten auf Seereisestrecken eigentlich. Müsste man mal gucken, ob Seestrecken irgendwie unterscheidbar sind. Gibt ja sicherlich welche, die Küste oder so als Vegetation haben oder sowas.
"[T]he Land of Antamar, where freedom reigns for all."
Beatty, Susi; Gunter, Kery: Angie the Ant and the Bumblebee Tree. O.O., o.V., 2005.
Benutzeravatar
cvk
Oberst
Oberst
 
Beiträge: 3088
Registriert: Fr 13 Jul, 2012 16:10
Heldenname: Lunarias Mondenweh

Re: Projekt: Kampf ZBs

Beitragvon Guur » Di 25 Okt, 2016 07:58

Ich habe mal eine Ersatz-ZB für die drei Straßenräuber geschrieben. Gaddezwerch hatte die wohl schon für Nichtkämpfer gesperrt. Diese hier ist also für Kämpfer nicht zugänglich gemacht, sondern ist rein für beschwichtigende Chars.

Getestet habe ich auch nichts, aber Editor meckert nicht.

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">

<!--  Autor: Guur
      Auftreten: Überall, außer auf dem Wasser
      Häufigkeit: mittel
      Humor: nein
      Gruppe: nein
      Inhalt: Drei Straßenräuber, Ersatz-ZB für die php-ZB, genacht für Nichtkämpfer. -->

<switch attribute="kampf">
  <case val="aktiv">
    <quest status="rejected"/>
  </case>
</switch>
<switch attribute="welpenschutz">
  <case val="true">
    <quest status="rejected"/>
  </case>
</switch>
   
<p>Drei Männer treten dir in den Weg. Ihre zernarbten Gesichter verheißen nichts Gutes. <q>Geld, oder Leben</q>, brüllt der Anführer dich an.</p>

<has attribute="gesinnung" val="gesetzlos" show="none" > <!-- Abfrage nach Gesinnung, Anfang -->
  <success> <!-- Char ist Gauner -->
    <challenge talent="Gassenwissen" mod="5">     
     <success>
       <p>Du bleibst jedoch ganz ruhig und musterst einem nach dem anderen. Dann entgegnest du schmunzelnd: <q>Wenn ich nicht <get attribute="nick"/> wäre, hätte ich jetzt richtig Angst vor euch bekommen. Aber so können wir sicher ins Geschäft kommen. Ich erspare euch den Weg an den Bütteln vorbei in die Stadt und zahle euch noch einen besseren Preis als der Schwarzmarkt. Was habt ihr Gauner denn anzubieten?</q></p>
       <has attribute="cash" min="100" show="none" >
        <success>
          <p>Viel ist es nicht, was sie bei sich haben, aber immerhin machst du ein kleines Geschäft und sorgst dfür, dass die Räuber guter Stimmung sind. Dann ziehst du weiter deines Weges.</p>
          <set attribute="cash" dec="100"/>
          <take item="Goldring"/>
          <take item="Biberfell"/>
          <take item="Silberteller"/>
          <take item="Dokumententasche"/>
          <set attribute="EP" inc="6"/>
        </success>
        <failure>
          <p>Leider hast du nicht genug Geld dabei und auf deine Gaunerehre wollen die Drei sich nicht verlassen, als du ihnen anbietest, erst die Sachen zu verkaufen und ihnen dann einen Teil des Geldes vorbei zu bringen. Dennoch geben sie dir den Weg frei und lassen dich unbehelligt ziehen.</p>
          <set attribute="EP" inc="6"/>
        </failure>
      </has> <!-- Abfrage auf Geld, Ende -->
     </success>
     <failure>
       <p>Du versuchst ganz ruhig zu bleiben, aber als du deinen Spitznamen nennst und dich als Hehler ausgibst, erntest du nur schallendes Gelächter.</p>
       <challenge talent="Geländelauf" mod="5">
        <success>
          <p>Also drehst du auf dem Absatz um und rennst, so schnell du kannst, den Weg zurück. Nach einiger Zeit triffst du auf eine Gruppe Händler, denen du dich anschließen kannst. Als ihr an der Stelle vorbei kommt, an der man dich überfallen wollte, ist von den Räubern nichts mehr zu sehen.</p>
          <delay hours="2"/>
          <set attribute="EP" inc="6"/>
        </success>
        <failure>
          <p>Also drehst du auf dem Absatz um und willst so schnell du kannst, den Weg zurück rennen, doch schon hat einer der Räuber dich erwischt.</p>
          <set attribute="wounds" inc="1" target="Rücken" />
          <challenge talent="Verbergen" mod="5">
           <success>
             <p>Zum Glück hattest du schon zuvor daran gedacht, einen großen Teil deines Geldes in deinen Sachen zu verstecken und so wirst du nicht komplett ausgeraubt.</p>
            <set attribute="cash" dec="*20%"/>
             <set attribute="EP" inc="8"/>
           </success>
           <failure>
             <p>Nachdem sie dein Geld genommen haben, lassen sie dich einfach liegen.</p>
             <set attribute="cash" val="0"/>
             <set attribute="EP" inc="10"/>
           </failure>
         </challenge> <!-- Probe auf Verbergen, Ende -->
        </failure>
      </challenge> <!-- Probe auf Geländelauf, Ende -->
     </failure>
   </challenge> <!-- Probe auf Gassenwissen, Ende -->
  </success> <!-- Gauner, Ende -->
  <failure> <!-- Char ist rechtschaffender Bürger -->
    <has item="Horn|Jagdhorn|Reitertrompete|Posaune">
     <success>
       <challenge talent="Musik" mod="5">
        <success>
          <p>Bevor die drei Gauner reagieren können, hast du schon dein Instrument an die Lippen gesetzt und bläst einen langen Signalton in die verschiedenen Himmelsrichtungen. Mehr musst du nicht tun. Das Lumpengesindel fällt auf deine List herein und macht sich aus dem Staub. Schnell siehst du zu, dass auch du weiter kommst.</p>
          <set attribute="EP" inc="6"/>
        </success>
        <failure>
          <challenge talent="Diplomatie" mod="5">
           <success>
             <has attribute="cash" min="100" show="none" >
              <success>
                <p>Du siehst die drei Getalten mitleidig an und meinst: <q>Straßenräuberei? So weit muss es doch gar nicht kommen. Ich gebe jedem von euch freiwillig einen Thaler. Dafür lasst ihr mich vorbei und die Gruppe von Jägern, mit denen ich zeitgleich aufgebrochen bin und die mich heute Abend im nächsten Ort wiedertreffen wollten, sieht, dass ich unbeschadet angekommen bin.</q></p>
                <p>Nach einem kurzen Wortwechsel untereinander lassen sich die Räuber auf dein Angebot ein. Du zahlst ihnen die versprochene Summe und sie geben den Weg frei.</p>
                <set attribute="cash" dec="30"/>
                <set attribute="EP" inc="6"/>
              </success>
              <failure>
                <p>Du siehst die drei Gestalten mitleidig an und zeigst ihnen deine schmale Geldbörse: <q>Straßenräuberei? Lohnt sich das denn überhaupt? Ich jedenfalls besitze selber so gut wie nichts. Und für das Wenige wollt ihr euch wirklich Feinde machen? Lasst mich einfach gehen, dann kann ich die Jäger, die heute morgen mit mir zeitgleich aufgebrochen sind, im nächsten Ort treffen und keiner wird nach mir suchen.</q></p>
                <p>Nach einem kurzen Wortwechsel untereinander geben die Gauner den Weg für dich frei. Du bedankst dich und ziehst weiter.</p>
                <set attribute="EP" inc="5"/>
              </failure>
            </has> <!-- Abfrage auf Geld, Ende -->
           </success>
           <failure>
             <p>Eigentlich wolltest du mit ihnen reden, aber scheinbar verfehlen deine Worte ihre Wirkung.</p>
       <challenge talent="Geländelauf" mod="5">
        <success>
          <p>Also drehst du auf dem Absatz um und rennst, so schnell du kannst, den Weg zurück. Nach einiger Zeit triffst du auf eine Gruppe Händler, denen du dich anschließen kannst. Als ihr an der Stelle vorbei kommt, an der man dich überfallen wollte, ist von den Räubern nichts mehr zu sehen.</p>
          <delay hours="2"/>
          <set attribute="EP" inc="6"/>
        </success>
        <failure>
          <p>Also drehst du auf dem Absatz um und willst so schnell du kannst, den Weg zurück rennen, doch schon hat einer der Räuber dich erwischt.</p>
          <set attribute="wounds" inc="1" target="Rücken" />
          <challenge talent="Verbergen" mod="5">
           <success>
             <p>Zum Glück hattest du schon zuvor daran gedacht, einen großen Teil deines Geldes in deinen Sachen zu verstecken und so wirst du nicht komplett ausgeraubt.</p>
            <set attribute="cash" dec="*20%"/>
             <set attribute="EP" inc="8"/>
           </success>
           <failure>
             <p>Nachdem sie dein Geld genommen haben, lassen sie dich einfach liegen.</p>
             <set attribute="cash" val="0"/>
             <set attribute="EP" inc="10"/>
           </failure>
         </challenge> <!-- Probe Verbergen, Ende -->
        </failure>
      </challenge> <!-- Probe Geländelauf, Ende -->
     </failure>
    </challenge> <!-- Probe Diplomatie, Ende -->
   </failure>
  </challenge> <!-- Probe Musik, Ende -->
 </success>
 <failure> <!-- Kein passendes Musikinstrument dabei -->
 <challenge talent="Musik" mod="8">
        <success>
          <p>Bevor die drei Gauner reagieren können, hast du schon deine Finger zwischen die Lippen gesteckt und pfeifst einen langen Signalton in die verschiedenen Himmelsrichtungen. Mehr musst du nicht tun. Das Lumpengesindel fällt auf deine List herein und macht sich aus dem Staub. Schnell siehst du zu, dass auch du weiter kommst.</p>
          <set attribute="EP" inc="8"/>
        </success>
        <failure>
          <challenge talent="Diplomatie" mod="5">
           <success>
             <has attribute="cash" min="100" show="none" >
              <success>
                <p>Du siehst die drei Getalten mitleidig an und meinst: <q>Straßenräuberei? So weit muss es doch gar nicht kommen. Ich gebe jedem von euch freiwillig einen Thaler. Dafür lasst ihr mich vorbei und die Gruppe von Jägern, mit denen ich zeitgleich aufgebrochen bin und die mich heute Abend im nächsten Ort wiedertreffen wollten, sieht, dass ich unbeschadet angekommen bin.</q></p>
                <p>Nach einem kurzen Wortwechsel untereinander lassen sich die Räuber auf dein Angebot ein. Du zahlst ihnen die versprochene Summe und sie geben den Weg frei.</p>
                <set attribute="cash" dec="30"/>
                <set attribute="EP" inc="6"/>
              </success>
              <failure>
                <p>Du siehst die drei Gestalten mitleidig an und zeigst ihnen deine schmale Geldbörse: <q>Straßenräuberei? Lohnt sich das denn überhaupt? Ich jedenfalls besitze selber so gut wie nichts. Und für das Wenige wollt ihr euch wirklich Feinde machen? Lasst mich einfach gehen, dann kann ich die Jäger, die heute morgen mit mir zeitgleich aufgebrochen sind, im nächsten Ort treffen und keiner wird nach mir suchen.</q></p>
                <p>Nach einem kurzen Wortwechsel untereinander geben die Gauner den Weg für dich frei. Du bedankst dich und ziehst weiter.</p>
                <set attribute="EP" inc="5"/>
              </failure>
            </has> <!-- Abfrage auf Geld, Ende -->
           </success>
           <failure>
             <p>Eigentlich wolltest du mit ihnen reden, aber scheinbar verfehlen deine Worte ihre Wirkung.</p>
       <challenge talent="Geländelauf" mod="5">
        <success>
          <p>Also drehst du auf dem Absatz um und rennst, so schnell du kannst, den Weg zurück. Nach einiger Zeit triffst du auf eine Gruppe Händler, denen du dich anschließen kannst. Als ihr an der Stelle vorbei kommt, an der man dich überfallen wollte, ist von den Räubern nichts mehr zu sehen.</p>
          <delay hours="2"/>
          <set attribute="EP" inc="6"/>
        </success>
        <failure>
          <p>Also drehst du auf dem Absatz um und willst so schnell du kannst, den Weg zurück rennen, doch schon hat einer der Räuber dich erwischt.</p>
          <set attribute="wounds" inc="1" target="Rücken" />
          <challenge talent="Verbergen" mod="5">
           <success>
             <p>Zum Glück hattest du schon zuvor daran gedacht, einen großen Teil deines Geldes in deinen Sachen zu verstecken und so wirst du nicht komplett ausgeraubt.</p>
            <set attribute="cash" dec="*20%"/>
             <set attribute="EP" inc="8"/>
           </success>
           <failure>
             <p>Nachdem sie dein Geld genommen haben, lassen sie dich einfach liegen.</p>
             <set attribute="cash" val="0"/>
             <set attribute="EP" inc="10"/>
           </failure>
         </challenge> <!-- Probe Verbergen, Ende -->
        </failure>
      </challenge> <!-- Probe Geländelauf, Ende -->
     </failure>
    </challenge> <!-- Probe Diplomatie, Ende -->
   </failure>
  </challenge> <!-- Probe Musik, Ende -->
 </failure>
 </has> <!-- Abfrage nach Jagdhorn, Ende -->
  </failure>
</has> <!-- Abfrage nach Gesinnung Ende -->

</scene>
Kanzler für die freien Flusstäler und Herzstein.
Benutzeravatar
Guur
Game Designer
Game Designer
 
Beiträge: 6470
Registriert: So 01 Jul, 2007 15:02
Wohnort: Wetter an der Ruhr
Heldenname: Guur Grogarogh

Re: Projekt: Kampf ZBs

Beitragvon Brogdan » Mi 26 Okt, 2016 18:00

Mir ist gerade eine ZB in Maieteiko begegnet, die ich gerne überarbeitet hätte. Nur weil ich die Sprache nicht verstehe gleich ausgeplündert zu werden, finde ich zu hart; vielleicht kann man es bei einer Geldbuße belassen. Ggf. nach Überreden und Schauspielerei (wegen der Verständigungsprobleme).
Spoiler:
Auf dem Weg von Qianqi nach Jinpeng.

Reisetag 30: LE (58) AU (53) ER (0) Wunden (0) EP (1654)

An der Straße vor dir scheint das Militär gerade eine Straßensperre aufgebaut zu haben. Alle Reisenden werden kontrolliert. Leider hast du keine Ahnung, worum es eigentlich geht, und kannst mangels Kenntnis der einheimischen Sprache auch niemanden fragen.

Du hast zwar keine Ahnung, was los ist, aber einen ehrlichen Wanderer aus der Fremde werden sie hier wohl kaum drangsalieren. Oder? Oder doch. Nachdem sie dich stundenlang in ihrer unverständlichen Sprache ausgefragt haben, durchwühlen sie dein Gepäck und beschlagnahmen scheinbar willkürlich Sachen daraus. Erst nach etlichen Stunden darfst du weiter reisen. Immerhin lassen sie dir deine Waffe und dein Geld.
[ausgeplündert] Die Reise verlängert sich um 6 Stunden.
Fremder:
verlorene Gegenstände:
1x Wolffigur
1x Jagdpfeil
1x Diamant
Sehnsucht ist Leidenschaft, die sich sehnt und sucht und Leiden schafft. (Maria Heinig)
Benutzeravatar
Brogdan
Feldwebel
Feldwebel
 
Beiträge: 493
Registriert: Fr 24 Jul, 2009 17:29
Heldenname: Thorkar Brogdansson, Iana, Fremder, Caspar
Mitglied bei: Sjólfur Drakarskapar Isbrotsos, Zur großen Bühne

Re: Projekt: Kampf ZBs

Beitragvon Pyromaniac » Mi 26 Okt, 2016 19:35

Überreden oder Schauspielern benötigt aber Sprachkenntnisse, die Du nicht hast.

[ausgeplündert] sieht immer böse aus. Da willkürlich Sachen entnommen wurden, war die wohl nicht komplett, sondern prozentual.
Wenn schon Prozente berechnet werden, könnte man das auch beim Geld statt beim Gepäck machen lassen.

Allerdings ist die jetzige Version stimmiger, denn wie soll man Dir klarmachen, dass das dich Summe x kostet. Außerdem könnten die beschlagnahmten Waren einem Embargo unterliegen und werden deshalb eingezogen. Das sieht dann auch nicht nach Bereicherung der Kontrolleure aus.

Meine persönliche Meinung dazu ist: die ZB so lassen. So kommt sie ganz gut rüber und die Plünderung erscheint mir sehr moderat.
Weder Waffen noch Geld verliert man. Eigentlich verliert man kaum mal so wenig bei Plünderungen.
Sollte das der verlustreichste Zweig der ZB sein, hat das der Autor mit viel Fingerspitzengefühl gemacht.
Pyromaniac
Leutnant
Leutnant
 
Beiträge: 969
Registriert: Di 24 Mai, 2011 10:34
Heldenname: Ixliton, Orlan und Odette

Re: Projekt: Kampf ZBs

Beitragvon Amarok » Do 27 Okt, 2016 17:47

Es wäre schon nett, diese halblegale Plünderung durch Kenntnisse in der entsprechenden Sprache (die mancheiner ja vielleicht hat) oder durch Charisma (Probe) abwenden oder abschwächen zu können.
Amarok
Vagabund
Vagabund
 
Beiträge: 16
Registriert: Fr 15 Jul, 2016 16:54
Heldenname: Amarok

Re: Projekt: Kampf ZBs

Beitragvon Kuolema_ » Fr 28 Okt, 2016 14:34

Zur Piraten-ZB gab es schon einmal ein paar Ideen: viewtopic.php?f=137&t=12518&p=313706
Du interessierst dich für Dunkelzwerge und Krimis? Ich suche noch einen Co-Autor bzw. eine Co-Autorin für eine Kriminalqueste auf der Zitadelle von Kebiralosch. Bei Interesse -> PN.
Kuolema_
Ritter
Ritter
 
Beiträge: 764
Registriert: Sa 17 Dez, 2011 16:41
Wohnort: Wien
Heldenname: Kuolema
Mitglied bei: Die Hände des Schicksals

Re: Projekt: Kampf ZBs

Beitragvon Brogdan » Fr 28 Okt, 2016 14:56

Bei allen Piraten- und Rauberbegegnungen kann man prima das Talent Verbergen einbauen, um einen Teil des Geldes/der Wertgegenstände dem Zugriff zu entziehen. Besonders ein Schiff bietet mannigfaltige Verstecke.
Sehnsucht ist Leidenschaft, die sich sehnt und sucht und Leiden schafft. (Maria Heinig)
Benutzeravatar
Brogdan
Feldwebel
Feldwebel
 
Beiträge: 493
Registriert: Fr 24 Jul, 2009 17:29
Heldenname: Thorkar Brogdansson, Iana, Fremder, Caspar
Mitglied bei: Sjólfur Drakarskapar Isbrotsos, Zur großen Bühne

Re: Projekt: Kampf ZBs

Beitragvon Pyromaniac » Fr 28 Okt, 2016 23:54

Verbergen bedeutet aber, Dinge am Körper zu verstecken. Und das tut man, bevor man auf Reisen geht, denn eine Auswahl während der ZB ist nicht möglich.
Im Übrigen müssen die Programmierer jetzt schon bei jeder notwendigen Abfrage auch an verborgene Geldreserven denken. Wenn dann noch mehr Verstecke berücksichtigt werden sollen, die auch noch vorher wegen der möglichen Bestückung definiert werden müssen, ist das ein ganz schöner Aufwand. Die geheime Dolchscheide ist bis heute noch nicht soweit fertig, dass alle passenden Dolche auch verstaut werden können.
Mit Verlust von Eigentum muss man hier leben können. Möglichkeiten, diesen zu minimieren, gibt es auch einige.
Pyromaniac
Leutnant
Leutnant
 
Beiträge: 969
Registriert: Di 24 Mai, 2011 10:34
Heldenname: Ixliton, Orlan und Odette

Nächste

Zurück zu Projekte



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron