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

📄 armament_action_processing_task.php

📁 Download you own three BR
💻 PHP
📖 第 1 页 / 共 5 页
字号:
							//攻击开始(最多3次)[$war_max_num]
							/////////////////////
							for ($kj=1;$kj<=$war_max_num;$kj++)
							{
								if ($kj<=$war_max_num) {
									//计算攻方总伤害和总防御;
									include("gon_processing.php");
									//计算防守方总伤害和总防御;
									include("fang_processing.php");
								
								
								//存入攻方临时攻击
								$gon_all_power_ls=$gon_all_power;
								if ($kj==1) {
									//记录攻方第一次伤害
									$gon_all_power_first=$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;         //武将总获得经验;
								//计录攻方最后死亡兵种(兵数);
								$gon_end_dear_army='';
								//计录攻方最后剩作兵种(兵数);
								$gon_end_life_army='';
								
								$ls=count($gon_soldier_num_temp_ls);
								for ($i=0;$i<count($gon_soldier_num_temp_ls);$i++)
								{
									//记录现在有士兵数
									$gon_end_life_army_array[$i]=0;
									
									if ($gon_soldier_num_temp_ls[$i]>0) {
									
										//单兵死亡数$gon_num_ls;
										$gon_num_ls=$gon_soldier_num_temp_ls[$i]-$gon_soldier_num_temp[$i];
										
										//死亡士兵数
										$gon_num_soldier_all=$gon_num_soldier_all+$gon_num_ls;
										
										//士兵死亡数,例:兵种名称(死亡数);
										$gon_end_dear_army=$gon_end_dear_army.$gon_soldier_name_temp[$i].'('.$gon_num_ls.')';
										
										//记录现在有士兵数
										$gon_end_life_army_array[$i]=$gon_soldier_num_temp[$i];
																			
										//死亡士兵更新表;
	//									$db->query("update soldier set ".$soldier_type_name_en[$gon_soldier_type_array_num_temp[$i]]."=(".$soldier_type_name_en[$gon_soldier_type_array_num_temp[$i]]."-'".$gon_num_ls."') where  u_id='".$war_array['u_id']."' and c_id='".$war_array['c_id']."'");
																			
										//守方武将经验数:
										$fang_gen_explo_all=$fang_gen_explo_all+$war_gen_add_score[$gon_soldier_type_array_num_temp[$i]]*$gon_num_ls;
										
										//算士兵现在总数
										$gon_end_soldier_all=$gon_end_soldier_all+$gon_soldier_num_temp[$i];
									}
								}
								//守方玩家经验;公式:100+(死亡兵数[$gon_num_soldier_all]*1)
								$fang_player_explo=0;
								$fang_player_explo=100+($gon_num_soldier_all*1);
								
								
	
	
	
								//守方
								$fang_end_soldier_all=0;       //现士兵数;
								$fang_num_soldier_all=0;       //死亡士兵数;
								$gon_gen_explo_all=0;         //武将总获得经验;
								//计录守方最后死亡兵种(兵数);
								$fang_end_dear_army='';
								
								for ($i=0;$i<count($fang_soldier_num_temp_ls);$i++)
								{
									if ($fang_soldier_num_temp_ls[$i]>0) {
									
										//单兵死亡数$gon_num_ls
										$fang_num_ls=$fang_soldier_num_temp_ls[$i]-$fang_soldier_num_temp[$i];
										
										//死亡士兵数
										$fang_num_soldier_all=$fang_num_soldier_all+$fang_num_ls;
										
										//士兵死亡数,例:兵种名称(死亡数);
										$fang_end_dear_army=$fang_end_dear_army.$fang_soldier_name_temp[$i].'('.$fang_num_ls.')';
										
										//死亡士兵更新表;
										$db->query("update soldier set ".$soldier_type_name_en[$fang_soldier_type_array_num_temp[$i]]."=(".$soldier_type_name_en[$fang_soldier_type_array_num_temp[$i]]."-'".$fang_num_ls."') where  u_id='".$war_array['to_u_id']."' and c_id='".$war_array['to_c_id']."'");
										
										//攻方武将经验数:
										$gon_gen_explo_all=$gon_gen_explo_all+$war_gen_add_score[$fang_soldier_type_array_num_temp[$i]]*$fang_num_ls;
										
										//算士兵现在总数
										$fang_end_soldier_all=$fang_end_soldier_all+$fang_soldier_num_temp[$i];
									}
								}

⌨️ 快捷键说明

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