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

Logik-Fehler?
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=25&t=1301
Seite 1 von 1

Autor:  Abraxas [ Mi 20 Apr, 2005 19:28 ]
Betreff des Beitrags:  Logik-Fehler?

Sry dass ich deswegen nen Thread aufmach aber ich komm einfach nicht drauf... :pein:

Hier ein Auszug aus nem "Nachts in Laden Einbrech" source.
Man soll die Lampe nach belieben aus und anmachen können.
Zubegin des Codes wird $dunkel auf 1 gesetzt.

Dann kommt dass hier:

[php]
else if ($HTTP_GET_VARS[op]=="einbrechen"){
output("`5Er scheint gerade niemand in der Nähe... Mit einem gezielten Hieb deiner Waffe zertrümmerst du das Schloss und huschst in den Laden...`n`n");
output("`5Dunkelheit umgibt dich, es herrscht Stille... ");
addnav("Darions Truhe","armornacht.php?op=truhe");
addnav("Die Rüstungen","armornacht.php?op=ruestungen");
addnav("Lampe entzünden","armornacht.php?op=lampe");
addnav("Die Werkstatt","armornacht.php?op=werkstatt");
addnav("Verschwinden","village.php");
}

else if ($HTTP_GET_VARS[op]=="lampe"){
if ($dunkel==1) {
$dunkel=2;
output("`5 Sorgfältig entzündest du eine Lampe...`nJetzt läufst du nicht mehr Gefahr zu stolpern. ");}

else if ($dunkel==2) {
$dunkel=1;
output("`5 Das verräterische Licht könnte dich den Kopf kosten, erblickt es ein Wächter, und so löschst du die Lampe wieder... ");}

output("Das Licht $dunkel"); // <- Nur ne kleine Hilfe

addnav("Darions Truhe","armornacht.php?op=truhe");
addnav("Die Rüstungen","armornacht.php?op=ruestungen");
if ($dunkel==1) addnav("Lampe entzünden","armornacht.php?op=lampe");
if ($dunkel==2) addnav("Lampe löschen","armornacht.php?op=lampe");
addnav("Die Werkstatt","armornacht.php?op=werkstatt");
addnav("Verschwinden","village.php");
}
[/php]

Hier das Problem:
-Geht man auf Einbrechen kommt man zu besagtem Teil.
- Das Licht ist, wie gewollt aus (Erkennt man da der Button Lampe entzünden erscheint)
- Ich klicke auf Lampe entzünden, er läd den Teil nochmal, das Licht ist wie gewolt an da Lampe löschen erscheint.
- Wenn man jetzt wieder auf Lampe löschen klickt tut sich nichts, das Licht bleibt unweigerlich an.

Hab einfach keinen Überblick mehr, hoffentlich siehts einer von euch... :(

Mfg
Abraxas

Autor:  Chaosmaker [ Mi 20 Apr, 2005 21:59 ]
Betreff des Beitrags: 

Du solltest den Lampenstatus auch speichern. ;)
Wie Du schreibst, wird ja $dunkel zu Beginn auf 1 gesetzt - unabhängig davon, ob es vorher schon angeschaltet wurde oder nicht.
Wenn es zu Beginn des Scripts immer aus ist, kann man es aber auch nur anschalten.

Autor:  Abraxas [ Do 21 Apr, 2005 07:29 ]
Betreff des Beitrags: 

Uff... Thx^^

Also arbeitet es das ganze file nochmla von oben bis unten durch,
obwohl nur

else if ($HTTP_GET_VARS[op]=="lampe"){}

im Link verlankt ist?

Wie kann ich das speichern?
(Ich mein, ohne Datenbank...)

Autor:  Chaosmaker [ Do 21 Apr, 2005 08:04 ]
Betreff des Beitrags: 

Bei jedem neuen Aufruf wird natürlich das komplette Script wieder neu abgearbeitet. ;)
Speichern mußt Du es in der Datenbank. Ich würde in den Settings für jeden Laden den Lampe-Wert speichern.

Übrigens solltest Du $_GET statt $HTTP_GET_VARS verwenden, da letzteres zukünftig nicht mehr gehen wird (bei PHP5 kann man es zwar wieder aktivieren, wenns sein muß - aber in späteren Versionen wird es ganz rausfallen).

Autor:  Abraxas [ Do 21 Apr, 2005 08:23 ]
Betreff des Beitrags: 

Gut zu wissen... :)
Thx!

Autor:  Eliwood [ Do 21 Apr, 2005 11:05 ]
Betreff des Beitrags: 

Versuchs mal so:
[php]

else if ($HTTP_GET_VARS[op]=="lampe")
{
if ($session['lampe']=="")
{
$session['lampe']=1;
output("`5 Sorgfältig entzündest du eine Lampe...`nJetzt läufst du nicht mehr Gefahr zu stolpern. ");
}

else
{
$session['lampe']=0;
output("`5 Das verräterische Licht könnte dich den Kopf kosten, erblickt es ein Wächter, und so löschst du die Lampe wieder... ");
}
[/php]
Sollte eigentlich gehen
Bei meinem Engelsscrpt gehts auch so
Oder du setzt den Status immer in den Link rein, ist dann aber umständlicher[/php]

Autor:  Chaosmaker [ Do 21 Apr, 2005 11:21 ]
Betreff des Beitrags: 

Wenn man dann aber aus- und wieder neu einloggt, hat man direkt wieder das Problem, daß der Wert weg ist. ;)
Wär ansonsten aber natürlich auch ne Möglichkeit, wenn der Licht-Status für jeden Spieler unterschiedlich sein soll.

Autor:  Abraxas [ Do 21 Apr, 2005 11:25 ]
Betreff des Beitrags: 

Funzt perfekt.
^^ Danke!

Jap, solls auch.
Is n Einbruch-file, sollte jemand des Nachts den Laden besuchen wollen.

Autor:  Eliwood [ Do 21 Apr, 2005 16:58 ]
Betreff des Beitrags: 

Uiuiuiui, da kann man aber unter umstäden bei meinem Engelsscript mogel :D
Sofern man Lust hat, mehreremale den gleichen, harten Kampf machen ^^
Aber spart doch Platz, benötigt kein weiteres Feld in der Tabelle

Autor:  Chaosmaker [ Do 21 Apr, 2005 17:53 ]
Betreff des Beitrags: 

Naja, mir hat die Idee mit den settings gefallen - denn dann hätte man wieder etwas, um zu interagieren (Spieler a macht das Licht aus, Spieler b macht es sofort wieder an :D).

Autor:  Abraxas [ Do 21 Apr, 2005 17:55 ]
Betreff des Beitrags: 

:pein: Spielkind...^^

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