Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Attaque($game_id)
- {
- global $liste_unit;
- global $liste_bat;
- //étapes de l'Attaques
- //Recup data joueurs
- //Récup All the Unit
- //Calcul du dégats des tours
- // Kill
- //Attaque Château
- //Changement tour
- //Etape 0 : Recup data de la partie
- $game_query = mysql_query("SELECT * FROM td_game WHERE id = '".$game_id."' ")or die(mysql_error());
- $game_data = mysql_fetch_assoc($game_query);
- $hard = $game_data['hard'];
- if($hard == 1)
- {
- $coeff_hard = 3;
- }
- else
- {
- $coeff_hard = 1;
- }
- //Etapes 1 : Récupérer les données des joueurs :
- $joueurs_query = mysql_query("SELECT * FROM td_users WHERE game = '".$game_id."' ")or die(mysql_error());
- while($data_user = mysql_fetch_assoc($joueurs_query))
- {
- $i++;
- if($i == 1)
- {
- $user1 = $data_user['pseudo'];
- $u1_id = $data_user['id'];
- $u1_income = $data_user['income'];
- $user1_prot = $data_user['protectedAttaque'];
- $u1_clanid = $data_user['Clan_id'];
- }
- elseif($i == 2)
- {
- $user2 = $data_user['pseudo'];
- $u2_id = $data_user['id'];
- $u2_income = $data_user['income'];
- $user2_prot = $data_user['protectedAttaque'];
- $u2_clanid = $data_user['Clan_id'];
- }
- }
- //Etape 2 : Récupérer les unités des joueurs
- //Etape 2.1 : Unités du joueur 1
- $unit_user1_query = mysql_query("SELECT * FROM td_units WHERE owner = '".$user1."' ")or die(mysql_error());
- //Etape 2.2 : Unités du joueur 2
- $unit_user2_query = mysql_query("SELECT * FROM td_units WHERE owner = '".$user2."' ")or die(mysql_error());
- //Etape 2.3 : Récupérer les Tours du Joueur 1
- $tower_user1_query = mysql_query("SELECT * FROM td_bat WHERE owner = '".$u1_id."' ")or die(mysql_error());
- //Etape 2.4 : Récupérer les Tours du Joueur 2
- $tower_user2_query = mysql_query("SELECT * FROM td_bat WHERE owner = '".$u2_id."' ")or die(mysql_error());
- //Etape 3 : Calcul des Dégats des Tours sur les Unités
- //Etape 3.1 : Dégats possible du joueur 1
- while($tower_user1_data = mysql_fetch_assoc($tower_user1_query))
- {
- if($tower_user1_data['bat'] == "Castle")
- {
- $castle_1_PV = $tower_user1_data['PV'];
- $Max_PV_Castle_1 = $liste_bat[$tower_user1_data['bat'].'_'.$tower_user1_data['lvl']]['PV'];
- }
- $degats_user1 += $liste_bat[$tower_user1_data['bat'].'_'.$tower_user1_data['lvl']]['Attaque'];
- }
- //Etape 3.2 : Dégâts possible du joueur 2
- while($tower_user2_data = mysql_fetch_assoc($tower_user2_query))
- {
- if($tower_user2_data['bat'] == "Castle")
- {
- $castle_2_PV = $tower_user2_data['PV'];
- $Max_PV_Castle_2 = $liste_bat[$tower_user2_data['bat'].'_'.$tower_user2_data['lvl']]['PV'];
- }
- $degats_user2 += $liste_bat[$tower_user2_data['bat'].'_'.$tower_user2_data['lvl']]['Attaque'];
- }
- //Etape 3.3 : Calcul des Dégats max subissables par les Unités du joueur 1
- while($unit_user1_data = mysql_fetch_assoc($unit_user1_query))
- {
- if($liste_unit[$unit_user1_data['name']]['Assaut'] == 0)
- {
- $max_PV_1 += $liste_unit[$unit_user1_data['name']]['PV'] * $unit_user1_data['nbr'];
- //MAx gain de ressources
- $max_or_1 += $liste_unit[$unit_user1_data['name']]['Give_gold']*$unit_user1_data['nbr'];
- $max_water_1 += $liste_unit[$unit_user1_data['name']]['Give_water']*$unit_user1_data['nbr'];
- }
- }
- //Etape 3.4 : Calcul des Dégats max subissables par les Unités du joueur 2
- while($unit_user2_data = mysql_fetch_assoc($unit_user2_query))
- {
- if($liste_unit[$unit_user2_data['name']]['Assaut'] == 0)
- {
- $max_PV_2 += $liste_unit[$unit_user2_data['name']]['PV'] * $unit_user2_data['nbr'];
- //Max gain de ressources
- $max_or_2 += $liste_unit[$unit_user2_data['name']]['Give_gold'] * $unit_user2_data['nbr'];
- $max_water_2 += $liste_unit[$unit_user2_data['name']]['Give_water'] * $unit_user2_data['nbr'];
- }
- }
- //Etape 4 : Calcul des Morts
- //Etape 4.1 : Calcul des Morts du J1
- if($degats_user2 >= $max_PV_1)
- {
- //Toutes les unités sont mortes !
- $attack_1 = 0;
- //Gain d'or et eau !
- $win_or_2 = $max_or_1;
- $win_water_2 = $max_water_1;
- $txt = "Attaque : ".$user2." a repoussé toutes les unités de ".$user1."";
- $time = time();
- mysql_query("INSERT INTO td_histo_game(id, game_id, time, content) VALUES('', '$game_id', '$time', '$txt') ")or die(mysql_error());
- }
- else
- {
- $attack_1 = 69;
- $army1 = array(); //Array de l'armée survivante du J1
- //Toutes les unités ne meurs pas.
- //Sélection des morts
- mysql_data_seek($unit_user1_query, 0);
- while($unit_user1_data = mysql_fetch_assoc($unit_user1_query))
- {
- if($liste_unit[$unit_user1_data['name']]['Assaut'] == 0)
- {
- if($degats_user2 > 0)
- {
- $pv_vague = $liste_unit[$unit_user1_data['name']]['PV'] * $unit_user1_data['nbr'];
- if($degats_user2 >= $pv_vague)
- {
- //Toutes unités de ce type sont morte !
- //On ne les ajoute pas à l'armée
- //On retire les dégats des dégats possibles
- $degats_user2 = $degats_user2 - $pv_vague;
- //Cacul des gains d'or/d'eau
- $win_or_2 += $liste_unit[$unit_user1_data['name']]['Give_gold'] * $unit_user1_data['nbr'];
- $win_water_2 += $liste_unit[$unit_user1_data['name']]['Give_water'] * $unit_user1_data['nbr'];
- }
- else
- {
- //Toutes les unités ne meurs pas !
- //On calcul le nbr de mort
- $pv_survie = $pv_vague - $degats_user2;
- $nbr_morts = $unit_user1_data['nbr'] - (floor($pv_surie / $unit_user1_data['nbr']));
- $nbr_survivants = $unit_user1_data['nbr'] - $nbr_morts;
- /* $nbr_dégats = ($liste_unit[$unit_user1_data['name']]['PV'] * $unit_user1_data['nbr']) / $degats_user2;
- $nbr_morts = floor( ($liste_unit[$unit_user1_data['name']]['PV'] * $unit_user1_data['nbr'] - $nbr_degats) / $liste_unit[$unit_user1_data['name']]['PV'] );
- $nbr_survivants = $unit_user1_data['nbr'] - $nbr_morts; */
- $army1[$unit_user1_data['name']] = $nbr_survivants;
- $nbr_soldiers1 += $nbr_survivants;
- $degats_user2 = 0;
- //Calcul des gains d'or/d'eau
- $win_or_2 += $nbr_morts * $liste_unit[$unit_user1_data['name']]['Give_gold'];
- $win_water_2 += $nbr_morts * $liste_unit[$unit_user1_data['name']]['Give_water'];
- }
- }
- else
- {
- //Toutes les unités passent !
- $army1[$unit_user1_data['name']] = $unit_user1_data['nbr'];
- $nbr_soldiers1 += $unit_user1_data['nbr'];
- //Aucun gain d'or et d'eau
- }
- }
- }
- $txt = "Attaque : ".$nbr_soldiers1." Unités de ".$user1." attaquent le Château de ".$user2."";
- $time = time();
- mysql_query("INSERT INTO td_histo_game(id, game_id, time, content) VALUES('', '$game_id', '$time', '$txt') ")or die(mysql_error());
- }
- //Etape 4.2 : Calcul des Morts du J2
- if($degats_user1 >= $max_PV_2)
- {
- //Toutes les unités sont mortes !
- $attack_2 = 0;
- //Gain d'or et eau !
- $win_or_1 = $max_or_2;
- $win_water_1 = $max_water_2;
- $txt = "Attaque : ".$user1." a repoussé toutes les unités de ".$user2."";
- $time = time();
- mysql_query("INSERT INTO td_histo_game(id, game_id, time, content) VALUES('', '$game_id', '$time', '$txt') ")or die(mysql_error());
- }
- else
- {
- $attack_2 = 69;
- $army2 = array(); //Array de l'armée survivante du J2
- //Toutes les unités ne meurs pas.
- //Sélection des morts
- mysql_data_seek($unit_user2_query, 0);
- while($unit_user2_data = mysql_fetch_assoc($unit_user2_query))
- {
- if($liste_unit[$unit_user2_data['name']]['Assaut'] == 0)
- {
- if($degats_user1 > 0)
- {
- $pv_vague = $liste_unit[$unit_user2_data['name']]['PV'] * $unit_user2_data['nbr'];
- if($degats_user1 >= $pv_vague)
- {
- //Toutes unités de ce type sont morte !
- //On ne les ajoute pas à l'armée
- //On retire les dégats des dégats possibles
- $degats_user1 -= $pv_vague;
- //Cacul des gains d'or/d'eau
- $win_or_1 += $liste_unit[$unit_user2_data['name']]['Give_gold'] * $unit_user2_data['nbr'];
- $win_water_1 += $liste_unit[$unit_user2_data['name']]['Give_water'] * $unit_user2_data['nbr'];
- }
- else
- {
- //Toutes les unités ne meurs pas !
- //On calcul le nbr de mort
- $pv_survie = $pv_vague - $degats_user1;
- $nbr_morts = $unit_user2_data['nbr'] - (floor($pv_surie / $unit_user2_data['nbr']));
- $nbr_survivants = $unit_user2_data['nbr'] - $nbr_morts;
- $nbr_soldiers2 += $nbr_survivants;
- /*
- $nbr_dégats = ($liste_unit[$unit_user2_data['name']]['PV'] * $unit_user2_data['nbr']) / $degats_user1;
- $nbr_morts = floor( ($liste_unit[$unit_user2_data['name']]['PV'] * $unit_user2_data['nbr'] - $nbr_degats) / $liste_unit[$unit_user2_data['name']]['PV'] );
- $nbr_survivants = $unit_user1_data['nbr'] - $nbr_morts; */
- $army2[$unit_user2_data['name']] = $nbr_survivants;
- $degats_user1 = 0;
- //Calcul des gains d'or/d'eau
- $win_or_1 += $nbr_morts * $liste_unit[$unit_user2_data['name']]['Give_gold'];
- $win_water_1 += $nbr_morts * $liste_unit[$unit_user2_data['name']]['Give_water'];
- }
- }
- else
- {
- //Toutes les unités passent !
- $army2[$unit_user2_data['name']] = $unit_user2_data['nbr'];
- $nbr_soldiers2 += $unit_user2_data['nbr'];
- //Aucun gain d'or et d'eau
- }
- }
- }
- $txt = "Attaque : ".$nbr_soldiers2." Unités de ".$user2." attaquent le Château de ".$user1."";
- $time = time();
- mysql_query("INSERT INTO td_histo_game(id, game_id, time, content) VALUES('', '$game_id', '$time', '$txt') ")or die(mysql_error());
- }
- //Etape 5 Attaque sur les Châteaux
- //Etape 5.1 : Attaque sur Chateau joueur 1
- //Calcul des dégats de l'armée 2
- if($attack_2 > 0)
- {
- //Le joueur 2 a fait une percée
- WinStatAttack('Perce', 1, $user2);
- foreach($army2 as $key => $value)
- {
- $degats_2_castle += $liste_unit[$key]['Attaque'] * abs($value);
- }
- $pv_restant_1 = $castle_1_PV - $degats_2_castle;
- if($hard == 1 AND $user1_prot == 1)
- {
- $degats_2_castle = 0;
- $txt = "Percée de ".$user2." mais l\'utilisation d\'un Livre Satanique repousse les troupes.";
- $time = time();
- }
- else
- {
- $txt = "Percée de ".$user2." : ".$degats_2_castle." dégâts sur le Château.";
- $time = time();
- }
- mysql_query("INSERT INTO td_histo_game(id, game_id, time, content) VALUES('', '$game_id', '$time', '$txt') ")or die(mysql_error());
- }
- else
- {
- WinStatAttack('Def', 1, $user1); //Le joueur 1 a protégé son château !
- $pv_restant_1 = $castle_1_PV;
- }
- //Etape 5.2 : Attaque sur Chateau joueur 2
- //Calcul des dégats de l'armée 1
- if($attack_1 > 0)
- {
- //le joueur 1 a fait une Percée :
- WinStatAttack('Perce', 1, $user1);
- foreach($army1 as $key => $value)
- {
- $degats_1_castle += $liste_unit[$key]['Attaque'] * abs($value);
- }
- if($hard == 1 AND $user2_prot == 1)
- {
- $degats_1_castle = 0;
- $txt = "Percée de ".$user1." mais l\'utilisation d\'un Livre Satanique repousse les troupes.";
- $time = time();
- }
- else
- {
- $txt = "Percée de ".$user1." : ".$degats_1_castle." dégâts sur le Château.";
- $time = time();
- }
- mysql_query("INSERT INTO td_histo_game(id, game_id, time, content) VALUES('', '$game_id', '$time', '$txt') ")or die(mysql_error());
- $pv_restant_2 = $castle_2_PV - $degats_1_castle;
- }
- else
- {
- WinStatAttack('Def', 1, $user2); //Le joueur 2 a protégé son château !
- $pv_restant_2 = $castle_2_PV;
- }
- if($pv_restant_1 < $Max_PV_Castle_1 AND $pv_restant_1 < $castle_1_PV)
- {
- mysql_query("UPDATE td_bat SET PV = '".$pv_restant_1."' WHERE owner = '".$u1_id."' AND bat = 'Castle' ")or die(mysql_error());
- }
- if($pv_restant_2 < $Max_PV_Castle_2 AND $pv_restant < $castle_2_PV )
- {
- mysql_query("UPDATE td_bat SET PV = '".$pv_restant_2."' WHERE owner = '".$u2_id."' AND bat = 'Castle' ")or die(mysql_error());
- }
- //Etape 5.3 : Vérifier si vainqeur
- //Egalité
- if($pv_restant_1 <= 0 AND $pv_restant_2 <= 0)
- {
- $vic = "egal";
- mysql_query("UPDATE td_users SET vic_act = '1' WHERE uid = '".$u1_id."'")or die(mysql_error());
- mysql_query("UPDATE td_users SET vic_act = '1' WHERE uid = '".$u2_id."'")or die(mysql_error());
- mysql_query("UPDATE td_game SET fini = '1' WHERE id = '".$game_id."' ")or die(mysql_error());
- }
- else
- {
- //Victoire normal
- if($pv_restant_1 <= 0)
- {
- $vic = 2;
- mysql_query("UPDATE td_users SET protectedAttaque = '0', vic_act = '2' WHERE uid = '".$u2_id."' ")or die(mysql_error());
- mysql_query("UPDATE td_users SET protectedAttaque = '0', vic_act = '-1' WHERE uid = '".$u1_id."' ")or die(mysql_error());
- mysql_query("UPDATE td_game SET fini = '1' WHERE id = '".$game_id."' ")or die(mysql_error());
- }
- elseif($pv_restant_2 <= 0)
- {
- $vic = 1;
- mysql_query("UPDATE td_users SET protectedAttaque = '0',vic_act = '2' WHERE uid = '".$u1_id."' ")or die(mysql_error());
- mysql_query("UPDATE td_users SET protectedAttaque = '0', vic_act = '-1' WHERE uid = '".$u2_id."' ")or die(mysql_error());
- mysql_query("UPDATE td_game SET fini = '1' WHERE id = '".$game_id."' ")or die(mysql_error());
- }
- else
- {
- }
- }
- //Etape 5.4 : MAJ des données
- if($vic != "egal" AND $vic != 1 AND $vic != 2)
- {
- //Etape 6 : Nouveau tour
- $turn = $game_data['tour'];
- //Etape 6.1 : Gain de ressources (Par tour + Income) + Gain d'unité kill
- $new_gold = $coeff_hard*giveTurnOr($turn);
- $new_water = $coeff_hard*giveTurnWater($turn);
- mysql_query("UPDATE td_users SET protectedAttaque = '0', ress_gold = ress_gold + '".$new_gold."' + '".$u1_income."' + '".$win_or_1."' , ress_water = ress_water + '".$new_water."' + '".$win_water_1."' WHERE uid = '".$u1_id."' ")or die(mysql_error());
- mysql_query("UPDATE td_users SET protectedAttaque = '0', ress_gold = ress_gold + '".$new_gold."' + '".$u2_income."' + '".$win_or_2."' , ress_water = ress_water + '".$new_water."' + '".$win_water_2."' WHERE uid = '".$u2_id."' ")or die(mysql_error());
- //Etape 6.2 : Nouveau recrutement d'unités
- $new_units = RecrutingDay($turn, $hard);
- foreach($new_units as $key => $value)
- {
- $verif_query = mysql_query("SELECT id FROM td_units WHERE name = '".$key."' AND owner = '".$user1."' ")or die(mysql_error());
- $verif_nbr = mysql_num_rows($verif_query);
- if($verif_nbr == 0)
- {
- mysql_query("INSERT INTO td_units(id, name, owner, nbr) VALUES('', '$key', '$user1', '$value') ")or die(mysql_error());
- }
- else
- {
- mysql_query("UPDATE td_units SET nbr = nbr + '".$value."' WHERE owner = '".$user1."' AND name = '".$key."' ")or die(mysql_error());
- }
- }
- foreach($new_units as $key => $value)
- {
- $verif_query = mysql_query("SELECT id FROM td_units WHERE name = '".$key."' AND owner = '".$user2."' ")or die(mysql_error());
- $verif_nbr = mysql_num_rows($verif_query);
- if($verif_nbr == 0)
- {
- mysql_query("INSERT INTO td_units(id, name, owner, nbr) VALUES('', '$key', '$user2', '$value') ")or die(mysql_error());
- }
- else
- {
- mysql_query("UPDATE td_units SET nbr = nbr + '".$value."' WHERE owner = '".$user2."' AND name = '".$key."' ")or die(mysql_error());
- }
- }
- //Etape 6.3 Update champ tour dans td_game
- mysql_query("UPDATE td_game SET tour = tour + '1' WHERE id = '".$game_id."' ")or die(mysql_error());
- mysql_query("UPDATE td_users SET vote = '0', Assaut = '0', tireArchi = '0' WHERE pseudo = '".$user1."' ")or die(mysql_error());
- mysql_query("UPDATE td_users SET vote = '0', Assaut = '0', tireArchi = '0' WHERE pseudo = '".$user2."' ")or die(mysql_error());
- }
- //FIN ! ENFIN !
- $txt = "Un nouveau jour se lève...";
- $time = time();
- mysql_query("INSERT INTO td_histo_game(id, game_id, time, content) VALUES('', '$game_id', '$time', '$txt') ")or die(mysql_error());
- global $href;
- header('Location: index2.php?'.$href);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement