Witam, znalazłem właśnie bardzo ciekawy skrypt na chodzenie po mapie 2d z wykorzystaniem php. Znajduje się od pod tym linkiem:
http://meares.webd.pl/blog/31;pseudo-mapa-...ml-jak/#more-31Przerobił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) {
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) {
mysql_query('UPDATE `user` SET `y`='.$_GET['y'].', `x`='.$_GET['x'].' WHERE `id`=1 LIMIT 1'); } else {
}
}
// 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.phphttp://endoria.za.pl/test/zab.phpWyś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 (IMG:
style_emoticons/default/winksmiley.jpg)