Commit 80ed40da authored by hisuinohoshi's avatar hisuinohoshi

rev combat phase 3.3

- 怒气技能系统变化:
移除了旧版技能系统;
移植回「锡安组织」社团的怒气技能;
「锡安组织」部分技能重做,详见游戏内技能表(游戏帮助在路上了!);

其他变化:
- 混沌武器现在变得更加混沌了;
- 合成出的游戏解除钥匙现在带有灵魂绑定属性;

修正:
- PVE结局时若队伍里只有一个活跃玩家,则不会算作团队胜利;
- 敌人从眩晕中恢复后没有正常保存数据的问题;
parent f0afdf78
...@@ -95,7 +95,7 @@ if($hp > 0){ ...@@ -95,7 +95,7 @@ if($hp > 0){
} }
//如果身上存在时效性技能,检查技能是否超时 //如果身上存在时效性技能,检查技能是否超时
if($hp > 0 && !empty($clbpara['lasttimes'])) check_skilllasttimes(); if($hp > 0 && !empty($clbpara['lasttimes'])) check_skilllasttimes($pdata);
//应用眩晕状态效果 //应用眩晕状态效果
if($hp > 0 && !empty($clbpara['skill']) && in_array('inf_dizzy',$clbpara['skill'])) if($hp > 0 && !empty($clbpara['skill']) && in_array('inf_dizzy',$clbpara['skill']))
{ {
...@@ -589,10 +589,11 @@ if($hp > 0){ ...@@ -589,10 +589,11 @@ if($hp > 0){
$mode = 'command'; $mode = 'command';
} }
} elseif ($mode == 'sp_skpts') { } elseif ($mode == 'sp_skpts') {
include_once GAME_ROOT.'./include/game/clubskills.func.php'; //include_once GAME_ROOT.'./include/game/clubskills.func.php';
upgradeclubskills($command); //upgradeclubskills($command);
calcskills($skarr); //calcskills($skarr);
$p12[1]=1; $p12[2]=2; //$p12[1]=1; $p12[2]=2;
$log .= "不存在该指令!<br>";
$mode = 'command'; $mode = 'command';
} elseif ($mode == 'revskpts') { } elseif ($mode == 'revskpts') {
$sk = substr($command,9); $sk = substr($command,9);
......
...@@ -136,10 +136,11 @@ if($hp > 0 && $coldtimeon && $showcoldtimer && $rmcdtime){$log .= "行动冷却 ...@@ -136,10 +136,11 @@ if($hp > 0 && $coldtimeon && $showcoldtimer && $rmcdtime){$log .= "行动冷却
//如果身上存在时效性技能,检查技能是否超时 //如果身上存在时效性技能,检查技能是否超时
if($hp > 0 && !empty($clbpara['lasttimes'])) if($hp > 0 && !empty($clbpara['lasttimes']))
{ {
$flag = check_skilllasttimes(); $flag = check_skilllasttimes($pdata);
if($flag) if($flag)
{ {
$pdata = current_player_save(); player_save($pdata);
$pdata = fetch_playerdata_by_name($cuser);
$pdata['clbpara'] = get_clbpara($pdata['clbpara']); $pdata['clbpara'] = get_clbpara($pdata['clbpara']);
extract($pdata,EXTR_REFS); extract($pdata,EXTR_REFS);
init_playerdata(); init_playerdata();
......
This diff is collapsed.
...@@ -215,9 +215,9 @@ ...@@ -215,9 +215,9 @@
//0.电掣召唤仪:分解种火尸体随机获得:数量分别在1~10、10~20、20~30、30~40、40~50之间的5种不同元素 //0.电掣召唤仪:分解种火尸体随机获得:数量分别在1~10、10~20、20~30、30~40、40~50之间的5种不同元素
0 => Array('stuff'=>Array(0=>'r1-10',1=>'r10-20',2=>'r20-30',3=>'r30-40',4=>'r40-50'),'result'=>Array('电掣召唤仪','Y',1,1,)), 0 => Array('stuff'=>Array(0=>'r1-10',1=>'r10-20',2=>'r20-30',3=>'r30-40',4=>'r40-50'),'result'=>Array('电掣召唤仪','Y',1,1,)),
//1.游戏解除钥匙(执行官ID卡):分解执行官尸体时依次获得:数量在1000~2000之间的3种不同元素 //1.游戏解除钥匙(执行官ID卡):分解执行官尸体时依次获得:数量在1000~2000之间的3种不同元素
1 => Array('class'=>'hidden','stuff'=>Array(0=>'r1000-2000',1=>'r1000-2000',2=>'r1000-2000'),'result'=>Array('游戏解除钥匙','Y',1,1,)), 1 => Array('class'=>'hidden','stuff'=>Array(0=>'r1000-2000',1=>'r1000-2000',2=>'r1000-2000'),'result'=>Array('游戏解除钥匙','Y',1,1,'v')),
//2.游戏解除钥匙(真红暮):分解冰炎钥匙火·冰时依次获得:数量在10000~99999之间的2种不同元素 //2.游戏解除钥匙(真红暮):分解冰炎钥匙火·冰时依次获得:数量在10000~99999之间的2种不同元素
2 => Array('class'=>'hidden','stuff'=>Array(0=>'r10000-99999',1=>'r10000-99999'),'result'=>Array('游戏解除钥匙','Y',1,1,'Z')), 2 => Array('class'=>'hidden','stuff'=>Array(0=>'r10000-99999',1=>'r10000-99999'),'result'=>Array('游戏解除钥匙','Y',1,1,'Zv')),
//3.破灭之诗:分解三女主歌词卡时依次获得:数量在100~999之间的3种不同元素 //3.破灭之诗:分解三女主歌词卡时依次获得:数量在100~999之间的3种不同元素
3 => Array('class'=>'hidden','stuff'=>Array(0=>'r100-999',1=>'r100-999',2=>'r100-999'),'result'=>Array('破灭之诗','Y',1,1,95)), 3 => Array('class'=>'hidden','stuff'=>Array(0=>'r100-999',1=>'r100-999',2=>'r100-999'),'result'=>Array('破灭之诗','Y',1,1,95)),
//4.黑色发卡:分解黑色碎片、十字发卡时依次获得:数量在500~1000、10000~29999之间的2种不同元素 //4.黑色发卡:分解黑色碎片、十字发卡时依次获得:数量在500~1000、10000~29999之间的2种不同元素
......
...@@ -108,8 +108,8 @@ $mixinfo = array ...@@ -108,8 +108,8 @@ $mixinfo = array
array('class' => 'item', 'stuff' => array('手机','笔记本电脑'),'result' => array('移动PC','EE',1,1,),), array('class' => 'item', 'stuff' => array('手机','笔记本电脑'),'result' => array('移动PC','EE',1,1,),),
array('class' => 'item', 'stuff' => array('高压线圈','原型武器G','原型武器C','某种机械设备'),'result' => array('电磁发射装置','X',1,1,''),), array('class' => 'item', 'stuff' => array('高压线圈','原型武器G','原型武器C','某种机械设备'),'result' => array('电磁发射装置','X',1,1,''),),
//array('class' => 'item', 'stuff' => array('风见 幽香的ID卡','坂持 金发的ID卡','御坂 美琴的ID卡'),'result' => array('游戏解除钥匙','Y',1,1,),), //array('class' => 'item', 'stuff' => array('风见 幽香的ID卡','坂持 金发的ID卡','御坂 美琴的ID卡'),'result' => array('游戏解除钥匙','Y',1,1,),),
array('class' => 'item', 'stuff' => array('社员专用的ID卡','社员专用的ID卡','社员专用的ID卡'),'result' => array('游戏解除钥匙','Y',1,1,),), array('class' => 'item', 'stuff' => array('社员专用的ID卡','社员专用的ID卡','社员专用的ID卡'),'result' => array('游戏解除钥匙','Y',1,1,'v'),),
array('class' => 'item', 'stuff' => array('冰炎钥匙·炎','冰炎钥匙·冰'),'result' => array('游戏解除钥匙','Y',1,1,'Z'),), array('class' => 'item', 'stuff' => array('冰炎钥匙·炎','冰炎钥匙·冰'),'result' => array('游戏解除钥匙','Y',1,1,'Zv'),),
array('class' => 'item', 'stuff' => array('★荆棘式电子地雷★','★阔剑地雷★','★全图不唯一的野生巨大香蕉★'),'result' => array('★一发逆转神话★','TNc',1,1,'x'),), array('class' => 'item', 'stuff' => array('★荆棘式电子地雷★','★阔剑地雷★','★全图不唯一的野生巨大香蕉★'),'result' => array('★一发逆转神话★','TNc',1,1,'x'),),
array('class' => 'item', 'stuff' => array('水','黑色雏菊','白色方块'),'result' => array('风祭河水','Y',1,1,),), array('class' => 'item', 'stuff' => array('水','黑色雏菊','白色方块'),'result' => array('风祭河水','Y',1,1,),),
array('class' => 'item', 'stuff' => array('水','黑色方块','白色雏菊'),'result' => array('仪水镜','Y',1,1,),), array('class' => 'item', 'stuff' => array('水','黑色方块','白色雏菊'),'result' => array('仪水镜','Y',1,1,),),
...@@ -367,7 +367,7 @@ $mixinfo = array ...@@ -367,7 +367,7 @@ $mixinfo = array
array('class' => 'hidden', 'stuff' => array('《董子语录》','琉璃血'),'result' => array('『C.H.A.O.S』','Y',1,1,),'karma1'=>'-500','karma2'=>'2000',), array('class' => 'hidden', 'stuff' => array('《董子语录》','琉璃血'),'result' => array('『C.H.A.O.S』','Y',1,1,),'karma1'=>'-500','karma2'=>'2000',),
array('class' => 'hidden', 'stuff' => array('圣光啊!你有看到那个敌人吗!','琉璃血'),'result' => array('『C.H.A.O.S』','Y',1,1,),'karma1'=>'-500','karma2'=>'2000',), array('class' => 'hidden', 'stuff' => array('圣光啊!你有看到那个敌人吗!','琉璃血'),'result' => array('『C.H.A.O.S』','Y',1,1,),'karma1'=>'-500','karma2'=>'2000',),
array('class' => 'hidden', 'stuff' => array('黑色碎片','十字发卡'),'result' => array('黑色发卡','X',1,1,),), array('class' => 'hidden', 'stuff' => array('黑色碎片','十字发卡'),'result' => array('黑色发卡','X',1,1,),),
array('class' => 'hidden', 'stuff' => array('『T.E.R.R.A』','『A.Q.U.A』','『V.E.N.T.U.S』'),'result' => array('『G.A.M.E.O.V.E.R』','Y',1,1,),), array('class' => 'hidden', 'stuff' => array('『T.E.R.R.A』','『A.Q.U.A』','『V.E.N.T.U.S』'),'result' => array('『G.A.M.E.O.V.E.R』','Y',1,1,'v'),),
array('class' => 'hidden', 'stuff' => array('提示纸条K','提示纸条E'),'result' => array('提示纸条Y','WC',1,1,'zd'),), array('class' => 'hidden', 'stuff' => array('提示纸条K','提示纸条E'),'result' => array('提示纸条Y','WC',1,1,'zd'),),
array('class' => 'hidden', 'stuff' => array('[INNOCENCE]','[DILIGENCE]','[CONSCIENCE]'),'result' => array('【E.S.C.A.P.E】','Y',1,1,),), array('class' => 'hidden', 'stuff' => array('[INNOCENCE]','[DILIGENCE]','[CONSCIENCE]'),'result' => array('【E.S.C.A.P.E】','Y',1,1,),),
array('class' => 'hidden', 'stuff' => array('[ΨТОВХ]','[ЫΑИЙВХΨ]','[ΩЙΑТΨ]'),'result' => array('【E.S.C.A.P.E】','Y',1,1,),), array('class' => 'hidden', 'stuff' => array('[ΨТОВХ]','[ЫΑИЙВХΨ]','[ΩЙΑТΨ]'),'result' => array('【E.S.C.A.P.E】','Y',1,1,),),
......
...@@ -244,7 +244,6 @@ $lwinfo = Array( ...@@ -244,7 +244,6 @@ $lwinfo = Array(
92 => '成为……焰火……', 92 => '成为……焰火……',
); );
$infinfo = Array('b' => '<span class="red">胸</span>', 'h' => '<span class="red">头</span>', 'a' => '<span class="red">腕</span>', 'f' => '<span class="red">足</span>', 'p' => '<span class="purple">毒</span>', 'u' => '<span class="red">烧</span>', 'i' => '<span class="clan">冻</span>', 'e' => '<span class="yellow">麻</span>','w' => '<span class="grey">乱</span>'); $infinfo = Array('b' => '<span class="red">胸</span>', 'h' => '<span class="red">头</span>', 'a' => '<span class="red">腕</span>', 'f' => '<span class="red">足</span>', 'p' => '<span class="purple">毒</span>', 'u' => '<span class="red">烧</span>', 'i' => '<span class="clan">冻</span>', 'e' => '<span class="yellow">麻</span>','w' => '<span class="grey">乱</span>');
$dtinfinfo = Array('b' => '<span class="red">胸部受伤</span>', 'h' => '<span class="red">头部受伤</span>', 'a' => '<span class="red">腕部受伤</span>', 'f' => '<span class="red">足部受伤</span>', 'p' => '<span class="purple">中毒</span>', 'u' => '<span class="red">烧伤</span>', 'i' => '<span class="clan">冻结</span>', 'e' => '<span class="yellow">麻痹</span>','w' => '<span class="grey">混乱</span>');
$attinfo = Array('N' => '徒手殴打', 'P' => '殴打','K' => '斩刺', 'G' => '射击', 'C' => '投掷', 'D' => '设置引信伏击', 'F' => '释放灵力攻击', 'J' => '狙击'); $attinfo = Array('N' => '徒手殴打', 'P' => '殴打','K' => '斩刺', 'G' => '射击', 'C' => '投掷', 'D' => '设置引信伏击', 'F' => '释放灵力攻击', 'J' => '狙击');
$skillinfo = Array('N' => 'wp', 'P' => 'wp', 'K' => 'wk', 'G' => 'wg', 'C' => 'wc', 'D' => 'wd', 'F'=> 'wf', 'J'=> 'wg'); $skillinfo = Array('N' => 'wp', 'P' => 'wp', 'K' => 'wk', 'G' => 'wg', 'C' => 'wc', 'D' => 'wd', 'F'=> 'wf', 'J'=> 'wg');
//$rangeinfo = Array('N' => 'S', 'P' => 'S', 'K' => 'S', 'G' => 'M', 'C' => 'M', 'D' => 'L', 'F'=> 'M'); #各种攻击方式的射程,移动到combatcfg.php //$rangeinfo = Array('N' => 'S', 'P' => 'S', 'K' => 'S', 'G' => 'M', 'C' => 'M', 'D' => 'L', 'F'=> 'M'); #各种攻击方式的射程,移动到combatcfg.php
...@@ -1185,7 +1184,7 @@ $tps_isk = Array ...@@ -1185,7 +1184,7 @@ $tps_isk = Array
'P' => Array('title' => "高概率将殴系对你的物理伤害减半。",), 'P' => Array('title' => "高概率将殴系对你的物理伤害减半。",),
'p' => Array('title' => "攻击对手时,将产生额外的毒属性伤害。也有可能让对手陷入中毒异常状态。",), 'p' => Array('title' => "攻击对手时,将产生额外的毒属性伤害。也有可能让对手陷入中毒异常状态。",),
'q' => Array('title' => "高概率将毒属性对你的属性伤害减半。并避免中毒状态。",), 'q' => Array('title' => "高概率将毒属性对你的属性伤害减半。并避免中毒状态。",),
'R' => Array('title' => "这把武器的最终伤害将会为随机值。",), 'R' => Array('title' => "这把武器造成的伤害与消耗的耐久为随机值。",),
'r' => Array('title' => "根据你的熟练度,做出一定数量的连续攻击。",), 'r' => Array('title' => "根据你的熟练度,做出一定数量的连续攻击。",),
'S' => Array('title' => "枪支类武器开火时不会产生声音。",), 'S' => Array('title' => "枪支类武器开火时不会产生声音。",),
's' => Array('title' => "这个物品是游戏王同调合成的必备素材。",), 's' => Array('title' => "这个物品是游戏王同调合成的必备素材。",),
......
...@@ -380,6 +380,17 @@ span[tooltip]:hover:before { ...@@ -380,6 +380,17 @@ span[tooltip]:hover:before {
transform: translate(25px, 25px); transform: translate(25px, 25px);
width:max-content; max-width: 175px; position: absolute; z-index: 50; width:max-content; max-width: 175px; position: absolute; z-index: 50;
} }
span[tooltip2]:hover:before {
content: attr(tooltip2);
font: 8pt "微软雅黑" serif; color: rgba(225, 124, 226, 1);
padding: 7px; text-align: left; white-space:pre-line;
text-shadow:1px 1px 1px rgb(106, 0, 108); text-fill-color: rgb(245, 174, 246); -webkit-text-fill-color: rgb(245, 174, 246);
/*background-clip: border-box; background-color: rgba(198, 114, 199, 0.8);*/
background-color:rgba(0,0,0,0.8); *BACKGROUND: rgb(0,0,0); *filter:alpha(opacity=70);
border-radius: 3px; border:2px solid rgba(225, 124, 226, 0.4);
transform: translate(25px, 25px);
width:max-content; max-width: 175px; position: fixed; z-index: 50;
}
/* 下拉菜单样式 */ /* 下拉菜单样式 */
.headerlink{ .headerlink{
......
...@@ -113,6 +113,12 @@ function init_profile(){ ...@@ -113,6 +113,12 @@ function init_profile(){
$clbpara = get_clbpara($clbpara); $clbpara = get_clbpara($clbpara);
if(!check_skill_unlock('buff_shield',$pdata))
{
global $shield_info;
$shield_info = "<span class=\"blueseed\" tooltip2=\"【护盾】:可抵消等同于护盾值的伤害。护盾值只在抵消属性伤害时消耗,抵消电击伤害时双倍消耗。护盾存在时不会受到反噬伤害或陷入异常状态。\">(".get_skillpara('buff_shield','svar',$clbpara).")</span>";
}
include_once GAME_ROOT.'./include/game/revattr.func.php'; include_once GAME_ROOT.'./include/game/revattr.func.php';
$atkinfo = get_base_att($pdata,$pdata,1,1); $atkinfo = get_base_att($pdata,$pdata,1,1);
$definfo = get_base_def($pdata,$pdata,1,1); $definfo = get_base_def($pdata,$pdata,1,1);
...@@ -570,45 +576,40 @@ function get_remaincdtime($pid){ ...@@ -570,45 +576,40 @@ function get_remaincdtime($pid){
} }
// 检查时效性技能是否达到时限 // 检查时效性技能是否达到时限
function check_skilllasttimes(&$data=NULL) function check_skilllasttimes(&$data)
{ {
global $cskills,$log,$now,$name; global $cskills,$log,$now,$name;
if(!isset($data)) $nm = ($data['type'] || $data['name'] != $name) ? $data['name'] : '你';
{ $data['pure_flag'] = 0;
global $clbpara; if(!empty($data['clbpara']['lasttimes']))
$para = &$clbpara;
$nm = '你';
}
else
{
$para = &$data['clbpara'];
$nm = &$data['name'];
}
$pure_flag = 0;
if(!empty($para['lasttimes']))
{ {
//include_once GAME_ROOT.'./include/game/revclubskills.func.php'; //include_once GAME_ROOT.'./include/game/revclubskills.func.php';
foreach($para['lasttimes'] as $sk => $lts) foreach($data['clbpara']['lasttimes'] as $sk => $lts)
{ {
$stm = isset($para['starttimes'][$sk]) ? $para['starttimes'][$sk] : 0; $stm = isset($data['clbpara']['starttimes'][$sk]) ? $data['clbpara']['starttimes'][$sk] : 0;
# 技能已达到时效 # 技能已达到时效
if($now > $lts+$stm) if($now > $lts+$stm)
{ {
$sk_name = $cskills[$sk]['name']; $sk_name = $cskills[$sk]['name'];
if(get_skilltags($sk,'buff')) if(get_skilltags($sk,'buff'))
{ {
$log.="技能<span class='yellow'>「{$sk_name}」</span>的持续效果结束了!<br>"; $log.="<span class='yellow'>「{$sk_name}」</span>的效果结束了!<br>";
} }
else else
{ {
$log.="{$nm}从<span class='yellow'>「{$sk_name}」</span>状态中恢复了!<br>"; $log.="{$nm}从<span class='yellow'>「{$sk_name}」</span>状态中恢复了!<br>";
} }
lostclubskill($sk,$para); lostclubskill($sk,$data['clbpara']);
$pure_flag = 1; $data['pure_flag'] = 1;
} }
} }
} }
return $pure_flag; if($nm != '你')
{
player_save($data);
return $data;
}
return $data['pure_flag'];
} }
//通过名字抓取指定玩家数据,只能抓玩家 //通过名字抓取指定玩家数据,只能抓玩家
...@@ -633,6 +634,7 @@ function fetch_playerdata_by_pid($pid) ...@@ -633,6 +634,7 @@ function fetch_playerdata_by_pid($pid)
if(!$db->num_rows($result)) return NULL; if(!$db->num_rows($result)) return NULL;
$pdata = $db->fetch_array($result); $pdata = $db->fetch_array($result);
if(!empty($pdata['clbpara'])) $pdata['clbpara'] = get_clbpara($pdata['clbpara']); if(!empty($pdata['clbpara'])) $pdata['clbpara'] = get_clbpara($pdata['clbpara']);
//套装效果刷新
include_once GAME_ROOT.'./include/game/itemmain.func.php'; include_once GAME_ROOT.'./include/game/itemmain.func.php';
reload_set_items($pdata); reload_set_items($pdata);
return $pdata; return $pdata;
......
...@@ -1546,9 +1546,9 @@ function check_item_achievement_rev($nn,$i,$ie,$is,$ik,$isk) ...@@ -1546,9 +1546,9 @@ function check_item_achievement_rev($nn,$i,$ie,$is,$ik,$isk)
// 初始化 // 初始化
$done = 0; $done = 0;
// 101.使用参战者红暮&蓝凝掉落的钥匙达成锁定解除结局 // 101.使用参战者红暮&蓝凝掉落的钥匙达成锁定解除结局
if($isk == 'Z') $aid = 101; if(strpos($isk,'Z') !== false) $aid = 101;
// 102.使用DF掉落的钥匙达成锁定解除结局 // 102.使用DF掉落的钥匙达成锁定解除结局
elseif($isk == 'x') $aid = 102; elseif(strpos($isk,'x') !== false) $aid = 102;
// 100.使用执行官掉落的钥匙达成锁定解除结局 // 100.使用执行官掉落的钥匙达成锁定解除结局
else $aid = 100; else $aid = 100;
......
...@@ -1549,7 +1549,9 @@ function get_damage_p(&$rg, $atkcdt, $type, $nm,$cl = 0, $msg = '' ) { ...@@ -1549,7 +1549,9 @@ function get_damage_p(&$rg, $atkcdt, $type, $nm,$cl = 0, $msg = '' ) {
} }
function checkdmg($p1, $p2, $d) { function checkdmg($p1, $p2, $d) {
if (($d >= 100) && ($d < 150)) { if ($d < 0) {
$words = "{$p1}{$p2}回复了<span class=\"lime\">".abs($d)."</span>点生命……怎么会是呢?";
} elseif (($d >= 100) && ($d < 150)) {
$words = "{$p1}{$p2}施加了一定程度的伤害。(100-150)"; $words = "{$p1}{$p2}施加了一定程度的伤害。(100-150)";
} elseif (($d >= 150) && ($d < 200)) { } elseif (($d >= 150) && ($d < 200)) {
$words = "{$p1}拿了什么神兵?{$p2}所受的损伤已经不可忽略了。(150-200)"; $words = "{$p1}拿了什么神兵?{$p2}所受的损伤已经不可忽略了。(150-200)";
......
...@@ -697,7 +697,7 @@ function event_rp_up($rpup){ ...@@ -697,7 +697,7 @@ function event_rp_up($rpup){
}else{ }else{
include_once GAME_ROOT.'./include/game/clubskills.func.php'; include_once GAME_ROOT.'./include/game/clubskills.func.php';
$rpdec = 30; $rpdec = 30;
$rpdec += get_clubskill_rp_dec($club,$skills); //$rpdec += get_clubskill_rp_dec($club,$skills);
$rp += round($rpup*(100-$rpdec)/100); $rp += round($rpup*(100-$rpdec)/100);
} }
return; return;
......
...@@ -308,7 +308,7 @@ function newradar($m = 0){ ...@@ -308,7 +308,7 @@ function newradar($m = 0){
$radarscreen .= '</tr>'; $radarscreen .= '</tr>';
} }
$radarscreen .= '</tbody></table>'; $radarscreen .= '</tbody></table>';
$log .= '白色数字:该区域内的人数<br><span class="yellow b">黄色数字</span>:自己所在区域的人数<br><span class="red b">×</span>:禁区<br><br>'; $log .= '白色数字:该区域内的人数<br><span class="yellow">黄色数字</span>:自己所在区域的人数<br><span class="red b">×</span>:禁区<br><br>';
include template('radarcmd'); include template('radarcmd');
$cmd = ob_get_contents(); $cmd = ob_get_contents();
ob_clean(); ob_clean();
......
...@@ -1386,7 +1386,7 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0) ...@@ -1386,7 +1386,7 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0)
{ {
global $log,$wepimprate,$nosta; global $log,$wepimprate,$nosta;
if($hurtvalue>0 && $pa['wep_kind'] != 'N') if($hurtvalue && $pa['wep_kind'] != 'N')
{ {
$wep_loss_flag = 0; $wep_loss_flag = 0;
//获取武器损耗类型 //获取武器损耗类型
...@@ -1397,12 +1397,20 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0) ...@@ -1397,12 +1397,20 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0)
if($pa['weps'] == $nosta || $force_imp) if($pa['weps'] == $nosta || $force_imp)
{ {
$pa['wepe'] = max(0,$pa['wepe']-$hurtvalue); $pa['wepe'] = max(0,$pa['wepe']-$hurtvalue);
if(!$pa['type']) $log.= "<span class='grey'>{$pa['nm']}{$pa['wep']}的攻击力下降了{$hurtvalue}。</span><br>"; if(!$pa['type'])
{
if($hurtvalue > 0) $log.= "<span class='grey'>{$pa['nm']}{$pa['wep']}的攻击力下降了{$hurtvalue}。</span><br>";
else $log.= "<span class='grey'>{$pa['nm']}{$pa['wep']}的攻击力上升了".abs($hurtvalue)."!……为什么啊?</span><br>";
}
} }
else else
{ {
$pa['weps'] = max(0,$pa['weps']-$hurtvalue); $pa['weps'] = max(0,$pa['weps']-$hurtvalue);
if(!$pa['type']) $log.= "<span class='grey'>{$pa['nm']}{$pa['wep']}的耐久度下降了{$hurtvalue}。</span><br>"; if(!$pa['type'])
{
if($hurtvalue > 0) $log.= "<span class='grey'>{$pa['nm']}{$pa['wep']}的耐久度下降了{$hurtvalue}。</span><br>";
else $log.= "<span class='grey'>{$pa['nm']}{$pa['wep']}的耐久度上升了".abs($hurtvalue)."!……为什么啊?</span><br>";
}
} }
if(empty($pa['weps']) || empty($pa['wepe'])) if(empty($pa['weps']) || empty($pa['wepe']))
{ {
...@@ -1418,7 +1426,11 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0) ...@@ -1418,7 +1426,11 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0)
$pa['weps'] = max(0,$pa['weps']-$hurtvalue); $pa['weps'] = max(0,$pa['weps']-$hurtvalue);
if($pa['wep_kind'] == 'C' || $pa['wep_kind'] == 'D' || $pa['wep_kind'] == 'F') if($pa['wep_kind'] == 'C' || $pa['wep_kind'] == 'D' || $pa['wep_kind'] == 'F')
{ {
if(!$pa['type']) $log .= "<span class='grey'>{$pa['nm']}用掉了{$hurtvalue}{$pa['wep']}。</span><br>"; if(!$pa['type'])
{
if($hurtvalue > 0) $log .= "<span class='grey'>{$pa['nm']}用掉了{$hurtvalue}{$pa['wep']}。</span><br>";
else $log .= "<span class='grey'>{$pa['wep']}凭空增殖出了".abs($hurtvalue)."个……啊??</span><br>";
}
if(empty($pa['weps'])) if(empty($pa['weps']))
{ {
$log .= "{$pa['nm']}的<span class=\"red\">{$pa['wep']}</span>用光了!<br>"; $log .= "{$pa['nm']}的<span class=\"red\">{$pa['wep']}</span>用光了!<br>";
...@@ -1427,7 +1439,11 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0) ...@@ -1427,7 +1439,11 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0)
} }
elseif($pa['wep_kind'] == 'G' || $pa['wep_kind'] == 'J') elseif($pa['wep_kind'] == 'G' || $pa['wep_kind'] == 'J')
{ {
if(!$pa['type']) $log .= "<span class='grey'>{$pa['nm']}{$pa['wep']}的弹药数减少了{$hurtvalue}。</span><br>"; if(!$pa['type'])
{
if($hurtvalue > 0) $log .= "<span class='grey'>{$pa['nm']}{$pa['wep']}的弹药数减少了{$hurtvalue}。</span><br>";
else $log .= "<span class='grey'>{$pa['wep']}的弹药数凭空多出了".abs($hurtvalue)."……啊??</span><br>";
}
if(empty($pa['weps'])) if(empty($pa['weps']))
{ {
$log .= "{$pa['nm']}的<span class=\"red\">{$pa['wep']}</span>弹药用光了!<br>"; $log .= "{$pa['nm']}的<span class=\"red\">{$pa['wep']}</span>弹药用光了!<br>";
......
This diff is collapsed.
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
if($bsk_cost) $pa['rage'] -= $bsk_cost; if($bsk_cost) $pa['rage'] -= $bsk_cost;
# 成功释放主动技,应用标记 # 成功释放主动技,应用标记
$pa['bskill_'.$bsk] = 1; $pa['bskill_'.$bsk] = 1;
$pa['bskilllog'] .= "<span class=\"lime\">{$pa['nm']}{$pd['nm']}发动了技能「{$bsk_name}」!</span><br>"; $pa['bskilllog'] = "<span class=\"lime\">{$pa['nm']}{$pd['nm']}发动了技能「{$bsk_name}」!</span><br>";
# 限次技每次使用时次数+1 # 限次技每次使用时次数+1
if(get_skilltags($bsk,'limit')) if(get_skilltags($bsk,'limit'))
{ {
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
if($bsk_cost) $pa['rage'] -= $bsk_cost; if($bsk_cost) $pa['rage'] -= $bsk_cost;
# 成功释放主动技,应用标记 # 成功释放主动技,应用标记
$pa['bskill_'.$bsk] = 1; $pa['bskill_'.$bsk] = 1;
$log .= "<span class=\"lime\">{$pa['nm']}{$pd['nm']}发动了技能「{$bsk_name}」!</span><br>"; $pa['bskilllog'] = "<span class=\"lime\">{$pa['nm']}{$pd['nm']}发动了技能「{$bsk_name}」!</span><br>";
# 限次技每次使用时次数+1 # 限次技每次使用时次数+1
if(get_skilltags($bsk,'limit')) if(get_skilltags($bsk,'limit'))
{ {
...@@ -83,9 +83,10 @@ ...@@ -83,9 +83,10 @@
# 技能判定(被动型):这里通常只判定技能是否生效,如生效,提供一个标记 # 技能判定(被动型):这里通常只判定技能是否生效,如生效,提供一个标记
function attr_extra_passive_skills(&$pa,&$pd,$active,$sk='') function attr_extra_passive_skills(&$pa,&$pd,$active,$sk='')
{ {
global $cskills; global $cskills,$log;
if(!empty($pa['clbpara']['skill'])) if(!empty($pa['clbpara']['skill']))
{ {
$pa['skilllog'] = '';
# 遍历pa技能队列 检查是否解锁 # 遍历pa技能队列 检查是否解锁
foreach($pa['clbpara']['skill'] as $sk) foreach($pa['clbpara']['skill'] as $sk)
{ {
...@@ -100,17 +101,27 @@ ...@@ -100,17 +101,27 @@
# 「偷袭」或「闷棍」技能生效时,「猛击」必定触发; # 「偷袭」或「闷棍」技能生效时,「猛击」必定触发;
$sk_obbs = isset($pa['bskill_c1_stalk'])||isset($pa['bskill_c1_bjack']) ? 100 : get_skillvars('c1_crit','rate'); $sk_obbs = isset($pa['bskill_c1_stalk'])||isset($pa['bskill_c1_bjack']) ? 100 : get_skillvars('c1_crit','rate');
# 成功触发时 # 成功触发时
if($sk_dice < $sk_obbs) if($sk_dice < $sk_obbs) $pa['skill_c1_crit'] = 1;
{
$pa['skill_c1_crit'] = 1;
$pa['skill_c1_crit_log'] = "<span class=\"yellow\">{$pa['nm']}朝着{$pd['nm']}打出了凶猛的一击!<span class=\"clan\">{$pd['nm']}被打晕了过去!</span></span><br>";
}
} }
# 「枭眼」特殊判定:射程不小于对方时激活效果 # 「枭眼」特殊判定:射程不小于对方时激活效果
elseif($sk == 'c3_hawkeye' && $pa['wep_range'] >= $pd['wep_range']) elseif($sk == 'c3_hawkeye' && $pa['wep_range'] >= $pd['wep_range'])
{ {
$pa['skill_c3_hawkeye'] = 1; $pa['skill_c3_hawkeye'] = 1;
} }
# 「护盾」特殊判定:生命值不小于指定百分比时激活一个护盾
elseif($sk == 'c7_shield')
{
$sk_lvl = get_skilllvl('c7_shield',$pa);
$hpalert = get_skillvars('c7_shield','hpalert',$sk_lvl);
if($pa['hp'] <= $pa['mhp']*($hpalert/100))
{
getclubskill('buff_shield',$pa['clbpara']);
set_skillpara('buff_shield','svar',get_skillvars('c7_shield','svar',$sk_lvl),$data['clbpara']);
$pa['skill_buff_shield'] = 1;
//$pa['skilllog'] .= "<span class='lime'>感知到危险,闪烁着淡蓝幽光的护盾自动出现在{$pa['nm']}身旁!<br></span>";
$log .= "<span class='lime'>感知到危险,闪烁着淡蓝幽光的护盾自动出现在{$pa['nm']}身旁!<br></span>";
}
}
# 其他非特判技能,默认给一个触发标记 # 其他非特判技能,默认给一个触发标记
else else
{ {
...@@ -438,6 +449,12 @@ ...@@ -438,6 +449,12 @@
$sk_var = round($pa['att']/$ex_wep_dmg[$key]); $sk_var = round($pa['att']/$ex_wep_dmg[$key]);
$ex_dmg_fix += $sk_var; $ex_dmg_fix += $sk_var;
} }
# 「磁暴」效果判定:
if(isset($pa['bskill_c7_electric']) && $key == 'e')
{
$sk_var = get_skillvars('c7_electric','exdmgfix');
$ex_damage_fix += $sk_var;
}
return $ex_dmg_fix; return $ex_dmg_fix;
} }
......
...@@ -53,6 +53,11 @@ ...@@ -53,6 +53,11 @@
$uskid = substr($event,9); $uskid = substr($event,9);
set_skillpara($uskid,'active',0,$para); set_skillpara($uskid,'active',0,$para);
} }
elseif(strpos($event,'setstarttimes_')===0)
{
$uskid = str_replace('setstarttimes_','',$event);
set_starttimes($uskid,$para);
}
} }
} }
$sk_key = array_search($sk,$para['skill']); $sk_key = array_search($sk,$para['skill']);
...@@ -95,7 +100,8 @@ ...@@ -95,7 +100,8 @@
function upgclbskills($sk,$nums=1,$choice=NULL) function upgclbskills($sk,$nums=1,$choice=NULL)
{ {
global $log,$club,$clbpara,$skillpoint,$gamecfg,$now; global $log,$club,$clbpara,$skillpoint,$gamecfg,$now;
global $cskills; global $cskills,$pdata;
include_once GAME_ROOT.'./include/game/revclubskills_extra.func.php';
# 合法性检查 # 合法性检查
$flag = check_can_upgclbskills($sk,$nums,$choice); $flag = check_can_upgclbskills($sk,$nums,$choice);
...@@ -132,9 +138,10 @@ ...@@ -132,9 +138,10 @@
{ {
foreach($cskill['events'] as $event) foreach($cskill['events'] as $event)
{ {
$flag = upgclbskills_events($event,$sk); $flag = upgclbskills_events($event,$sk,$pdata);
if(!$flag) break;
} }
# 会触发多个事件时,只要有一个事件成功触发就会继续升级流程 # 会触发多个事件时,只要有一个事件成功触发就会继续升级流程 # 什么脑瘫设计,赶紧改成反过来
if(!$flag) return; if(!$flag) return;
} }
# 检查技能升级是否会直接影响属性: # 检查技能升级是否会直接影响属性:
...@@ -169,159 +176,12 @@ ...@@ -169,159 +176,12 @@
if(!empty($cost)) $skillpoint -= $cost; if(!empty($cost)) $skillpoint -= $cost;
$log .= $clog; $log .= $clog;
# 存在复选框的技能,升级后重载技能页面 # 存在复选框的技能,升级后重载技能页面
//if(isset($cskill['num_input'])) if(empty($cskill['no_reload_page']))
//{ {
global $opendialog; global $opendialog;
$opendialog = 'skillpage'; $opendialog = 'skillpage';
//}
return;
}
# 升级指定技能会触发的事件,返回0时代表无法升级技能
function upgclbskills_events($event,$sk,$data=NULL)
{
global $log,$cskills,$clbpara,$name;
# 事件:激活技能
if($event == 'active_news')
{
addnews($now,'ask_'.$sk,$name);
return 1;
}
# 事件:治疗
if($event == 'heal')
{
# 事件效果:回复满生命、体力,并清空所有异常状态
global $hp,$mhp,$sp,$msp,$inf;
$heal_flag = 0;
if(!empty($inf))
{
$inf = '';
$heal_flag = 1;
$log .= "你的所有异常状态全部解除了!<br>";
}
if($hp < $mhp || $sp < $msp)
{
$hp = $mhp; $sp = $msp;
$heal_flag = 1;
$log .= "你的生命与体力完全恢复了!<br>";
}
if(!$heal_flag)
{
$log .= "你不需要使用这个技能!<br>";
return 0;
}
return 1;
}
# 事件:怒气充能
if($event == 'charge')
{
global $rage;
if($rage >= 255)
{
$log .= "你不需要使用这个技能!<br>";
return 0;
}
$rage = min(255,$rage + get_skillvars('c9_charge','rageadd'));
// 检查当前技能使用次数
$active_t = get_skillpara('c9_charge','active_t',$clbpara);
// 第3次使用时开始冷却
if($active_t+1 > get_skillvars('c9_charge','freet'))
{
$event = 'setstarttimes_c9_charge';
}
else
{
return 1;
}
}
# 事件:获取指定技能
if(strpos($event,'getskill_') === 0)
{
# 事件效果:获取一个登记过的技能
$gskid = substr($event,9);
if(isset($cskills[$gskid]))
{
getclubskill($gskid,$clbpara);
}
else
{
$log .= "技能{$gskid}不存在!这可能是一个BUG,请联系管理员。<br>";
return 0;
}
return 1;
} }
# 事件:为指定技能设置开始时间 return;
if(strpos($event,'setstarttimes_') === 0)
{
$gskid = substr($event,14);
if(isset($cskills[$gskid]))
{
set_starttimes($gskid,$clbpara);
}
else
{
$log .= "技能{$gskid}不存在!这可能是一个BUG,请联系管理员。<br>";
return 0;
}
return 1;
}
# 事件:为指定技能设置持续时间
if(strpos($event,'setlasttimes_') === 0)
{
$gskarr = substr($event,13);
$gskarr = explode('+',$gskarr);
$gskid = $gskarr[0]; $gsklst = $gskarr[1];
if(isset($cskills[$gskid]) && $gsklst)
{
set_lasttimes($gskid,$gsklst,$clbpara);
}
else
{
$log .= "技能{$gskid}不存在或持续时间{$gsklst}无效!这可能是一个BUG,请联系管理员。<br>";
return 0;
}
}
# 事件:切换技能的激活状态
if(strpos($event,'active|') === 0)
{
$event = explode('|',$event); $sk = $event[1];
$now_active = get_skillpara($sk,'active',$clbpara);
$active = $now_active ? 0 : 1;
$log .= $active ? "<span class='yellow'>技能已激活!</span><br>" : "<span class='yellow'>停用了技能效果。</span><br>" ;
set_skillpara($sk,'active',$active,$clbpara);
}
# 事件:天运
if($event == 'c6_godluck' || $event == 'c6_godsend')
{
$dice0 = rand(1,2);
$dice1 = rand(get_skillvars($event,'flucmin'),get_skillvars($event,'flucmax'));
if($event == 'c6_godluck')
{
if($dice0 == 1)
{
set_skillpara($event,'accloss',get_skillpara($event,'accloss',$clbpara)+$dice1,$clbpara);
set_skillpara($event,'rbloss',get_skillpara($event,'rbloss',$clbpara)+$dice1,$clbpara);
}
else
{
set_skillpara($event,'accgain',get_skillpara($event,'accgain',$clbpara)+$dice1,$clbpara);
set_skillpara($event,'rbgain',get_skillpara($event,'rbgain',$clbpara)+$dice1,$clbpara);
}
}
else
{
if($dice0 == 1)
{
set_skillpara($event,'actgain',get_skillpara($event,'actgain',$clbpara)+$dice1,$clbpara);
set_skillpara($event,'hidegain',get_skillpara($event,'hidegain',$clbpara)+$dice1,$clbpara);
}
else
{
set_skillpara($event,'countergain',get_skillpara($event,'countergain',$clbpara)+$dice1,$clbpara);
}
}
}
return 1;
} }
# 升级技能时的合法性检查 # 升级技能时的合法性检查
...@@ -398,7 +258,8 @@ ...@@ -398,7 +258,8 @@
$st = get_starttimes($sk,$data['clbpara']); $st = get_starttimes($sk,$data['clbpara']);
if($st) if($st)
{ {
$cd = get_skillvars($sk,'cd'); if(isset($cskills[$sk]['maxlvl'])) $sklvl = get_skilllvl($sk,$data);
$cd = isset($sklvl) ? get_skillvars($sk,'cd',$sklvl) : get_skillvars($sk,'cd');
if($now < $st+$cd) if($now < $st+$cd)
{ {
$last_cd = $st+$cd-$now; $last_cd = $st+$cd-$now;
......
...@@ -6,35 +6,182 @@ ...@@ -6,35 +6,182 @@
# 新社团技能 - 特殊社团技能处理: # 新社团技能 - 特殊社团技能处理:
//include_once GAME_ROOT.'./include/game/dice.func.php'; # 升级指定技能会触发的事件,返回0时代表无法升级技能
function upgclbskills_events($event,$sk,&$data=NULL)
/*# 「百战」技能判定
function skill_c1_veteran_act($choice)
{ {
global $log,$pdata,$cskills,$club,$clbpara,$itemspkinfo; global $log,$cskills,$clbpara,$name;
if(!check_skill_unlock('c1_veteran',$pdata)) # 事件:激活技能
if($event == 'active_news')
{
addnews($now,'ask_'.$sk,$name);
return 1;
}
# 事件:治疗
if($event == 'heal')
{ {
$c_arr = get_skillvars('c1_veteran','defkind'); # 事件效果:回复满生命、体力,并清空所有异常状态
$cvar = &$clbpara['skillpara']['c1_veteran']['choice']; global $hp,$mhp,$sp,$msp,$inf;
if(empty($choice) || !in_array($choice,$c_arr)) $heal_flag = 0;
if(!empty($inf))
{ {
$log .= "选定的防御属性不存在!<br>"; $inf = '';
return; $heal_flag = 1;
$log .= "你的所有异常状态全部解除了!<br>";
} }
if($choice == $cvar) if($hp < $mhp || $sp < $msp)
{ {
$log .= "不能重复选择属性。<br>"; $hp = $mhp; $sp = $msp;
return; $heal_flag = 1;
$log .= "你的生命与体力完全恢复了!<br>";
}
if(!$heal_flag)
{
$log .= "你不需要使用这个技能!<br>";
return 0;
} }
$cvar = $choice; return 1;
$log .= "防御属性已变更为<span class='yellow'>{$itemspkinfo[$choice]}</span>!<br>";
} }
else # 事件:怒气充能
if($event == 'charge')
{ {
$log .= "「百战」技能未解锁!<br>"; global $rage;
if($rage >= 255)
{
$log .= "你不需要使用这个技能!<br>";
return 0;
}
$rage = min(255,$rage + get_skillvars('c9_charge','rageadd'));
// 检查当前技能使用次数
$active_t = get_skillpara('c9_charge','active_t',$clbpara);
// 第3次使用时开始冷却
if($active_t+1 > get_skillvars('c9_charge','freet'))
{
$event = 'setstarttimes_c9_charge';
}
else
{
return 1;
}
} }
return; # 事件:广域探测
}*/ if($event == 'radar')
{
include_once GAME_ROOT.'./include/game/item2.func.php';
newradar(2);
return 1;
}
# 事件:获取指定技能
if(strpos($event,'getskill_') === 0)
{
# 事件效果:获取一个登记过的技能
$gskid = substr($event,9);
if(isset($cskills[$gskid]))
{
getclubskill($gskid,$clbpara);
}
else
{
$log .= "技能{$gskid}不存在!这可能是一个BUG,请联系管理员。<br>";
return 0;
}
return 1;
}
# 事件:为指定技能1设置技能2中的静态参数3
if(strpos($event,'setskillvars_') === 0)
{
$sk_arr = str_replace('setskillvars_','',$event);
$sk_arr = explode('|',$sk_arr);
if(count($sk_arr) == 3)
{
$sk0 = $sk_arr[0]; $sk1 = $sk_arr[1]; $sk_vars = $sk_arr[2];
$sk_vars = strpos($sk_vars,'+')!==false ? explode('+',$sk_vars) : Array($sk_vars);
if(isset($cskills[$sk1]['maxlvl'])) $sklvl = get_skilllvl($sk1,$data);
foreach($sk_vars as $var)
{
$sk_var = isset($sklvl) ? get_skillvars($sk1,$var,$sklvl) : get_skillvars($sk1,$var);
set_skillpara($sk0,$var,$sk_var,$data['clbpara']);
}
return 1;
}
else
{
$log .= "参数设置错误<br>";
return 0;
}
}
# 事件:为指定技能设置开始时间
if(strpos($event,'setstarttimes_') === 0)
{
$gskid = substr($event,14);
if(isset($cskills[$gskid]))
{
set_starttimes($gskid,$clbpara);
}
else
{
$log .= "技能{$gskid}不存在!这可能是一个BUG,请联系管理员。<br>";
return 0;
}
return 1;
}
# 事件:为指定技能设置持续时间
if(strpos($event,'setlasttimes_') === 0)
{
$gskarr = substr($event,13);
$gskarr = explode('+',$gskarr);
$gskid = $gskarr[0]; $gsklst = $gskarr[1];
if(isset($cskills[$gskid]) && $gsklst)
{
set_lasttimes($gskid,$gsklst,$clbpara);
}
else
{
$log .= "技能{$gskid}不存在或持续时间{$gsklst}无效!这可能是一个BUG,请联系管理员。<br>";
return 0;
}
}
# 事件:切换技能的激活状态
if(strpos($event,'active|') === 0)
{
$event = explode('|',$event); $sk = $event[1];
$now_active = get_skillpara($sk,'active',$clbpara);
$active = $now_active ? 0 : 1;
$log .= $active ? "<span class='yellow'>技能已激活!</span><br>" : "<span class='yellow'>停用了技能效果。</span><br>" ;
set_skillpara($sk,'active',$active,$clbpara);
}
# 事件:天运
if($event == 'c6_godluck' || $event == 'c6_godsend')
{
$dice0 = rand(1,2);
$dice1 = rand(get_skillvars($event,'flucmin'),get_skillvars($event,'flucmax'));
if($event == 'c6_godluck')
{
if($dice0 == 1)
{
set_skillpara($event,'accloss',get_skillpara($event,'accloss',$clbpara)+$dice1,$clbpara);
set_skillpara($event,'rbloss',get_skillpara($event,'rbloss',$clbpara)+$dice1,$clbpara);
}
else
{
set_skillpara($event,'accgain',get_skillpara($event,'accgain',$clbpara)+$dice1,$clbpara);
set_skillpara($event,'rbgain',get_skillpara($event,'rbgain',$clbpara)+$dice1,$clbpara);
}
}
else
{
if($dice0 == 1)
{
set_skillpara($event,'actgain',get_skillpara($event,'actgain',$clbpara)+$dice1,$clbpara);
set_skillpara($event,'hidegain',get_skillpara($event,'hidegain',$clbpara)+$dice1,$clbpara);
}
else
{
set_skillpara($event,'countergain',get_skillpara($event,'countergain',$clbpara)+$dice1,$clbpara);
}
}
}
return 1;
}
# 「穿杨」与「咆哮」解锁 # 「穿杨」与「咆哮」解锁
function skill_c4_unlock($csk) function skill_c4_unlock($csk)
......
...@@ -533,6 +533,7 @@ ...@@ -533,6 +533,7 @@
# 战斗技文本 # 战斗技文本
if(isset($pa['bskilllog'])) $log.= $pa['bskilllog']; if(isset($pa['bskilllog'])) $log.= $pa['bskilllog'];
if(isset($pa['bskilllog2'])) $log.= $pa['bskilllog2']; if(isset($pa['bskilllog2'])) $log.= $pa['bskilllog2'];
if(!empty($pa['skilllog'])) $log.= $pa['skilllog'];
# 命中次数大于0时 执行伤害判断 # 命中次数大于0时 执行伤害判断
if ($pa['hitrate_times'] > 0) if ($pa['hitrate_times'] > 0)
...@@ -543,7 +544,7 @@ ...@@ -543,7 +544,7 @@
{ {
$damage = $fix_dmg; $damage = $fix_dmg;
$pa['final_damage'] = $damage; $pa['final_damage'] = $damage;
if($damage <= 0) $log .= "<span class=\"yellow\">造成的总伤害:<span class=\"red\">$damage</span>。</span><br>"; if($damage == 0) $log .= "<span class=\"yellow\">造成的总伤害:<span class=\"red\">$damage</span>。</span><br>";
} }
//如无,则正常计算伤害 //如无,则正常计算伤害
else else
...@@ -587,8 +588,9 @@ ...@@ -587,8 +588,9 @@
} }
$damage = $damage > 1 ? round ( $damage ) : 1; //命中了至少会保留1点伤害 此所谓雁过拔毛 $damage = $damage > 1 ? round ( $damage ) : 1; //命中了至少会保留1点伤害 此所谓雁过拔毛
$log.="<span class=\"red\">$damage</span>点伤害!<br>"; $log.="<span class=\"red\">$damage</span>点伤害!<br>";
//最终物理伤害 //造成的最终物理伤害
$pdamage = $damage; $pdamage = $damage;
$pa['phy_damage'] = $pdamage;
# 物理伤害计算结束后、加载预受伤事件……: # 物理伤害计算结束后、加载预受伤事件……:
get_hurt_prepare_events($pa,$pd,$active); get_hurt_prepare_events($pa,$pd,$active);
...@@ -652,7 +654,8 @@ ...@@ -652,7 +654,8 @@
//存在额外的属性伤害文本,输出 //存在额外的属性伤害文本,输出
if(isset($elog)) $log .= $elog."=<span class=\"red\">{$ex_damage}</span>点属性伤害!<br>"; if(isset($elog)) $log .= $elog."=<span class=\"red\">{$ex_damage}</span>点属性伤害!<br>";
} }
//并入最终伤害 //将造成的最终属性伤害登记在$pa['ex_damage'] 并入最终伤害
$pa['ex_damage'] = $ex_damage;
$damage += $ex_damage; $damage += $ex_damage;
} }
...@@ -719,7 +722,7 @@ ...@@ -719,7 +722,7 @@
# active已经没用了……大概吧 # active已经没用了……大概吧
function rev_combat_result(&$pa,&$pd,$active) function rev_combat_result(&$pa,&$pd,$active)
{ {
global $log; global $log,$now;
# 执行扣血后的战斗结算阶段事件 # 执行扣血后的战斗结算阶段事件
rev_combat_result_events($pa,$pd,$active); rev_combat_result_events($pa,$pd,$active);
# 死者(受伤者)pd血量低于0时 结算击杀/复活事件 # 死者(受伤者)pd血量低于0时 结算击杀/复活事件
......
...@@ -597,7 +597,7 @@ function discover($schmode = 0) { ...@@ -597,7 +597,7 @@ function discover($schmode = 0) {
//include_once GAME_ROOT.'./include/game/dice.func.php'; //include_once GAME_ROOT.'./include/game/dice.func.php';
include_once GAME_ROOT.'./include/game/revbattle.func.php'; include_once GAME_ROOT.'./include/game/revbattle.func.php';
//刷新敌人时效性状态 //刷新敌人时效性状态
if(!empty($edata['clbpara']['lasttimes'])) check_skilllasttimes($edata); if(!empty($edata['clbpara']['lasttimes'])) $edata = check_skilllasttimes($edata);
//计算先攻概率 //计算先攻概率
$active_r = get_active_r_rev($pdata,$edata); $active_r = get_active_r_rev($pdata,$edata);
$bid = $edata['pid']; $bid = $edata['pid'];
...@@ -610,7 +610,7 @@ function discover($schmode = 0) { ...@@ -610,7 +610,7 @@ function discover($schmode = 0) {
#findenemy($edata); #findenemy($edata);
findenemy_rev($edata); findenemy_rev($edata);
return; return;
} }
//挨打 //挨打
else else
{ {
......
...@@ -38,6 +38,11 @@ function init_icon_states(&$pa,$pd,$ismeet=0) ...@@ -38,6 +38,11 @@ function init_icon_states(&$pa,$pd,$ismeet=0)
function init_hp_states(&$pa,$pd,$ismeet=0) function init_hp_states(&$pa,$pd,$ismeet=0)
{ {
global $fog,$hpinfo,$spinfo,$rageinfo; global $fog,$hpinfo,$spinfo,$rageinfo;
# 「护盾」数值显示
if(!check_skill_unlock('buff_shield',$pa))
{
$pa['shield_info'] = "<span class=\"blueseed\" tooltip2=\"【护盾】:可抵消等同于护盾值的伤害。护盾值只在抵消属性伤害时消耗,抵消电击伤害时双倍消耗。护盾存在时不会受到反噬伤害或陷入异常状态。\">(".get_skillpara('buff_shield','svar',$pa['clbpara']).")</span>";
}
# 「天眼」技能判定 # 「天眼」技能判定
if(!check_skill_unlock('c6_godeyes',$pd)) if(!check_skill_unlock('c6_godeyes',$pd))
{ {
......
...@@ -538,7 +538,7 @@ function gameover($time = 0, $mode = '', $winname = '') { ...@@ -538,7 +538,7 @@ function gameover($time = 0, $mode = '', $winname = '') {
$pdata['getime'] = $time; $pdata['getime'] = $time;
$pdata['hdmg'] = $hdamage; $pdata['hdmg'] = $hdamage;
$pdata['hdp'] = $hplayer; $pdata['hdp'] = $hplayer;
$pdata['teamMate'] = !empty($team_mates) ? implode("+",$team_mates) : ''; $pdata['teamMate'] = !empty($team_mates) && count($team_mates)>1 ? implode("+",$team_mates) : '';
$pdata['teamIcon'] = !empty($team_mates) ? 1 : 0; $pdata['teamIcon'] = !empty($team_mates) ? 1 : 0;
$db->query("INSERT INTO {$tablepre}winners (gid,nick,name,pass,type,endtime,gd,sNo,icon,club,hp,mhp,sp,msp,ss,mss,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,killnum2,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,teamMate,teamIcon,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,itm6,itmk6,itme6,itms6,motto,wmode,vnum,gtime,gstime,getime,hdmg,hdp,hkill,hkp,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5,itmsk6) VALUES ('".$gamenum."','".$pdata['nick']."','".$pdata['name']."','".$pdata['pass']."','".$pdata['type']."','".$pdata['endtime']."','".$pdata['gd']."','".$pdata['sNo']."','".$pdata['icon']."','".$pdata['club']."','".$pdata['hp']."','".$pdata['mhp']."','".$pdata['sp']."','".$pdata['msp']."','".$pdata['ss']."','".$pdata['mss']."','".$pdata['att']."','".$pdata['def']."','".$pdata['pls']."','".$pdata['lvl']."','".$pdata['exp']."','".$pdata['money']."','".$pdata['bid']."','".$pdata['inf']."','".$pdata['rage']."','".$pdata['pose']."','".$pdata['tactic']."','".$pdata['killnum']."','".$pdata['killnum2']."','".$pdata['state']."','".$pdata['wp']."','".$pdata['wk']."','".$pdata['wg']."','".$pdata['wc']."','".$pdata['wd']."','".$pdata['wf']."','".$pdata['teamID']."','".$pdata['teamPass']."','".$pdata['teamMate']."','".$pdata['teamIcon']."','".$pdata['wep']."','".$pdata['wepk']."','".$pdata['wepe']."','".$pdata['weps']."','".$pdata['arb']."','".$pdata['arbk']."','".$pdata['arbe']."','".$pdata['arbs']."','".$pdata['arh']."','".$pdata['arhk']."','".$pdata['arhe']."','".$pdata['arhs']."','".$pdata['ara']."','".$pdata['arak']."','".$pdata['arae']."','".$pdata['aras']."','".$pdata['arf']."','".$pdata['arfk']."','".$pdata['arfe']."','".$pdata['arfs']."','".$pdata['art']."','".$pdata['artk']."','".$pdata['arte']."','".$pdata['arts']."','".$pdata['itm0']."','".$pdata['itmk0']."','".$pdata['itme0']."','".$pdata['itms0']."','".$pdata['itm1']."','".$pdata['itmk1']."','".$pdata['itme1']."','".$pdata['itms1']."','".$pdata['itm2']."','".$pdata['itmk2']."','".$pdata['itme2']."','".$pdata['itms2']."','".$pdata['itm3']."','".$pdata['itmk3']."','".$pdata['itme3']."','".$pdata['itms3']."','".$pdata['itm4']."','".$pdata['itmk4']."','".$pdata['itme4']."','".$pdata['itms4']."','".$pdata['itm5']."','".$pdata['itmk5']."','".$pdata['itme5']."','".$pdata['itms5']."','".$pdata['itm6']."','".$pdata['itmk6']."','".$pdata['itme6']."','".$pdata['itms6']."','".$pdata['motto']."','".$pdata['wmode']."','".$pdata['vnum']."','".$pdata['gtime']."','".$pdata['gstime']."','".$pdata['getime']."','".$pdata['hdmg']."','".$pdata['hdp']."','".$pdata['hkill']."','".$pdata['hkp']."','".$pdata['wepsk']."','".$pdata['arbsk']."','".$pdata['arhsk']."','".$pdata['arask']."','".$pdata['arfsk']."','".$pdata['artsk']."','".$pdata['itmsk0']."','".$pdata['itmsk1']."','".$pdata['itmsk2']."','".$pdata['itmsk3']."','".$pdata['itmsk4']."','".$pdata['itmsk5']."','".$pdata['itmsk6']."')"); $db->query("INSERT INTO {$tablepre}winners (gid,nick,name,pass,type,endtime,gd,sNo,icon,club,hp,mhp,sp,msp,ss,mss,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,killnum2,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,teamMate,teamIcon,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,itm6,itmk6,itme6,itms6,motto,wmode,vnum,gtime,gstime,getime,hdmg,hdp,hkill,hkp,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5,itmsk6) VALUES ('".$gamenum."','".$pdata['nick']."','".$pdata['name']."','".$pdata['pass']."','".$pdata['type']."','".$pdata['endtime']."','".$pdata['gd']."','".$pdata['sNo']."','".$pdata['icon']."','".$pdata['club']."','".$pdata['hp']."','".$pdata['mhp']."','".$pdata['sp']."','".$pdata['msp']."','".$pdata['ss']."','".$pdata['mss']."','".$pdata['att']."','".$pdata['def']."','".$pdata['pls']."','".$pdata['lvl']."','".$pdata['exp']."','".$pdata['money']."','".$pdata['bid']."','".$pdata['inf']."','".$pdata['rage']."','".$pdata['pose']."','".$pdata['tactic']."','".$pdata['killnum']."','".$pdata['killnum2']."','".$pdata['state']."','".$pdata['wp']."','".$pdata['wk']."','".$pdata['wg']."','".$pdata['wc']."','".$pdata['wd']."','".$pdata['wf']."','".$pdata['teamID']."','".$pdata['teamPass']."','".$pdata['teamMate']."','".$pdata['teamIcon']."','".$pdata['wep']."','".$pdata['wepk']."','".$pdata['wepe']."','".$pdata['weps']."','".$pdata['arb']."','".$pdata['arbk']."','".$pdata['arbe']."','".$pdata['arbs']."','".$pdata['arh']."','".$pdata['arhk']."','".$pdata['arhe']."','".$pdata['arhs']."','".$pdata['ara']."','".$pdata['arak']."','".$pdata['arae']."','".$pdata['aras']."','".$pdata['arf']."','".$pdata['arfk']."','".$pdata['arfe']."','".$pdata['arfs']."','".$pdata['art']."','".$pdata['artk']."','".$pdata['arte']."','".$pdata['arts']."','".$pdata['itm0']."','".$pdata['itmk0']."','".$pdata['itme0']."','".$pdata['itms0']."','".$pdata['itm1']."','".$pdata['itmk1']."','".$pdata['itme1']."','".$pdata['itms1']."','".$pdata['itm2']."','".$pdata['itmk2']."','".$pdata['itme2']."','".$pdata['itms2']."','".$pdata['itm3']."','".$pdata['itmk3']."','".$pdata['itme3']."','".$pdata['itms3']."','".$pdata['itm4']."','".$pdata['itmk4']."','".$pdata['itme4']."','".$pdata['itms4']."','".$pdata['itm5']."','".$pdata['itmk5']."','".$pdata['itme5']."','".$pdata['itms5']."','".$pdata['itm6']."','".$pdata['itmk6']."','".$pdata['itme6']."','".$pdata['itms6']."','".$pdata['motto']."','".$pdata['wmode']."','".$pdata['vnum']."','".$pdata['gtime']."','".$pdata['gstime']."','".$pdata['getime']."','".$pdata['hdmg']."','".$pdata['hdp']."','".$pdata['hkill']."','".$pdata['hkp']."','".$pdata['wepsk']."','".$pdata['arbsk']."','".$pdata['arhsk']."','".$pdata['arask']."','".$pdata['arfsk']."','".$pdata['artsk']."','".$pdata['itmsk0']."','".$pdata['itmsk1']."','".$pdata['itmsk2']."','".$pdata['itmsk3']."','".$pdata['itmsk4']."','".$pdata['itmsk5']."','".$pdata['itmsk6']."')");
} }
......
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
</tr> </tr>
<tr> <tr>
<td class="b2" width=70px height=20px><span>{lang hp}</span></td> <td class="b2" width=70px height=20px><span>{lang hp}</span></td>
<td class="b3" width=170px><span><span class="$hpcolor">$sdata['hp'] / $sdata['mhp']</span></span></td> <td class="b3" width=170px><span><span class="$hpcolor"><!--{if isset($sdata['shield_info'])}-->{$sdata['shield_info']}<!--{/if}-->$sdata['hp'] / $sdata['mhp']</span></span></td>
<td class="b2" width=70px><span>{lang sp}</span></td> <td class="b2" width=70px><span>{lang sp}</span></td>
<td class="b3" width=105px><span>$sdata['sp'] / $sdata['msp']</span></td> <td class="b3" width=105px><span>$sdata['sp'] / $sdata['msp']</span></td>
<td class="b2" width=70px><span>{lang rage}</span></td> <td class="b2" width=70px><span>{lang rage}</span></td>
......
...@@ -104,14 +104,14 @@ ...@@ -104,14 +104,14 @@
<!-- 第 4 行:地区功能--> <!-- 第 4 行:地区功能-->
<!--{if in_array($pls,$shops)}--> <!--{if in_array($pls,$shops)}-->
<input type="button" class="cmdbutton" id="sp_shop" name="sp_shop" value="商店" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_shop';postCmd('gamecmd','command.php');this.disabled=true;"> <input type="button" class="cmdbutton" id="sp_shop" name="sp_shop" value="商店" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_shop';postCmd('gamecmd','command.php');this.disabled=true;">
<br>
<!--{/if}--> <!--{/if}-->
<!--{if in_array($pls,$depots)}--> <!--{if in_array($pls,$depots)}-->
<span tooltip="向安全箱中存入或取出道具"> <span tooltip="向安全箱中存入或取出道具">
<input type="button" class="cmdbutton" id="sp_depot" name="sp_depot" value="安全箱" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_depot';postCmd('gamecmd','command.php');this.disabled=true;"> <input type="button" class="cmdbutton" id="sp_depot" name="sp_depot" value="安全箱" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_depot';postCmd('gamecmd','command.php');this.disabled=true;">
</span> </span>
<!--{/if}-->
<input type="button" class="cmdbutton" id="sp_skpts" name="sp_skpts" value="升级技能" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_skpts';postCmd('gamecmd','command.php');this.disabled=true;">
<br> <br>
<!--{/if}-->
<!-- 第 5 行:社团特殊功能--> <!-- 第 5 行:社团特殊功能-->
<!--{if $club == 7}--> <!--{if $club == 7}-->
......
...@@ -149,7 +149,14 @@ ...@@ -149,7 +149,14 @@
</span> </span>
</td> </td>
<td class="b2"><span>{lang hp}</span></td> <td class="b2"><span>{lang hp}</span></td>
<td class="b3"><span><span class="<!--{if $hp <= $mhp*0.2}-->red<!--{elseif $hp <= $mhp*0.5}-->yellow<!--{else}-->clan<!--{/if}-->">$hp / $mhp</span></span></td> <td class="b3">
<span>
<span class="<!--{if $hp <= $mhp*0.2}-->red<!--{elseif $hp <= $mhp*0.5}-->yellow<!--{else}-->clan<!--{/if}-->">
<!--{if isset($shield_info)}-->{$shield_info}<!--{/if}-->
$hp / $mhp
</span>
</span>
</td>
<td class="b2"><span>{lang skillpoint}</span></td> <td class="b2"><span>{lang skillpoint}</span></td>
<td class="b3"><!--{if $skillpoint > 0}--><span class="lime">$skillpoint</span><!--{else}--><span>$skillpoint</span><!--{/if}--></td> <td class="b3"><!--{if $skillpoint > 0}--><span class="lime">$skillpoint</span><!--{else}--><span>$skillpoint</span><!--{/if}--></td>
</tr> </tr>
......
...@@ -124,8 +124,8 @@ if($mode == 'enter') { ...@@ -124,8 +124,8 @@ if($mode == 'enter') {
//$itm[6] = '银白盒子'; $itmk[6] = 'p'; $itme[6] = 1; $itms[6] = 1; $itmsk[6] = 'ps'; //$itm[6] = '银白盒子'; $itmk[6] = 'p'; $itme[6] = 1; $itms[6] = 1; $itmsk[6] = 'ps';
$itm[5] = '秋刀鱼罐头'; $itmk[5] = 'HB'; $itme[5] = 70; $itms[5] = 15; $itm[5] = '秋刀鱼罐头'; $itmk[5] = 'HB'; $itme[5] = 70; $itms[5] = 15;
//$itm[5] = 'GRAND OPENING 「开门大吉」'; $itmk[5] = 'p000'; $itme[5] = 1; $itms[5] = 1; //$itm[5] = 'GRAND OPENING 「开门大吉」'; $itmk[5] = 'p000'; $itme[5] = 1; $itms[5] = 1;
$dice = rand(1,7); $dice = rand(4,8);
if($dice == 7) $dice = 9; if($dice == 8) $dice = 9;
$dice_name = $clubinfo[$dice]; $dice_name = $clubinfo[$dice];
$itm[5] = '「'.$dice_name.' 社团卡」'; $itmk[5] = 'ZB'; $itme[5] = $dice; $itms[5] = 1; $itm[5] = '「'.$dice_name.' 社团卡」'; $itmk[5] = 'ZB'; $itme[5] = $dice; $itms[5] = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment