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

Keine anzeige in der Vitalinfo
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=25&t=2703
Seite 1 von 1

Autor:  Montekar [ Mi 26 Jul, 2006 13:57 ]
Betreff des Beitrags:  Keine anzeige in der Vitalinfo

Hallo, ich habe ein kleines Problem: Ich habe in der Vitalinfo ein paar Felder für Fähigkeiten eingebaut. Das ganze Fähigkeitensystem regle ich wie Sanela, (also mit serialize) man kann darauf über $session['user']['skill']['SKILLNAME'] zugreifen, ohne immerein neues Feld in der DB anzulegen. Weiß jemand zufällig, wie man es so machen kann, das nicht einfach nichts in der Vitalinfo angezeigt wird? Also so soll es nicht sein:

Reiten /5

Ich habe es so versucht:

[php]if (!isset($session['user']['skill']['reiten']) || $session['user']['skill']['reiten']=="") $session['user']['skill']['reiten']=0;[/php]

aber das klappt nicht... kann mir jemand helfen?

Autor:  Eliwood [ Mi 26 Jul, 2006 14:03 ]
Betreff des Beitrags:  Re: Keine anzeige in der Vitalinfo

Montekar hat geschrieben:
Hallo, ich habe ein kleines Problem: Ich habe in der Vitalinfo ein paar Felder für Fähigkeiten eingebaut. Das ganze Fähigkeitensystem regle ich wie Sanela, (also mit serialize) man kann darauf über $session['user']['skill']['SKILLNAME'] zugreifen, ohne immerein neues Feld in der DB anzulegen. Weiß jemand zufällig, wie man es so machen kann, das nicht einfach nichts in der Vitalinfo angezeigt wird? Also so soll es nicht sein:

Reiten /5

Ich habe es so versucht:

[php]if (!isset($session['user']['skill']['reiten']) || $session['user']['skill']['reiten']=="") $session['user']['skill']['reiten']=0;[/php]

aber das klappt nicht... kann mir jemand helfen?


Teste mal das aus:
[php]if(!is_array($session['user']['skill'])) {
die('Fataler Fehler. user[skill] ist kein array!');
}
else {
if(empty($session['user']['skill']['reiten'])) {
$session['user']['skill']['reiten'] = 0;
}
}[/php]

Autor:  Montekar [ Mi 26 Jul, 2006 15:07 ]
Betreff des Beitrags: 

Ich habs probiert, leider klappt es nicht...
Das komische ist: Ich hab bisher 3 Fähigkeiten und bei den anderen beiden tritt der Fehler nicht auf...
Vielleicht sollt ich das ganze mal in die Anmeldung einbauen, also in der create.php einfach schreiben $session['user']['skill']['reiten']=0;
Das müsste doch gehen, oder?

Autor:  Eliwood [ Mi 26 Jul, 2006 16:05 ]
Betreff des Beitrags: 

Montekar hat geschrieben:
Ich habs probiert, leider klappt es nicht...
Das komische ist: Ich hab bisher 3 Fähigkeiten und bei den anderen beiden tritt der Fehler nicht auf...
Vielleicht sollt ich das ganze mal in die Anmeldung einbauen, also in der create.php einfach schreiben $session['user']['skill']['reiten']=0;
Das müsste doch gehen, oder?


Also ist auch _gar_ keine Ausgabe gekommen?
Nicht wie die, die ich erzwingen wollte, wenn $session['user']['skill'] kein array ist?
Entserialisierst du den String auch?
Was steht in der Datenbank gespeichert?

Autor:  Montekar [ Mi 26 Jul, 2006 16:12 ]
Betreff des Beitrags: 

Das einzige, was passiert ist, ist, das bei ausloggen stand:

Fataler Fehler. user[skill] ist kein array!

Da ja dann die Funktion saveuser() greift und das array aufgelöst wird...

Autor:  Eliwood [ Mi 26 Jul, 2006 16:36 ]
Betreff des Beitrags: 

Montekar hat geschrieben:
Das einzige, was passiert ist, ist, das bei ausloggen stand:

Fataler Fehler. user[skill] ist kein array!

Da ja dann die Funktion saveuser() greift und das array aufgelöst wird...


Na also. Dann ist ja alles klar ^^
Du vergisst, das serialisierte array wieder zu entserialisieren.
Schau mal in der common.php
$session[user] = db_fetch_assoc($result);
Danach findest du unter anderem:
$session['user']['dragonpoints'] = unserialize($session['user']['dragonpoints']);
Und *genau* *das* musst du auch mit deinem array machen ;)

Autor:  Montekar [ Mi 26 Jul, 2006 16:42 ]
Betreff des Beitrags: 

^^
Habs nicht gleich gefunden, das kommt davon, wenn die Programmierer dieses Games die Array-Keys nicht 'key' so schreiben :)
Jetzt wird seltsamer weise alles so angezeigt:

Schwimmen /100

Jagen /100

Reiten /5

Autor:  Eliwood [ Mi 26 Jul, 2006 16:43 ]
Betreff des Beitrags: 

Montekar hat geschrieben:
^^
Habs nicht gleich gefunden, das kommt davon, wenn die Programmierer dieses Games die Array-Keys nicht 'key' so schreiben :)
Jetzt wird seltsamer weise alles so angezeigt:

Schwimmen /100

Jagen /100

Reiten /5


Zeig mal wie du es gemacht hast...

Autor:  Montekar [ Mi 26 Jul, 2006 20:03 ]
Betreff des Beitrags: 

Vital-Info
[php].templatereplace("statrow",array("title"=>"Schwimmen","value"=>"".$u['skill']['schwimmen']."`0/100".grafbar(100,$u['skill']['schwimmen'])))
.templatereplace("statrow",array("title"=>"Jagen","value"=>"".$u['skill']['jagen']."`0/100".grafbar(5,$u['skill']['jagen'])))
.templatereplace("statrow",array("title"=>"Reiten","value"=>"".$u['skill']['reitstunden']."`0/5".grafbar(5,$u['skill']['reitstunden'])))
[/php]

entserialisieren
[php]$session['user']['skill'] = unserialize($session['user']['skill']);[/php]


[php]if (is_array($session['user']['skill'])) $session['user']['skill'] = serialize($session['user']['skill']);[/php]

(*sichfragwarumesdenntrotzdemging* :)

Hui mir ist grad aufgefallen, das ich das vorher so hatte:

[php]if (is_array($session['user']['skill'])) $session['user']['sanela'] = serialize($session['user']['skill']);[/php]

Autor:  Eliwood [ Mi 26 Jul, 2006 20:10 ]
Betreff des Beitrags: 

[php]if (is_array($session['user']['skill'])) $session['user']['skill'] = serialize($session['user']['skill']); [/php]
=> Quatsch. Entferne die if-Abfrage da bitte.

gehts dann?

Autor:  Montekar [ Do 27 Jul, 2006 10:51 ]
Betreff des Beitrags: 

Das ist in der saveuser Funktion...
ich dachte das sollt genau so sein wie das darüber:

[php]
if (is_array($session[user][prefs])) $session[user][prefs]=serialize($session[user][prefs]);
[/php]

EDIT: ich glaub ich hab ne gute Idee: Wenn man einfach 0+jagdfähigkeit ausgibt, müsst es ja eigentlich klappen... Ich teste mal eben

Autor:  Montekar [ Do 27 Jul, 2006 11:38 ]
Betreff des Beitrags: 

Jeah hat super geklappt! Hab einfach vor der Anzeige

[php]
$u['skill']['schwimmen']+=0;
$u['skill']['jagen']+=0;
$u['skill']['reitstunden']+=0;
[/php]

eingebaut :D

EDIT: Schade, klappt doch nicht. so wird es immer wieder auf 0 gesetzt... :-(

Autor:  Taikun14 [ Do 27 Jul, 2006 16:36 ]
Betreff des Beitrags: 

[php]
.templatereplace("statrow",array("title"=>"Schwimmen","value"=>"".$u['skill']['schwimmen']."`0/100".grafbar(100,$u['skill']['schwimmen'])))
[/php]

Mach jedesmal das '`' vor der '0' weg, dann wird es zumindest mit 0/100 angezeigt.

Autor:  Eliwood [ Do 27 Jul, 2006 18:09 ]
Betreff des Beitrags: 

Montekar hat geschrieben:
Das ist in der saveuser Funktion...
ich dachte das sollt genau so sein wie das darüber:

[php]
if (is_array($session[user][prefs])) $session[user][prefs]=serialize($session[user][prefs]);
[/php]

EDIT: ich glaub ich hab ne gute Idee: Wenn man einfach 0+jagdfähigkeit ausgibt, müsst es ja eigentlich klappen... Ich teste mal eben


Nein... Schmeiss das if da weg =/
Überleg mal was du gerade machst:
WENN "$session[user][prefs]" ein array,
DANN überschreibe "$session[user][prefs]" mit dem (entserialisierten-) Array AUS "$session[user][prefs]"

Ist ist nicht logisch. Weg mit der if da, bitte =)

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