<commit_before><?php
include('class/db.class.php');
//Récéption des variables de connexion ࡬a base et connexion ࡣette base
include('connect.php');
include('connect_log.php');

//Inclusion du fichier contenant toutes les variables indispensablent
include('inc/variable.inc.php');

$arene_xml = new DomDocument();
$arene_xml->load('./xml/arenes.xml');

//Récupération des arènes
$requete = "SELECT nom, xmin, xmax, ymin, ymax FROM arenes";
$req = $db->query($requete);
$row = $db->read_assoc($req);

//Verifie que le fichier ne doit pas être crée
$nouveau = $arene_xml->getElementsByTagName("nouveau")->item(0);

while($row = $db->read_assoc($req))
{
	$xmin = $row['xmin'];
	$xmax = $row['xmax'];
	$ymin = $row['ymin'];
	$ymax = $row['ymax'];
	$coord['x'] = $xmin + round(($xmax - $xmin) / 2);
	$coord['y'] = $ymin + round(($ymax - $ymin) / 2);

	$requete_joueurs = 'SELECT ID, nom, level, race, x, y, classe, hp, hp_max, mp, pa FROM perso WHERE statut = \'actif\' AND (x <= '.$xmax.' AND x >= '.$xmin.') AND (y <= '.$ymax.' AND y >= '.$ymin.') ORDER BY y ASC, x ASC, dernier_connexion DESC';
	$req_joueurs = $db->query($requete_joueurs);

	$liste_joueurs = array();
	while($joueur = $db->read_assoc($req_joueur))
	{
		$liste_joueurs[$joueur['nom']]['level'] = $joueur['level'];
		$liste_joueurs[$joueur['nom']]['race'] = $joueur['race'];
		$liste_joueurs[$joueur['nom']]['x'] = $joueur['x'];
		$liste_joueurs[$joueur['nom']]['y'] = $joueur['y'];
		$liste_joueurs[$joueur['nom']]['classe'] = $joueur['classe'];
		$liste_joueurs[$joueur['nom']]['hp'] = $joueur['hp'];
		$liste_joueurs[$joueur['nom']]['hp_max'] = $joueur['hp_max'];
		$liste_joueurs[$joueur['nom']]['mp'] = $joueur['mp'];
		$liste_joueurs[$joueur['nom']]['pa'] = $joueur['pa'];
	}
	
	if(empty($nouveau))
	{
		$arene = $arene_xml->getElementsByTagName($row['nom']);
	
		$xml_joueur = $arene->getElementsByTagName('joueur');
		foreach($xml_joueur as $joueur)
		{
			$nom = $joueur->getAttribute('nom')
			if(!empty($nom))
			{
				$joueur->setAttribute('level', $liste_joueurs[$nom]['lvl']);
				$joueur->setAttribute('race', $liste_joueurs[$nom]['race']);
				$joueur->setAttribute('x', $liste_joueurs[$nom]['x']);
				$joueur->setAttribute('y', $liste_joueurs[$nom]['y']);
				$joueur->setAttribute('classe', $liste_joueurs[$nom]['classe']);
				$joueur->setAttribute('hp', $liste_joueurs[$nom]['hp']);
				$joueur->setAttribute('hp_max', $liste_joueurs[$nom]['hp_max']);
				$joueur->setAttribute('mp', $liste_joueurs[$nom]['mp']);
				$joueur->setAttribute('pa', $liste_joueurs[$nom]['pa']);
			}
			else
				$joueur->parentNode->removeChild($joueur);
		}
	}
	else
	{
		$nouveau->parentNode->removeChild($nouveau);
		$racine = $arene_xml->getElementsByTagName('arenes')->item(0);
		
		$nouv_arene = $arene_xml->createElement('viewarene');
		$arene_courante = $racine->appendChild($nouv_arene);
		$arene_courante->setAttribute('type', $row['nom']);
		
		while(current($liste_joueurs))
		{
			$nom = key($liste_joueurs);
			$nouv_joueur = $arene_xml->createElement('joueur');
			$joueur = $arene_courante->appendChild($nouv_joueur);
			$joueur->setAttribute('nom', $nom);
			$joueur->setAttribute('level', $liste_joueurs[$nom]['lvl']);
			$joueur->setAttribute('race', $liste_joueurs[$nom]['race']);
			$joueur->setAttribute('x', $liste_joueurs[$nom]['x']);
			$joueur->setAttribute('y', $liste_joueurs[$nom]['y']);
			$joueur->setAttribute('classe', $liste_joueurs[$nom]['classe']);
			$joueur->setAttribute('hp', $liste_joueurs[$nom]['hp']);
			$joueur->setAttribute('hp_max', $liste_joueurs[$nom]['hp_max']);
			$joueur->setAttribute('mp', $liste_joueurs[$nom]['mp']);
			$joueur->setAttribute('pa', $liste_joueurs[$nom]['pa']);
			next($liste_joueur);
		}
		
		//Information des cases
		$requete = 'SELECT ID, info, decor FROM map WHERE (((FLOOR(ID / '.$G_ligne.') >= '.$ymin.') AND (FLOOR(ID / '.$G_ligne.') <= '.$ymax.')) AND (((ID - (FLOOR(ID / '.$G_colonne.') * 1000)) >= '.$xmin.') AND ((ID - (FLOOR(ID / '.$G_colonne.') * 1000)) <= '.$xmax.'))) ORDER BY ID';
		$req = $db->query($requete);		

		//Création des cases
		while($case = $db->read_assoc($req))
		{
			$case_xml = $arene_courante->appendChild('case');
			$case_xml->setAttribute('id', $case['ID']);
			$case_xml->setAttribute('decor', $case['decor']);
		}
		
		//Taille de l'arène
		$nouv_taille = $arene_xml->createElement('taille');
		$taille = $arene_courante->appendChild($nouv_taille);
		$taille->setAttribute('xmin', $xmin);
		$taille->setAttribute('xmin', $xmax);<commit_msg>Oubli d'un S<commit_after><?php
include('class/db.class.php');
//Récéption des variables de connexion ࡬a base et connexion ࡣette base
include('connect.php');
include('connect_log.php');

//Inclusion du fichier contenant toutes les variables indispensablent
include('inc/variable.inc.php');

$arene_xml = new DomDocument();
$arene_xml->load('./xml/arenes.xml');

//Récupération des arènes
$requete = "SELECT nom, xmin, xmax, ymin, ymax FROM arenes";
$req = $db->query($requete);
$row = $db->read_assoc($req);

//Verifie que le fichier ne doit pas être crée
$nouveau = $arene_xml->getElementsByTagName("nouveau")->item(0);

while($row = $db->read_assoc($req))
{
	$xmin = $row['xmin'];
	$xmax = $row['xmax'];
	$ymin = $row['ymin'];
	$ymax = $row['ymax'];
	$coord['x'] = $xmin + round(($xmax - $xmin) / 2);
	$coord['y'] = $ymin + round(($ymax - $ymin) / 2);

	$requete_joueurs = 'SELECT ID, nom, level, race, x, y, classe, hp, hp_max, mp, pa FROM perso WHERE statut = \'actif\' AND (x <= '.$xmax.' AND x >= '.$xmin.') AND (y <= '.$ymax.' AND y >= '.$ymin.') ORDER BY y ASC, x ASC, dernier_connexion DESC';
	$req_joueurs = $db->query($requete_joueurs);

	$liste_joueurs = array();
	while($joueur = $db->read_assoc($req_joueur))
	{
		$liste_joueurs[$joueur['nom']]['level'] = $joueur['level'];
		$liste_joueurs[$joueur['nom']]['race'] = $joueur['race'];
		$liste_joueurs[$joueur['nom']]['x'] = $joueur['x'];
		$liste_joueurs[$joueur['nom']]['y'] = $joueur['y'];
		$liste_joueurs[$joueur['nom']]['classe'] = $joueur['classe'];
		$liste_joueurs[$joueur['nom']]['hp'] = $joueur['hp'];
		$liste_joueurs[$joueur['nom']]['hp_max'] = $joueur['hp_max'];
		$liste_joueurs[$joueur['nom']]['mp'] = $joueur['mp'];
		$liste_joueurs[$joueur['nom']]['pa'] = $joueur['pa'];
	}
	
	if(empty($nouveau))
	{
		$arene = $arene_xml->getElementsByTagName($row['nom']);
	
		$xml_joueur = $arene->getElementsByTagName('joueur');
		foreach($xml_joueur as $joueur)
		{
			$nom = $joueur->getAttribute('nom')
			if(!empty($nom))
			{
				$joueur->setAttribute('level', $liste_joueurs[$nom]['lvl']);
				$joueur->setAttribute('race', $liste_joueurs[$nom]['race']);
				$joueur->setAttribute('x', $liste_joueurs[$nom]['x']);
				$joueur->setAttribute('y', $liste_joueurs[$nom]['y']);
				$joueur->setAttribute('classe', $liste_joueurs[$nom]['classe']);
				$joueur->setAttribute('hp', $liste_joueurs[$nom]['hp']);
				$joueur->setAttribute('hp_max', $liste_joueurs[$nom]['hp_max']);
				$joueur->setAttribute('mp', $liste_joueurs[$nom]['mp']);
				$joueur->setAttribute('pa', $liste_joueurs[$nom]['pa']);
			}
			else
				$joueur->parentNode->removeChild($joueur);
		}
	}
	else
	{
		$nouveau->parentNode->removeChild($nouveau);
		$racine = $arene_xml->getElementsByTagName('arenes')->item(0);
		
		$nouv_arene = $arene_xml->createElement('viewarene');
		$arene_courante = $racine->appendChild($nouv_arene);
		$arene_courante->setAttribute('type', $row['nom']);
		
		while(current($liste_joueurs))
		{
			$nom = key($liste_joueurs);
			$nouv_joueur = $arene_xml->createElement('joueur');
			$joueur = $arene_courante->appendChild($nouv_joueur);
			$joueur->setAttribute('nom', $nom);
			$joueur->setAttribute('level', $liste_joueurs[$nom]['lvl']);
			$joueur->setAttribute('race', $liste_joueurs[$nom]['race']);
			$joueur->setAttribute('x', $liste_joueurs[$nom]['x']);
			$joueur->setAttribute('y', $liste_joueurs[$nom]['y']);
			$joueur->setAttribute('classe', $liste_joueurs[$nom]['classe']);
			$joueur->setAttribute('hp', $liste_joueurs[$nom]['hp']);
			$joueur->setAttribute('hp_max', $liste_joueurs[$nom]['hp_max']);
			$joueur->setAttribute('mp', $liste_joueurs[$nom]['mp']);
			$joueur->setAttribute('pa', $liste_joueurs[$nom]['pa']);
			next($liste_joueurs);
		}
		
		//Information des cases
		$requete = 'SELECT ID, info, decor FROM map WHERE (((FLOOR(ID / '.$G_ligne.') >= '.$ymin.') AND (FLOOR(ID / '.$G_ligne.') <= '.$ymax.')) AND (((ID - (FLOOR(ID / '.$G_colonne.') * 1000)) >= '.$xmin.') AND ((ID - (FLOOR(ID / '.$G_colonne.') * 1000)) <= '.$xmax.'))) ORDER BY ID';
		$req = $db->query($requete);		

		//Création des cases
		while($case = $db->read_assoc($req))
		{
			$case_xml = $arene_courante->appendChild('case');
			$case_xml->setAttribute('id', $case['ID']);
			$case_xml->setAttribute('decor', $case['decor']);
		}
		
		//Taille de l'arène
		$nouv_taille = $arene_xml->createElement('taille');
		$taille = $arene_courante->appendChild($nouv_taille);
		$taille->setAttribute('xmin', $xmin);
		$taille->setAttribute('xmin', $xmax);
{'fraction_non_alphanumeric': 0.24307862679955702, 'fraction_numerical': 0.0026578073089701, 'mean_word_length': 5.744585511575803, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 111, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 30}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7108926', 'n_tokens_mistral': 3977, 'n_tokens_neox': 3728, 'n_words': 527}