⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 armament_unite_processing_task.php

📁 Download you own three BR
💻 PHP
📖 第 1 页 / 共 4 页
字号:
							//城墙防御力提高5%   防御加固  s_recovery
							$fang_rampart_comm_add=$list_fang_study['s_recovery']*$rampart_add_comm;
							$query_ls=$db->query("select b_citywall_fy from building where u_id='".$war_array_fp['to_u_id']."' and c_id='".$war_array_fp['to_c_id']."';");
							$list_ls=$db->fetch_array($query_ls);
							//城墙防御值
							$fang_rampart_comm_add=$list_ls['b_citywall_fy']+$fang_rampart_comm_add*$list_ls['b_citywall_fy'];
							
							//武器制造  所有近战兵种攻击伤害提高5%  武器制造 s_arm   
							$fang_close_in_power_add=$list_fang_study['s_arm']*$close_in_add_power;
							
							//铠甲制造  所有近战兵种防御力提高5%    铠甲制造 s_loricae 
							$fang_close_in_comm_add=$list_fang_study['s_loricae']*$close_in_add_comm;
							
							//机械技术  远程、机械兵种防御力提高5%    机械技术 s_engine 
							$fang_long_range_comm_add=$list_fang_study['s_engine']*$long_range_add_comm;
							
							//弹道技术  远程、机械兵种攻击伤害提高5%  弹道技术 s_trajectory  
							$fang_long_range_power_add=$list_fang_study['s_trajectory']*$long_range_add_power;
							
							//兵法专精  所有部队攻击力提高5%   兵法专精 s_tactics  
							$fang_all_soldier_power_add=$list_fang_study['s_tactice']*$all_soldier_add_power;
							
							//阵法专精  所有部队防御力提高5%   阵法专精 s_position  
							$fang_all_soldier_add_comm=$list_fang_study['s_position']*$all_soldier_add_comm;
							
						//统计城市内士兵数,探子与筑城车不算在内;
						$query_ls=$db->query("select * from soldier where u_id='".$war_array_fp['to_u_id']."' and c_id='".$war_array_fp['to_c_id']."';");
						$list_ls=$db->fetch_array($query_ls);
						if (!$soldier_type_name_en) include_once("configs/Configs.php");
						
						//引用临时变量清空区
							unset($fang_soldier_num_temp,$fang_soldier_name_temp,$fang_soldier_type_array_num_temp,$fang_soldier_num_temp_ls);   //临时存入防御方兵数,临时存入防御方兵种名称,临时存入防御方数组数
							unset($fang_soldier_one_power,$fang_soldier_one_comm,$fang_soldier_one_life,$fang_info_array,$fang_soldier_one_exert);    //临时存入单兵伤害,单兵防御,单兵血量,守方战报
							
							
						foreach ($soldier_type_name_en as $ai => $an)
						{
							
							if ($ai<>2 && $ai<>8) {//探了与筑城车除外
								if ($list_ls[$an]>0) {//此种类士兵大于0;
									//临时存入防御方兵数;
									$fang_soldier_num_temp[]=$list_ls[$an];
									$fang_soldier_num_temp_ls[]=$list_ls[$an];
									
									//临时存入防御方兵种名称;
									$fang_soldier_name_temp[]=$soldier_type_name[$ai];
									
									//临时存入防御方数组数;
									$fang_soldier_type_array_num_temp[]=$ai;
									
									//查询士兵信息基础表;
									$query_soldier_base=$db->query("select * from soldier_attribute where s_type='".$ai."';");
									$list_soldier_base=$db->fetch_array($query_soldier_base);
									
									//单兵伤害值;
									$fang_soldier_one_power[]=$list_soldier_base['s_attack'];
										
									//单兵防御值;
									$fang_soldier_one_comm[]=$list_soldier_base['s_recovery'];
										
									//单兵血量;武将智力加成
									$fang_soldier_one_life[]=$list_soldier_base['s_life']*$fang_life_add;
									
									//攻击发挥
									$fang_soldier_one_exert[]=$list_soldier_base['attack_exert'];
								}
							}
						}
						/*//////////////////////////////测试区/////////////////////////////
						//计算攻方总伤害和总防御;
						include_once("gon_processing.php");
						//计算防守方总伤害和总防御;
						include_once("fang_processing.php");	
						echo $gon_info."|".$gon_all_power."|".$gon_now_num.'<br/>';
						echo $gon_info.'<br/>';
						echo $fang_info."|".$fang_all_power."|".$fang_now_num.'<br/>';
						echo $fang_info;
						exit;
						//////////////////////////////测试区/////////////////////////////*/
						$aj=0;
						/////////////////////
						//攻击开始(最多3次)[$war_max_num]
						/////////////////////
						for ($kj=1;$kj<=$war_max_num;$kj++)
						{
							if ($kj<=$war_max_num) {
								//计算攻方总伤害和总防御;
								include("gon_processing1.php");
								//计算防守方总伤害和总防御;
								include("fang_processing.php");
							
							
							//存入攻方临时攻击
							$gon_all_power_ls=$gon_all_power;
							//存入防守方临时攻击
							$fang_all_power_ls=$fang_all_power;
							
							if ($fang_now_num<1||$gon_now_num<1) {
								break;
							}
							
							//////////////////////攻方打防守方//////////////////////
							$kf=0;
							$last_power_temp_ls=0;
							//减防后剩于伤害值
							$last_power_temp=(int)($gon_all_power_ls-$fang_all_comm);
								//如果小于等于0,不破防不死兵;								
								if ($last_power_temp>0) {
									$end_i=0;
									//计算有几种士兵;$gon_soldier_num_temp士兵数数组
									$fang_num=count($fang_soldier_num_temp);
									//循环开始;
									while ($kf<$fang_now_num)
									{
										//每个士兵种类应该分以的伤害为(int)($last_power_temp/$fang_now_num);
										$last_power_temp=$last_power_temp-$last_power_temp_ls;
										if ($last_power_temp_ls<>0) $last_power_temp_ls=0;
										if ($last_power_temp<1 || $fang_now_num<1) 
										{
											break;
										}else {
											$power_one=(int)($last_power_temp/$fang_now_num);
											if ($power_one<1) break;
										}
										for ($i=0;$i<$fang_num;$i++)
										{
											if ($power_one<$fang_soldier_one_life[$i]) {
												$end_i+=1;
											}else {
												if ($fang_soldier_num_temp[$i]>0)//如果此兵种还有士兵的话
												{		
													//死亡士兵公式:(int)($power_one/$fang_soldier_one_life[$i])
													$dear_num=(int)($power_one/$fang_soldier_one_life[$i]);
														
													//如果现有兵数减去死亡兵数大于0,减去对应兵数,总伤害减少;
													if ($fang_soldier_num_temp[$i]-$dear_num>0) {
														$last_power_temp_ls=$last_power_temp_ls+$dear_num*$fang_soldier_one_life[$i];
														$fang_soldier_num_temp[$i]=$fang_soldier_num_temp[$i]-$dear_num;
													}else {
														//如果现有兵数减去死亡兵数小于或等于0,对应兵数为0,减少相应总伤减害;
														$last_power_temp_ls=$last_power_temp_ls+$fang_soldier_num_temp[$i]*$fang_soldier_one_life[$i];
														$fang_soldier_num_temp[$i]=0;
														$fang_now_num-=1;												
													}
												} else $end_i+=1;
											}
										}
										$kf++;
									}
									//循环结束;
								}
								
							////////////////////////攻方打守方结束/////////////////////////
							
							
							//////////////////////守方打攻方//////////////////////
							$k=0;
							$kf=0;
							$last_power_temp_ls=0;
							//减防后剩于伤害值
							$last_power_temp=$fang_all_power_ls-$gon_all_comm;
								//如果小于等于0,不破防不死兵;
								if ($last_power_temp>0) {
									$end_i=0;
									//计算有几种士兵;$gon_soldier_num_temp士兵数数组
									$gon_num=count($gon_soldier_num_temp);
									//循环开始;
									while ($kf<$gon_now_num)
									{
										$k++;
										//每个士兵种类应该分以的伤害为(int)($last_power_temp/$gon_now_num);
										$last_power_temp=$last_power_temp-$last_power_temp_ls;
										if ($last_power_temp_ls<>0) $last_power_temp_ls=0;
										if ($last_power_temp<1 || $gon_now_num<1) 
										{
											break;
										}else {
											$power_one=(int)($last_power_temp/$gon_now_num);
											if ($power_one<1) break;
										}										
										for ($i=0;$i<$gon_num;$i++)
										{											
											if ($power_one<$gon_soldier_one_life[$i]) {
												$end_i=$end_i+1;
											}else {
												if ($gon_soldier_num_temp[$i]>0)//如果此兵种还有士兵的话
												{																							
													//死亡士兵公式:(int)($power_one/$gon_soldier_one_life[$i])
													$dear_num=(int)($power_one/$gon_soldier_one_life[$i]);												
													
	//												echo $last_power_temp.'|'.$gon_now_num.'|'.$power_one.'|'.$gon_soldier_one_life[$i].'|'.$dear_num.'|'.$gon_soldier_num_temp[$i].'<br/>';	
													
													//如果现有兵数减去死亡兵数大于0,减去对应兵数,总伤害减少;
													if ($gon_soldier_num_temp[$i]-$dear_num>0) {
														$last_power_temp_ls=$last_power_temp_ls+$dear_num*$gon_soldier_one_life[$i];
														$gon_soldier_num_temp[$i]=$gon_soldier_num_temp[$i]-$dear_num;
													}else {
														//如果现有兵数减去死亡兵数小于或等于0,对应兵数为0,减少相应总伤减害;
														$last_power_temp_ls=$last_power_temp_ls+$gon_soldier_num_temp[$i]*$gon_soldier_one_life[$i];
														$gon_soldier_num_temp[$i]=0;
														$gon_now_num=$gon_now_num-1;												
													}
												}else $end_i=$end_i+1;
											}
										}
										$kf++;
									}
									//循环结束;
								}
							////////////////////////守方打攻方结束/////////////////////////
							}
						}
						
						
						
						//////////////////////
						//计算结果
						/////////////////////
							
							//攻方
							$gon_end_soldier_all=0;       //现士兵数;
							$gon_num_soldier_all=0;       //死亡士兵数;
							$fang_gen_explo_all=0;         //武将总获得经验;
							//计录攻方最后死亡兵种(兵数);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -