Quote Originally Posted by Xotor View Post
Das Schema war folgendes:
A will B angreifen.
A fliegt ein.
Wärend STNE für A den Einflug berechnet: B schießt mehrfach auf A (oft so um die 45s reaktionszeit!)
A will schießen und bekommt die Meldung: Keine Schiffe in der Flotte
versteh ich das jetz richtig: während der server den einflug von A noch berechnet, kann B schon munter ballern? wäre da die einfachste lösung ned, bei KT-start den betroffenen sektor zu sperren und bei berechnungsabschluss wieder zu öffnen? will wer andres in dem sektor dann was machen, bekommt er die meldung "es wird gerade ein zug eines anderen spielers ausgeführt" - oder so.

damit man nicht sektoren dauerhaft durch irgendwas sperren kann, könnte man jetzt ne art querry für sektoren bauen.

also szenario ohne qry:
A fliegt ein, der sektor wird gesperrt, B will feuern, sperrmeldung. A is irgendwann fertig, feuert und B hats nich mitbekommen, bzw grad in der sekunde nich gedrückt. B kann wieder nichts aktiv machen... usw usf
mit querry:
A fliegt ein, der sektor wird gesperrt, B will feuern, sperrmeldung. allerdings wird nun die aktion von B in die qry gespeichert. dürften ja 3 variablen reichen, um sowas zu speichern: wer (auslösende id), typ (id = schiff oder flotte?), was (aktion - angriff, beam, einflug...). A is irgendwann fertig und jetzt wird automatisch die aktion von B ausgeführt. in der zeit kann A wieder eine aktion vormerken.

tieferes konzept:
- man meldet generell eine aktion zu einem sektor an
- die aktion wird ans ende der qry gespeichert
- die aktion am qry anfang wird ausgeführt
- hat man schon eine aktion in der qry, dann kann man keine weitere adden
- ausführen einer aktion löscht den eintrag aus der qry (am besten bei berechnungsabschluss)

um dem gegenüber zeit zu geben, könnte man nun auch zw 2 aktionen zum bsp ne minute vergehen lassen. da kann ein andrer dann berechnungszeit + minute planen und sich entscheiden. also im endeffekt nur ne minimale änderung des ablaufs oben. hmm, am besten wäre dann vllt diese änderung:
- ausführen einer aktion löscht den eintrag aus der qry (am besten bei berechnungsabschluss) zu
-> ausführen einer aktion löscht den eintrag eine minute später aus der qry (am besten bei berechnungsabschluss)

bräuchte man ne 4. variable. am besten nen timestamp, der dann gesetzt wird, wenn die berechnung beendet war. initialwert 0. ist TS 0, wird berechnet, ansonsten is die berechnung durch un man muss nur noch schauen, wann die minute um is. dazu könnte man dann nen autoreload implementieren oder nen counter zählen lassen (was vllt weniger schlimm wäre). beim counter könnte man auch nach nem reload der seite (per refresh oder so) immernoch die restzeit anzeigen. nen autoreload wäre aber dahin ^^

nuja, wie man das dann genau durchführt, is wieder sone frage. vllt fällt euch da was gescheites ein ><

nachteil der mir einfällt:
in bevölkerten sektoren kann das die arbeit argh in die länge ziehen. also sollte man die minute vllt auf kampfaktionen beschränken. bei der berechnung wird ja festgestellt, obs zu nem kampf kommt oder nich. kommts zu kampfhandlungen, wird der TS (timestamp) gesetzt, andernfalls wird er so gesetzt, das der eintrag sofort gelöscht wird.

nuja, vllt gefällt euch die idee ja.