anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Di 10 Jun, 2025 04:08

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi 03 Dez, 2008 17:28 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
... mir ist klar was die Fehlermeldung bedeutet. foreach erwartet ein array, bekommt aber keines. Seltsam finde ich nur dass es einmal klappt.

ich bastele an einem kampfsystem mit mehreren gengern und teste gerade die übersicht.
gespeichert werden die gegner als mehrdimensionales array in $session['user']['badguy'].
in der datenbank sieht das zb so aus...

$this->bbcode_second_pass_code('', '
a:3:{i:0;a:8:{s:4:"name";s:12:"kleiner Hund";s:6:"skills";s:0:"";s:5:"beute";s:0:"";s:3:"atk";d:7;s:3:"def";d:8;s:2:"hp";d:7;s:2:"mp";i:0;s:3:"exp";d:9;}i:1;a:8:{s:4:"name";s:12:"kleiner Hund";s:6:"skills";s:0:"";s:5:"beute";s:0:"";s:3:"atk";d:7;s:3:"def";d:8;s:2:"hp";d:7;s:2:"mp";i:0;s:3:"exp";d:12;}i:2;a:8:{s:4:"name";s:4:"Hund";s:6:"skills";s:0:"";s:5:"beute";s:0:"";s:3:"atk";d:7;s:3:"def";d:8;s:2:"hp";d:20;s:2:"mp";i:0;s:3:"exp";d:20;}}
')

mit dieser funktion werden sie mir dann angezeigt

PHP:
function monster_overview(){
global $session;
$return=true;
$count=0;
foreach($session['user']['badguy'] AS $monster){
if($monster['hp']>0){
output("`n`n
".$count."-
".$monster['name']."`n
".$monster['hp']."
");
rawoutput("<br /><a href='game.php?op=atk&id=".$count."'>Angreifen</a>");
addnav("","game.php?op=atk&id=".$count);
$count++;
}
}
if($count<1) $return=false;
return $return;
}


das ganze hab ich mal zum test so laufen:

PHP:
switch($_GET['op']){
default:
if(!load_monster($_GET['m_id'],$_GET['m_group'])){
output("Was auch immer du hier suchst, etwas zu bekämpfen findest du hier sicher nicht.");
addnav("Zurück","game.php?forest=back");
}else{
monster_overview();
addnav("(Zurück)","game.php?forest=back");
}
break;
case"atk":
monster_overview();
addnav("(Zurück)","game.php?forest=back");
break;
}


beim ersten mal funktioniert monster_overview(); genau so wie ich es will. wenn ich jedoch auf angreifen gehe, also op=atk, dann funktioniert monster_overview(); nicht mehr und gibt besagten fehler aus.

kann irgendwie nur an der bearbeitung von $session liegen oder ich hab irgendwo nen denkfehler.

wäre toll wenn mir wer helfen kann :)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi 03 Dez, 2008 18:02 
Offline
Profi
Profi

Registriert: Mo 25 Dez, 2006 21:45
Beiträge: 109
Interessant...

Ist es möglich, dass $session['user']['badguy'] bei dir auch mal kein Feld ist?
"print_r" oder "var_dump" gefolgt von einem "exit" vor dem "foreach" sollten dies ausschließen können ...

Gruß

_________________
26. April 2007 - 8. Juni 2007 auf http://www.dragonfantasies.de
28. Juli 2007 - 31. Dezember 2008 auf http://www.atrahor.de

LoGD ist das programmierte Grauen!


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi 03 Dez, 2008 18:09 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Badguy könnte tatsächlich leer sein - ansonsten kannst du es dir wie gesagt zu debugzwecken ausgeben lassen, oder besser gleich in der Funktion per is_array behandeln lassen.

grüße,
Auric

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi 03 Dez, 2008 18:31 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
hmm. ich glaub ich weiß woran es liegt, weiß aber noch keine lösung.

direkt vor monster_overview(); speicher ich mit load_monster(); die gegner als array in $session['user']['badguy']

bis zum nächsten aufruf wird das array wohl in ein DB taugliches format konvertiert und dann wieder so ausgegeben.
hab versucht $session['user']['badguy'] mit createarray() wieder zu nem array zu machen aber irgendwie klapt das nicht.

edit....

unserialize(); ist mein freund. dachte ich zwar schon erfolglos verwendet zu haben aber nun gehts. danke für den is_array tipp :)


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

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