anpera.net
https://anpera.dyndns.org/phpbb3/

String Addition klappt nicht
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=4705
Seite 1 von 1

Autor:  Shawn [ Sa 25 Okt, 2008 13:36 ]
Betreff des Beitrags:  String Addition klappt nicht

Hallo,
da dies mein erster Post ist, möchte ich erstmal allen Danken die hier immer so schön ihre Lösungen zu den Probs präsentieren, und ohne die so mancher auf der Strecke bleiben würde.. THX.

Nun zu meinen kleinen problem.

Ich habe ein Gegenwarts LoGD und dort ein Taxi das man rufen kann um schnell zu reisen von A nach B. Nun habe ich es so gemacht, das per Zufall nen Quisztaxi erscheint :) (Script von der Dorfschule geändert) .. klappt auch... nur leider nicht das Gold zusammenzählen für die Endstatistik.

Es sind ja fünf Frage runden..wie in der Schule.. bei jeder richtigen Antwort bekommt man mehr. Soweit so Gut.. er zahlt es auch dem Spieler aus. Nun will ich am Ende halt den Gesamt Goldgewinn errechnen, aber der sagt mir immer ne 0 an :( ..

Da ich aus dem Basic bereich komme dachte ich..

oben
PHP:
$gesamtgold=0;


und dann bei der richtigen Frage zB.

PHP:
$gesamtgold = $gesamtgold + 100;


oder

PHP:
$gesamtgold +=100;


funzt aber beides nicht :(

mal nen codeschnippsel

PHP:
if ($HTTP_GET_VARS[ans]==""){
output("`tWelchen Beruf hat Indiana Jones im Film?");
addnav("Anwalt","qtaxi.php?op=test&que=2&ans=1");
addnav("Archäologe","qtaxi.php?op=test&que=2&ans=2");
addnav("Koch","qtaxi.php?op=test&que=2&ans=3");
addnav("Kopfgeldjäger","qtaxi.php?op=test&que=2&ans=4");
addnav("Spion","qtaxi.php?op=test&que=2&ans=5");
}elseif ($HTTP_GET_VARS[ans]=="2"){
$gesamtgold = $gesamtgold + 100;
$session['user']['gold']+=100;
addnav("Weiter...","qtaxi.php?op=test&que=3");
output("Richtig!!!! Du hast 100 Gold Gewonnen. Bereit für die nächste Frage?");
$session[user][specialmisc]=rand(1,6);
}elseif ($HTTP_GET_VARS[ans]!="2"){
addnav("Weiter...","qtaxi.php?op=test&que=end");
output("Leider völlig Falsch deine Antwort. Da bekommst du nichts für. Das Spiel ist leider vorbei und du kannst laufen.");
$session[user][specialmisc]=rand(1,6);
}
break;


und unten dann

PHP:
if ($HTTP_GET_VARS[que]=="end"){

output("`tHerzlichen Glückwunsch ".$session[user][name]." Du hast $gesamtgold Gewonnen !`n");
addnews("`%".$session[user][name]." `3 wurde im Quiztaxi gesehen und Gewann $gesamtgold Gold!!!");
addnav("Zurück","village.php");
}


Als Ausgabe kommt dann:
Spieler XYZ wurde im Quiztaxi gesehen und Gewann 0 Gold!!!

Muss ich den String definieren? oder was mach ich falsch?? Der brauch ja nur in diesem Script gültig sein, sobald man das Quiztaxi verlässt kann der Wert ja ins virtuelle Nirwana gehen..

Autor:  Doctamy [ Sa 25 Okt, 2008 14:22 ]
Betreff des Beitrags:  Re: String Addition klappt nicht

versuch das mal

$this->bbcode_second_pass_code('', '
$gold = 100;

$gesamtgold = $gold;
$session['user']['gold']+=$gold;
addnav("Weiter...","qtaxi.php?op=test&que=3");
output("Richtig!!!! Du hast $gesamtgold Gold Gewonnen. Bereit für die nächste Frage?");
')

Bei der nächsten Frage machst das dann so

$this->bbcode_second_pass_code('', '$gesamtgold = $gold*2;
$session['user']['gold']+=$gold;
addnav("Weiter...","qtaxi.php?op=test&que=3");
output("Richtig!!!! Du hast $gesamtgold Gold Gewonnen. Bereit für die nächste Frage?");')


is ziemlich primitiv müsste aber funktionieren^^

Bin nicht wach und hab auch keine lust


Edit: Hab was beim output verbessert

Autor:  Tidus [ Sa 25 Okt, 2008 14:59 ]
Betreff des Beitrags:  Re: String Addition klappt nicht

erstmal am besten $_GET nehmen nicht $HTTP_GET_VARS und die singlequots (') nicht vergessen..

dann bitte noch den sourcelink rein, das ist eine der bedingungen um hilfe zu bekommen, auch wenn der hier nicht unbedingt nötig ist.. ^^


normalerweise sollte es gehen denn $gesamtgold +=100; stimmt schon ...

$this->bbcode_second_pass_code('', '
if ($_GET['ans']==''){
output("`tWelchen Beruf hat Indiana Jones im Film?");
addnav("Anwalt","qtaxi.php?op=test&que=2&ans=1");
addnav("Archäologe","qtaxi.php?op=test&que=2&ans=2");
addnav("Koch","qtaxi.php?op=test&que=2&ans=3");
addnav("Kopfgeldjäger","qtaxi.php?op=test&que=2&ans=4");
addnav("Spion","qtaxi.php?op=test&que=2&ans=5");
}elseif ($_GET['ans']=='2'){
$gesamtgold +=100;
$session['user']['gold']+=100;
addnav("Weiter...","qtaxi.php?op=test&que=3");
output("Richtig!!!! Du hast 100 Gold Gewonnen. Bereit für die nächste Frage?");
$session['user']['specialmisc']=rand(1,6);
}elseif ($_GET['ans']!='2'){
addnav("Weiter...","qtaxi.php?op=test&que=end");
output("Leider völlig Falsch deine Antwort. Da bekommst du nichts für. Das Spiel ist leider vorbei und du kannst laufen.");
$session['user']['specialmisc']=rand(1,6);
}
break;

if ($_GET['que']=='end'){

output("`tHerzlichen Glückwunsch ".$session['user']['name']." Du hast $gesamtgold Gewonnen !`n");
addnews("`%".$session['user']['name']." `3 wurde im Quiztaxi gesehen und Gewann $gesamtgold Gold!!!");
addnav("Zurück","village.php");
}
')


habe zum testen

$this->bbcode_second_pass_code('', '
$gesamtgold = 0;
output("`n`n $gesamtgold Gesamtgold");
$gesamtgold +=100;
output("$gesamtgold Gesamtgold");
$gesamtgold +=1000;
output("$gesamtgold Gesamtgold`n`n");
')

genommen.

also wenn du es so machst also ganz am anfang $gesamtgold = 0; dann sollte es mit $gesamtgold +=100; oder so funktionieren also solange es feste werde sind wenn nicht einfach 100 durch die variabel ersetzen in welcher das gold mit dem e_rand oder so festgelegt wird ;)

Autor:  Harthas [ Sa 25 Okt, 2008 15:18 ]
Betreff des Beitrags:  Re: String Addition klappt nicht

Hm, tut mir leid, aber so kann das nicht funktionieren.
Denn normale Variablen werden, nachdem ein anderer Navigationspunkt aufgerufen wird, automatisch gelöscht. $gesamtgold hat also bei jedem Klick einen erneuten Wert von 0.

Du müsstest Gesamtgold in die Session speichern. $session['gesamtgold'] anstelle von $gesamtgold könnte bereits reichen.


Mit freundlichen Grüssen,
Harthas

Autor:  Tidus [ Sa 25 Okt, 2008 15:25 ]
Betreff des Beitrags:  Re: String Addition klappt nicht

mhh da könntest du wohl recht haben Harthas XD so genau hab ich garnicht drüber nachgedacht ^^'
ist mir bis jetz auch nie passiert oder aufgefallen, das das so ist mhm.. naja aber wenn Harthas es sagt dann muss es stimmen^^

Autor:  Auric [ Sa 25 Okt, 2008 15:38 ]
Betreff des Beitrags:  Re: String Addition klappt nicht

Alles schön und gut, was ihr hier empfehlt, aber ich gehe mal schwer davon aus, dass das leider nicht helfen wird!

Das Problem ist anscheinend, das der Inhalt der Variablen $gesammtgold nicht zwischen den den einzelnen Seiten, auf denen jeweils eine Frage dargestellt wird, übertragen wird. Das kann auch so auch gar nicht funktionieren, du musst den wert schon irgendwo ablegen, am besten in der Session, damit der User nicht auf die Idee kommt, die Daten zu manipulieren (URL per GET ginge dank des LotgD-Cheatsystems auch....).

Am einfachsten wäre es du verwendest statt $gesammtgold immer $_SESSION['gesammtgold'] oder bindest die Variable $gesammtgold daran, ehe du sie veränderst (per "$gesammtgold = & $_SESSION['gesammtgold'])

Grüße,
Auric

Autor:  Harthas [ Sa 25 Okt, 2008 15:48 ]
Betreff des Beitrags:  Re: String Addition klappt nicht

Zitat:
Du müsstest Gesamtgold in die Session speichern. $session['gesamtgold'] anstelle von $gesamtgold könnte bereits reichen.


Ansonsten könnte man auch das specialmisc-Feld benutzen, denke ich.

Autor:  Shawn [ Sa 25 Okt, 2008 15:54 ]
Betreff des Beitrags:  Re: String Addition klappt nicht

Harthas hat geschrieben:
Hm, tut mir leid, aber so kann das nicht funktionieren.
Denn normale Variablen werden, nachdem ein anderer Navigationspunkt aufgerufen wird, automatisch gelöscht. $gesamtgold hat also bei jedem Klick einen erneuten Wert von 0.

Du müsstest Gesamtgold in die Session speichern. $session['gesamtgold'] anstelle von $gesamtgold könnte bereits reichen.

Mit freundlichen Grüssen,
Harthas


Sowas hab ich mir meist schon gedacht. Das er nach jeden NavSprung die Werte löscht :/

Auric hat geschrieben:
Alles schön und gut, was ihr hier empfehlt, aber ich gehe mal schwer davon aus, dass das leider nicht helfen wird!

Das Problem ist anscheinend, das der Inhalt der Variablen $gesammtgold nicht zwischen den den einzelnen Seiten, auf denen jeweils eine Frage dargestellt wird, übertragen wird. Das kann auch so auch gar nicht funktionieren, du musst den wert schon irgendwo ablegen, am besten in der Session, damit der User nicht auf die Idee kommt, die Daten zu manipulieren (URL per GET ginge dank des LotgD-Cheatsystems auch....).

Am einfachsten wäre es du verwendest statt $gesammtgold immer $_SESSION['gesammtgold'] oder bindest die Variable $gesammtgold daran, ehe du sie veränderst (per "$gesammtgold = & $_SESSION['gesammtgold'])

Grüße,
Auric


Ok, ich werde es mit der $_SESSION probieren und dann posten obs erfolg Hatte oder nicht.

Autor:  Shawn [ Sa 25 Okt, 2008 23:46 ]
Betreff des Beitrags:  Re: String Addition klappt nicht

Ok,nun funktioniert es.

Die $HTTP_GET_VARS in $_GET geändert und $_SESSION['gesammtgold'] verwendet.

Danköööö :)

PS: Wer will kann sich das mal anschauen oder auch bei sich einbauen. Wenn man keine Autos hat im LoGD, kann man ja ne Kutsche und ne Quizkutsche nehmen^^
Idee zu dem Hack war, das Spieler schnell durch die Stadt können ohne viel zu klicken, dachte das würde den Server auch entlasten. Normal brauch man zB. vom Krankenhaus zu einer bestimmten Bar 4 Klicks, nun gehts mit einem. Dazu als kleines Boni Event, das man die Chance hat das Quiztaxi zu erwischen. Chance steht auf 1:12 und kann in der taxi.php angepasst werden.

Autor:  Varius [ So 26 Okt, 2008 17:26 ]
Betreff des Beitrags:  Re: String Addition klappt nicht

Prima Idee werde ich anpassen und nehmen. Für so einen Ort wo man sich sputen muß

Danke dir :)

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/