Beiträge von Andosius
-
-
Meine alte Antwort habe ich mal gelöscht, da ich auf dieses Problem etwas ausführlicher Antworten möchte.
"Floats" wie wir sie nennen, sind nur ein sehr abstraktes Konstrukt, welche diese Werte so präzise wie nur irgendwie möglich nachahmen möchten.
Das mag sich für dich vermutlich sehr merkwürdig anhören, aber so ist es tatsächlich. Dein Computer kann mit dem Begriff "Float" wenig anfangen - er arbeitet eben mit Nullen und Einsen.
Über die letzten Jahrzehnte gab es viele Versuche diese Operationen so präzise wie möglich zu machen, weshalb man den "IEEE"-Standard entworfen hat.
Hier kommen aber auch die Probleme: Wir versuchen eine Fließkommazahl mit ganzen Zahlen zu definieren, welche der Computer kennt.
Daraus folgt jedoch, dass eben diese Zahlen auch irgendwo enden müssen, falls diese unendlich lang sind. Aus diesem Grund muss irgendwo gerundet werden oder eben ein Teil weggelassen werden - das führt zum ersten Faktor, der dein Ergebnis verfälscht.
Nicht nur aus diesen Rundungsprozessen entstehen Abweichungen, sondern auch aus dem IEEE-Format (das zu erklären würde jetzt den Rahmen doch etwas sprengen).
Aus diesen Gründen benutzen Banken auch keine Fließkommazahlen und ich lehne mich mal ganz weit aus dem Fenster: Mit großer Sicherheit auch keine Kassen o.ä.
Daher kann ich dir empfehlen deine Beträge mit einer Konstanten zu multiplizieren und damit in Integer umzuwandeln (und so auch zu speichern), anschließend das Gesamtergebnis dann durch diese zu teilen um eine präzisere Float zu erhalten (oder du lässt es gleich so und formatierst es als String, was deutlich schöner wäre tho - ist aber deine Entscheidung).
Ich hoffe, dass die Antwort ein wenig helfen konnte.
Wichige Quellen:
- https://floating-point-gui.de/ (zeigt das Problem)
-
Gude,
habe eine 5.5 Forum-Only-Lizenz. Der Update Support läuft in ein paar Tagen aus.
Daher kann ich sie dir für 65€ anbieten.
Als Zahlungsmittel gehen PayPal und Eilüberweisung.
Bei Bedarf auch gerne per Mittelsmann.
LG
-
Ich verkaufe eine Lizenz. Forum V5.5 mit inbegriffen.
Preislich stelle ich mir 65€ vor.
Kannst dich bei Interesse gerne melden.
-
-
Andosius Bruder, mach doch nicht diesen
Ich schicke dir eine Unterlassungserklärung zu, du bist nicht mein Bruder!
-
-
Lass den Datenbank-Hash und den berechneten Hash ausgeben.
Eventuell gibt es dort einen Unterschied, der nicht auf den ersten Blick auffällt.
Du solltest aber bedenken, dass sha256 dem heutigen Standard nicht genügt. Deutlich besser wäre es, wie Kaliber schon gesagt hat, bcrypt zu verwenden.
Das Problem bei MD5 und sha256 ist, dass es hierfür massenweise Datenbanken mit Hashes gibt und Passwörter beliebiger Länge eigentlich nicht mehr wirklich sicher sind.
-
Du könntest das Hash-Ergebnis und dein bisheriges Passwort in der Konsole ausgeben.
Damit kannst du herausfinden, ob du überhaupt ein sha256 Ergebnis zurück erhältst und auch, ob es vielleicht eine Veränderung des Formats gab.
Dann kannst du deinen Code entsprechend anpassen.
Vom Server Source Code aus sehe ich keine Veränderung. Die Fehlermeldung kannst du ignorieren, falls du bei sha256 bleiben möchtest.
-
-
GangstaSunny pls maken sie diese threads wieder markiert dings wenn neue nachricht und so
-
Maxi_Waynee Wenn ich mir bei einer Sache sicher bin, dann ist es der Fakt, dass die meisten Spieler über Freunde angeworben wurden und nur ein winziger Bruchteil per Liste kam.
Ich denke daher auch, dass diese Listen stark überbewertet werden.
-
Setze unter "Struktur" Standardwerte für alle Felder, in denen NULL steht. Ich bin mir sicher, dass MySQL Plugins mit NULL-Werten Probleme haben.
Damit umgehst du auch undefiniertes Verhalten, was ein größeres Problem darstellen könnte.
-
Es gibt immer solche Situationen in denen man den Wald vor lauter Bäumen nicht sieht.
Das wichtigste ist jedoch, dass du mit etwas Hilfe dein Problem selbst lösen konntest und das ist doch deutlich positiver als so ein kleines Upsi.
-
Es wäre hilfreich zu wissen, welches Verhalten du denn erwartest. Aus deinen Angaben kann man das Problem leider nicht rauslesen.
Meinst du eventuell, dass bei Schritt 3 nicht 10 Sekunden lang gewartet wird? Falls ja, kannst du das ganz einfach umsetzen, indem du den Code um einen "== 4"-Absatz erweiterst und den Spieler dann erst spawnst. SetTimerEx führt nämlich Code in X Millisekunden aus, pausiert bis dahin aber nicht.
Damit kannst du das Problem ganz einfach umgehen.
LG
-
selten so viel irrelevante scheiße gelesen
Zwing mich nicht dazu auf dem Discord mehr Mist zu schreiben!!!!
-
Das bedeutet sehr wahrscheinlich, dass du versuchst eine Spalte als Integer entgegen zu nehmen, diese aber einen anderen Datentypen hat (z.B. String/DateTime oder whatever).
Aus den wenigen Informationen kann ich dir leider auch nicht mehr sagen.
-
-
Han_Solo79 = 8 1 14 _ 19 15 12 15 / 79
(8+1+14) - (19+15+12+15)
23 - 61 / 79
23 - 0,772
= 22,22!!
Wacht auf, er ist ein Spion!
Der Beweis, dass er für den Eidechsenherrscher arbeitet!!!!!!!!!!!!!
-
Würde sagen da hat wer zu viel DHMO im System.
Zum selbst lesen und denken: http://www.dhmo.de/fakten.htmlFakten? Mit so einem Scheiß will ich nicht arbeiten!!!!!!!!11111111111111111