📄 armament_action_boss.php
字号:
<?php
///////////////////
//怪物信息
///////////////////
$query_boss=$db->query("select * from city_boss where w_to_x='".$w_to_x."' and w_to_y='".$w_to_y."';");
$list_boss_num=$db->num_rows($query_boss);
$list_boss=$db->fetch_array($query_boss);
//武将信息;
$boss_gen_power = $enemy_gen_power[$list_boss['gen_n']]; //武将攻击力;
$boss_gen_intellect = $enemy_gen_intellect[$list_boss['gen_n']]; //武将智力;
$boss_gen_commend = $enemy_gen_commend[$list_boss['gen_n']]; //武将防御;
//武将入表信息:攻击|智力|防御|忠诚|经验|等级
$boss_gen_attribute=$boss_gen_power.'|'.$boss_gen_intellect.'|'.$boss_gen_commend.'|100|未知|未知';
//是否有武将;6为没武将;
$boss_gen_num_if=$list_boss['gen_n'];
//攻击加成
$boss_gen_power_add=$enemy_gen_power[$boss_gen_num_if]*$gen_add_power+1;
//防御加成
$boss_gen_comm_add=$enemy_gen_commend[$boss_gen_num_if]*$gen_add_comm+1;
//武将智力加士兵血
$boss_gen_life_add=$enemy_gen_intellect[$boss_gen_num_if]*$gen_add_left+1;
//统计兵种和数量
$boss_soldier_type=explode("|",$list_boss['soldier_t']);
$boss_soldier_num=explode("|",$list_boss['soldier_n']);
$num_ls_all=count($boss_soldier_type);
//清空变量;
unset($boss_soldier_num_temp,$boss_soldier_num_temp_ls,$boss_soldier_name_temp,$boss_soldier_type_array_num_temp,$boss_soldier_one_power,$boss_soldier_one_comm,$boss_soldier_one_life,$boss_soldier_one_exert);
for ($i=0;$i<$num_ls_all;$i++){
if ($boss_soldier_num[$i]>0){//如果兵数大于0;
//临时存入防御方兵数;
$boss_soldier_num_temp[] = $boss_soldier_num[$i];
$boss_soldier_num_temp_ls[] = $boss_soldier_num[$i];
//临时存入防御方兵种名称;
$boss_soldier_name_temp[] = $enemy_soldier_type[0][$i+1];
//临时存入防御方数组指数;
$boss_soldier_type_array_num_temp[]=$i+1;
//单兵伤害值;
$boss_soldier_one_power[] =$enemy_soldier_type[$i+1][2];
//单兵防御值;
$boss_soldier_one_comm[] =$enemy_soldier_type[$i+1][3];
//单兵血量;武将智力加成
$boss_soldier_one_life[] =$enemy_soldier_type[$i+1][1] * $boss_gen_life_add;
//攻击发挥
$boss_soldier_one_exert[] =$enemy_soldier_type[$i+1][4];
}
}
///////////////////
//进攻部队
///////////////////
//进攻武将
$query_gon_gen=$db->query("select * from gen where g_uid='".$war_array['u_id']."' and g_cid='".$war_array['c_id']."' and g_gid='".$war_array['w_gen']."';");
$list_gon_gen=$db->fetch_array($query_gon_gen);
$gon_gen_id=$list_gon_gen['id'];
//攻击方武将属性(入表用);
$gon_gen_attribute=$list_gon_gen['g_power'].'|'.$list_gon_gen['g_intellect'].'|'.$list_gon_gen['g_commend'].'|'.$list_gon_gen['g_fealty'].'|'.$list_gon_gen['g_exploit'].'|'.$list_gon_gen['g_grade'];
$gon_gen_num_if=$db->num_rows($query_gon_gen);
//攻击加成
$gon_power_add=$list_gon_gen['g_power']*$gen_add_power+1;
//防御加成
$gon_comm_add=$list_gon_gen['g_commend']*$gen_add_comm+1;
//武将智力加士兵血
$gon_life_add=$list_gon_gen['g_intellect']*$gen_add_left+1;
//部队提升防御g_recovery
$gon_comm_all=$list_gon_gen['g_recovery'];
//查询科技
$query_gon_study=$db->query("select * from study where u_id='".$war_array['u_id']."';");
$list_gon_study=$db->fetch_array($query_gon_study);
//部队指挥 部队携带量提高10%,抢夺比率提高1%(起始抢20%) 部队指挥等级 s_command
//携带量
$gon_take_add=$list_gon_study['s_command']*$take_add_one_num;
//抢夺比率
$gon_loot_add=$list_gon_study['s_command']*$loot_add_one_num;
//武器制造 所有近战兵种攻击伤害提高5% 武器制造 s_arm
$gon_close_in_power_add=$list_gon_study['s_arm']*$close_in_add_power;
//铠甲制造 所有近战兵种防御力提高5% 铠甲制造 s_loricae
$gon_close_in_comm_add=$list_gon_study['s_loricae']*$close_in_add_comm;
//机械技术 远程、机械兵种防御力提高5% 机械技术 s_engine
$gon_long_range_comm_add=$list_gon_study['s_engine']*$long_range_add_comm;
//弹道技术 远程、机械兵种攻击伤害提高5% 弹道技术 s_trajectory
$gon_long_range_power_add=$list_gon_study['s_trajectory']*$long_range_add_power;
//兵法专精 所有部队攻击力提高5% 兵法专精 s_tactics
$gon_all_soldier_power_add=$list_gon_study['s_tactice']*$all_soldier_add_power;
//阵法专精 所有部队防御力提高5% 阵法专精 s_position
$gon_all_soldier_add_comm=$list_gon_study['s_position']*$all_soldier_add_comm;
//统计进攻方士兵和兵种;
$soldier_type_array_num=explode("|",$war_array['w_soldier_type']);
$soldier_num_ls=explode("|",$war_array['w_soldier_num']);
$sum_ls=count($soldier_type_array_num);
//引用临时变量清空区
unset($gon_soldier_num_temp,$gon_soldier_name_temp,$gon_soldier_type_array_num_temp,$gon_soldier_num_temp_ls); //临时存入进攻方兵数,临时存入进攻方兵种名称,临时存入进攻方数组数
unset($gon_soldier_one_power,$gon_soldier_one_comm,$gon_soldier_one_life,$gon_soldier_one_take,$gon_info_array,$gon_soldier_one_exert); //临时存入单兵伤害,单兵防御,单兵血量,攻方战报
for ($i=0;$i<$sum_ls;$i++)
{
if ($soldier_num_ls[$i]>'0') {
//临时存入进攻方兵数;
$gon_soldier_num_temp[]=$soldier_num_ls[$i];
$gon_soldier_num_temp_ls[]=$soldier_num_ls[$i];
//临时存入进攻方兵种名称;
$gon_soldier_name_temp[]=$soldier_type_name[$soldier_type_array_num[$i]];
//临时存入进攻方数组数;
$gon_soldier_type_array_num_temp[]=$i+1;
//查询士兵信息基础表;
$query_soldier_base=$db->query("select * from soldier_attribute where s_type='".($i+1)."';");
$list_soldier_base=$db->fetch_array($query_soldier_base);
//单兵伤害值;
$gon_soldier_one_power[]=$list_soldier_base['s_attack'];
//单兵防御值;
$gon_soldier_one_comm[]=$list_soldier_base['s_recovery'];
//单兵血量;武将智力加成
$gon_soldier_one_life[]=$list_soldier_base['s_life']*$gon_life_add;
//单兵血量;
$gon_soldier_one_take[]=$list_soldier_base['take_num'];
//攻击发挥
$gon_soldier_one_exert[]=$list_soldier_base['attack_exert'];
}
}
$aj=0;
/////////////////////
//攻击开始(最多3次)[$war_max_num]
/////////////////////
for ($kj=1;$kj<=$war_max_num;$kj++)
{
if ($kj<=$war_max_num) {
//计算攻方总伤害和总防御;
include("gon_processing.php");
//计算防守方总伤害和总防御;
include("boss_processing.php");
//存入攻方临时攻击
$gon_all_power_ls=$gon_all_power;
if ($kj==1) {
//记录攻方第一次伤害
$gon_all_power_first=$gon_all_power;
}
//存入防守方临时攻击
$boss_all_power_ls=$boss_all_power;
if ($boss_now_num<1||$gon_now_num<1) {
break;
}
//////////////////////攻方打防守方//////////////////////
$kf=0;
$last_power_temp_ls=0;
//减防后剩于伤害值
$last_power_temp=(int)($gon_all_power_ls-$boss_all_comm);
//如果小于等于0,不破防不死兵;
if ($last_power_temp>0) {
$end_i=0;
//计算有几种士兵;$gon_soldier_num_temp士兵数数组
$boss_num=count($boss_soldier_num_temp);
//循环开始;
while ($kf<$boss_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 || $boss_now_num<1)
{
break;
}else {
$power_one=(int)($last_power_temp/$boss_now_num);
if ($power_one<1) break;
}
for ($i=0;$i<$boss_num;$i++)
{
if ($power_one<$boss_soldier_one_life[$i]) {
$end_i+=1;
}else {
if ($boss_soldier_num_temp[$i]>0)//如果此兵种还有士兵的话
{
//死亡士兵公式:(int)($power_one/$fang_soldier_one_life[$i])
$dear_num=(int)($power_one/$boss_soldier_one_life[$i]);
//如果现有兵数减去死亡兵数大于0,减去对应兵数,总伤害减少;
if ($boss_soldier_num_temp[$i]-$dear_num>0) {
$last_power_temp_ls=$last_power_temp_ls+$dear_num*$boss_soldier_one_life[$i];
$boss_soldier_num_temp[$i]=$boss_soldier_num_temp[$i]-$dear_num;
}else {
//如果现有兵数减去死亡兵数小于或等于0,对应兵数为0,减少相应总伤减害;
$last_power_temp_ls=$last_power_temp_ls+$boss_soldier_num_temp[$i]*$boss_soldier_one_life[$i];
$boss_soldier_num_temp[$i]=0;
$boss_now_num-=1;
}
} else $end_i+=1;
}
}
$kf++;
}
//循环结束;
}
////////////////////////攻方打守方结束/////////////////////////
//////////////////////守方打攻方//////////////////////
$k=0;
$kf=0;
$last_power_temp_ls=0;
//减防后剩于伤害值
$last_power_temp=$boss_all_power_ls-$gon_all_comm;
//如果小于等于0,不破防不死兵;
if ($last_power_temp>0) {
$end_i=0;
//计算有几种士兵;$gon_soldier_num_temp士兵数数组
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -