JeuWeb - Crée ton jeu par navigateur
Apparition du perso sur la map[Résolu] - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Apparition du perso sur la map[Résolu] (/showthread.php?tid=826)

Pages : 1 2


RE: Apparition du perso sur la map - Pyl - 18-02-2007

C'est si gentiment demandé :amoureux2:

La table Map est très simple en soit Smile
Citation :X int(5) Non 0
Y int(5) Non 0
perso int(5) Non 0
munition int(5) Non 0
piege int(5) Non 0
bat int(5) Non 0
idbat int(5) Non 0
terrain int(5) Non 0

Donc là c'est que du chiffre comme tu peux le constater Smile
idbat, je ne pense pas qu'il doit être prit en compte, je l'ai tjrs prit en compte pcq qu'ont a ma conseillé de mettre idbat, mais bon..

Et la table batiment

Citation :id int(11) Non 0
nom_batiment varchar(250) Non
camp varchar(250) Non
resistance varchar(250) Non
resistance_max varchar(250) Non
fichier varchar(250) Non
lien varchar(250) Non


Et pour te donner un exemple Smile

Citation :1 Grand Quartier Général Triple Entente 10000 10000 manoir_france.gif qgq_france.php

Donc on a l'id en premier, suivit du nom du batiment et enfin du camp auquel il appartient, les chiffres et le reste ça na pas d'importe Smile
Donc en faite, dans la table Map, dans le champ bat je rentre l'id correspondant au batiment qui m'interesse, donc si je veux le Grand Quartier Général de la Triple Entente je mettrais 1, mais si je veux un autres batiments je met autres choses.

Voili Smile


RE: Apparition du perso sur la map - OncleJames - 18-02-2007

Pour faciliter le codage du script, tu stockerai pas le camps du joueur dans une session ?

EDIT: Je viens de voir un truc en programmant le script, tu as oublié de mettre un champs idmap ( auto incrémente), sur ta table map, meme si aux premier abord, il te semble obsolète, il vaut mieux toujours le mettre Smile


RE: Apparition du perso sur la map - Pyl - 18-02-2007

Le camp du joueur est stockée dans la table membres ^^
a quoi me servirait exactement le champ idmap ? Confused


RE: Apparition du perso sur la map - OncleJames - 18-02-2007

J'ai ca à te proposer :

Code PHP :
<?
session_start
();
include(
'zone-page/haut.php');
include(
'zone-page/menu-gauche.php');
include(
'zone-page/droit.php');
include(
'bdd.php');
include(
'reglage.php');
include(
'function.php');


// Recherche info Camps
$sql = mysql_query("SELECT camp FROM membres WHERE id='".$id."'");
$camp = mysql_fetch_assoc($sql);

// Recherche coordonée Batiment principal
$req = mysql_query("SELECT X,Y FROM batiment LEFT JOIN map ON batiment.id=map.bat WHERE camp='".$camp['camps']."'");
$bat = mysql_fetch_assoc($req);

// Recherche des limites de la zone
$zone_x_min = $bat['X']-3;
if (
$zone_x_min < 1 ) $zone_x_min == 1 ;
$zone_x_max = $bat['X']+5;
$zone_y_min = $bat['Y']-5;
if (
$zone_y_min < 1 ) $zone_y_min == 1 ;
$zone_y_max = $bat['Y']+5;

// Recherche des cases de la zone de parachuage
$sql = mysql_query("SELECT X,Y,perso,bat FROM map WHERE x BETWEEN '".$zone_x_min."' AND '".$zone_x_max."' AND y BETWEEN '".$zone_y_min."' AND '".$zone_y_max."'");

// Boucle afin de déterminer si les cases sont vide
$i='1';
while (
$zone = mysql_fetch_assoc($sql) ) {

if (
$zone['perso'] == '0' || $zone['bat'] == '0' ) { // case vide
$case_x[$i] = $zone['X'];
$case_y[$i] = $zone['Y'];
$i++;
}
}

// Choix de la case vide sur un random
$nb = mt_rand(1,($i-1));
// On met a jour les informations
$sql = mysql_query("UPDATE map SET perso='".$id."' WHERE X='".$case_x[$nb]."' AND Y='".$case_y[$nb]."'") or die(mysql_error());

echo
'<center><br>Vous venez de retourner sur le champ de bataille.';
echo
'<br><a href="jouer.php">Rejoindre le front</a></center>';


include(
'zone-page/droit2.php');
?>

Mais tu met pas a jour les position du joueur sur la table membre ?

Tien moi au courant de son fonctionnement


EDIT : Par exemple a éviter de se ballader des X et Y partout
C'est toujours mieux d'avoir un champs id{nomdetable}, pour des futurs recherches, améliorations, ..


RE: Apparition du perso sur la map - Pyl - 18-02-2007

J'essairais ça demain Smile
Et non je tient pas à jour les positions X et Y du joueur dans la table membres Smile
Mais dans la table Map, c'est d'ailleur à ça que me sert le champ perso dans la table Map, il releve l'id du perso...
Ca me fait un champ au lieu de deux ^^
Je peux ainsi faire des requetes simples tel que
Code PHP :
<?php 
$sql
= mysql_query("SELECT X,Y FROM map WHERE perso='$id'");

Wink

Je te dis si ça marche demain !
Merci Smile


RE: Apparition du perso sur la map - Pyl - 19-02-2007

Alors alors.
Déjà le perso est bien placé sur la map, la-dessus pas de soucis...
Le soucis c'est qu'il est tjrs placés aléatoirement sur la map et loin donc de son GQG Confused

Je pense savoir d'ou provient le soucis.

Code PHP :
<?php 
$req
= mysql_query("SELECT X,Y FROM batiments LEFT JOIN map ON batiment.id=map.bat WHERE camp='".$camp['camp']."'");

Il ne faudrait pas inverser Batiment et Map ?
Car la on selectionne les coordonnées dans la table batiments d'abord non ?
Ensuite, pour la fin, le soucis c'est qu'aprés plusieurs batiments appartiendront au même camp... Donc n'y a t'il pas un risque de trouver des mecs parachuter au alentour de ses batiments ? Je pense qu'ont devrait rajouter

Code PHP :
<?php 
AND Type='GQG'
, champ que je peux rajouter sans soucis Smile
Et je crois que le dernier soucis vient du fait que, mais je pense juste, on n'identifie pas sur la map si l'id du batiment est 1 ( Donc Triple Entente ) ou 2 ( Triple Alliance )

Enfin ça je sais pas comment tu a fais t'es trucs Smile

Edit : Ah oui, j'ai corrigé quelques erreurs d'orthographe dans le script, (batiment = batiments ) Smile


RE: Apparition du perso sur la map - Pyl - 19-02-2007

C'est bon Smile
J'ai réussi à faire marcher le tout en faissant au debut une requette qui selectionne le camp et qui modifie donc la requette de selection du batiment en fonction du camp