Zum Inhalt springen

MidWar [Midgard Kampfsimulator]


Mav3N

Empfohlene Beiträge

Hallo,

 

interessantes Programm. Mich stört Folgendes:

 

1. Die Textausgabe lautet stets auf "würfelt", dabei ist "erzielt" gemeint. Schließlich kann keine 28 gewürfelt werden.

 

2. Ob Fehler bei der Schadensberechnung auftreten kann ich nicht nachvollziehen, da nur das Endergebnis ausgespuckt wird. Zur Kontrolle wäre es besser, wenn es z:B. wie folgt ausgegeben werden würde: "Kämpfer mit ID 3 erhält 6 SP, verliert 4, da 2 von der Rüstung aufgefangen werden."

 

Gruß

 

fabian

Link zu diesem Kommentar

- Ausscheiden (Hat ein Kämpfer 0 oder weniger LP wird er aus dem Kampf genommen)

Wenn ich wünschen darf:

-erstell für jeden einzelnen Kämpfer ein individuelle Kriterien wann er aus dem Kampf ausscheidet, ich denke das ist wichtig für später. 0AP, AP/2, 3LP, schwere Verletzung (mehr als LP/2) etc. Diese Bedingung muss dann natürlich für jeden Kämpfer einzeln eingegeben werden, was den Aufwand der Bedienung vergrössert.

-Bitte implementiere die Regeln 'Moralwert' für die einzelnen Gruppen

-da mehrere Verbände am Kampf teilnehmen sollen bitte implementiere einen Mechanismus wie welcher Verband zu einem anderen Verband verhalten soll. zB. Verband A greift Verband B&D an. Verband D will Verband C ausschalten ist neutral gegenüber A&B, Verband B bekämpft alle anderen.

Ich weiss, das sind alles Dinge für später, trotzdem.

Fehler:

-Eine Figur darf nach Regelwerk im Nahkampf nur von einer beschränkten Anzahl (4 Gegner, respektive 8 vorausgesetzt 4 verwenden Speere, Lanzen etc) Gegner angegriffen werden (wie es in Schlachtreihen geht weiss ich nicht, da ich diese nie gebraucht habe...)

-kein Fehler aber mehr als verwirrlich: die Darstellung mit Hilfe von ID die im Verlauf der Kämpfe neu zugewiesen werden. Wäre es nicht einfacher mit durchgehend gültigen ID zu arbeiten?

-'Kämpfer_1 mit der ID 1 erzielt 20 und hat Kämpfer_2 mit der ID 2 getroffen. Kämpfer_2 mit der ID 2 erzielt 20, kann nicht abwehren, erhält 3 Schadenspunkte und verliert 2 LP und 3 AP.'

nein. Angriff= Abwehr heisst Angriff abgewehrt also nur leichten Schaden.

es grüsst& danke für die Arbeit.

Sayah el Atir al Azif ibn Mullah

Bearbeitet von sayah
Link zu diesem Kommentar

So, hab alle 4 Wünsche erfüllt...

 

http://php-learner.piranho.de/MidWar/insert.php

 

@ Bro: Dmg wurde in Schaden geändert. Außerdem habe ich mich der Reihenfolge angenommen. Ab jetzt wird mit 1 angefangen und man kann zusätzlich Namen eingeben.

@ Fabian Wagner: Deine beiden Wünsche wurden umgesetzt.

 

Damit wir nicht durcheinander kommen, werde ich das ganze mit Versionen durchnummerieren. Aktuell ist Version 1.1.2 welches oben in der ecke angezeigt wird (vom 9.12.09 23:36)

 

Features bei Version 1.1.2:

 

- Angreifen

- Abwehren

- Abwehren nicht erlaubt wenn 0 AP

- Schadenkalkulation

- Kampfunfähig ab 3 LP

- Rüstung

- Nicht unter 0 AP erlaubt

- Minus 2 auf Angriffe bei LP/2

- Minus 4 auf Angriffe bei 0 AP

- Anzeige wer gestorben / Kampfunfähig ist

- Namensgebung möglich

 

Bamba

Link zu diesem Kommentar

- Ausscheiden (Hat ein Kämpfer 0 oder weniger LP wird er aus dem Kampf genommen)

Wenn ich wünschen darf:

-erstell für jeden einzelnen Kämpfer ein individuelle Kriterien wann er aus dem Kampf ausscheidet, ich denke das ist wichtig für später. 0AP, AP/2, 3LP, schwere Verletzung (mehr als LP/2) etc. Diese Bedingung muss dann natürlich für jeden Kämpfer einzeln eingegeben werden, was den Aufwand der Bedienung vergrössert.

-Bitte implementiere die Regeln 'Moralwert' für die einzelnen Gruppen

-da mehrere Verbände am Kampf teilnehmen sollen bitte implementiere einen Mechanismus wie welcher Verband zu einem anderen Verband verhalten soll. zB. Verband A greift Verband B&D an. Verband D will Verband C ausschalten ist neutral gegenüber A&B, Verband B bekämpft alle anderen.

Ich weiss, das sind alles Dinge für später, trotzdem.

Fehler:

-Eine Figur darf nach Regelwerk im Nahkampf nur von einer beschränkten Anzahl (4 Gegner, respektive 8 vorausgesetzt 4 verwenden Speere, Lanzen etc) Gegner angegriffen werden (wie es in Schlachtreihen geht weiss ich nicht, da ich diese nie gebraucht habe...)

-kein Fehler aber mehr als verwirrlich: die Darstellung mit Hilfe von ID die im Verlauf der Kämpfe neu zugewiesen werden. Wäre es nicht einfacher mit durchgehend gültigen ID zu arbeiten?

-'Kämpfer_1 mit der ID 1 erzielt 20 und hat Kämpfer_2 mit der ID 2 getroffen. Kämpfer_2 mit der ID 2 erzielt 20, kann nicht abwehren, erhält 3 Schadenspunkte und verliert 2 LP und 3 AP.'

nein. Angriff= Abwehr heisst Angriff abgewehrt also nur leichten Schaden.

es grüsst& danke für die Arbeit.

Sayah el Atir al Azif ibn Mullah

 

- individuelle Kriterien sind eine gute Idee, die werde ich sofort hinzufügen (morgen)

- Moralwert kommt später

- Einstellungen wer wem Neutral ist etc. ist natürlich auch wichtig... danke

 

Zu den Fehlern:

 

- Man darf nicht von mehr als 4 Personen gleichzeitig angegriffen werden, ja stimmt. Kann ich aber erst umsetzen, wenn der Simulator mit Positionsangaben rechnet und dazu muss ich den A* Algorithmus für die automatisierte Wegfindung in PHP implementieren. Das ist sehr aufwendig und daher mcahe ich das erst später.

- das mit den ID's ist aber garnicht so... Die ID's sind absolut fest! Schau mal genau hin...

- Ok bei Abwehr = Angriff, ist abgewehrt, da hab ich wieder ein Gleichheitszeichen vergessen, werde ich gleich hochladen, danke fürs finden den Fehlers

 

Bamba

 

EDIT: Die geänderte Datei ist hochgeladen, so dass jetzt auch abgewehrt wird, sofern Angriff = Abwehr ist.

Bearbeitet von Bamba
Link zu diesem Kommentar

 

Lass doch die Kämpfe einfach beim Drücken des OK-Buttons in einem neuen Browser-Fenster ablaufen und nicht im gleichen, dann kann man einfach nochmal OK drücken und hat den gleichen Kampf nochmal, ohne die Werte nochmal neu eingeben zu müssen. Damit kann man einen Kampf beliebig oft wiederholen ohne dass der Aufwand besonders groß wird.

 

Gruß

Shadow

 

Ein simples zurück hilft bei mir :dunno:

 

Und es wäre schön, wenn die Zählung bei "1" begänne statt bei "0". :)

 

Immer diese Nichtprogrammierer ;)

 

 

Ansonsten klasse Programm. Hat auf jeden Fall Potential.

Ich plädiere aber auch definitiv für mehrere Kampfabläufe.

Link zu diesem Kommentar

Weitere Wünsche:

-für mich wäre es einfacher (weil übersichtlicher) zuerst die Anzahl Teams anzugeben, dann wieviele Kämpfer in jedem Team sind, dann die Kämpfer zu definieren.

-für später, es wäre hilfreich Spezialaufgaben festlegen zu können: Anführer, spezielle Kämpfer eines Teams (Oger in Orktruppe) etc.

-ich hätte gerne Standardkämpfer via 'Dropdown' Liste: ich bin faul und will nicht 200 mal die Werte eines menschlichen Kriegers Gr. 1 eingeben um anschliessend als Gegner 25 Oger, 70 Wildschweine und 100 Orcs zu definieren... Zugegeben, da müsste man, Urheberrecht, zuerst mit dem Rechteinhaber reden.

es grüsst

Sayah el Atir al Azif ibn Mullah

Link zu diesem Kommentar

Du solltest ausserdem eine Funktion einbauen, die das Programm abbricht, wenn unsinnige Werte eingegeben werden oder eine Endlosschlaufe entsteht. Beispiel: zwei Kämpfer mit je 5LP, 1AP, Rüstungsschutz 2 die pro Angriff fest 1 Punkt Schaden machen. Da der Schaden jeweils von der Rüstung aufgefangen wird, dauert der Kampf ewig.

LG

Michael

Link zu diesem Kommentar

So, Version 1.2 ist fertig. Features:

 

- Angreifen

- Abwehren

- Abwehren nicht erlaubt wenn 0 AP

- Schadenkalkulation

- Kampfunfähig ab 3 LP

- Rüstung

- Nicht unter 0 AP erlaubt

- Minus 2 auf Angriffe bei LP/2

- Minus 4 auf Angriffe bei 0 AP

- Anzeige wer gestorben / Kampfunfähig ist

- Namensgebung möglich

- Zufällige Gegnerwahl

- Option Informationen auszuschalten

- Rundenanzeige

 

Auf meiner Todo Liste steht jetzt:

 

- Individuelle Angaben für jedes Team (X ist

 

neutral zu Y, etc.)

- Individuelle Angaben für jeden Kämpfer, ob

 

er mit 0 AP, LP/2 etc. weiterkämpft

- Kritische Erfolge und Auswirkungen

- Schild

- Kampfeingaben 100mal durchrechnen lassen für Statistiken (mit % Angaben)

- Rassenzpezifische Sachen

- Moralwert

- Standardkämpferbelegungen erzeugen

- Spezialaufgaben für jeden Kämpfer

- Abfrage unsinniger Konstellationen

 

Später:

- Mit Positionen rechnen

- Gegner anhand von Positionen suchen

- Man darf nicht von mehr als 4 Gegnern gleichzeitig angegriffen werden

 

Bitte sucht mal nach Fehler in der jetzigen Version.

 

@ sayah: Die Funktion, ob der Kampf abgebrochen wird oder garnicht stattfindet bei unsinnigen Werten kommt noch.

@ Bro: Hab Dmg in der Auswahlmaske auf Schaden geändert

@ sayah: Zuerst Teamanzahl, dann wieviele Kämpfer jedes Team hat, dann die Kämpfer? Nein, das werde ich nicht so machen. Ich werde in der Eingabemaske, allerdings noch ein paar Sachen verändern, so dass es leichter ist diese Dinge einzugeben.

@ sayah: Spezialaufgaben? Nenn mir ein paar und was diese bringen - sonst ist es aber eine gute Idee...

@ sayah: Ich definiere selber einfach für die nächste Version ein paar Standardkämpfer, die hinzugefügt werden können.

@ Shadow: Ja du hattest Recht, bisher gab es negativen Schaden, der den LP des Verteidigers gutgeschrieben wurde - das haeb ich jetzt behoben (müsste eigentlich).

 

Lade die version dann jetzt hoch...

 

Bitte fleißig Testen!

 

Danke!

 

Bamba

Link zu diesem Kommentar

@ sayah: Zuerst Teamanzahl, dann wieviele Kämpfer jedes Team hat, dann die Kämpfer? Nein, das werde ich nicht so machen. Ich werde in der Eingabemaske, allerdings noch ein paar Sachen verändern, so dass es leichter ist diese Dinge einzugeben.

ich dachte es wäre wahrscheinlich übersichtlicher. Wie sehr viel umständlicher das zu programmieren ist, weiss ich natürlich nicht.

@ sayah: Spezialaufgaben? Nenn mir ein paar und was diese bringen - sonst ist es aber eine gute Idee...

Anführer eines Teams, einer Gruppe von Teams

Aufteilung der Teams in erste Welle, zweite Welle, Reserve

Spezielles schützenswertes Individum (zB. Trupp von Kriegern schützt König)

Primäres Ziel des Gegners (obiger König, Anführer)

besonderes Indivium im Team (zB Oger in Orctrupp, Schamane in Barbarenverband)

Ein paar dieser Spezialaufgaben werden wichtig für die Umsetzung der Moralwertregeln (Anführer wird ausgeschaltet, besonderes Individum wird kampfunfähig oder flieht etc). Die anderen sind erste Anfänge von Taktik in deinem Programm: was soll mit dem Kampf erreicht werden, wie werden diese Ziele erreicht, welcher Gegner soll zuerst angegriffen werden, soll der Gegner mit möglichst grosser Uebermacht angegriffen werden (und zu Beginn ein paar Gegner nicht angegriffen werden) oder sollen sich die Teams möglichst gleichmässig verteilen (so dass möglichst viele Gegner in einen Nahkampf verwickelt werden, was tun die Kämpfer die gerade keinen Gegner vor sich haben etc. Sobald du Position und Bewegung ins Programm aufnimmst, wird ein 'Duell' Kampftaktik fällig um festzulegen welches Team sich zuerst bewegt, dann muss feststehen wer an diesem Duell teilnimmt. Du wirst entscheiden müssen ob du dein Programm derart ausführlich gestalten willst (und kannst).

@ sayah: Ich definiere selber einfach für die nächste Version ein paar Standardkämpfer, die hinzugefügt werden können.

ok. Vielleicht wäre eine Funktion 'übernimm Werte des Kämpfers mit ID-1 (ID xy)' hilfreich, oder das Programm erstellt sich jeweils aus den schon eingegebenen Kämpfern eine Auswahl die nun per drop down liste genutzt werden kann (ob das allerdings technisch möglich ist, weiss ich nicht). Weiter Danke für deine Anstrengungen

es grüsst

Sayah el Atir al Azif ibn Mullah

Link zu diesem Kommentar

Person_1 mit der ID 1

 

Für die Übersichtlichkeit wäre es besser, die Anzeige "...mit der ID 1..." auszublenden. "Person_1" würde völlig reichen.

 

Ich habe gerade einen Kampf mit insgesamt 10 Kämpfern in zwei Teams zu je 5 Kämpfern ablaufen lassen. Ich habe so ein bißchen den Überblick verloren, wer aus welchem Team noch lebt, da nirgends auftaucht, wer in welchem Team kämpft. Bei Kämpfen mit drei oder vier Parteien oder vielleicht sogar 100 Beteiligten wäre schon hilfreich, wer in wessen Team ist.

 

Anstatt "Person_1" wäre eine Dropdownliste mit "Kämpfer, Ork, Zwerg, Oger, so ein paar Standardmonster halt" sehr hilfreich. Wenn diese dann noch automatisch durchnummeriert würden "Ork_1; Ork_2, Zwerg_1", etc., wäre das toll.

 

Außerdem wäre es hilfreich, wenn man einfach auswählen könnte, dass z.B. Person_1 10x mit den gleichen Werten am Kampf beteiligt ist. So muss man nicht 10x die gleichen Werte eingeben.

 

Weiter so! Das wird bestimmt gut. :thumbs:

 

Gruß

Shadow

Link zu diesem Kommentar
Person_1 mit der ID 1

 

Für die Übersichtlichkeit wäre es besser, die Anzeige "...mit der ID 1..." auszublenden. "Person_1" würde völlig reichen.

 

Ich habe gerade einen Kampf mit insgesamt 10 Kämpfern in zwei Teams zu je 5 Kämpfern ablaufen lassen. Ich habe so ein bißchen den Überblick verloren, wer aus welchem Team noch lebt, da nirgends auftaucht, wer in welchem Team kämpft. Bei Kämpfen mit drei oder vier Parteien oder vielleicht sogar 100 Beteiligten wäre schon hilfreich, wer in wessen Team ist.

 

Anstatt "Person_1" wäre eine Dropdownliste mit "Kämpfer, Ork, Zwerg, Oger, so ein paar Standardmonster halt" sehr hilfreich. Wenn diese dann noch automatisch durchnummeriert würden "Ork_1; Ork_2, Zwerg_1", etc., wäre das toll.

 

Außerdem wäre es hilfreich, wenn man einfach auswählen könnte, dass z.B. Person_1 10x mit den gleichen Werten am Kampf beteiligt ist. So muss man nicht 10x die gleichen Werte eingeben.

 

Weiter so! Das wird bestimmt gut. :thumbs:

 

Gruß

Shadow

 

Hmm. Die Namenseingabe ist dafür gedacht, dass man seinen Personen Namen wie "Shiuyin" oder "Yazurah" geben kann. Da es vorkommen kann, dass der gleiche Name 2mal auftaucht, muss die ID im Anzeigetext dahinter stehen. Sonst würde da 2mal stehen "Shiuyin greift X an und direkt danach in der selben Runde: Shiuyin greift Y an". Das wäre verwirrend und ich würde Stunden nach einem Fehler suchen, der nicht existiert. Daher werde ich die Struktur Name->ID beibehalten. Es ist zum besseren Überblick einfach notwendig. Wenn man sich erstmal eingelesen hat, geht es. Dieses "Person_1", "Person_2", etc... Sind automatisch erzeugte Werte, damit das Feld Name nicht leerbleibt und man nicht etwas eingeben muss. Daher scheint es doppelt gemoppelt, wenn "Person_1 mit der ID 1 greift..." liest. Es ist aber notwendig.

 

Hmm du siehst nicht wer welchem Team angehört? Das steht doch immer in der "Kampfinformationenbox" nach und vor jeder Runde. Da steht Person_3 -> Team 0. Reicht das nicht? Ich kann noch zusätzlich "Person_1 mit der ID 1 aus Team X..." hinzufügen, aber das würde das ganze noch unübersichtlicher machen finde ich, daher lasse ich es.

 

Die Dropdownliste mit Standartisierten Namen wird noch kommen. ;)

 

Das letzte was du ansprichst, wurde bereits von sayah gewünscht und irgendwann von mir umgesetzt. ;)

 

Sind keine Fehler vorhanden? Sonst kann ich nicht weiterprogrammieren ;)

 

Bamba

Link zu diesem Kommentar
Sind keine Fehler vorhanden? Sonst kann ich nicht weiterprogrammieren ;)
Ich habe noch einen gefunden: Wenn man weniger als die Hälfte der LP hat, kann man nicht mehr als die Hälfte der AP haben. Das fehlt noch in der Berechnung.

 

Höh die Regel gibt es auch? :uhoh:

Nungut, danke fürs finden, ich werde es sofort umsetzen.

 

Bamba

Link zu diesem Kommentar

Ein Kampf zwischen zwei Kämpfern mit Angriff +10 und Abwehr +11 dauert so ca. 12-15 Runden. Das erscheint mir sehr lange. Ich kann nicht erkennen, ob Du berücksichtigt hast, dass der Angreifer +4 auf seinen Angriff erhält, wenn das Opfer 0 AP hat. Vielleicht liegt daran die lange Kampfdauer.

 

Gruß

Shadow

 

P.S.: Natürlich kann ich die Teamzugehörigkeit erkennen. Ich war wohl nur zu blind. :rolleyes:

Link zu diesem Kommentar
Ein Kampf zwischen zwei Kämpfern mit Angriff +10 und Abwehr +11 dauert so ca. 12-15 Runden. Das erscheint mir sehr lange. Ich kann nicht erkennen, ob Du berücksichtigt hast, dass der Angreifer +4 auf seinen Angriff erhält, wenn das Opfer 0 AP hat. Vielleicht liegt daran die lange Kampfdauer.

 

Gruß

Shadow

 

P.S.: Natürlich kann ich die Teamzugehörigkeit erkennen. Ich war wohl nur zu blind. :rolleyes:

 

Ja, in der Tat, dass hatte ich noch nicht berücksichtigt. Danke für das finden des Fehlers. Wird sofort hinzugefügt.

 

Bamba

 

EDIT: Haben beide Kämpfer +10 Angriff, +11 Abwehr, 18 LP und 10 AP, kommen bei mir aber 5,6,12 und einmal 8 Runden raus... Das ist halt Zufall ;)

Bearbeitet von Bamba
Link zu diesem Kommentar

Interessant ist solch ein Simulator für mich eigentlich nur, wenn er eine größere statistische Bandbreite abdeckt, man den selben Kampf also mehrere tausend/Millionen Mal simulieren kann und am Ende einen Durchschnitt als Ergebnis bekommt mit den oberen und unteren Spitzen und der momentanen Ansicht als optionale Detailansicht .

Ich finde den gemachten Anfang jedenfalls sehr lobenswert und hoffe es wird fortgesetzt.

Link zu diesem Kommentar

Fehler:

- Wird ein Kämpfer mit <= 3 LP angelegt, nimmt er trotzdem normal am Kampf teil. Ein Kämpfer mit Anfangs-LP <= 0 bekommt zwar -2, nimmt aber auch ansonsten normal am Kampf teil.

- Bei halben LP bekommt ein Kämpfer laut Text -2 auf EW:Angriff. Tatsächlich gibt es den Malus auf alle EW, also auch auf den WW:Abwehr.

- Die Eingabefelder erlauben Code-Injection (kann man auch als Feature missbrauchen, wenn ich z.B. bei Person 1 als Name "<b>Conan</b>" eingebe, wird Conan in der Auswertung überall fett angedruckt).

- Wird ein Kampfteilnehmer von 2 oder mehr Gegnern angegriffen und durch einen Gegner kampfunfähig geschlagen, machen die Gegner danach in dieser Runde nichts mehr.

Vorschläge:

- Kämpfervorlagen werden wohl noch ein bißchen dauern, aber du kannst (falls verfügbar) ja mal die Regeln im Kompendium zur Erstellung von Nichtspielerfiguren anschauen. Ich fände z.b. nützlich, wenn man den Grad angeben könnte und er daraus den Abwehrwert berechnet (Abwehr = 11 + Grad/2 (abrunden)).

- Schön wäre auch, wenn es bei den Überlebenden ein Statusfeld gibt, in dem dann steht, ob sie wehrlos, bei halber LP usw sind.

- Ebenso wäre schön, wenn zusammen mit dem Status gleich die Werte entsprechend angepasst werden.

Link zu diesem Kommentar

Sind keine regelspezifischen Probleme, sondern welche die durch die Implementation kommen:

 

Du überprüfst die Eingaben nicht, dh es kann zB in einem Duell vorkommen, dass ein Charakter mit negativen LP startet und trotzdem den anderen Kämpfer ausschaltet.

Dasselbe bei den anderen Werten, man kann "komische" Inputwerte erfindet; zB Buchstaben bei Angriffswerten.

Link zu diesem Kommentar

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...