Przerobiłem trochę plik, który odpowiada za wyświetlanie naszej postaci, i poruszanie się nią, ale nie potrafię wykonać skryptu, który wyświetlałby wszystkich graczy, którzy są w bazie danych. Mój przerobiony skrypt wygląda tak:
<?php /** * Plik generujacy mape na podstawie wczesniej przygotowanej tablicy. */ // Zalaczanie pliku z polaczeniam do bazy include('conn.php'); // Zalaczane tablicy include('genmapfile.php'); /** * Pobiera wspolrzedne gracza o ID podanym jako parametr * * @author: Meares (http://mearesligitharr.blogspot.com/) * @name: GetYXForPlayer * @param: integer $ID * @return: array */ function GetYXForPlayer($ID) { $Query = mysql_query('SELECT `y`, `x` FROM `user` WHERE `id`='.$ID.' LIMIT 1') or die(mysql_error()); return $Fetched; } // Zdobycie wspolrzednych gracza $YX = GetYXForPlayer(1); // Zmiana miejsca gracza if(($YX['y'] + 1 == $_GET['y'] || $YX['y'] - 1 == $_GET['y'] || $YX['y'] == $_GET['y']) && ($YX['x'] + 1 == $_GET['x'] || $YX['x'] - 1 == $_GET['x'] || $YX['x'] == $_GET['x']) && $Map[$_GET['y']][$_GET['x']]['CanBeOn'] === true) { } else { exit; } } // Zdobycie aktualnych wspolrzednych gracza $YX = GetYXForPlayer(1); // Generowanie // $Key zawiera wspolrzedna Y foreach($Map as $Key => $Value) { // $Key2 zawiera wspolrzedna X, a $Value2 to tablica zawierajaca informacje o podlozu oraz o tym czy na dane pole mozna wejsc foreach($Value as $Key2 => $Value2) { $EchoString[0] = '<span style="position: relative; left: 1px; z-index: 1;"><img src="images/'.$Value2['Image'].'" alt="ElementMapy" style="width: 32px; height: 32px;" /></span>'; // Jesli mozna wejsc na pole if($Value2['CanBeOn'] === true) { // Generowanie "strzaleczek" if($Key - 1 == $YX['y'] && $Key2 == $YX['x']) { $EchoString[1] = '<span style="position: relative; left: 0px; z-index: 2;"></span>'; } else if($Key + 1 == $YX['y'] && $Key2 == $YX['x']) { $EchoString[1] = '<span style="position: relative; left: 0px; z-index: 2;"></span>'; } else if($Key2 - 1 == $YX['x'] && $Key == $YX['y']) { $EchoString[1] = '<span style="position: relative; left: 0px; z-index: 2;"></span>'; } else if($Key2 + 1 == $YX['x'] && $Key == $YX['y']) { $EchoString[1] = '<span style="position: relative; left: 0px; z-index: 2;"></span>'; } else if($Key == $YX['y'] && $Key2 == $YX['x']) { $EchoString[1] = '<span style="position: relative; left: 0px; z-index: 2;"><img src="images/character.png" alt="Moja postac" style="position: absolute; right: 0px; width: 32px; height: 32px;" /></span>'; } else { $EchoString[1] = ''; } } else { $EchoString[1] = ''; } } }
Działanie skryptu można zobaczyć pod adresami:
http://endoria.za.pl/test/login.php
http://endoria.za.pl/test/zab.php
Wyświetla on gracza bez tych strzałek do poruszania, o ID'ie równym 1, co z resztą jest w zapytaniu do bazy. I tutaj mam problem. Jak zrobić, aby pobierało wszystkich graczy z bazy, i wyświetlało ich na mapie? Wiem, że mogę to zrobić, robiąc wiele zapytań, i zmieniając id na kolejny, ale z tym byłoby zbyt dużo roboty, i być może nie działałoby to zbyt dobrze. No więc może ktoś wie, co należy zastosować, jakiej funkcji użyć? Za każdą, nawet najmniejszą pomoc byłbym wdzięczny.
Pozdrawiam
