Dane na początku funkcji
playerResponses
zwraca poprawne wyniki
JEDNAK kilka linijek dalej "$player->playerLevel" zwraca null. Nie widzę tutaj żadnego błędu, może jakaś literówka i ja jej nie dostrzegam?
Tutaj jeszcze raz zmieniona funkcja playerResponses:
Kod
public function playerResponses ($player){
$c = count($this->dialog);
//var_dump($player);
var_dump("-->", $player->playerLevel, "<--");//zwraca 11
echo "\r\n\r\n";
$responses = array();
for ($i=0;$i<$c;$i++){
if (array_key_exists($i, $this->dialog)){
$act = empty($this->dialog[$i]['action']) ? false : $this->dialog[$i]['action'];
//spr warunki danej opcji dialogu
$can = true; //może przerwac break; lub jak pętla to ust. to na false
if (!empty($this->dialog[$i]['request'])){
$req = $this->dialog[$i]['request'];
if (!empty($req['player'])){
//odnosnie gracza
if (!empty($req['player']['levelMin'])){
var_dump("->", $player->playerlevel, "<-");//zwraca NULL
if (($req['player']['levelMin']) > $player->playerlevel){
echo "levelmin";
var_dump($req['player']['levelMin']);
var_dump($player->playerlevel);
var_dump($player);
continue;
}
}
if(!empty($req['player']['levelMax'])){
if ($req['player']['levelMax'] <= $player->playerLevel){
echo "levelmax";
continue;
}
}
if(!empty($req['player']['class'])){
if ($req['player']['class'] != $player->playerClass){
echo "class";
continue;
}
}
/*
if ($req['player'][''] != {x}){
}
*/
}
if (!empty($req['eq'])){
//itemki TYLKO W EQ
if (array_key_exists('one', $req['eq'])){
//jedna z danych rzeczy
$c = count($req['eq']['one']);
$can = false;
for ($i=0;$i<$c;$i++){
if ($player->haveItem($req['eq']['one'][$i])){
$can = true;
}
}
}
if (array_key_exists('all', $req['eq'])){
//wszystkie z danych rzeczy
$c = count($req['eq']['all']);
$can = true;
for ($i=0;$i<$c;$i++){
if (!($player->haveItem($req['eq']['one'][$i]))){
$can = false;
}
}
}
if (($req['eq'] !== 0) && ($req['eq'] !== 1)){
//tylko jeden item
$can = $player->haveItem($req['eq']);
}
}//to wszystko copy kilka linijek wczesniej
}
if ($can){
$responses[] = array("name"=>$this->dialog[$i]['name'], "action"=>$act);
}
}
}//end for -> all dialog
return $responses;
}
Znalazłem błąd, ALE dopiero po wklejeniu na forum.
Eclipse for PHP Developers, win 7
Nic nie zmieniane w ustawieniach
L wygląda identycznie jak l
Czyli problemem była literówka
W każdym razie dziękuję za pomoc