All pastes #392160 Raw Edit

Mine

public php v1 · immutable
·published 2007-03-12 18:21 UTC
rendered paste body
function user_set_empire() {	global $db, $user_data, $pub_data;	require_once("parameters/lang_empire.php");	$data = $pub_data;		$data = str_replace ( "-", "0", $data );	$data = str_replace ( ".", "", $data );	$data = stripcslashes($data);	$lines = explode(chr(10), $data);	$OK = false;	$etape = "";	$planetes_total_row = false;	foreach ($lines as $line) {		$arr = array();		$line = trim($line);				if(preg_match("#Vue\sd'ensemble\sde\svotre\sempire#",$data))		{			$OK = 1;		}				if($OK == 1) {			//Recupérations des coordonnées			if (preg_match("#^Position\sGSP\s+\[(.*)\]$#", $line, $arr)) {				$coordonnees = preg_split("/\]\s+\[/", $arr[1]);								//Calcul du nombre de planètes				$planetes_total_row = sizeof($coordonnees);								//Parsing production				$link_ressource = array($lang_ressource["TITANE"] => "TITANE", $lang_ressource["CARBONE"] => "CARBONE", $lang_ressource["TRITIUM"] => "TRITIUM",				$lang_ressource["ENERGIE"] => "ENERGIE");				$ressource = array("TITANE" => array_fill(0, $planetes_total_row, 0), "CARBONE" => array_fill(0, $planetes_total_row, 0),	"TRITIUM" => array_fill(0, $planetes_total_row, 0),				"ENERGIE" => array_fill(0, $planetes_total_row, 0), "ENERGIE" => array_fill(0, $planetes_total_row, 0));								//Parsing batiments				$link_building = array($lang_building["TITANE"] => "TITANE", $lang_building["CARBONE"] => "CARBONE", $lang_building["TRITIUM"] => "TRITIUM",				$lang_building["CG"] => "CG", $lang_building["CaT"] => "CaT",				$lang_building["UDD"] => "UDD", $lang_building["UDA"] => "UDA", $lang_building["UA"] => "UA",				$lang_building["S_TITANE"] => "S_TITANE", $lang_building["S_CARBONE"] => "S_CARBONE", $lang_building["S_TRITIUM"] => "S_TRITIUM",				$lang_building["CT"] => "CT", $lang_building["Ter"] => "Ter", $lang_building["Silo"] => "Silo");				$buildings = array("TITANE" => array_fill(0, $planetes_total_row, 0), "CARBONE" => array_fill(0, $planetes_total_row, 0),	"TRITIUM" => array_fill(0, $planetes_total_row, 0),				"CG" => array_fill(0, $planetes_total_row, 0), "CaT" => array_fill(0, $planetes_total_row, 0),				"UDD" => array_fill(0, $planetes_total_row, 0), "UDA" => array_fill(0, $planetes_total_row, 0), "UA" => array_fill(0, $planetes_total_row, 0),				"S_TITANE" => array_fill(0, $planetes_total_row, 0), "S_CARBONE" => array_fill(0, $planetes_total_row, 0), "S_TRITIUM" => array_fill(0, $planetes_total_row, 0),				"CT" => array_fill(0, $planetes_total_row, 0), "Ter" => array_fill(0, $planetes_total_row, 0), "Silo" => array_fill(0, $planetes_total_row, 0));				//Parsing flotte				$link_fleet = array($lang_fleet["PT5"] => "PT5", $lang_fleet["PT50"] => "PT50", $lang_fleet["CH"] => "CH",				$lang_fleet["CHL"] => "CHL", $lang_fleet["FDA"] => "FDA", $lang_fleet["DES"] => "DES",				$lang_fleet["OVE"] => "OVE", $lang_fleet["FN"] => "FN", $lang_fleet["HYP"] => "HYP",				$lang_fleet["COL"] => "COL", $lang_fleet["SON"] => "SON", $lang_fleet["COLO"] => "COLO",				$lang_fleet["EXT"] => "EXT");				$fleet = array("PT5" => array_fill(0, $planetes_total_row, 0), "PT50" => array_fill(0, $planetes_total_row, 0),	"CH" => array_fill(0, $planetes_total_row, 0),				"CHL" => array_fill(0, $planetes_total_row, 0), "FDA" => array_fill(0, $planetes_total_row, 0),				"DES" => array_fill(0, $planetes_total_row, 0), "OVE" => array_fill(0, $planetes_total_row, 0), "FN" => array_fill(0, $planetes_total_row, 0),				"HYP" => array_fill(0, $planetes_total_row, 0), "COL" => array_fill(0, $planetes_total_row, 0), "SON" => array_fill(0, $planetes_total_row, 0),				"COLO" => array_fill(0, $planetes_total_row, 0), "EXT" => array_fill(0, $planetes_total_row, 0));								//Parsing divers				$link_divers = array($lang_divers["SAT"] => "SAT");				$divers = array("SAT" => array_fill(0, $planetes_total_row, 0));								//Parsing defense				$link_defence = array($lang_defence["BFG"] => "BFG", $lang_defence["SBFG"] => "SBFG", $lang_defence["PFC"] => "PFC",				$lang_defence["DEF"] => "DEF", $lang_defence["PFI"] => "PFI", $lang_defence["AER"] => "AER",				$lang_defence["CDF"] => "CDF", $lang_defence["HOL"] => "HOL",				$lang_defence["CME"] => "CME", $lang_defence["MEMP"] => "MEMP");								$defences = array("BFG" => array_fill(0, $planetes_total_row, 0), "SBFG" => array_fill(0, $planetes_total_row, 0),	"PFC" => array_fill(0, $planetes_total_row, 0),				"DEF" => array_fill(0, $planetes_total_row, 0), "PFI" => array_fill(0, $planetes_total_row, 0), "AER" => array_fill(0, $planetes_total_row, 0),				"CDF" => array_fill(0, $planetes_total_row, 0), "HOL" => array_fill(0, $planetes_total_row, 0),				"CME" => array_fill(0, $planetes_total_row, 0), "MEMP" => array_fill(0, $planetes_total_row, 0));								//Parsing technologies				$link_technology = array($lang_technology["Esp"] => "Esp", $lang_technology["QUA"] => "QUA",				$lang_technology["ALLIA"] => "ALLIA", $lang_technology["STRAT"] => "STRAT", $lang_technology["RAFF"] => "RAFF",				$lang_technology["ARM"] => "ARM",				$lang_technology["BOU"] => "BOU", $lang_technology["BLIND"] => "BLIND", $lang_technology["THERMO"] => "THERMO", $lang_technology["ANTI_MAT"] => "ANTI_MAT",				$lang_technology["HYPD"] => "HYPD", $lang_technology["IMPUL"] => "IMPUL", $lang_technology["WARP"] => "WARP",				$lang_technology["SMART"] => "SMART", $lang_technology["ION"] => "ION", $lang_technology["AEREON_T"] => "AEREON_T", $lang_technology["SUP_CALC"] => "SUP_CALC", $lang_technology["GRAVI"] => "GRAVI", $lang_technology["ADMIN"] => "ADMIN", $lang_technology["EXPLOITATION"] => "EXPLOITATION");				$technologies = array("Esp" => 0, "QUA" => 0, "ALLIA" => 0, "STRAT" => 0, "RAFF" => 0,				"ARM" => 0, "BOU" => 0, "BLIND" => 0, "THERMO" => 0, "ANTI_MAT" => 0, "HYPD" => 0, "IMPUL" => 0, "WARP" => 0,				"SMART" => 0, "ION" => 0, "AEREON_T" => 0, "SUP_CALC" => 0, "GRAVI" => 0, "ADMIN" => 0, "EXPLOITATION" => 0);				$cases = array_fill(0, $planetes_total_row, 0);							// creation du masque ici				$masq = "#^((?:\s?\S+)+)\s+";				for($i=0; $i<($planetes_total_row-1); $i++) {					$masq .= "(\d+)(?:|\s\d+|\s\(\d+\))\s+";				}				$masq .= "(\d+)(?:\s\d+|\s\(\d+\))*$#";				continue;			}			if($OK && $planetes_total_row !==false) {				if(preg_match("#^Cases\s+\d+\/((?:\d+\s+(?:\d+)\/(?:\d+)\s*){1,".$planetes_total_row."})$#",$line,$arr)) {				echo"test";					$cases = preg_split("/\s+\d+\//", $arr[1]);					if(sizeof($cases) != $planetes_total_row) return false;					continue;				}				if(preg_match("#^(".$lang_empire["Production"]."|".$lang_empire["Batiment"]."|".$lang_empire["Fleet"]."|".$lang_empire["Divers"]."|".$lang_empire["Défense"].")$#",$line)) {					$etape = $line;					continue;				}				if($etape != "" && preg_match($masq, $line, $arr)) {					$building = $arr[1];					$levels = array_slice($arr, 2);					switch($etape) {						case "Bâtiments" :						if (isset($link_building[$building])) {							if( sizeof($levels) != $planetes_total_row) return false;							$buildings[$link_building[$building]] = $levels;						}						break;						case "Recherche" :						if (isset($link_technology[$building])) {							if( sizeof($levels) != $planetes_total_row) return false;							$technologies[$link_technology[$building]] = max($levels);						}						break;						case "Vaisseaux" :						if ($building == "Satellite solaire") {							if( sizeof($levels) != $planetes_total_row) return false;							$satellites = $levels;						}						break;						case "Défense" :						if (isset($link_defence[$building])) {							if( sizeof($levels) != $planetes_total_row) return false;							$defences[$link_defence[$building]] = $levels;						}						break;						default :						echo "erreur !!! :(";						exit;						//redirection("index.php?action=message&id_message=set_empire_failed_data&info");					}					continue;				}			}		}	}	if($OK && $planetes_total_row !== false) {		$j=19;		for($i=0; $i<$planetes_total_row; $i++) {			if($pub_view == "moons") {				$request = "select planet_id from ".TABLE_USER_BUILDING." where coordinates = '".$coordonnees[$i]."' and planet_id > 9";				$result = $db->sql_query($request);				if ($db->sql_numrows($result) > 0) {					list($planete_id) = $db->sql_fetch_row($result);				}				else {					$request = "select planet_id from ".TABLE_USER_BUILDING." where user_id = ".$user_data["user_id"]." and coordinates = '".$coordonnees[$i]."'";					$result = $db->sql_query($request);					list($planete_id) = $db->sql_fetch_row($result);					if(!$planete_id) {						$planete_id = $j;						$j++;					}					else $planete_id += 9;				}			}			else $planete_id = $i+1;			if($pub_view == "planets") $case = $cases[$i]-5*$buildings["Ter"][$i];			else $case = 1;			$request = "update ".TABLE_USER_BUILDING." set coordinates = '".$coordonnees[$i]."', `fields` = ".$case." , Sat = ".$satellites[$i];			$request .= ", M = ".$buildings["M"][$i].", C = ".$buildings["C"][$i].", D = ".$buildings["D"][$i];			$request .= ", CES = ".$buildings["CES"][$i].", CEF = ".$buildings["CEF"][$i].", UdR = ".$buildings["UdR"][$i];			$request .= ", UdN = ".$buildings["UdN"][$i].", CSp = ".$buildings["CSp"][$i].", HM = ".$buildings["HM"][$i];			$request .= ", HC = ".$buildings["HC"][$i].", HD = ".$buildings["HD"][$i].", Lab = ".$buildings["Lab"][$i];			$request .= ", Ter = ".$buildings["Ter"][$i].", Silo = ".$buildings["Silo"][$i].", BaLu = ".$buildings["BaLu"][$i];			$request .= ", Pha = ".$buildings["Pha"][$i].", PoSa = ".$buildings["PoSa"][$i].($pub_view == 'lunes' ? ', planet_name = \'Lune\'' : '');			$request .= " where user_id = ".$user_data["user_id"]." and planet_id = ".$planete_id;			$db->sql_query($request);			if ($db->sql_affectedrows() == 0) {				$request = "insert ignore into ".TABLE_USER_BUILDING." (user_id, planet_id, planet_name, coordinates, `fields`, temperature, Sat, M, C, D, CES, CEF, UdR, UdN, CSp, HM, HC, HD, Lab, Ter, Silo, BaLu, Pha, PoSa)";				$request .= " values (".$user_data["user_id"].", ".$planete_id.", '".($pub_view == 'moons' ? 'Lune' : 'planete '.$planete_id)."', '".$coordonnees[$i]."', ".$case.", 0, ".$satellites[$i];				$request .= ", ".$buildings["M"][$i].", ".$buildings["C"][$i].", ".$buildings["D"][$i];				$request .= ", ".$buildings["CES"][$i].", ".$buildings["CEF"][$i].", ".$buildings["UdR"][$i];				$request .= ", ".$buildings["UdN"][$i].", ".$buildings["CSp"][$i].", ".$buildings["HM"][$i];				$request .= ", ".$buildings["HC"][$i].", ".$buildings["HD"][$i].", ".$buildings["Lab"][$i];				$request .= ", ".$buildings["Ter"][$i].", ".$buildings["Silo"][$i].", ".$buildings["BaLu"][$i];				$request .= ", ".$buildings["Pha"][$i].", ".$buildings["PoSa"][$i].")";				$db->sql_query($request);			}			$request = "delete from ".TABLE_USER_DEFENCE." where user_id = ".$user_data["user_id"]." and planet_id= ".$planete_id;			$db->sql_query($request);			$request = "insert into ".TABLE_USER_DEFENCE." (user_id, planet_id, LM, LLE, LLO, CG, AI, LP, PB, GB, MIC, MIP)";			$request .= " values (".$user_data["user_id"].", ".$planete_id.", ".$defences["LM"][$i].", ".$defences["LLE"][$i].",".$defences["LLO"][$i].", ".$defences["CG"][$i].", ".$defences["AI"][$i].", ".$defences["LP"][$i].", ".$defences["PB"][$i].", ".$defences["GB"][$i].", ".$defences["MIC"][$i].", ".$defences["MIP"][$i].")";			$db->sql_query($request);		}		if($pub_view=="planets") {			$request = "delete from ".TABLE_USER_TECHNOLOGY." where user_id = ".$user_data["user_id"];			$db->sql_query($request);			$request = "insert into ".TABLE_USER_TECHNOLOGY." (user_id, esp, Ordi, Armes, Bouclier, Protection, NRJ, Hyp, RC, RI, PH, Laser, Ions, Plasma, RRI, Graviton)";			$request .= " values (".$user_data["user_id"].", ".$technologies["Esp"].", ".$technologies["Ordi"].",".$technologies["Armes"].", ".$technologies["Bouclier"].", ".$technologies["Protection"].", ".$technologies["NRJ"].", ".$technologies["Hyp"].", ".$technologies["RC"].", ".$technologies["RI"].", ".$technologies["PH"].", ".$technologies["Laser"].", ".$technologies["Ions"].", ".$technologies["Plasma"].", ".$technologies["RRI"].", ".$technologies["Graviton"].");";			$db->sql_query($request);		}		if($pub_view=="planets") redirection("index.php?action=home&subaction=empire&view=".$pub_view."&alert_empire=true");		else redirection("index.php?action=home&subaction=empire&view=".$pub_view);	}	else redirection("index.php?action=message&id_message=set_empire_failed_data&info");}