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... ![]() 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 ![]() 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 ![]() |
Autor: | Abraxas [ Do 21 Apr, 2005 17:55 ] |
Betreff des Beitrags: | |
![]() |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |