anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 17 Jul, 2025 20:13

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Ehepartner erwecken
BeitragVerfasst: Mi 27 Sep, 2006 16:12 
Offline
Held
Held
Benutzeravatar

Registriert: Di 23 Aug, 2005 23:46
Beiträge: 268
Wohnort: Köln
LoGD: http://www.dragnir.de
Hallo zusammen,

aus Balancegründen (auf die ich jetzt nicht näher eingehen will) wollte ich bei meinem Server den Spielern, welche durch ihren Ehepartner erweckt werden sämtliche Grabkämpfe entziehen. Hierzu habe ich den Accounts das Feld "wurdeerweckt" hinzugefügt, welches standardmässig auf 0 gesetzt ist, und bei der erweckung durch den Ehepartner auf 1 gesetzt wird.
Dann nur noch einen kleinen Codeschnipsel in der newday.php

[php]//by Lestat
$sql = "SELECT wurdeerweckt FROM accounts WHERE acctid=".$session[user][acctid]."";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);

if($row[wurdeerweckt]){
$sql = "UPDATE accounts SET wurdeerweckt=0 WHERE acctid=".$session[user][acctid]."";
db_query($sql) or die(db_error(LINK));
$session['user']['gravefights']=0;
$session['user']['spirits'] = -6;
}[/php]

Vielleicht nicht der einfachste Weg, aber es hat funktioniert.. auf dem Testserver..
Im laufenden Betrieb auf dem Server stellt sich nun aber heraus, dass es recht häufig vorkommt, dass die User immer noch ihre Grabkämpfe haben, obwohl sie die ja nicht haben sollten. Also manchmal wird der Codeblock ausgeführt, manchmal aber auch nicht.. Woran könnte das liegen?

_________________
Warum UNIX/Linux böse ist:

- 'kill' macht Menschen zu brutalen, blutrünstigen Bestien
- 'killall' züchtet regelrecht Massenmörder
- 'whoami' löst bei psychisch labilen Personen Existenzkrisen aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 16:47 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Wiederbelebung findet aber trotzdem statt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 16:52 
Offline
Held
Held
Benutzeravatar

Registriert: Di 23 Aug, 2005 23:46
Beiträge: 268
Wohnort: Köln
LoGD: http://www.dragnir.de
Ja, an der habe ich ja praktisch fast nichts verändert.. (die aus der shrine.php) ich setze lediglich zusätzlich "wurdeerweckt" auf 1.. Tests habe jetzt ergebe, dass das Flag auch tatsächlich gesetzt wird, aber warum dann nichts passiert, bzw. bis zur ausführung dieses Codeschnippsels das Flag wieder auf 0 steht kann ich echt nicht nachvollziehen :(

_________________
Warum UNIX/Linux böse ist:

- 'kill' macht Menschen zu brutalen, blutrünstigen Bestien
- 'killall' züchtet regelrecht Massenmörder
- 'whoami' löst bei psychisch labilen Personen Existenzkrisen aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 16:56 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Gut - Also immerhin kein Transferbug =P

"wurdeerweckt" musst du noch im session-Array auf 0 setzen. Sonst würde es überschrieben werden.
Bleiben denn die Grabkämpfe trotzdem? Oder ist es nur das Feld?
Wo hast du es eingebaut?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 17:00 
Offline
Held
Held
Benutzeravatar

Registriert: Di 23 Aug, 2005 23:46
Beiträge: 268
Wohnort: Köln
LoGD: http://www.dragnir.de
Eliwood hat geschrieben:
Gut - Also immerhin kein Transferbug =P

"wurdeerweckt" musst du noch im session-Array auf 0 setzen. Sonst würde es überschrieben werden.

Äh? Das wird wohl das Problem sein.. wo genau ist das zu machen?

Eliwood hat geschrieben:
Bleiben denn die Grabkämpfe trotzdem? Oder ist es nur das Feld?
Wo hast du es eingebaut?

Die Grabkämpfe bleiben.. und ich habe es erst eingebaut nachdem die Grabkämpfe wieder auf Standard gesetzt werden ;)

_________________
Warum UNIX/Linux böse ist:

- 'kill' macht Menschen zu brutalen, blutrünstigen Bestien
- 'killall' züchtet regelrecht Massenmörder
- 'whoami' löst bei psychisch labilen Personen Existenzkrisen aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 17:04 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Da:

[php]if($row[wurdeerweckt]){
$sql = "UPDATE accounts SET wurdeerweckt=0 WHERE acctid=".$session[user][acctid]."";
db_query($sql) or die(db_error(LINK));
$session['user']['gravefights']=0;
$session['user']['spirits'] = -6;
} [/php]

wurdeerweckt steckt ebenso im Array $session['user']. Und wenn das 1 ist, dann bleibt das 1, da die Funktion saveuser() das ganze wieder überschreibt.


Anderseits könnte es sein, dass das ganze in einem Kontext steht, der selbst nicht immer aufgerufen wird...

// Scheint nicht der Fall zu sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 17:10 
Offline
Held
Held
Benutzeravatar

Registriert: Di 23 Aug, 2005 23:46
Beiträge: 268
Wohnort: Köln
LoGD: http://www.dragnir.de
Achso hast du das gemeint *g*

ich hatte es zunächst auch so

[php]
if($session[user][wurdeerweckt]==1){
$session[user][wurdeerweckt]=0;
$session[user][gravefights]=0;
$session[user][spirits] = -6;
}[/php]

aber dann hat es nie funktioniert, was mich ehrlich gesagt schon ziemlich verwundert hatte.

_________________
Warum UNIX/Linux böse ist:

- 'kill' macht Menschen zu brutalen, blutrünstigen Bestien
- 'killall' züchtet regelrecht Massenmörder
- 'whoami' löst bei psychisch labilen Personen Existenzkrisen aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 17:30 
Offline
Held
Held
Benutzeravatar

Registriert: Di 23 Aug, 2005 23:46
Beiträge: 268
Wohnort: Köln
LoGD: http://www.dragnir.de
Nachtrag:
Habe nun folgendes in der newday.php stehen:

[php]
output("`n`n`\$DEBUG: vorher Grabkämpfe: ".$session[user][gravefights]."`nErwecktflag: ".$session[user][wurdeerweckt]."`n`n");
if($session[user][wurdeerweckt]==1){
$session[user][wurdeerweckt]=0;
$session[user][gravefights]=0;
$session[user][spirits] = -6;
}
output("`n`n`\$DEBUG: nachher Grabkämpfe: ".$session[user][gravefights]."`nErwecktflag: ".$session[user][wurdeerweckt]."`n`n");[/php]

Das führt zu folgender Ausgabe:

"DEBUG: vorher Grabkämpfe: 10
Erwecktflag: 0"

wobei der Rest ja nicht interessiert, da das Flag ja auf 0 steht. aber warum?

:(

Edit: Werden nicht sämtliche Felder aus der Accounts-Tabelle beim Login in die $session[user] geladen? Also ich bin echt ratlos

Edit²:
Man man.. ich stand echt aufm Schlauch.. wenn der zu erweckende ausgeloggt ist während der erweckung funktioniert es. Klar.. solange er noch eingeloggt ist, wird vor der newday.php ja auf jeden Fall noch einmal die page_footer() aufgerufen, welche das Flag wieder auf Null setzt, und somit die ganze Aktion zunichte macht. Nun ist die Frage: Kann ich das verhindern, und wenn ja, wie? *Eli anschiel* :D

_________________
Warum UNIX/Linux böse ist:

- 'kill' macht Menschen zu brutalen, blutrünstigen Bestien
- 'killall' züchtet regelrecht Massenmörder
- 'whoami' löst bei psychisch labilen Personen Existenzkrisen aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 18:00 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Kurz vor page_footer (Oder in page_footer):

[php]unset($session['user']['wurdeerweckt']);[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 18:10 
Offline
Held
Held
Benutzeravatar

Registriert: Di 23 Aug, 2005 23:46
Beiträge: 268
Wohnort: Köln
LoGD: http://www.dragnir.de
Eliwood hat geschrieben:
Kurz vor page_footer (Oder in page_footer):

[php]unset($session['user']['wurdeerweckt']);[/php]


Habe ich erst auch gedacht, dass man das rausnehmen muss, danke :)
Aber andererseits will ich bei der Newday ja, dass ers beim footer zurückschreibt.. von daher schiess ich mir da wieder ins Bein, oder?
Könnte es aber sein, dass deine Antitransferbugmethode http://anpera.homeip.net/forum/viewtopic.php?t=2590 hier weiterhilft?

_________________
Warum UNIX/Linux böse ist:

- 'kill' macht Menschen zu brutalen, blutrünstigen Bestien
- 'killall' züchtet regelrecht Massenmörder
- 'whoami' löst bei psychisch labilen Personen Existenzkrisen aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 18:17 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Lestat hat geschrieben:
Eliwood hat geschrieben:
Kurz vor page_footer (Oder in page_footer):

[php]unset($session['user']['wurdeerweckt']);[/php]


Habe ich erst auch gedacht, dass man das rausnehmen muss, danke :)
Aber andererseits will ich bei der Newday ja, dass ers beim footer zurückschreibt.. von daher schiess ich mir da wieder ins Bein, oder?
Könnte es aber sein, dass deine Antitransferbugmethode http://anpera.homeip.net/forum/viewtopic.php?t=2590 hier weiterhilft?


Jein. Obige Möglichkeit mit unset geht. DU schreibst es ja von Hand in die Datenbank. Also wird das von dort übernommen.

Meine "Transferbugverrinerugnsmethode" lässt nur in die Datenbank schreiben, wenn etwas wirklich verändert wurde. Ob das hier der Fall ist vermag ich nicht nachvollziehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 18:19 
Offline
Held
Held
Benutzeravatar

Registriert: Di 23 Aug, 2005 23:46
Beiträge: 268
Wohnort: Köln
LoGD: http://www.dragnir.de
Ich versuche mal beides aus. Vielen Dank für die Hilfe! :)

_________________
Warum UNIX/Linux böse ist:

- 'kill' macht Menschen zu brutalen, blutrünstigen Bestien
- 'killall' züchtet regelrecht Massenmörder
- 'whoami' löst bei psychisch labilen Personen Existenzkrisen aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 18:23 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
das unset sollte aber auch mit anderen db feldern wie zufällig hmmm fähigkeiten in der newday.php funktionieren oder? *g*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 18:27 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Tidus hat geschrieben:
das unset sollte aber auch mit anderen db feldern wie zufällig hmmm fähigkeiten in der newday.php funktionieren oder? *g*


Mit unset löschst du einfach Variablen. Nicht mehr - nicht weniger ;)
Und wos nichts gibt, lässt sich nichts speichern... *g*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 27 Sep, 2006 19:21 
Offline
Held
Held
Benutzeravatar

Registriert: Di 23 Aug, 2005 23:46
Beiträge: 268
Wohnort: Köln
LoGD: http://www.dragnir.de
Nochmal Tausend Dank Eli.. das unset an den richtigen Stellen und schon funktioniert es wie es soll.. auch ohne direkt auf die Datenbank zuzugreifen.
:D :wink:

_________________
Warum UNIX/Linux böse ist:

- 'kill' macht Menschen zu brutalen, blutrünstigen Bestien
- 'killall' züchtet regelrecht Massenmörder
- 'whoami' löst bei psychisch labilen Personen Existenzkrisen aus!


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 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:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum