PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bonuslose, Aktivrally und die Slots



Frejia
19.03.2008, 00:18
Ich habe bei mir das Bonuslose Addon problemlos laufen. Die Aktivrally ist bei mir so eingestellt das es pro 100 Lose einen Punkt geben soll. Das ganze ist durch folgenden code in der functions.lib realisiert:


function aktivralley ($buchungssumme,$fuer) {
global $db_prefix;
// Wenn Aktivralley läuft
$ralleydaten_aktiv = mysql_fetch_array(db_query("SELECT `start`,`ende` FROM ".$db_prefix."_ralleydaten WHERE ralley = 'aktivralley' LIMIT 1"));
if ($ralleydaten_aktiv['start'] <= time() && $ralleydaten_aktiv['ende'] >= time()) {
db_query ('UPDATE '.$db_prefix.'_aktivralley SET punkte = punkte + ('.$buchungssumme.')/100 WHERE uid = '.$fuer);
if (mysql_affected_rows () == 0) db_query ('INSERT INTO '.$db_prefix.'_aktivralley (uid,punkte) VALUES ('.$fuer.', '.$buchungssumme.')');
}
db_query('UPDATE '.$db_prefix.'_kontodaten SET ap=ap+'.$buchungssumme.' WHERE uid = '.$fuer);
}Jetzt ist es aber so das dieser Teiler beim Einsatz von Bonuslosen bei einigen Slots nicht funktioniert und ich habe keine Idee woran das liegen könnte. Das kuriose ist das auch nur ein paar wenige Slots betroffen sind und das die Zählung wieder korrekt funktioniert sobald normale Lose verspielt werden.

Hardy
19.03.2008, 00:25
das liegt dan an der aktivrally function in den entsprechenden *game*.php datei.
bei den slots die nicht richtig zählen steht dann sowas wie

aktivrally($einsatz,$uid);

müsste aber so lauten:

aktivrally($einsatz/100,$uid);

Frejia
19.03.2008, 00:29
Dann werden die Punkte aber nochmal geteilt wenn mit normalen Losen gespielt wird. Da funktioniert es ja kurioserweise jetzt auch perfekt. Den Teiler habe ich ja schon in der functions.lib eingebaut.

Hardy
19.03.2008, 00:33
Dann werden die Punkte aber nochmal geteilt wenn mit normalen Losen gespielt wird. Da funktioniert es ja kurioserweise jetzt auch perfekt. Den Teiler habe ich ja schon in der functions.lib eingebaut.

Aber dann muss das hier auch geteilt werden


if (mysql_affected_rows () == 0) db_query ('INSERT INTO '.$db_prefix.'_aktivralley (uid,punkte) VALUES ('.$fuer.', '.$buchungssumme.')');

und ich denke mal hier auch:


db_query('UPDATE '.$db_prefix.'_kontodaten SET ap=ap+'.$buchungssumme.' WHERE uid = '.$fuer);Verwende doch einfach die function:


function aktivralley ($buchungssumme,$fuer) {
global $db_prefix;
// Wenn Aktivralley läuft
db_query('UPDATE '.$db_prefix.'_kontodaten SET ap=ap+'.$buchungssumme.' WHERE uid = '.$fuer);
$ralleydaten_aktiv = mysql_fetch_array(db_query("SELECT `start`,`ende` FROM ".$db_prefix."_ralleydaten WHERE ralley = 'aktivralley' LIMIT 1"));
if ($ralleydaten_aktiv['start'] <= time() && $ralleydaten_aktiv['ende'] >= time()) {
$buchungssumme = $buchungssumme/100;
db_query ('UPDATE '.$db_prefix.'_aktivralley SET punkte = punkte + ('.$buchungssumme.') WHERE uid = '.$fuer);
if (mysql_affected_rows () == 0) db_query ('INSERT INTO '.$db_prefix.'_aktivralley (uid,punkte) VALUES ('.$fuer.', '.$buchungssumme.')');
}
}

Frejia
19.03.2008, 00:37
Das funktioniert soweit nur das ich eben jetzt ein Problem mit den AP habe die nur bei der Ausgabe durch 100 geteilt werden. D.h. ich müsste jetzt in der DB erstmal alle AP Werte durch 100 teilen und dann die Ausgabe wieder ändern.

Hardy
19.03.2008, 00:43
Verwende doch einfach mal meine function


function aktivralley ($buchungssumme,$fuer) {
global $db_prefix;
// Wenn Aktivralley läuft
db_query('UPDATE '.$db_prefix.'_kontodaten SET ap=ap+'.$buchungssumme.' WHERE uid = '.$fuer);
$ralleydaten_aktiv = mysql_fetch_array(db_query("SELECT `start`,`ende` FROM ".$db_prefix."_ralleydaten WHERE ralley = 'aktivralley' LIMIT 1"));
if ($ralleydaten_aktiv['start'] <= time() && $ralleydaten_aktiv['ende'] >= time()) {
$buchungssumme = $buchungssumme/100;
db_query ('UPDATE '.$db_prefix.'_aktivralley SET punkte = punkte + ('.$buchungssumme.') WHERE uid = '.$fuer);
if (mysql_affected_rows () == 0) db_query ('INSERT INTO '.$db_prefix.'_aktivralley (uid,punkte) VALUES ('.$fuer.', '.$buchungssumme.')');
}
}

Frejia
19.03.2008, 00:50
Hab ich doch eben ausprobiert^^. Wie gesagt, es funktioniert ja auch soweit. Ich muss jetzt nur das mit den AP´s ändern, da bei mir bis jetzt pro Los Einsatz 1 AP in die DB geschrieben wurde und die Teilung erst bei der Ausgabe in der Kontoübersicht bzw. auf der Nickpage vollzogen wurde. Ich werde meine Seite jetzt mal in den Wartungsmodus versetzen und das in Ruhe umbauen. Dank dir für die Hilfe.

Hardy
19.03.2008, 00:55
Hab ich doch eben ausprobiert^^. Wie gesagt, es funktioniert ja auch soweit. Ich muss jetzt nur das mit den AP´s ändern, da bei mir bis jetzt pro Los Einsatz 1 AP in die DB geschrieben wurde und die Teilung erst bei der Ausgabe in der Kontoübersicht bzw. auf der Nickpage vollzogen wurde. Ich werde meine Seite jetzt mal in den Wartungsmodus versetzen und das in Ruhe umbauen. Dank dir für die Hilfe.
Auf der Nickpage?:crazy:

Frejia
19.03.2008, 01:03
Ja, da hab ich folgenden Code stehen:


<b>Gesamt Aktiv Punkte</b> <?=number_format($np['ap']/100,0,"",".").' AP';?><br>

Bin das aber gerade schon alles am ändern.

Hardy
19.03.2008, 01:06
Dann verwende doch einfach die function


function aktivralley ($buchungssumme,$fuer) {
global $db_prefix;
$buchungssumme = $buchungssumme/100;
// Wenn Aktivralley läuft
$ralleydaten_aktiv = mysql_fetch_array(db_query("SELECT `start`,`ende` FROM ".$db_prefix."_ralleydaten WHERE ralley = 'aktivralley' LIMIT 1"));
if ($ralleydaten_aktiv['start'] <= time() && $ralleydaten_aktiv['ende'] >= time()) {

db_query ('UPDATE '.$db_prefix.'_aktivralley SET punkte = punkte + ('.$buchungssumme.') WHERE uid = '.$fuer);
if (mysql_affected_rows () == 0) db_query ('INSERT INTO '.$db_prefix.'_aktivralley (uid,punkte) VALUES ('.$fuer.', '.$buchungssumme.')');
}
db_query('UPDATE '.$db_prefix.'_kontodaten SET ap=ap+'.$buchungssumme.' WHERE uid = '.$fuer);

}

Dann kannst du das /100 aus der nickpage rausnehmen :yes:

Frejia
19.03.2008, 01:18
Hab jetzt den Code von dir eingebaut und getestet. Bis jetzt läuft alles normal.