Zum Inhalt springen

MidWar [Midgard Kampfsimulator]


Mav3N

Empfohlene Beiträge

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

Auch hier gilt wie bei den -2: Die "Höchstens-Halbe-AP-Regel" gilt bereits bei Erreichen der Hälfte der LP (also nicht erst, wenn man weniger als die Hälfte hat). Also, wenn jemand mit 14 LP nur noch 7 hat, darf er bereits nur noch höchstens die halbe AP-Zahl haben, bis er wieder mindestens 8 LP hat.

Link zu diesem Kommentar

@ Berward: wurde bereits gewünscht, werde ich umsetzen.

@ Bro: Gut, danke, werde ich umsetzen. Kannst du mir die DFR Seite nennen, in der diese Regel steht?

@ Luariina & bluemagician: Ja, ich habe noch keine JS Abfragen oder Regular Expressions hinzugefügt, um das ganze zu überprüfen. Die kommen mit der nächsten Version.

@ bluemagician: Ja, das ist im Moment leider noch so, da die Werte nicht überprüft werden, ob sei nun sinnvoll sind. Das wird noch hinzugefügt.

 

Wenn 2 oder mehr Personen von Team X eine Person von Team Y in einer Runde angreifen und dabei töten, so können die Member von Team X nicht noch etwas in der laufenden Runde tun, da sie ja bereits angegriffen haben! Das ist müste eigentlich kein Fehler sein...

 

Kämpfervorlagen werden kommen, ja ok. Du meinst dieses Statusfeld, dass bei den Kampfunfähigen entweder Tot oder kampfunfähig anzeigt? Das soll es bei Lebenden mit Texten wie wehrlos etc auch geben? Welche Werte sollen denn dann mit dem Status gleich angepasst werden?

 

Bamba

Link zu diesem Kommentar
Der WW:Abwehr ist (wie die Abkürzung auch nahelegt) kein Erfolgswurf!
Stimmt, steht sogar ausdrücklich so im DFR. Gleich mal in die Hitliste eintragen.

 

Wenn 2 oder mehr Personen von Team X eine Person von Team Y in einer Runde angreifen und dabei töten, so können die Member von Team X nicht noch etwas in der laufenden Runde tun, da sie ja bereits angegriffen haben! Das ist müste eigentlich kein Fehler sein...
Verstehe, das liegt aber daran, dass bei dir momentan alles gleichzeitig abläuft. Nach den Regeln erfolgen die Handlungen aber gemäß Handlungsrang, also nacheinander. D.h. der erste von Team X tötet die Nummer 1 von Team Y. Danach kommt Nummer 2 von Team X dran, die jetzt gegen Nummer 2 von Team Y vorgehen könnte.

 

Statusfeld: Genau so meinte ich es. Angepasste Werte wären z.B. bei wehrlos der Angriffs- und der Abwehrwert.

 

CU

FLo

Link zu diesem Kommentar
Außerdem sind kleine Rassen wie Gnomen oder Halblinge auch mit 3 LP noch handlungsfähig.

 

Dasselbe gilt für Gradeva, Gradraki und Kobolde, um mal die Wesen, die man theoretisch als SpFen nehmen kann, zu nehmen.

 

Allgemein gilt das für alle Wesen, "deren LP mit 2W6 ausgewürfelt werden"

 

 

Wesen, "deren LP mit 1W6 ausgewürfelt werden", sind erst am 0LP handlungsunfähig.

 

Gib mal Bitte die Seitennummer, damit ich das alles durchlesen & richtig umsetzen kann.

 

Bamba

Link zu diesem Kommentar
Außerdem sind kleine Rassen wie Gnomen oder Halblinge auch mit 3 LP noch handlungsfähig.

 

Dasselbe gilt für Gradeva, Gradraki und Kobolde, um mal die Wesen, die man theoretisch als SpFen nehmen kann, zu nehmen.

 

Allgemein gilt das für alle Wesen, "deren LP mit 2W6 ausgewürfelt werden"

 

 

Wesen, "deren LP mit 1W6 ausgewürfelt werden", sind erst am 0LP handlungsunfähig.

 

Gib mal Bitte die Seitennummer, damit ich das alles durchlesen & richtig umsetzen kann.

 

Bamba

S. 144 KOD, Abschnitt "Schadensfolgen"

 

Irgendwer hat sicher auch die Seite im DFR...

Link zu diesem Kommentar

Hallo,

 

Version 1.3 hab ich gerade zusammen mit KageMurai fertig programmiert. Folgende Features werden erfüllt:

 

- 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

- Statistikkampf

- Überprüfung, ob alle Felder ausgefüllt sind

- Standardbelegungen für Kämpfer

 

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

 

Wundert euch nicht bei den Statistikkämpfen, dass es nicht komplett ausgewogen ist. Das hat folgenden Grund: Derzeit dürfen alle Personen der Reihe nach angreifen, will heißen erst ID 1, dann 2, dann 3, etc. Angenommen Personsn 1-4 sind in Team 1 und 5-8 in Team 2 und alle haben komplett gleiche Werte, so gewinnt Team 1 weit überdurchschnittlich, da sie zuerst angreifen dürfen und somit immer eine Runde Vorsprung haben. Das ganze kann man ausgleichen, indem man die Gegner abwechselnd eintippt, also erst Team 0 dann 1 dann 0 dann 1, etc. allerdings beträgt der Unterschied dann immer noch bis zu 15%. Das ganze wird realistischer, wenn der Handlungsrang eingeführt wird. Daran arbeite ich in einer der nächsten Versionen.

 

Bamba

Link zu diesem Kommentar

Hallo,

 

ja, ich weiß es sind noch einige Ungereimtheiten in der Statistikkampfberechnung. Daran arbeite ich gerade. Wird sich dann morgen verbessert haben.

 

S. 144 KOD, Abschnitt "Schadensfolgen"

 

Irgendwer hat sicher auch die Seite im DFR...

 

Danke, wird eingebaut, wenn ich mich um Rassenzpezifische Sachen kümmere.

 

@ bluemagician: Nein, bei mir läuft auch nicht alles gleichzeitig ab. Erst greift Kämpfer Nummer 1 an, dann wird ausgerechnet was passiert und dann erst der nächste... Wenn ich den Handlungsrang einführe, geht das ganze auch nach dem Handlungsrang, derzeit allerdings "nur" der Reihenfolge im Array nach.

 

Ja, das Statusfeld werde ich um "wehrlos" und "aufgegeben" erweitern.

 

Bamba

Link zu diesem Kommentar

Hallo,

 

Version 1.3.1 ist fertig. Intern gab es ein paar Fehler, die berichtigt wurden, der Statistikkampf wurde ergänzt, es gibt nun JS Abfragen auf den Inhalt der Felder, die auch unsinnige Werte abfragen, ich hab zumindest angefangen HTML valid zu schreiben, es gibt nun +4 auf den EW:Angriff, wenn der Verteidiger 0 AP hat und einige Änderungen mehr. Außerdem wird ein Kampf beim Statistikkampf nun 1000 mal durchgerechnet, um aussagekräftige Ergebnisse zu erhalten. Features:

 

- Angreifen

- Abwehren

- Abwehren nicht erlaubt wenn Verteidiger 0 AP hat

- Schadenkalkulation

- Kampfunfähig ab 3 LP

- Rüstung

- Nicht unter 0 AP erlaubt

- Minus 2 auf Angriffe bei wenn Angreifer LP/2 hat

- Minus 4 auf Angriffe bei wenn Angreifer 0 AP hat

- Plus 4 auf Angriff, wenn Verteidiger 0 AP hat

- Anzeige wer gestorben / Kampfunfähig ist

- Namensgebung möglich

- Zufällige Gegnerwahl

- Kampfinformationen ausschaltbar

- Rundenanzeige

- Statistikkampf

- Inputüberprüfung

- Standardbelegungen für Kämpfer

 

Bitte Fehler suchen...

 

Danke! Link Version 1.3.1: http://php-learner.piranho.de/MidWar/insert.php

 

Bamba

  • Like 1
Link zu diesem Kommentar

Sehr cooles Teil, der Kampfsimulator! :thumbs: Ruhm!!

 

Optimal wäre das Toll m.E. um größere Scharmützel abzuwickeln. Wäre es möglich größere Gruppen von Kämpfern mit einem Mausklick zu erzeugen, indem man z.B. einmal Werte für einen Kämpfer eingibt und dann einfach die Anzahl vergleichbarer Streiter bestimmt, die in einer Einheit sind?

Link zu diesem Kommentar

Ich habe versucht einen Statistikkampf mit 50 Kämpfern in 4 Teams zu berechnen, ich bekam folgende Fehlermeldung:

 

Fatal error: Maximum execution time of 10 seconds exceeded in /var/www/usersites/p/ph/php-learner/htdocs/MidWar/fight.php on line 127

 

Beim nächsten Versuch war es auf Linie 128

 

Noch ein logischer Einwand: seit die Gegner per Zufall bestimmt werden, wird jede Runde ein neuer Gegner ausgesucht. Es wäre vielleicht logischer wenn der Gegner bis zur Vernichtung bekämpft wird (oder noch genauer, die Wahrscheinlichkeit dass der selbe Gegner noch einmal angegriffen wird höher ist, als dass ein neuer Gegner gewählt wird). Wie auch immer, das ist wohl kein grosses Problem, da es sich bei der Umsetzung vom Kampfposition und Bewegung wohl von selbst lösen wird, weil nur noch eine sehr geringe Anzahl Gegner tatsächlich angegriffen werden kann. Somit bedarf es da vermutlich auch keiner Lösung.

es grüsst

Sayah el Atir al Azif ibn Mullah

Link zu diesem Kommentar
Ich habe versucht einen Statistikkampf mit 50 Kämpfern in 4 Teams zu berechnen, ich bekam folgende Fehlermeldung:

 

Fatal error: Maximum execution time of 10 seconds exceeded in /var/www/usersites/p/ph/php-learner/htdocs/MidWar/fight.php on line 127

 

Beim nächsten Versuch war es auf Linie 128

 

Noch ein logischer Einwand: seit die Gegner per Zufall bestimmt werden, wird jede Runde ein neuer Gegner ausgesucht. Es wäre vielleicht logischer wenn der Gegner bis zur Vernichtung bekämpft wird (oder noch genauer, die Wahrscheinlichkeit dass der selbe Gegner noch einmal angegriffen wird höher ist, als dass ein neuer Gegner gewählt wird). Wie auch immer, das ist wohl kein grosses Problem, da es sich bei der Umsetzung vom Kampfposition und Bewegung wohl von selbst lösen wird, weil nur noch eine sehr geringe Anzahl Gegner tatsächlich angegriffen werden kann. Somit bedarf es da vermutlich auch keiner Lösung.

es grüsst

Sayah el Atir al Azif ibn Mullah

 

Also dieser Fatal Error ist kein Error, sondern einfach der Abbruch des Kampfes, da die zulässige Berechnungszeit überschritten wurde. Nähmlich 10 Sekunden ;) Was du da eingegeben hast (50 Kämpfer) ist eine große Anzahl und dementsprechend rechenintensiv. Stell dir vor du berechnest einen Kampf mit 50 Kämpfer, dieser dauert bei meinem Simulator zwischen 20 und 40 Runden im Surchschnitt bei den Standardwerten, die Anfangs eingestellt sind. Für jeden Kämpfer werden derzeit pro Runde um die 1000 Berechnungen ausgeführt. 50*30*1000 = 1,5 mio Berechnungen für den einen Kampf. Beim Statistikkampf wird die ganze Begebenheit 1000mal durchgerechnet. Also sind wir schon bei 1,5mia Berechnungen. Ich werde das daher nun auf 100 Durchläufe minimieren müssen und einen anderen Freeserver suchen, der eine längere execution Time erlaubt.

 

Nein, ich werde derzeit nicht daran arbeiten, dass ein einmal ausgesuchter Gegner bis zur Vernichtung attackiert wird, da sich das Problem von selbst behebt, ist einmal das Positionssysthem integriert.

 

Sehr cooles Teil, der Kampfsimulator! :thumbs: Ruhm!!

 

Optimal wäre das Toll m.E. um größere Scharmützel abzuwickeln. Wäre es möglich größere Gruppen von Kämpfern mit einem Mausklick zu erzeugen, indem man z.B. einmal Werte für einen Kämpfer eingibt und dann einfach die Anzahl vergleichbarer Streiter bestimmt, die in einer Einheit sind?

 

Ja ist möglich und werde ich in der nächsten Version auch einbauen.

 

Beim Statistikkampf wird, wenn Team 1+2 eingegeben wird im Ergebnis Team 0+1 angezeigt ohne Ergebnisse (klarerweise) für Team 0.

 

Ja, ich weiß beim Statistikkampf läuft derzeit noch nicht alles Rund. Erstellt mal 2 Teams von denen jeder Kämpfer 1W6-4 Schaden hat. aus unerfindlichen Gründen passiert dann etwas ähnliches was du angesprochen hast. Ich suche derzeit noch nach der Ursache. Allgemein muss ich noch einige Sachen im Statistikkampf ändern, um ein wenig Performance herauszukitzeln, da das ganze mittlerweile schon arg Rechenintensiv geworden ist.

 

Verbesserungen folgen in Kürze.

 

Bamba

Link zu diesem Kommentar
Nein, ich werde derzeit nicht daran arbeiten, dass ein einmal ausgesuchter Gegner bis zur Vernichtung attackiert wird, da sich das Problem von selbst behebt, ist einmal das Positionssysthem integriert.

Auch bei der Verwendung eines Positionssystems ist es möglich dass man mehrere Gegner zur Auswahl hat.

 

Ja natürlich. Aber dann hat man nur noch Gegner zur Verfügung die man tatsächlich auch angreifen kann, womit die zufällige Auswahl eines dieser Gegner auch tatsächlich Sinn macht. Wenn man dann unbedingt einen Grund erfinden muss, weshalb in einer Runde ausgerechnet dieser Gegner und nicht ein anderer angegriffen wird, ist dies ohne Probleme möglich (er war der gefährlichste oder hier hatte ich die beste Chance zu treffen oder...)

es grüsst

Sayah el Atir al Azif ibn Mullah

Link zu diesem Kommentar
Ich habe versucht einen Statistikkampf mit 50 Kämpfern in 4 Teams zu berechnen, ich bekam folgende Fehlermeldung:

 

Fatal error: Maximum execution time of 10 seconds exceeded in /var/www/usersites/p/ph/php-learner/htdocs/MidWar/fight.php on line 127

 

Beim nächsten Versuch war es auf Linie 128

 

Also dieser Fatal Error ist kein Error, sondern einfach der Abbruch des Kampfes, da die zulässige Berechnungszeit überschritten wurde. Nähmlich 10 Sekunden ;) Was du da eingegeben hast (50 Kämpfer) ist eine große Anzahl und dementsprechend rechenintensiv. Stell dir vor du berechnest einen Kampf mit 50 Kämpfer, dieser dauert bei meinem Simulator zwischen 20 und 40 Runden im Surchschnitt bei den Standardwerten, die Anfangs eingestellt sind. Für jeden Kämpfer werden derzeit pro Runde um die 1000 Berechnungen ausgeführt. 50*30*1000 = 1,5 mio Berechnungen für den einen Kampf. Beim Statistikkampf wird die ganze Begebenheit 1000mal durchgerechnet. Also sind wir schon bei 1,5mia Berechnungen. Ich werde das daher nun auf 100 Durchläufe minimieren müssen und einen anderen Freeserver suchen, der eine längere execution Time erlaubt.

Dachte ich mir, nur ich kenne mich mit Programmiersprachen und ihren Fehlermeldungen zu wenig gut aus, als dass ich einen solchen 'virtuellen' Fehler von einem 'richtigen' Fehler unterscheiden könnte.

es grüsst

Sayah el Atir al Azif ibn Mullah

Link zu diesem Kommentar
Bei Rüstungen hätte ich noch gerne die Auswahl: Rindenhaut, Marmorhaut und Eisenhaut. Das ist durch die gesparten AP nicht uninteressant.

 

Viele Grüße

hj

 

Ich habe hier keine Midgard Bücher in Reichweite, bitte einmal aufzählen was diese bringen.

 

Nein, ich werde derzeit nicht daran arbeiten, dass ein einmal ausgesuchter Gegner bis zur Vernichtung attackiert wird, da sich das Problem von selbst behebt, ist einmal das Positionssysthem integriert.

Auch bei der Verwendung eines Positionssystems ist es möglich dass man mehrere Gegner zur Auswahl hat.

 

Ja, und erst NACHDEM der A* Algorithmus einen oder mehrere Ziele, also SEKUNDÄR, gefunden hat, wird der Zufall eingesetzt.

 

Klasse Programm :D

 

Im Normalen Kampf fände ich es übersichtlicher, wenn die Teams unterschiedliche Farben hätten.

 

Du meinst in der grauen Box "Kampfinformationen" sollen die Kämpfer eines Teams farbig markiert werden? Also Team X blau und Team Y rot?

 

Bamba

Link zu diesem Kommentar

So,

 

nach stundenlangem Suchen, habe ich endlich den Fehler ausfindig machen können. Jetzt dürfte der Simulator in der Version 1.3.2 fehlerfrei laufen. Funktionen an sich wurden im Vergleich zur Version 1.3.1 allerdings nicht hinzugefügt. Daher sind diese weiterhin:

 

- Angreifen

- Abwehren

- Abwehren nicht erlaubt wenn Verteidiger 0 AP hat

- Schadenkalkulation

- Kampfunfähig ab 3 LP

- Rüstung

- Nicht unter 0 AP erlaubt

- Minus 2 auf Angriffe bei wenn Angreifer LP/2 hat

- Minus 4 auf Angriffe bei wenn Angreifer 0 AP hat

- Plus 4 auf Angriff, wenn Verteidiger 0 AP hat

- Anzeige wer gestorben / Kampfunfähig ist

- Namensgebung möglich

- Zufällige Gegnerwahl

- Kampfinformationen ausschaltbar

- Rundenanzeige

- Statistikkampf

- Inputüberprüfung

- Standardbelegungen für Kämpfer

 

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

 

Ich habe die Statistikkampfberechnung von 1000 auf 100 Durchläufe vermindert, da es Rechenzeit spart. Ich habe zwar einige Optimierungen vorgenommen, allerdings reicht das alles nicht und da wir bei piranho nur eine Execution Time von 10 Sekunden haben (Normal ist 60), muss ich das runter drehen. Kennt jemand von euchen einen Freehoster mit PHP, der eine höhere Execution Time hat? Bzw. kann ich das Script bei jemandem von euch hosten, dessen Execution Time größer ist?

 

Neue Funktionen kommen erst wieder in der nächsten Version. Auf meiner Todo Liste steht jetzt:

 

- Individuelle Angaben für jedes Team (Team X ist neutral zu Team Y, Team Z zu Team A, etc.)

- Individuelle Angaben für jeden Kämpfer, ob er mit 0 AP, LP/2, AP/2 etc. weiterkämpft

- Kritische Erfolge und Auswirkungen

- Schild

- Rassenzpezifische Sachen (Wesen, die mit 1W6 gewürfelt werden, sind mit 0 LP noch Handlungsfähig)

- Moralwert

- Spezialaufgaben für jeden Kämpfer (Anführer, Beschützen, etc.)

- Man darf nicht mehr als die Hälfte der AP haben, wenn man weniger als die Hälfte aller LP hat

- Handlungsrang

- Statusfeld um "aufgegeben" erweitern

- Kopierfunktion für bereits eingegebene Kämpfer

- Teams farbig unterscheiden

 

Später:

- Mit Positionen rechnen

- Gegner anhand von Positionen suchen

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

 

Bamba

 

(Bitte Fehler suchen, kann ja sein, dass ich immer noch was übersehen habe)

Link zu diesem Kommentar
Ich möchte mit diesem Beitrag lediglich Idee und Umsetzung loben, nicht Anregungen geben oder auf Fehler hinweisen. Sehr schön!

 

Und nun wird noch gerühmt.

 

Grüße

Prados

 

Danke.

 

Wer sich XAMPP installiert, kann auch den Quellcode von mir bekommen, so dass er MidWar lokal auf seinem Rechner auch ausführen kann, was dann die Execution Time Dauer auf 60 Sekunden anhebt, bzw. manuell noch weiter angehoben werden kann.

 

Bamba

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