| 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: | |
Spielkind...^^
|
|
| Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|