📄 wog_fight_m.php
字号:
<?
/*=====================================================
Copyright (C) ETERNAL<cqz78@qq.com>
Modify : 2005/02/08
URL : http://zqkls.uu1001.com/thread.php?fid=49
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
===================================================== */
class wog{
var $f_count=0;
var $f_hp=0.15;
var $win=0;
var $temp_win=0;
var $lost=0;
var $temp_lost=0;
var $cp_m_hp=0;
var $petact=1;
var $pe_def=0;
var $money=0;
var $p_place=0;
var $skill_money_up=1;
function fight($f_a,$f_lv,$d_d,$d_lv,$temp_s) //属性伤害比例function
{
if($d_d == 0){$d_d=1;}
if($f_a == 0){$f_a=1;}
$temp_at=($f_a/$d_d);
$temp_lv=$f_lv-$d_lv;
if($temp_at < 0){$temp_at=1;}
if($temp_lv < 0){$temp_lv=1;}
$temp_d=(($f_a*$temp_at)-$d_d)*$temp_s;
if($temp_d<=0){$temp_d=1;}
$temp_rd=$temp_d/$f_a;
$temp_d=$temp_d+($temp_rd*rand(1,$temp_lv));
return round($temp_d);
}
function m_type($m_at,$m_mat)//判断敌攻击模式function
{
$temp_mtype=rand(1,10);
$m_type=0;
if(($m_at>=$m_mat) && ($temp_mtype <= 8))
{
$m_type=1;
}elseif(($m_at<$m_mat) && ($temp_mtype <= 8))
{
$m_type=2;
}else
{
if($m_type==0)
{
if($temp_mtype >=5 )
{
$m_type=1;
}else
{
$m_type=2;
}
}
}
return $m_type;
}
function get_exp($m_hp,$m_hpmax,$m_at,$m_mat,$m_lv,$p_lv,$s)//get经验直function
{
if($p_lv<=100)
{
$exp_at=rand($m_at,$m_mat)*1.3;
}else
{
$exp_at=rand($m_at,$m_mat);
}
if($m_lv >= 450)
{
$exp_at=$exp_at*0.6;
}
$exp_at=$m_lv*$exp_at*($m_lv/$p_lv);
$exp=$exp_at*($m_hp/$m_hpmax)*0.18;
if($s==0)
{
$exp=$exp*($m_hp/$m_hpmax);
}
if($p_lv<=15)
{
$exp=$exp*2.5;
}
return round($exp);
}
function get_money($m_hp,$m_at,$m_mat,$m_lv)//get金钱function
{
$at_total=($m_at+$m_mat)/$m_lv;
$at_total2=($m_hp/($m_at+$m_mat))*0.8;
return rand(($m_lv/2.5),$m_lv)*(rand($at_total,$at_total2)*0.6);
}
function lv_up($user_id,$p,$money)//升级function
{
global $DB_site;
$p_str=0;
$p_agl=0;
$p_smart=0;
$p_life=0;
$p_be=0;
$p_au=0;
$p_vit=0;
$lv=$DB_site->query_first("select ch_str,ch_agl,ch_life,ch_vit,ch_smart,ch_au,ch_be from wog_character where ch_id=".$p[ch_id]."");
while($p[p_exp]>$p[p_nextexp])
{
$p[p_lv]+=1;
$p[p_exp]-=$p[p_nextexp];
$temp_lv=($p[p_lv]/50)*250+1000;
$p[p_nextexp]=round(($p[p_lv]+(($p[p_lv]/6)*1.25))*$temp_lv);
$m=split(",",$lv[ch_str]);
$p_str+=rand($m[0],$m[1]);
$m=split(",",$lv[ch_agl]);
$p_agl+=rand($m[0],$m[1]);
$m=split(",",$lv[ch_life]);
$p_life+=rand($m[0],$m[1]);
$p[p_hpmax]=$p[p_hpmax]+(($p[p_life]+$p_life)*0.4);
$m=split(",",$lv[ch_vit]);
$p_vit+=rand($m[0],$m[1]);
$m=split(",",$lv[ch_smart]);
$p_smart+=rand($m[0],$m[1]);
$m=split(",",$lv[ch_be]);
$p_be+=rand($m[0],$m[1]);
$m=split(",",$lv[ch_au]);
$p_au+=rand($m[0],$m[1]);
}
echo ",\"parent.lv_up('$p_str','$p_agl','$p_smart','$p_life','$p_vit','$p_au','$p_be')\"";
$DB_site->query("update wog_player set p_at=p_at+".$p_str.",p_df=p_df+".$p_vit.",p_mat=p_mat+".$p_smart."
,p_mdf=p_mdf+".$p_be.",p_str=p_str+".$p_str.",p_smart=p_smart+".$p_smart.",p_agl=p_agl+".$p_agl."
,p_life=p_life+".$p_life.",p_vit=p_vit+".$p_vit.",p_au=p_au+".$p_au.",p_be=p_be+".$p_be.",p_lv=".$p[p_lv].",p_exp=".$p[p_exp].",p_nextexp=".$p[p_nextexp].",p_hp=".$p[p_hp]."
,p_hpmax=".$p[p_hpmax].",p_money=p_money+".$money.",p_win=p_win+".$this->temp_win.",p_lost=p_lost+".$this->temp_lost.",p_act_time ='".time()."',p_place=".$this->p_place."
,p_online_time=".time().",d_item_id=".$p[d_item_id]."
where p_id=".$user_id." ");
unset($lv);
}
function fight_p_dm($p,$m,$me_skill,$act_type,$ss,$temp_s,$support=0)//玩家攻击function
{
global $_POST;
$agll=($p[p_agl]*$me_skill["s_agl"])+($m[m_agl]*$me_skill["s_m_agl"]);
$aglll=($p[p_agl]*$me_skill["s_agl"])/$agll;
$temp_agl=($aglll*100)+$me_skill["s_r"];
// $temp_agl=(((($p[p_agl]*$me_skill["s_agl"]))/(($p[p_agl]*$me_skill["s_agl"])+($m[m_agl]*$me_skill["s_m_agl"])))*100)+$me_skill["s_r"];
$temp_r=rand(1,100);
$s="";
if($act_type=="1")
{
if($temp_agl<50){$temp_agl=50;}
if($temp_agl < $temp_r)
{
$temp_d=0;
}else
{
if((rand(1,100)+$me_skill["s_s"]) > 80)
{
$temp_d=$this->fight($p[p_at]*2*$me_skill["s_at"],$p[p_lv],$m[m_df]*$me_skill["s_m_df"],$m[m_lv],$temp_s);
$s.="+".$p[p_sat_name];
}else
{
$temp_d=$this->fight($p[p_at]*$me_skill["s_at"],$p[p_lv],$m[m_df]*$me_skill["s_m_df"],$m[m_lv],$temp_s);
}
$temp_aa=40+round(($p[p_agl]*$me_skill["s_agl"])/($m[m_agl]*$me_skill["s_m_agl"]));
if($temp_aa>90){$temp_aa=90;}
if(($p[p_agl]*$me_skill["s_agl"])>($m[m_agl]*$me_skill["s_m_agl"]) && rand(1,100) <= ($temp_aa) )
{
$temp_hit=(((($p[p_agl]*$me_skill["s_agl"])-($m[m_agl]*$me_skill["s_m_agl"]))/($m[m_agl]*$me_skill["s_m_agl"]))*8)+1+$me_skill["s_a"];
$temp_d=round(($temp_d*0.75)*$temp_hit);
$s.="+"."连续攻击 ".round($temp_hit)."hit";
}
}
}elseif($act_type=="2")
{
$sss=1;
if(rand(1,100) > 80)
{
$sss=(($p[p_mat]-$m[m_mat])/$m[m_mdf])/2;
if($sss < 1)
{
$sss=1;
}
$sss=round($sss);
$s.="+"."连续攻击 ".$sss."hit";
}
if((rand(1,100)+$me_skill["s_s"]) > 90)
{
$temp_d=$this->fight($p[p_mat]*$me_skill["s_mat"]*2.5*$sss,$p[p_lv],$m[m_mdf]*$me_skill["s_m_mdf"],$m[m_lv],$temp_s);
$s.="+".$p[p_sat_name];
}else
{
$temp_d=$this->fight($p[p_mat]*$me_skill["s_mat"]*$sss,$p[p_lv],$m[m_mdf]*$me_skill["s_m_mdf"],$m[m_lv],$temp_s);
}
}
if(strlen($s)>1){$s=substr($s,1,strlen($s));}
if($_POST["temp_id2"]=="2")//a_mode判断
{
if($temp_d==0)
{
echo ",\"parent.miss_date('$p[p_name]','$m[m_name]')\"";
}else
{
echo ",\"parent.pact_date('$temp_d','$s','$ss',$support)\"";
}
}
return $temp_d;
}
function fight_m_dm($m,$p,$me_skill,$act_type,$pet,$temp_s)//敌人攻击function
{
$temp_agl=((($m[m_agl]*$me_skill["s_m_agl"]))/(($p[p_agl]*$me_skill["s_agl"])+($m[m_agl]*$me_skill["s_m_agl"])))*100;
$temp_r=rand(1,100)+$me_skill["s_o"];
$s="";
if($act_type=="1")
{
if($temp_agl<50){$temp_agl=50;}
if($temp_agl < $temp_r)
{
$temp_d=0;
}else
{
if(rand(1,100) > 80)
{
$temp_d=$this->fight($m[m_at]*2*$me_skill["s_m_at"],$m[m_lv],$p[p_df]*$me_skill["s_df"],$p[p_lv],$temp_s);
$s.="+".$m[m_sat_name];
}else
{
$temp_d=$this->fight($m[m_at]*$me_skill["s_m_at"],$m[m_lv],$p[p_df]*$me_skill["s_df"],$p[p_lv],$temp_s);
}
$temp_aa=40+round(($p[p_agl]*$me_skill["s_agl"])/($m[m_agl]*$me_skill["s_m_agl"]));
if($temp_aa>90){$temp_aa=90;}
if(($m[m_agl]*$s_m_agl)>($p[p_agl]*$me_skill["s_agl"]) && rand(1,100) >= ($temp_aa) )
{
$temp_hit=(((($m[m_agl]*$me_skill["s_m_agl"])-($p[p_agl]*$me_skill["s_agl"]))/($p[p_agl]*$me_skill["s_agl"]))*10)+1;
$temp_d=round(($temp_d*0.75)*$temp_hit);
$s.="+"."连续攻击 ".round($temp_hit)."hit";
}
}
}else
{
$sss=1;
if(rand(1,100) > 80)
{
$sss=(($m[m_mat]-$p[p_mat])/$p[p_mdf])/2;
if($sss < 1)
{
$sss=1;
}
$sss=round($sss);
$s.="+"."连续攻击 ".round($sss)."hit";
}
if(rand(1,10) > 9)
{
$temp_d=$this->fight($m[m_mat]*$me_skill["s_m_mat"]*2.5*$sss,$m[m_lv],$p[p_mdf]*$me_skill["s_mdf"],$p[p_lv],$temp_s);
}else
{
$temp_d=$this->fight($m[m_mat]*$me_skill["s_m_mat"]*$sss,$m[m_lv],$p[p_mdf]*$me_skill["s_mdf"],$p[p_lv],$temp_s);
}
}
if(strlen($s)>1){$s=substr($s,1,strlen($s));}
if($_POST["temp_id2"]=="2")//a_mode判断
{
if($temp_d==0)
{
echo ",\"parent.miss_date('$m[m_name]','$p[p_name]')\"";
}else
{
if($pet!=null)//宠物抵挡敌人攻击开始
{
if(rand(1,100) < $this->petact && $pet[pe_def] > 0)
{
$this->pe_def=1;
if($pet[pe_def]<=$temp_d)
{
echo ",\"parent.pet_def_date('$temp_d','$s','$pet[pe_img]','1')\"";
}else
{
echo ",\"parent.pet_def_date('$temp_d','$s','$pet[pe_img]','')\"";
}
}else
{
echo ",\"parent.mact_date('$temp_d','$s','')\"";
}
}else
{
echo ",\"parent.mact_date('$temp_d','$s','')\"";
}
}
}
return $temp_d;
}
function fight_pet_dm($pet_f,$pe_name,$m,$pet_img,$s)//玩家宠物攻击function
{
global $_POST;
if(rand(1,3)<3) //玩家宠物攻击
{
$temp_d=$this->fight($pet_f,1,$m[m_df],$m[m_lv],1);
}
else
{
$temp_d=0;
}
if($_POST["temp_id2"]=="2")//a_mode判断
{
if($temp_d==0)
{
echo ",\"parent.pet_miss_date('$pe_name',".rand(0,3).")\"";
}else
{
echo ",\"parent.pet_act_date('$temp_d','$s','$pet_img')\"";
}
}
return $temp_d;
}
function fight_count($user_id,$p,$m,$cp=0,$pet=null,$p_support=null,$my_member="",$datecut=0)
{
global $DB_site,$_POST;
$temp_pd=0;
$exp=0;
$s="";
$sum=0;
$s_start=0;
$m[m_hpmax]=$m[m_hp];
$me_skill=array();
$me_skill2=array();
$me_skill["s_at"]=1;$me_skill["s_df"]=1;$me_skill["s_mat"]=1;
$me_skill["s_mdf"]=1;$me_skill["s_agl"]=1;$me_skill["s_money"]=1;
$me_skill["s_r"]=0;$me_skill["s_o"]=0;$me_skill["s_s"]=1;
$me_skill["s_m_at"]=1;$me_skill["s_m_mat"]=1;$me_skill["s_m_mdf"]=1;
$me_skill["s_m_agl"]=1;$me_skill["s_m_df"]=1;
$me_skill2=$me_skill;
$s_kill=$DB_site->query_first("select s_at,s_df,s_mat,s_mdf,s_agl,s_money,s_r,s_o,s_s,s_a,s_m_at,s_m_mat,s_m_df,s_m_mdf,s_m_agl,s_hp from wog_character where ch_id=".$p[p_ch_s_id]."");
if($p_support!=null)
{
$support_skill=array();
// $support_skill2=array();
/*
$support_skill["s_at"]=1;$support_skill["s_df"]=1;$support_skill["s_mat"]=1;
$support_skill["s_mdf"]=1;$support_skill["s_agl"]=1;$support_skill["s_money"]=1;
$support_skill["s_r"]=0;$support_skill["s_o"]=0;$support_skill["s_s"]=1;
$support_skill["s_m_at"]=1;$support_skill["s_m_mat"]=1;$support_skill["s_m_mdf"]=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -