View file element_mission_battle.php

File size: 18.32Kb
<?php
require_once './element_options/element_options.php';
if (!$user) { header('Location: /'); exit; }

$params = readcache('element_mission_user_'.$user['lost_id']);
if (!$params) { header('Location: /mission'); exit; } // Если нет данных боя, переадрес в миссии

require_once './element_function/element_function_mission.php';
require_once './element_function/element_function_battle.php';
$status_game = status_game($params['user_params']['life'], $params['bot_params']['life'], $params['user_params']['avto_battle']);

	$journal = readcache('element_mission_journal'.$user['lost_id']);
	if (!is_array($journal)) $journal = array();
	$count_journal = count($journal);

	$avto_battle = (isset($_GET['avto_battle'])) ? true : false;
	
// Бой руками!
if ($status_game == 0 AND !$avto_battle) {
	$abil_ogon = AbilitiesOgon($user['lost_abilities_ogon'], $user['lost_race'], false, $user['lost_id']);
	$abil_voda = AbilitiesVoda($user['lost_abilities_voda'], $user['lost_race'], false, $user['lost_id']);
	$abil_zeml = AbilitiesZemlya($user['lost_abilities_zemlya'], $user['lost_race'], false, $user['lost_id']);
	$abil_vosd = AbilitiesVozdyh($user['lost_abilities_vozduh'], $user['lost_race'], false, $user['lost_id']);
	$add_hp = 0;
	
	//abilities_race_zemla($time, $time_refresh)
	if ($params['bot_params']['time']) {
		$time_bot = explode(' ', $params['bot_params']['time']);
		$time_fre = explode(' ', microtime());
		$time_udar_bot = ceil(($time_fre[1] + $time_fre[0]) - ($time_bot[1] + $time_bot[0]));
	} else $time_udar_bot = 5;
	$rand_udar_s = rand(3,4);
	
	// Удары бота по мне
	if ($time_udar_bot > $rand_udar_s) {
		$other_count_udat = (int)($time_udar_bot / $rand_udar_s);
		
		$bot_uron = 0;
		for($i = 0; $i < $other_count_udat; $i++) {
			
			$uron = GenerationUron($params['bot_params']['strlen'], $params['bot_params']['time'], 0, 0, $abil_zeml['add_procent'], GenerationProtection($user['lost_params_protection']));
			
			$params['user_params']['hp'] = $params['user_params']['hp'] - $uron;
			array_unshift($journal, '<span class="small red"><img src="/images/icons/arena.gif"> '.$params['bot_params']['name'].' ударил '.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].' на <span class="bold">'.$uron.'</span> урон</span>');
			if (count($journal) > 15) unset($journal[15]);
			
			if ($params['user_params']['hp'] <= 0) {
				array_unshift($journal, '<span class="small red"><img src="/images/icons/arena.gif"> '.$params['bot_params']['name'].' убил '.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].'</span>');
				array_unshift($journal, '<span class="lngreen bold">Бой закончен</span>');
				if (count($journal) > 15) unset($journal[15]);
					
					$crst = handler_cristalls(1, $user_blessing['nagrada']);	
					$params['missions']['cristalls'] = $crst;	
					
					update_money_exp($user, 1, $crst, 0, 0);
					
				$params['user_params']['life'] = 1;	
				writecache('element_mission_user_'.$user['lost_id'],$params);
				writecache('element_mission_journal'.$user['lost_id'], $journal);
				writecache('element_users_battle'.$user['lost_id'], '');
				$status_game = 2;
				break;
			}
			
			$bot_uron = $bot_uron + $uron;
		}
	$params['bot_params']['time'] = microtime();
	writecache('element_mission_user_'.$user['lost_id'],$params);
	writecache('element_mission_journal'.$user['lost_id'], $journal);
	} else {
		$bot_uron = 0;
		$abil_zeml = abilities_race_zemlya(0, $abilities_zeml[2], $abilities_zeml[1], $abilities_zeml[3], $abilities_zeml[4], 0);
	}
if ($status_game != 2) {
	
	// Мой удар по боту
	if ($go == 'attaka') {

	// Активация Огненной силы
	if ($id == 1 AND !$abil_ogon['activate']) {
		$abil_ogon = AbilitiesOgon($user['lost_abilities_ogon'], $user['lost_race'], true, $user['lost_id']);
		$image = quality_item_name($user['lost_abilities_ogon']);
		array_unshift($journal, '<span class="small admin">'.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].' активировал <span class="bold yellow1">'.$image['image'].' огненную силу</span></span>');
	}

	// Активация Водяного крита
	if ($id == 2 AND !$abil_voda['activate']) {
		$abil_voda = AbilitiesVoda($user['lost_abilities_voda'], $user['lost_race'], true, $user['lost_id']);
		$image = quality_item_name($user['lost_abilities_voda']);
		array_unshift($journal, '<span class="small admin">'.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].' активировал <span class="bold yellow1">'.$image['image'].' водяной крит</span></span>');
	}

	// Активация Ловушки ветра
	if ($id == 3 AND !$abil_vosd['active']) {
		$abil_vosd = AbilitiesVozdyh($user['lost_abilities_vozduh'], $user['lost_race'], true, $user['lost_id']);
		$image = quality_item_name($user['lost_abilities_vozduh']);
		array_unshift($journal, '<span class="small admin">'.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].' активировал <span class="bold yellow1">'.$image['image'].' ловушку ветра</span></span>');
		
		// Если шанс сработал, забираем хп
		if ($abil_vosd['add_hp'] > 0) {
			$add_hp = (int)(($params['bot_params']['other_hp'] / 100) * $abil_vosd['add_hp']);
			$my_ras_hp = $params['user_params']['other_hp'] - $params['user_params']['hp'];
			if ($add_hp > $my_ras_hp) $add_hp = $my_ras_hp;
			$params['bot_params']['hp'] = $params['bot_params']['hp'] - $add_hp;
			$params['user_params']['hp'] = $params['user_params']['hp'] + $add_hp;
			array_unshift($journal, '<span class="small admin">'.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].' забрал у '.$params['bot_params']['name'].' <span class="bold">'.$add_hp.'</span> здоровья</span>');
		}
	}
	
	// Активация Земляной стойкости
	if ($id == 4 AND !$abil_zeml['activate']) {
		$abil_zeml = AbilitiesZemlya($user['lost_abilities_zemlya'], $user['lost_race'], true, $user['lost_id']);
		$image = quality_item_name($user['lost_abilities_zemlya']);
		array_unshift($journal, '<span class="small admin">'.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].' активировал <span class="bold yellow1">'.$image['image'].' земляной щит</span></span>');
	}
	
	// quality_item_name($quality)
	
		$user_uron = GenerationUron($user['lost_params_strlen'], $params['user_params']['time'], $abil_ogon['add_procent'], $abil_voda['add_procent'], 0, 40);

		$params['bot_params']['hp'] = $params['bot_params']['hp'] - $user_uron;
		$params['user_params']['time'] = microtime();
		array_unshift($journal, '<span class="small yellow1">'.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].' ударил '.$params['bot_params']['name'].' на <span class="bold">'.$user_uron.'</span> урон '.(($abil_voda['add_procent'] > 0) ? 'крит' : '').'</span>');
		
		if ($params['bot_params']['hp'] <= 0) {
		require_once './element_function/element_function_item.php';
			$params['bot_params']['life'] = 1;
			array_unshift($journal, '<span class="small yellow1">'.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].' убил '.$params['bot_params']['name'].'</span>');
			array_unshift($journal, '<span class="lngreen bold">Бой закончен</span>');
			if (count($journal) > 15) unset($journal[15]);
			$status_game = 2;
			writecache('element_users_battle'.$user['lost_id'], '');
			
			$shoot_item = users_shoot_item($user['lost_id']);
			$create_item = create_item($user['lost_id'], $shoot_item, RandEquipMission($params['missions']['equip']), false, false, false, false, false, false, false, false);
			$params['missions']['equipment'] = $create_item;
			
			if ($params['missions']['end_count'] > $params['missions']['my_count']) $count_c = $params['missions']['my_count'] + 1; else $count_c = $params['missions']['my_count'];
			if ($count_c > $params['missions']['other_count']) $params['missions'] = $params['other_count'];
			$params['missions']['my_count'] = $count_c;
			$location = $params['missions']['location'];
			mysql_query("UPDATE `element_mission_user` SET `lost_location$location` = '$count_c' WHERE `lost_user` = '$user[lost_id]' LIMIT 1");
					
			$user_quests = user_quests($user['lost_id']);
			$count_quests = quests_id_count('missions_10');
				if ($user_quests['missions_10'] < $count_quests) {
					$user_quests['missions_10'] = $user_quests['missions_10'] + 1;
					if ($user_quests['missions_10'] == $count_quests) $user_quests['lost_new'] = $user_quests['lost_new'] + 1;
					writecache('element_quests_user'.$user['lost_id'], $user_quests);	
					quests_list_update($user['lost_id']);
				}
			
				$expooint = handler_expoint($params['missions']['expoint'], $user['lost_add_user_exp'], $user['lost_add_town_exp']);
				$params['missions']['expoint'] = $expooint['user'];
				
				update_money_exp($user, $expooint, $params['missions']['cristalls'], 0, $params['missions']['gold']);
				$lost_exp = explode(' ', $user['lost_exp']);
			
		}
		
		writecache('element_mission_user_'.$user['lost_id'],$params);
		writecache('element_mission_journal'.$user['lost_id'], $journal);
	} else {
		$user_uron = 0;
		$abit_ogon = abilities_race_ogon(0, $abilities_ogon[2], $abilities_ogon[1], $abilities_ogon[3], $abilities_ogon[4], 0);
		$abit_voda = abilities_race_voda(0, $abilities_voda[1], $abilities_voda[2], $abilities_voda[3], 0);
	}

if ($status_game != 2) {	
$title = 'Битва стихий';
require_once './element_include/element_head.php';
echo '<body><div class="p5">';
	
	
	$my_user = array('user_race' => $user['lost_race'], 'user_hp' => $params['user_params']['hp'], 
					 'user_other_hp' => $params['user_params']['other_hp'], 'user_name' => $user['lost_login'],
					 'user_uron' => $bot_uron, 'user_add_hp' => $add_hp);
				
	$no_user = array('user_race' => 0, 'user_hp' => $params['bot_params']['hp'], 
					 'user_other_hp' => $params['bot_params']['other_hp'], 'user_name' => $params['bot_params']['name'],
					 'user_uron' => $user_uron, 'user_add_hp' => 0);	
	
	EchoTableUsersBattle($my_user, $no_user);
	EchoAbiliteBattle($abil_ogon, $abil_voda, $abil_vosd, $abil_zeml, false, 'w19', '35', 0, '/mission/battle');

if ($count_journal > 0) {
	echo '<div class="nfl p5 mb5 small mlra">';
		foreach (array_slice($journal, 0, 10, true) as $value) {
			echo '<span class="white">'.$value.'<span><br/>';
		}
	echo '</div>';
}
echo '<div class="mb5 cntr small"><a class="button w50" href="/mission/battle?avto_battle">Автобой</a><br/><a class="button mt5 w50" href="/">Сбежать с боя</a></div>';
require_once './element_include/element_foot_user_battle_true.php';
exit;
}
}
}

// Автобой!
if ($status_game == 1 OR $status_game == 0 AND $avto_battle) {
	require_once './element_function/element_function_battle.php'; 
	$close = 0;
	if (!$avto_battle) $params['user_params']['hp'] = ceil($params['user_params']['hp'] * 0.75);
	$lost_protection = ceil($user['lost_params_protection'] * 0.75);
	
	do {
		$bot_uron = GenerationUron($params['bot_params']['strlen'], false, 10, 0, 0, GenerationProtection($user['lost_params_protection']));	
		$user_uron = GenerationUron($user['lost_params_strlen'], false, 0, 0, 0, 0);	
			
		//$user_protection = Protection(50, element_settings_game('lost_max_protection'));
		//$user_uron = GenerateUron($user['lost_params_strlen'],$params['user_params']['time'],$user_protection);
		//$user_uron = ceil($user_uron * 0.75);

		$params['user_params']['hp'] = $params['user_params']['hp'] - $bot_uron;
		array_unshift($journal, '<span class="small red"><img src="/images/icons/arena.gif"> '.$params['bot_params']['name'].' ударил '.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].' на <span class="bold">'.$bot_uron.'</span> урон</span>');
		
		$params['bot_params']['hp'] = $params['bot_params']['hp'] - $user_uron;	
		array_unshift($journal, '<span class="small yellow1">'.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].' ударил '.$params['bot_params']['name'].' на <span class="bold">'.$user_uron.'</span> урон</span>');
		
		if ($params['user_params']['hp'] <= 0) {
			$params['user_params']['life'] = 1;	
			array_unshift($journal, '<span class="small red"><img src="/images/icons/arena.gif"> '.$params['bot_params']['name'].' убил '.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].'</span>');
			array_unshift($journal, '<span class="lngreen bold">Бой закончен</span>');
			$crst = handler_cristalls(1, $user_blessing['nagrada']);	
			$params['missions']['cristalls'] = $crst;		
				
			update_money_exp($user, 1, $crst, 0, 0);
					
			writecache('element_mission_user_'.$user['lost_id'],$params);
			writecache('element_mission_journal'.$user['lost_id'], $journal);
			writecache('element_users_battle'.$user['lost_id'], '');
			$status_game = 2;
			$close = 1;
			break;
		}
		
		if ($params['bot_params']['hp'] <= 0) {
		require_once './element_function/element_function_item.php';
			$params['bot_params']['life'] = 1;
			array_unshift($journal, '<span class="small yellow1">'.ikonka_user($user['lost_race'], 'online').' '.$user['lost_login'].' убил '.$params['bot_params']['name'].'</span>');
			array_unshift($journal, '<span class="lngreen bold">Бой закончен</span>');
			if (count($journal) > 15) unset($journal[15]);
			$status_game = 2;
			
			$shoot_item = users_shoot_item($user['lost_id']);
			$create_item = create_item($user['lost_id'], $shoot_item, chanse_mission(), false, false, false, false, false, false, false, false);
			$params['missions']['equipment'] = $create_item;
			
			if ($params['missions']['end_count'] > $params['missions']['my_count']) $count_c = $params['missions']['my_count'] + 1; else $count_c = $params['missions']['my_count'];
			if ($count_c > $params['missions']['other_count']) $params['missions'] = $params['other_count'];
			$params['missions']['my_count'] = $count_c;
			$location = $params['missions']['location'];
			mysql_query("UPDATE `element_mission_user` SET `lost_location$location` = '$count_c' WHERE `lost_user` = '$user[lost_id]' LIMIT 1");
					
			$expooint = handler_expoint($params['missions']['expoint'], $user['lost_add_user_exp'], $user['lost_add_town_exp']);
			$params['missions']['expoint'] = $expooint['user'];		
					
			$user_quests = user_quests($user['lost_id']);
			$count_quests = quests_id_count('missions_10');
				if ($user_quests['missions_10'] < $count_quests) {
					$user_quests['missions_10'] = $user_quests['missions_10'] + 1;
					if ($user_quests['missions_10'] == $count_quests) $user_quests['lost_new'] = $user_quests['lost_new'] + 1;
					writecache('element_quests_user'.$user['lost_id'], $user_quests);	
					quests_list_update($user['lost_id']);
				}
			
			
			update_money_exp($user, $expooint, $params['missions']['cristalls'], 0, $params['missions']['gold']);

				writecache('element_users_battle'.$user['lost_id'], '');
				writecache('element_mission_user_'.$user['lost_id'],$params);
				writecache('element_mission_journal'.$user['lost_id'], $journal);
				
				$lost_exp = explode(' ', $user['lost_exp']);
				$status_game = 2;
				$close = 1;
				break;
		}
		//echo '<span class="lngreen">'.$params['user_params']['hp'].'/ '.$user_uron.'</span><br/>';
		//echo '<span class="ccc">'.$params['bot_params']['hp'].'/ '.$bot_uron.'</span><br/>';
	} while($close == 0);

}

// Результат боя!
if ($status_game == 2) {
if ($params['bot_params']['life'] == 0) $pobeda = 0; else $pobeda = 1;
$title = 'Результат боя';
require_once './element_include/element_head.php';
require_once './element_include/element_header_user_true.php';
echo '<div class="nfl p5 mb5 cntr small mlra">';

if ($pobeda == 1) {
echo '<div class="medium bold"><span class="lngreen">Вы выиграли</span></div>';
echo '<div class="cntr p5 small yellow1">Награда: ';
echo ($params['missions']['gold'] > 0) ? '<img src="/images/icons/gold.png">'.$params['missions']['gold'].' золота, ' : '';
echo '<img src="/images/icons/cristall.png">'.$params['missions']['cristalls'].' кристаллов, ';
echo '<img width="13" height="12" src="/images/icons/experience.png">'.$params['missions']['expoint'].' опыта';
echo '</div>';
	
	// Найденная вещь
	if ($params['missions']['equipment'] > 0) {
		require_once './element_function/element_function_item.php';
		$item_id = cache_item($params['missions']['equipment']);
		$genaration_params = item_generation_params($item_id['lost_strlen'], $item_id['lost_heatpoints'], $item_id['lost_protection'], $item_id['lost_comparison']);
		$quality = quality_item_name($item_id['lost_quality']);
			
		echo '<div class="mlra"><table class="mlra"><td><img width="50" height="50" src="'.$item_id['lost_avatar'].'"></td>';
		echo '<td class="small left" valign="top">';
		echo '<span class="ml5 small yellow1">'.$quality['image'].' <a href="/item?id='.$item_id['lost_id'].'">'.$item_id['lost_name'].'</a></span><br/>';
		echo '<span class="ml5 small lngreen">'.name_item_mesto($item_id['lost_mesto']).'</span>';
		echo '</td></table></div>';
	}


}

if ($pobeda == 0) {
echo '<div class="medium bold"><span class="red">Вы проиграли</span></div>';
echo '<div class="cntr p5 small yellow1">Награда: ';
echo '<img src="/images/icons/cristall.png">'.$params['missions']['cristalls'].' кристалл, ';
echo '<img width="13" height="12" src="/images/icons/experience.png">1 опыта';
echo '</div>';
}

echo '<div><a class="button w50" href="/mission/location?id='.$params['missions']['location'].'&mission='.$params['missions']['mission'].'&go=start&z='.$params['missions']['end_count'].'">'.(($params['missions']['my_count'] < $params['missions']['end_count']) ? 'Ещё раз' : 'Повторить').'</a>';
echo '<br/><a class="button mt5 w50" href="/mission/location?id='.$params['missions']['location'].'">К списку миссий</a></div>';


echo '</div>';

if ($count_journal > 0) {
	echo '<div class="nfl p5 mb5 small mlra">';
		foreach (array_slice($journal, 0, 10, true) as $value) {
			echo '<span class="white">'.$value.'<span><br/>';
		}
	echo '</div>';
}

require_once './element_include/element_foot_user_true.php';
}


?>