anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Schalter - Switch - Code https://anpera.dyndns.org/phpbb3/viewtopic.php?f=25&t=2582 |
Seite 1 von 1 |
Autor: | Steny [ Di 23 Mai, 2006 17:06 ] |
Betreff des Beitrags: | Schalter - Switch - Code |
Also, wie mache ich einen Schalter bzw. Switch oder wie auch immer man das nennt... Also hier ein Beispiel: Man kauft eine Flasche Milch = Schalter "Milch"=ON Man geht zu einem NPC = IF Schalter "Milch"=ON {"Du hast eine Flasche Milch"} Wär nett wenn mir das mal jemand kurz erklären könnte. Ich weis, dass es irgendwas mit [session] zu tun hat... aber ich blick da nicht durch... Steny |
Autor: | Kevz [ Di 23 Mai, 2006 17:53 ] |
Betreff des Beitrags: | |
Für was soll den der Schalter genau sein? Dies könnte evtl. uns etwas weiter bringen... |
Autor: | Eliwood [ Di 23 Mai, 2006 18:11 ] |
Betreff des Beitrags: | Re: Schalter - Switch - Code |
[php]$milch = false; if($milch === true) { print "Du hast Milch"; $milch = false; // "NSC" "nimmt" Milch } else { print "Du hast keine Milch, bekommst aber mal welche!"; $milch = true; } if($milch === true) { print "Nun hast du Milch =D"; }[/php] So gemeint? |
Autor: | Steny [ Di 23 Mai, 2006 20:14 ] |
Betreff des Beitrags: | |
Hm ne funktioniert nicht so richtig... schau dir das bitte mal kurz an: [php]<?php require_once "common.php"; $mode = 'op'; // Nur für die Übergabe nötig, sonst frei änderbar; $file = basename("testing.php"); // Name der Datei; $ch_day = TRUE; // TRUE = 1; FALSE = 0; $header = 'Die Testarea'; // Kopftitel /* * Jetzt Starten wir das ganze Script und * überprüfen direkt unsere Einstellungen mit. */ if ($ch_day) checkday(); if (empty($_GET[$mode])) $_GET[$mode] = ''; page_header($header); switch ($_GET[$mode]) { case 'Milch nehmen': output('Du bekommst Milch'); $milch = true addnav('Zurück zur Auswahl', $file); break; case 'Milch weggeben': output('Milch weggegeben.'); $milch = false addnav('Zurück zur Auswahl', $file); break; default: if($milch === true) { output("Du hast Milch"); } else { output("Du hast keine Milch, bekommst aber mal welche!"); } addnav("Milch nehmen","$file?$mode=Milch nehmen"); addnav("Milch weggeben","$file?$mode=Milch weggeben"); } addnav("Optionen"); addnav("Zurück zur Grotte","superuser.php"); page_footer(); ?>[/php] Tja, das ist mein Event... ich hab sicher was falsch gemacht, denn es kommt immer sowas in der Art: Parse error: parse error, unexpected T_STRING in /var/www/vhosts/granatenforum.com/httpdocs/LOTGD/testing.php on line 22 Und wenn ich den Code direkt eingebe: [php]<?php require_once "common.php"; $mode = 'op'; // Nur für die Übergabe nötig, sonst frei änderbar; $file = basename("testing.php"); // Name der Datei; $ch_day = TRUE; // TRUE = 1; FALSE = 0; $header = 'Die Testarea'; // Kopftitel /* * Jetzt Starten wir das ganze Script und * überprüfen direkt unsere Einstellungen mit. */ if ($ch_day) checkday(); if (empty($_GET[$mode])) $_GET[$mode] = ''; page_header($header); $milch = false; if($milch === true) { output("Du hast Milch"); $milch = false; // "NSC" "nimmt" Milch } else { output("Du hast keine Milch, bekommst aber mal welche!"); $milch = true; } if($milch === true) { output("Nun hast du Milch =D"); } addnav("Optionen"); addnav("Zurück zur Grotte","superuser.php"); page_footer(); ?>[/php] Kommt einfach: Du hast keine Milch, bekommst aber mal welche! Nun hast du Milch =D Hm... was mach ich falsch? Steny, am verzweifeln. |
Autor: | Eliwood [ Di 23 Mai, 2006 20:20 ] |
Betreff des Beitrags: | |
[php]<?php require_once "common.php"; $mode = 'op'; // Nur für die Übergabe nötig, sonst frei änderbar; $file = basename("testing.php"); // Name der Datei; $ch_day = TRUE; // TRUE = 1; FALSE = 0; $header = 'Die Testarea'; // Kopftitel /* * Jetzt Starten wir das ganze Script und * überprüfen direkt unsere Einstellungen mit. */ if ($ch_day) checkday(); if (empty($_GET[$mode])) $_GET[$mode] = ''; page_header($header); switch ($_GET[$mode]) { case 'Milch nehmen': case 'Milch%20nehmen': output('Du bekommst Milch'); $milch = true; // Fehlte Semikolon addnav('Zurück zur Auswahl', $file); break; case 'Milch weggeben': case 'Milch&20nehmen': output('Milch weggegeben.'); $milch = false; // Fehlte Semikolon addnav('Zurück zur Auswahl', $file); break; default: if($milch === true) { output("Du hast Milch"); } else { output("Du hast keine Milch, bekommst aber mal welche!"); } addnav("Milch nehmen","$file?$mode=Milch nehmen"); addnav("Milch weggeben","$file?$mode=Milch weggeben"); } addnav("Optionen"); addnav("Zurück zur Grotte","superuser.php"); page_footer(); ?>[/php] So. Nun aber seh ich dass du das nun völlig anders meinst wie ich gedacht hab... Du müsstest anstatt $milch schreiben: $session['milch'] um die Milch für die Zeit der "Sitzung" zu speichern. |
Autor: | Auric [ Di 23 Mai, 2006 20:23 ] |
Betreff des Beitrags: | |
natürlich kann das nicht gehen, da $milch von einem Seitenaufruf zum anderen nicht übergeben wird. Wenn du willst, das es länger gespeichert wird, solltest du ein neues Feld in der `accounts` Tabelle der Datenbank anlegen. Dann kannst du beispielsweise per $session['user']['milch'] darauf zugreifen. LotgD handelt die Übergabe und Datenbankverwaltung schon für dich, du musst also nur die entsprechenden Daten ins $session['user'] - Array packen. Das entsprechende Feld (in diesem Falle ['milch']) muss allerdings bereits in de Datenbank existieren, sonst geht's nicht. Viel Erfolg! Auric ![]() |
Autor: | Steny [ Di 23 Mai, 2006 20:33 ] |
Betreff des Beitrags: | |
Also muss ich jeden "Schalter" in die Datenbank eintragen? Das kann nicht sein... ich nutzt die Schalter als ON-OFF Elemente und nicht als Werte (2 Einheiten, 6 Einheiten, usw.) Ich probier jetzt mal das mit dem session (hab mir schon sowas in die Richtung gedacht) Danke schonmal für die schnelle Hilfe =) EDIT: Ahh, jetzt klappts. Also mit [session] davor klappts genauso wie ich es wollte. Vielen danke, dannach hab ich jetzt schon sehr lang gesucht (Kommt mir so dumm vor wenn man weis wie es geht ^^) Aber noch ne Frage: Überdauert dieses Element auch einen neuen Tag? Oder einen DK? Also wenn ich Milch hab, hab ich die dann auch noch am nächsten Tag (oder sogar nach nem DK?) Steny |
Autor: | Auric [ Di 23 Mai, 2006 21:10 ] |
Betreff des Beitrags: | |
Den Tag: Ja Den DK: Nein Jeweils im Normalzustand - wenn du es anders haben willst sehe einfach ind er dragon.php oder newday.php nach. Dort werden die Werte entsprechen zurückgesetzt oder davor bewahrt. In der Newady z.B: $session['user']['seenbar']=0; In der dragon.php z.B: ( ZWEI MAL!!!) ,"name"=>1 Auric ![]() |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |