anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mo 09 Jun, 2025 21:35

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Schalter - Switch - Code
BeitragVerfasst: Di 23 Mai, 2006 17:06 
Offline
User
User

Registriert: Sa 06 Mai, 2006 21:59
Beiträge: 13
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 23 Mai, 2006 17:53 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Für was soll den der Schalter genau sein? Dies könnte evtl. uns etwas weiter bringen...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schalter - Switch - Code
BeitragVerfasst: Di 23 Mai, 2006 18:11 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
[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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 23 Mai, 2006 20:14 
Offline
User
User

Registriert: Sa 06 Mai, 2006 21:59
Beiträge: 13
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.


Zuletzt geändert von Steny am Di 23 Mai, 2006 20:26, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 23 Mai, 2006 20:20 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
[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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 23 Mai, 2006 20:23 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
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 :wink:

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 23 Mai, 2006 20:33 
Offline
User
User

Registriert: Sa 06 Mai, 2006 21:59
Beiträge: 13
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 23 Mai, 2006 21:10 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
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
:wink:

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 20 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum