USA Slots über 2.147.483.647 ?

icekobra

Well-known member
ID: 287815
L
30 Juli 2007
661
22
Habe das Problem das die USA Slots nicht über 2.147.483.647 Lose gehen.
Jackpott, Mini-max Jackpott.
Habe schon gegoogled aber nix für den USA gefunden...
Der Jackpott bleibt bei 2147483647 stehen und auch im Adminmenu nicht höher zu stellen als 2147483647.

Hoffe es kann da einer weiter helfen !?
 
Da dürften Spalten als INT(11) SIGNED angelegt worden sein. Da ist nämlich 2.147.483.647 das Maximum. Vermutlich ist BIGINT(20) UNSIGNED angebrachter.
 
Auf Bigint(20) hab ich geändert. Bringt nix. Das unsigned finde ich net... zumindestens nicht in der sql ^^ bin da nicht so der hellste drin. sql noob im lernstadium

jackpot bigint(20) UNSIGNED

hab ich bei allen 4 jackpott einträgen gemacht

Jackpot
minjack
maxjack
startjack

Aber leider keine Wirkung... Im Adminforce immernoch bis 2xx Lose und das wars...
 
Funktioniert es wo anders??
Vielleicht hast du auch eine php version die nicht passt.
Ich hatte irgendwann mal eine 32 bit dtatt 64 bit und dadurch das problem.
 
Unbenanntc3c62.png


Und sonst geht ja alles. Nur dieses 2.147.483.647 Lose Limit im Jackpott... das nervt ^^
Das Problem muss doch bekannt sein, da viele noch die USA Slots benutzen.
 
ALTER TABLE `universal_stats` CHANGE `jackpot` `jackpot` BIGINT(11) UNSIGNED NOT NULL DEFAULT '0';

auf der Kommandozeile oder im SQL Feld bei PHPMyAdmin.

Das macht nichts anderes als in der Tabelle: universal_stats die Spalte Jackpot auf BIGINT(11) UNSIGNED zu setzen.
BIGINT = Typ der Spalte
UNSIGNED = Attribut der Spalte. Vermute mal deswegen hast du das nicht gefunden.

Ich wüste keine MySQL Version wo das Problem damit nicht zu beheben wäre
 
ALTER TABLE `universal_stats` CHANGE `jackpot` `jackpot` BIGINT(11) UNSIGNED NOT NULL DEFAULT '0';

auf der Kommandozeile oder im SQL Feld bei PHPMyAdmin.

Das macht nichts anderes als in der Tabelle: universal_stats die Spalte Jackpot auf BIGINT(11) UNSIGNED zu setzen.
BIGINT = Typ der Spalte
UNSIGNED = Attribut der Spalte. Vermute mal deswegen hast du das nicht gefunden.

Ich wüste keine MySQL Version wo das Problem damit nicht zu beheben wäre

Hab ich gemacht. Wurde geändert aber hat nix bewirkt. JP im Adminforce auf 3mrd gestellt und zack nur 2,14mrd gespeichert...

P.S. Werd später mal ein anderes Game ausprobieren. Gucken obs überhaupt am USA liegt oder am VMS selber oder weiss der Geier. Nachher Problemsuche....

ok mom ab noch die restlichen bearbeitet und scheint zu funktionieren.... zumindestens der JP geht. jetzt noch den min-max und start JP umstellen. dann könnte es gehen :) ich meld mich

so also im adminforce kann man den jackpott ja einstellen. heisst stelle ich auf 10mrd geht der automatisch auf 2,14mrd. dann ist dort ein (+) zeichen. Heisst ich kann den Jackpot nicht minimieren um zu bescheissen sondern nur draufrechnen was auch gut so ist. DANN wenn ich zB wieder 10mrd (+) mache zählt der auch NUR diese 2,14mrd dazu. sodas ich auf 4,28 - 6,42 usw kommt.
ABER
Beim Minjack fall kann man nur einen Fixen wert eintragen, 2,14mrd unverändert...
Beim Maxjack und start Jack das gleiche. OK Start wird wohl auch kaum über 2,14mrd sein aber min und Max wäre natürlich noch toll wenn das gehen würde.
Hoffe war jetzt sehr verständlich erklärt.

UND wenn ich die Daten in der SQL manuel änder stehts in der SQL richtig, im Adminforce auch (sofern ich nix veränder dort, sonst auf 2,14mrd wieder alles) ABER der Jackpott fällt dann bei jedem zug ^^
Also Jackpott ist bei 1,5mrd, min ist 2,3mrd max 3mrd, fällt trotzdem immer.
Aber auch nur wenn die einstellungen über die 2,14mrd sind. unter dem läuft wieder alles normal...

Nur leider bringts ja nix wenn der Jackpott mitlerweile höher als 2,14 gehen kann wenn der bei max 2,14 fällt ^^
 
Zuletzt bearbeitet:
liest sich als würde da irgendwo noch mit int gearbeitet.
Ich würde vermuten da wir eine $_POST oder $_GET Variable mittels (int) in einen Integer umgewandelt wenn das Formular verarbeitet wird.
Beispiel: $foo = (int)$foo;
Ein Integer auf 32 Bit Systemen hat einen Wertebereich von -2147483647 bis +2147483647.
Das würde das bei dir erklären.
Anstatt mit (int) zu prüfen ob das eine Zahl ist kannst du das auch mittels:
preg_match('/[^0-9]/', $str)
erledigen und kannst dann auch gleich die Abfrage ob die Zahl größer 0 ist sparen
 
Hört sich an als wäre das ne Idee. Aber ich hab kein Wort verstanden... leider...

Brauche leider immernoch ganz dringend eine Lösung...
 
Also:
Öffne die Index.php vom Slot die im Adminbereich liegt.
Suche nach: intval
du solltest da 4 Treffer direkt untereinander haben die auf die JP Einstellungen verweisen.
Erklärung warum und wann intval als max Wert 2147483647 hier:
https://php.net/manual/de/function.intval.php

Also ich hab da als alternative:
if (!preg_match('/^[0-9]+$/', $_POST['jackpot_neu'])) { echo "Fehler"; }
drin stehen.
hat zwar den Nachteil das ich bei: Aktueller Jackpot immer min. eine 1 eintragen muss aber ansonsten passt es.
Nicht die beste Lösung aber es geht.
 
$_POST['jackpot_neu'] = intval($_POST['jackpot_neu']);
$_POST['minjack_neu'] = intval($_POST['minjack_neu']);
$_POST['maxjack_neu'] = intval($_POST['maxjack_neu']);
$_POST['setjack_neu'] = intval($_POST['setjack_neu']);

Wie muss ich diese nun abändern damit die funktionieren ? Bin da noch recht frisch drinne... ^^
 
Hab ich doch schon als Beispiel geschrieben:

...
Also ich hab da als alternative:
if (!preg_match('/^[0-9]+$/', $_POST['jackpot_neu'])) { echo "Fehler"; }
drin stehen.
......

Also aus:
$_POST['jackpot_neu'] = intval($_POST['jackpot_neu']);
wird:
if (!preg_match('/^[0-9]+$/', $_POST['jackpot_neu'])) { echo "Fehler"; }
und fertig.
 
Hab ich doch schon als Beispiel geschrieben:



Also aus:
$_POST['jackpot_neu'] = intval($_POST['jackpot_neu']);
wird:
if (!preg_match('/^[0-9]+$/', $_POST['jackpot_neu'])) { echo "Fehler"; }
und fertig.

OK eben Mittag machen dann wird das ausprobiert und ich hoffe es lüppt dann alles ^^
Report kommt gleich...

Nachtrag. IN der SQL auf Bigint unsigned geändert. in der adminforce index vom spiel die 4 da geändert und nun kommt wenn ich im adminforce den jacki einstellen will das hier :

FehlerYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' minjack = 1900000000, maxjack = 2197483647, startjack = 50000000, gewinn = gewi' at line 1

Aber bin dem Geheimniss auf der Spur... evtl hab ichs gleich

Ne leider doch nicht... Ich kann zwar jetzt ohne Probs alles einstellen im Adminforce. ABER dafür fällt der Jackpott nun bei jeden dreh ^^ egal bei welcher einstellung

Hab die alte
$_POST['jackpot_neu'] = intval($_POST['jackpot_neu']);
auf
$_POST['jackpot_neu'] = doubleval($_POST['jackpot_neu']);
geändert. Damit kann ich in der Adminforce alles ändern, aber leider fällt dann bei jedem Dreh der Jackpott. Auch wenn ich in der SQL von int auf double stelle oder bigint egal...
 
Zuletzt bearbeitet:
Also im 1. Feld wo das + vor ist, min. eine 1 eingeben und den Jackpot damit um min. 1 Los erhöhen, dann geht das

Wird getestet... hab ja gesagt das ich da noch nicht so durchsteige und kein Genie bin ^^ haha

ok damit ist der Fehler weg. ABER immernoch das Problem da.

Habe Jackpott auf 20mrd, minjackpott 22mrd und maxjackpott 24mrd. aber fällt auch bei jedem dreh unter 20mrd schon ... also jeder dreh ein jackpott.

Was habe ich gemacht ? Im sql die 4 einträge auf bigint unsigned gestellt.
die 4 einträge in der index vom AF geändert.
+1 beim jackpott die einträge im AF editiert. nur :
Leider Jackpottfall bei jedem dreh
 
Zuletzt bearbeitet: