Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem][PHP]Tworzenie wioski


Rekomendowane odpowiedzi

Opublikowano

Siema. Mam problem z czymś takim żeby...pfff

 

Graliście w plemiona ? Tam jak tworzy się wioskę to jest ona brana od środka i do tyłu i do tyłu. Czyli koło wiosek zwiększa się od środka i jest coraz większe :). Tylko jak zrobić właśnie coś takiego optymalnie ? :)

 

Kod jaki teraz mam (bez tego umieszczenia takiego. Umieszczam na całej mapie.

<?php
session_start();
require_once("Layout2.php");

?>
<div class="news">
<div class="news_g">
</div>
<div class="news_s">
<?php
$all = mysql_num_rows(mysql_query("SELECT * FROM s1"));
$czytugra = mysql_query("SELECT * FROM s1 WHERE Owner=".$uzytkownik['Id']);

$ilejestwiosek = mysql_num_rows($czytugra);
if($ilejestwiosek == 0) {
echo 'Witaj '.$uzytkownik['Name'].' !<br />
Nieposiadasz wioski na tym świecie. Wybierz kierunek gdzie ma być ona postawiona :<br />
<form action="" method="POST">
<input type="radio" name="kierunek" value="przypadkowo">Przypadkowo<br />
<input type="radio" name="kierunek" value="polnoc">Północ<br />
<input type="radio" name="kierunek" value="poludnie">Południe<br />
<input type="radio" name="kierunek" value="wschod">Wschód<br />
<input type="radio" name="kierunek" value="zachod">Zachód<br />
<input type="submit" value="Rozpocznij grę !">
</form>
';
/*
<input type="radio" name="kierunek" value="polnocny_wschod">Północny Wschód<br />
<input type="radio" name="kierunek" value="polnocny_zachod">Północny Zachód<br />
<input type="radio" name="kierunek" value="poludniowy_wschod">Południowy Wschód<br />
<input type="radio" name="kierunek" value="poludniowy_zachod">Południowy Zachód<br />
*/
if(!empty($_POST['kierunek'])) {
$s1 = mysql_num_rows(mysql_query("SELECT * FROM s1"));
//Zagęszczenie dla... ilosci wiosek ?! 
if($_POST['kierunek'] == 'przypadkowo') {
$x = rand(450, 550);
$y = rand(450, 550);
$remember_x = $x;
$remember_y = $y;
}
if($_POST['kierunek'] == 'polnoc') {
$x = rand(400, 600);
$y = rand(450, 500);
$remember_x = $x;
$remember_y = $y;
}
if($_POST['kierunek'] == 'poludnie') {
$x = rand(333, 666);
$y = rand(450, 500);
$remember_x = $x;
$remember_y = $y;
}
if($_POST['kierunek'] == 'wschod') {
$x = rand(500, 550);
$y = rand(333, 666);
$remember_x = $x;
$remember_y = $y;
}
if($_POST['kierunek'] == 'zachod') {
$x = rand(450, 500);
$y = rand(333, 666);
$remember_x = $x;
$remember_y = $y;
}
/*if($_POST['kierunek'] == 'polnocny_wschod') {
$x = rand(600, 700);
$y = rand(1, 500);
$remember_x = $x;
$remember_y = $y;
}
if($_POST['kierunek'] == 'polnocny_zachod') {
$x = rand(450, 500);
$y = rand(1, 500);
$remember_x = $x;
$remember_y = $y;
}
if($_POST['kierunek'] == 'poludniowy_wschod') {
$x = rand(666, 999);
$y = rand(500, 1);
$remember_x = $x;
$remember_y = $y;
}
if($_POST['kierunek'] == 'poludniowy_zachod') {
$x = rand(1, 333);
$y = rand(500, 1);
$remember_x = $x;
$remember_y = $y;
}*/
//Znalazło !  Gz'tki. Teraz utwórz wioskę i daj podstawowe budynki :
//A sprawdzić czy wioska aby juz tam nie jest ?
$rows = @mysql_num_rows(mysql_query("SELECT * FROM s1 WHERE x=$remember_x, AND y=$remember_y"));
$uid = $uzytkownik['Id'];
$vname = 'Wioska '.$uzytkownik['Name'];
if($rows == 0) {
//Na dół nie ma po co patrzeć 
$czas = time() + 259200;
$query = mysql_query("INSERT INTO s1 VALUES (NULL, $uid, 78, 'Brak', $czas, 4, 10, 5, 'Wieki ciemne', '$vname', $remember_x, $remember_y, 0, 0, 10, 233, 120, 120, 120, 15, 5, 840, 500, 500, 500, 50, 30, 0, NULL)");
//A teraz budynecki :P :
echo ("INSERT INTO s1 VALUES (NULL, $uid, 78, 'Brak', $czas, 4, 10, 5, 'Wieki ciemne', '$vname', $remember_x, $remember_y, 0, 0, 10, 233, 120, 120, 120, 15, 5, 840, 500, 500, 500, 50, 30, 0, NULL)<br />");
$s1 = mysql_fetch_array(mysql_query("SELECT * FROM s1 WHERE x=$x AND y=$y"));
$vID = $s1['Id'];
if($query) {
mysql_query("INSERT INTO s1__buldings VALUES (NULL, 1, 1, $vID)"); //Zamek 
mysql_query("INSERT INTO s1__buldings VALUES (NULL, 7, 1, $vID)");//Drewno, glina, zelazo
mysql_query("INSERT INTO s1__buldings VALUES (NULL, 8, 1, $vID)");
mysql_query("INSERT INTO s1__buldings VALUES (NULL, 9, 1, $vID)");
mysql_query("INSERT INTO s1__buldings VALUES (NULL, 13, 1, $vID)");
mysql_query("INSERT INTO s1__buldings VALUES (NULL, 14, 1, $vID)");

mysql_query("UPDATE Users SET Uczestnictwo_1='Tak' WHERE Id=".$uzytkownik['Id']);
mysql_query("INSERT INTO s1__wojsko (Id) VALUES (NULL)");
mysql_query("INSERT INTO s1__units VALUES (NULL, 1, $vID)");
mysql_query("INSERT INTO s1__units VALUES (NULL, 2, $vID)");
//Ostatnie : Dodanie wioski "do sklepu"
mysql_query("INSERT INTO s1__Shop VALUES (NULL, 0, 0, 0, 0, 0, 0, 'None')");
}
header("Location: game.php?village=$vID&screen=przeglad");
exit;
//Jupi mamy wioskę !
} else {
?>
<script type="text/javascript">
alert("Błąd. Spróbuj ponownie !", 'red');
</script>
<?php
}
}
} else {
$czytugra = mysql_query("SELECT * FROM s1 WHERE Owner=".$uzytkownik['Id']." LIMIT 1");
$gra = mysql_fetch_array($czytugra);
$_GET['village'] = $gra['Id'];
@include("liczniki.php");
@header("Location: game.php?village=".$gra['Id']."&screen=przeglad");
exit;
}
?> <br />
</div>
<div class="news_foot">
</div>
</div>

Opublikowano

Jeśli już naprawiłeś to spx, ja bym to zrobił tak w każdym razie:

 

Losuję liczbę między 1, a np. 10000 (2 razy) -> Zapisuję ją w zmiennych $x oraz $y -> Sprawdzam w bazie czy dane koordy są zajęte -> (Jeśli nie) Dodaję rekord do tabeli "wioski" z danymi kordami -> (Jeśli tak) Ponownie losuję i robię to co jest w (Jeśli nie) -> Koniec ^^ Wioska stworzona

 

Nie wiem czy dokładnie o to chodziło, ale chyba tak :D

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...