Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
phpdts
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nemo Ma
phpdts
Commits
10e86d01
Commit
10e86d01
authored
Mar 18, 2023
by
Nemo Ma
Committed by
GitHub
Mar 18, 2023
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #70 from hikawiier/waaagh
rev combat phase 3.3
parents
5d5db1e2
186b3581
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
680 additions
and
318 deletions
+680
-318
command.php
command.php
+6
-5
game.php
game.php
+3
-2
gamedata/cache/clubskills_1.php
gamedata/cache/clubskills_1.php
+137
-8
gamedata/cache/elementmix_1.php
gamedata/cache/elementmix_1.php
+2
-2
gamedata/cache/mixitem_1.php
gamedata/cache/mixitem_1.php
+3
-3
gamedata/cache/resources_1.php
gamedata/cache/resources_1.php
+1
-2
gamedata/cache/style_20190718.css
gamedata/cache/style_20190718.css
+11
-0
include/game.func.php
include/game.func.php
+22
-20
include/game/achievement.func.php
include/game/achievement.func.php
+2
-2
include/game/combat.func.php
include/game/combat.func.php
+3
-1
include/game/event.func.php
include/game/event.func.php
+1
-1
include/game/item2.func.php
include/game/item2.func.php
+1
-1
include/game/itemmain.func.php
include/game/itemmain.func.php
+21
-5
include/game/revattr.func.php
include/game/revattr.func.php
+232
-71
include/game/revattr_extra.func.php
include/game/revattr_extra.func.php
+25
-8
include/game/revclubskills.func.php
include/game/revclubskills.func.php
+15
-154
include/game/revclubskills_extra.func.php
include/game/revclubskills_extra.func.php
+167
-20
include/game/revcombat.func.php
include/game/revcombat.func.php
+7
-4
include/game/search.func.php
include/game/search.func.php
+2
-2
include/init.func.php
include/init.func.php
+5
-0
include/system.func.php
include/system.func.php
+1
-1
templates/default/battle_rev.htm
templates/default/battle_rev.htm
+1
-1
templates/default/command.htm
templates/default/command.htm
+2
-2
templates/default/profile.htm
templates/default/profile.htm
+8
-1
valid.php
valid.php
+2
-2
No files found.
command.php
View file @
10e86d01
...
...
@@ -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'
]))
{
...
...
@@ -589,10 +589,11 @@ if($hp > 0){
$mode
=
'command'
;
}
}
elseif
(
$mode
==
'sp_skpts'
)
{
include_once
GAME_ROOT
.
'./include/game/clubskills.func.php'
;
upgradeclubskills
(
$command
);
calcskills
(
$skarr
);
$p12
[
1
]
=
1
;
$p12
[
2
]
=
2
;
//include_once GAME_ROOT.'./include/game/clubskills.func.php';
//upgradeclubskills($command);
//calcskills($skarr);
//$p12[1]=1; $p12[2]=2;
$log
.=
"不存在该指令!<br>"
;
$mode
=
'command'
;
}
elseif
(
$mode
==
'revskpts'
)
{
$sk
=
substr
(
$command
,
9
);
...
...
game.php
View file @
10e86d01
...
...
@@ -136,10 +136,11 @@ if($hp > 0 && $coldtimeon && $showcoldtimer && $rmcdtime){$log .= "行动冷却
//如果身上存在时效性技能,检查技能是否超时
if
(
$hp
>
0
&&
!
empty
(
$clbpara
[
'lasttimes'
]))
{
$flag
=
check_skilllasttimes
();
$flag
=
check_skilllasttimes
(
$pdata
);
if
(
$flag
)
{
$pdata
=
current_player_save
();
player_save
(
$pdata
);
$pdata
=
fetch_playerdata_by_name
(
$cuser
);
$pdata
[
'clbpara'
]
=
get_clbpara
(
$pdata
[
'clbpara'
]);
extract
(
$pdata
,
EXTR_REFS
);
init_playerdata
();
...
...
gamedata/cache/clubskills_1.php
View file @
10e86d01
...
...
@@ -12,7 +12,7 @@ $club_skillslist = Array
4
=>
Array
(
's_hp'
,
's_ad'
,
'f_heal'
,
'c4_stable'
,
'c4_break'
,
'c4_aiming'
,
'c4_loot'
,
'c4_roar'
,
'c4_sniper'
,
'c4_headshot'
),
#'狙击鹰眼',
5
=>
Array
(
's_hp'
,
's_ad'
,
'f_heal'
,
'c5_sneak'
,
'c5_caution'
,
'c5_review'
,
'c5_focus'
,
'c5_higheg'
,
'c5_double'
),
#'拆弹专家',
6
=>
Array
(
's_hp'
,
's_ad'
,
'f_heal'
,
'c6_godluck'
,
'c6_godsend'
,
'c6_godbless'
,
'c6_godpow'
,
'c6_godeyes'
,
'c6_justice'
),
#'宛如疾风',
7
=>
Array
(
's_hp'
,
's_ad'
,
'f_heal'
),
#'锡安成员',
7
=>
Array
(
's_hp'
,
's_ad'
,
'f_heal'
,
'c7_radar'
,
'c7_shield'
,
'c7_electric'
,
'c7_field'
,
'c7_emp'
,
'c7_overload'
),
#'锡安成员',
8
=>
Array
(
's_hp'
,
's_ad'
,
'f_heal'
),
#'黑衣组织',
9
=>
Array
(
's_hp'
,
's_ad'
,
'f_heal'
,
'c9_spirit'
,
'c9_lb'
,
'c9_iceheart'
,
'c9_charge'
,
'c9_heartfire'
),
#'超能力者',
10
=>
Array
(
's_hp'
,
's_ad'
,
'f_heal'
),
#'高速成长',
...
...
@@ -53,7 +53,6 @@ $cskills_tags = Array
'battle'
=>
'<span tooltip="可以在战斗中主动使用" class="gold">【战斗技】</span>'
,
'passive'
=>
'<span tooltip="满足条件时自动触发" class="gold">【被动技】</span>'
,
'active'
=>
'<span tooltip="在主动启动后才会产生效果" class="gold">【主动技】</span>'
,
//'cd' => '<span tooltip="隐藏标签:有此标签的技能会在载入时检查是否处于冷却状态" class="gold">【冷却技】</span>',
'openning'
=>
'<span tooltip="仅在先制发现敌人时可用" class="gold">【开幕技】</span>'
,
'limit'
=>
'<span tooltip="每局游戏内可发动次数有限" class="gold">【限次技】</span>'
,
//'buff' => '<span tooltip="隐藏标签:代表这是一个临时性状态" class="gold">【状态】</span>',
...
...
@@ -341,7 +340,7 @@ $cskills = Array
'c2_annihil'
=>
Array
(
'name'
=>
'歼灭'
,
'tags'
=>
Array
(
'active'
,
'cd'
),
'tags'
=>
Array
(
'active'
),
'desc'
=>
'发动后获得增益效果:<br>
持斩系武器时,你的攻击有<span class="yellow">[:rate:]%</span>概率造成<span class="red b">[:findmgr:]%</span>最终伤害;<br>
计算属性伤害时你的基础攻击力将视作武器攻击力。<br>
...
...
@@ -352,7 +351,7 @@ $cskills = Array
'effect'
=>
Array
(
0
=>
Array
(
'skillpara|c2_annihil-active'
=>
'=::1'
),
),
'events'
=>
Array
(
'
active_news'
,
'setstarttimes_c2_annihil'
,
'getskill_buff_annihil
'
),
'events'
=>
Array
(
'
setstarttimes_c2_annihil'
,
'getskill_buff_annihil'
,
'active_news
'
),
'link'
=>
Array
(
'buff_annihil'
),
'vars'
=>
Array
(
'lasttimes'
=>
200
,
//持续时间 仅供介绍文本显示用
...
...
@@ -839,8 +838,8 @@ $cskills = Array
(
'name'
=>
'双响'
,
'tags'
=>
Array
(
'battle'
,
'limit'
),
'desc'
=>
'本局已发动<span class="
yellow">[^skillpara|c5_double-active_t^]/[:maxactive_t:]次</span>
<br>使用爆系武器方可发动,连续攻击[:chase_t:]次。'
,
'bdesc'
=>
'本次战斗你将连续攻击[:chase_t:]次;本局已发动<span class="
yellow
">[^skillpara|c5_double-active_t^]/[:maxactive_t:]</span>次'
,
'desc'
=>
'本局已发动<span class="
redseed"> [^skillpara|c5_double-active_t^]/[:maxactive_t:] </span>次
<br>使用爆系武器方可发动,连续攻击[:chase_t:]次。'
,
'bdesc'
=>
'本次战斗你将连续攻击[:chase_t:]次;本局已发动<span class="
redseed
">[^skillpara|c5_double-active_t^]/[:maxactive_t:]</span>次'
,
'svars'
=>
Array
(
'active_t'
=>
0
,
),
...
...
@@ -949,10 +948,10 @@ $cskills = Array
'c9_charge'
=>
Array
(
'name'
=>
'充能'
,
'tags'
=>
Array
(
'
cd
'
),
'tags'
=>
Array
(
'
active
'
),
'desc'
=>
'发动后立即增加<span class="yellow">[:rageadd:]</span>点怒气。<br>
前<span class="yellow">[:freet:]</span>次发动没有冷却时间,之后每次发动冷却时间<span class="clan">[:cd:]</span>秒<br>
本局已发动:<span class="
yellow">[^skillpara|c9_charge-active_t^]
</span>次'
,
本局已发动:<span class="
redseed"> [^skillpara|c9_charge-active_t^]
</span>次'
,
'input'
=>
'发动'
,
'log'
=>
'<span class="lime">技能「充能」发动成功。</span><br>'
,
'events'
=>
Array
(
'charge'
,
'active_news'
),
...
...
@@ -1127,6 +1126,136 @@ $cskills = Array
'lvl'
=>
'[:lvl:] >= 15'
,
),
),
'c7_radar'
=>
Array
(
'name'
=>
'探测'
,
'desc'
=>
'消耗<span class="lime">1</span>技能点,进行一次广域探测'
,
'cost'
=>
1
,
'input'
=>
'探测'
,
'no_reload_page'
=>
1
,
'log'
=>
'消耗了<span class="lime">[:cost:]</span>技能点,激活了广域探测功能。<br>'
,
'events'
=>
Array
(
'radar'
),
),
'c7_shield'
=>
Array
(
'name'
=>
'护盾'
,
'tags'
=>
Array
(
'passive'
),
'desc'
=>
'进入战斗时,若生命值低于<span class="yellow">[:hpalert:]%</span>,生成一个拥有<span class="yellow">[:svar:]</span>点效果的<span class="gold" tooltip2="【护盾】:可抵消等同于护盾值的伤害。护盾值只在抵消属性伤害时消耗,抵消电击伤害时双倍消耗。护盾存在时不会受到反噬伤害或陷入异常状态。">护盾</span><br>
护盾值耗尽后,需要等待<span class="clan">[:cd:]</span>秒才能重新激活。'
,
'maxlvl'
=>
5
,
'cost'
=>
Array
(
4
,
4
,
5
,
7
,
9
,
-
1
),
'input'
=>
'升级'
,
'log'
=>
'<span class="yellow">技能「护盾」升级成功。</span><br>'
,
'status'
=>
Array
(
'skillpara|c7_shield-lvl'
),
'effect'
=>
Array
(
0
=>
Array
(
'skillpara|c7_shield-lvl'
=>
'+=::1'
,),
),
'svars'
=>
Array
(
'lvl'
=>
0
,
'accgain'
=>
0
,
'rbgain'
=>
0
,
'accloss'
=>
0
,
'rbloss'
=>
0
,
),
'vars'
=>
Array
(
'svar'
=>
Array
(
110
,
155
,
185
,
225
,
265
,
355
),
'cd'
=>
Array
(
150
,
120
,
120
,
90
,
60
,
45
),
'hpalert'
=>
Array
(
35
,
40
,
45
,
50
,
60
,
70
),
),
'lockdesc'
=>
Array
(
'skillpara|buff_shield-svar'
=>
'护盾已存在,无法重复生成!'
,
'skillcooldown'
=>
'护盾充能中!<br>充能所需时间:<span class="red">[:cd:]</span> 秒'
,
),
'unlock'
=>
Array
(
'skillpara|buff_shield-svar'
=>
'empty([:skillpara|buff_shield-svar:])'
,
'skillcooldown'
=>
0
,
),
),
'c7_electric'
=>
Array
(
'name'
=>
'磁暴'
,
'tags'
=>
Array
(
'battle'
),
'desc'
=>
'消耗<span class="yellow">[:ragecost:]</span>点怒气,本次攻击<span class="yellow">带电</span>,电击属性伤害<span class="yellow">+[:exdmgfix:]</span>点,
且有<span class="yellow">[:infr:]%</span>概率使敌人陷入<span class="yellow">麻痹</span>状态。<br>
若敌人已处于<span class="yellow">麻痹</span>状态,则<span class="yellow">眩晕</span>敌人<span class="clan">[:lasttimes:]</span>秒'
,
'bdesc'
=>
'本次攻击<span class="yellow">带电</span>,电击属性伤害<span class="yellow">+[:exdmgfix:]</span>,有<span class="yellow">[:infr:]%</span>概率<span class="yellow">麻痹</span>敌人,或使已麻痹敌人眩晕<span class="yellow">[:lasttimes:]</span>秒;消耗<span class="red">[:ragecost:]</span>怒气'
,
'vars'
=>
Array
(
'ragecost'
=>
25
,
'exdmgfix'
=>
60
,
'infr'
=>
40
,
'lasttimes'
=>
2
,
),
'lockdesc'
=>
Array
(
'lvl'
=>
'3级时解锁'
,
),
'unlock'
=>
Array
(
'lvl'
=>
'[:lvl:] >= 3'
,
),
),
'c7_field'
=>
Array
(
'name'
=>
'力场'
,
'tags'
=>
Array
(
'active'
),
'desc'
=>
'消耗<span class="lime">[:cost:]</span>技能点,无视冷却立刻激活一个<span class="gold" tooltip2="【护盾】:可抵消等同于护盾值的伤害。护盾值只在抵消属性伤害时消耗,抵消电击伤害时双倍消耗。护盾存在时不会受到反噬伤害或陷入异常状态。">护盾</span>'
,
'cost'
=>
2
,
'input'
=>
'激活'
,
'log'
=>
'<span class="yellow">「护盾」已激活!</span><br>'
,
'events'
=>
Array
(
'getskill_buff_shield'
,
'setskillvars_buff_shield|c7_shield|svar'
,
'active_news'
),
'link'
=>
Array
(
'c7_shield'
),
'lockdesc'
=>
Array
(
'lvl'
=>
'5级时解锁'
,
'skillpara|buff_shield-svar'
=>
'护盾已存在,无法重复生成!'
,
),
'unlock'
=>
Array
(
'lvl'
=>
'[:lvl:] >= 5'
,
'skillpara|buff_shield-svar'
=>
'empty([:skillpara|buff_shield-svar:])'
,
),
),
'buff_shield'
=>
Array
(
'name'
=>
'[状态]护盾'
,
'tags'
=>
Array
(
'buff'
),
'desc'
=>
'<span class="lime"><span class="gold" tooltip2="【护盾】:可抵消等同于护盾值的伤害。护盾值只在抵消属性伤害时消耗,抵消电击伤害时双倍消耗。护盾存在时不会受到反噬伤害或陷入异常状态。">护盾</span>生效中!<br>
当前护盾值:<span class="yellow">[^skillpara|buff_shield-svar^]</span> 点</span>'
,
'svars'
=>
Array
(
'svar'
=>
0
),
'pvars'
=>
Array
(
'skillpara|buff_shield-svar'
),
'lostevents'
=>
Array
(
'setstarttimes_c7_shield'
),
),
'c7_overload'
=>
Array
(
'name'
=>
'过载'
,
'tags'
=>
Array
(
'passive'
),
'desc'
=>
'你造成的电击伤害没有上限'
,
'lockdesc'
=>
Array
(
'lvl'
=>
'15级时解锁'
,
),
'unlock'
=>
Array
(
'lvl'
=>
'[:lvl:] >= 15'
,
),
),
'c7_emp'
=>
Array
(
'name'
=>
'脉冲'
,
'tags'
=>
Array
(
'battle'
,
'limit'
),
'desc'
=>
'本局已发动<span class="redseed"> [^skillpara|c7_emp-active_t^]/[:maxactive_t:] </span>次<br>
消耗<span class="yellow">[:ragecost:]</span>点怒气,同时无效化你与敌人的<span class="yellow">抹消/制御类</span>属性,<br>
成功无效化时,使敌人进入<span class="yellow">麻痹</span>状态。<br>
若敌人已处于<span class="yellow">麻痹</span>状态,则眩晕敌人<span class="clan">[:lasttimes:]</span>秒<br>'
,
'bdesc'
=>
'无效化双方的<span class="yellow">抹消/制御类</span>属性,并<span class="yellow">麻痹</span>敌人,或使已麻痹敌人眩晕<span class="yellow">[:lasttimes:]</span>秒;
消耗<span class="red">[:ragecost:]</span>怒气<br>本局已发动<span class="redseed"> [^skillpara|c7_emp-active_t^]/[:maxactive_t:] </span>次'
,
'vars'
=>
Array
(
'ragecost'
=>
60
,
'maxactive_t'
=>
2
,
'lasttimes'
=>
3
,
),
'svars'
=>
Array
(
'active_t'
=>
0
),
'pvars'
=>
Array
(
'skillpara|c7_emp-active_t'
),
'lockdesc'
=>
Array
(
'skillpara|c7_emp-active_t'
=>
'次数耗尽,已无法发动该技能'
,
'lvl'
=>
'21级时解锁'
,
),
'unlock'
=>
Array
(
'skillpara|c7_emp-active_t'
=>
'[:skillpara|c7_emp-active_t:] < 2'
,
'lvl'
=>
'[:lvl:] >= 21'
,
),
),
'tl_cstick'
=>
Array
(
'name'
=>
'抡尸'
,
...
...
gamedata/cache/elementmix_1.php
View file @
10e86d01
...
...
@@ -215,9 +215,9 @@
//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
,)),
//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
=>
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
,
'Z
v
'
)),
//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
)),
//4.黑色发卡:分解黑色碎片、十字发卡时依次获得:数量在500~1000、10000~29999之间的2种不同元素
...
...
gamedata/cache/mixitem_1.php
View file @
10e86d01
...
...
@@ -108,8 +108,8 @@ $mixinfo = array
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('风见 幽香的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
(
'冰炎钥匙·炎'
,
'冰炎钥匙·冰'
),
'result'
=>
array
(
'游戏解除钥匙'
,
'Y'
,
1
,
1
,
'Z'
),),
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
v
'
),),
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
,),),
...
...
@@ -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
(
'黑色发卡'
,
'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
(
'[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
,),),
...
...
gamedata/cache/resources_1.php
View file @
10e86d01
...
...
@@ -244,7 +244,6 @@ $lwinfo = Array(
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>'
);
$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'
=>
'狙击'
);
$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
...
...
@@ -1185,7 +1184,7 @@ $tps_isk = Array
'P'
=>
Array
(
'title'
=>
"高概率将殴系对你的物理伤害减半。"
,),
'p'
=>
Array
(
'title'
=>
"攻击对手时,将产生额外的毒属性伤害。也有可能让对手陷入中毒异常状态。"
,),
'q'
=>
Array
(
'title'
=>
"高概率将毒属性对你的属性伤害减半。并避免中毒状态。"
,),
'R'
=>
Array
(
'title'
=>
"这把武器
的最终伤害将会
为随机值。"
,),
'R'
=>
Array
(
'title'
=>
"这把武器
造成的伤害与消耗的耐久
为随机值。"
,),
'r'
=>
Array
(
'title'
=>
"根据你的熟练度,做出一定数量的连续攻击。"
,),
'S'
=>
Array
(
'title'
=>
"枪支类武器开火时不会产生声音。"
,),
's'
=>
Array
(
'title'
=>
"这个物品是游戏王同调合成的必备素材。"
,),
...
...
gamedata/cache/style_20190718.css
View file @
10e86d01
...
...
@@ -380,6 +380,17 @@ span[tooltip]:hover:before {
transform
:
translate
(
25px
,
25px
);
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
{
...
...
include/game.func.php
View file @
10e86d01
...
...
@@ -113,6 +113,12 @@ function init_profile(){
$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'
;
$atkinfo
=
get_base_att
(
$pdata
,
$pdata
,
1
,
1
);
$definfo
=
get_base_def
(
$pdata
,
$pdata
,
1
,
1
);
...
...
@@ -570,45 +576,40 @@ function get_remaincdtime($pid){
}
// 检查时效性技能是否达到时限
function
check_skilllasttimes
(
&
$data
=
NULL
)
function
check_skilllasttimes
(
&
$data
)
{
global
$cskills
,
$log
,
$now
,
$name
;
if
(
!
isset
(
$data
))
{
global
$clbpara
;
$para
=
&
$clbpara
;
$nm
=
'你'
;
}
else
{
$para
=
&
$data
[
'clbpara'
];
$nm
=
&
$data
[
'name'
];
}
$pure_flag
=
0
;
if
(
!
empty
(
$para
[
'lasttimes'
]))
$nm
=
(
$data
[
'type'
]
||
$data
[
'name'
]
!=
$name
)
?
$data
[
'name'
]
:
'你'
;
$data
[
'pure_flag'
]
=
0
;
if
(
!
empty
(
$data
[
'clbpara'
][
'lasttimes'
]))
{
//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
)
{
$sk_name
=
$cskills
[
$sk
][
'name'
];
if
(
get_skilltags
(
$sk
,
'buff'
))
{
$log
.=
"
技能<span class='yellow'>「
{
$sk_name
}
」</span>的持续
效果结束了!<br>"
;
$log
.=
"
<span class='yellow'>「
{
$sk_name
}
」</span>的
效果结束了!<br>"
;
}
else
{
$log
.=
"
{
$nm
}
从<span class='yellow'>「
{
$sk_name
}
」</span>状态中恢复了!<br>"
;
}
lostclubskill
(
$sk
,
$
para
);
$
pure_flag
=
1
;
lostclubskill
(
$sk
,
$
data
[
'clbpara'
]
);
$
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)
if
(
!
$db
->
num_rows
(
$result
))
return
NULL
;
$pdata
=
$db
->
fetch_array
(
$result
);
if
(
!
empty
(
$pdata
[
'clbpara'
]))
$pdata
[
'clbpara'
]
=
get_clbpara
(
$pdata
[
'clbpara'
]);
//套装效果刷新
include_once
GAME_ROOT
.
'./include/game/itemmain.func.php'
;
reload_set_items
(
$pdata
);
return
$pdata
;
...
...
include/game/achievement.func.php
View file @
10e86d01
...
...
@@ -1546,9 +1546,9 @@ function check_item_achievement_rev($nn,$i,$ie,$is,$ik,$isk)
// 初始化
$done
=
0
;
// 101.使用参战者红暮&蓝凝掉落的钥匙达成锁定解除结局
if
(
$isk
==
'Z'
)
$aid
=
101
;
if
(
strpos
(
$isk
,
'Z'
)
!==
false
)
$aid
=
101
;
// 102.使用DF掉落的钥匙达成锁定解除结局
elseif
(
$isk
==
'x'
)
$aid
=
102
;
elseif
(
strpos
(
$isk
,
'x'
)
!==
false
)
$aid
=
102
;
// 100.使用执行官掉落的钥匙达成锁定解除结局
else
$aid
=
100
;
...
...
include/game/combat.func.php
View file @
10e86d01
...
...
@@ -1549,7 +1549,9 @@ function get_damage_p(&$rg, $atkcdt, $type, $nm,$cl = 0, $msg = '' ) {
}
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)"
;
}
elseif
((
$d
>=
150
)
&&
(
$d
<
200
))
{
$words
=
"
{
$p1
}
拿了什么神兵?
{
$p2
}
所受的损伤已经不可忽略了。(150-200)"
;
...
...
include/game/event.func.php
View file @
10e86d01
...
...
@@ -697,7 +697,7 @@ function event_rp_up($rpup){
}
else
{
include_once
GAME_ROOT
.
'./include/game/clubskills.func.php'
;
$rpdec
=
30
;
$rpdec
+=
get_clubskill_rp_dec
(
$club
,
$skills
);
//
$rpdec += get_clubskill_rp_dec($club,$skills);
$rp
+=
round
(
$rpup
*
(
100
-
$rpdec
)
/
100
);
}
return
;
...
...
include/game/item2.func.php
View file @
10e86d01
...
...
@@ -308,7 +308,7 @@ function newradar($m = 0){
$radarscreen
.= '</tr>';
}
$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');
$cmd
= ob_get_contents();
ob_clean();
...
...
include/game/itemmain.func.php
View file @
10e86d01
...
...
@@ -1386,7 +1386,7 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0)
{
global
$log
,
$wepimprate
,
$nosta
;
if
(
$hurtvalue
>
0
&&
$pa
[
'wep_kind'
]
!=
'N'
)
if
(
$hurtvalue
&&
$pa
[
'wep_kind'
]
!=
'N'
)
{
$wep_loss_flag
=
0
;
//获取武器损耗类型
...
...
@@ -1397,12 +1397,20 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0)
if
(
$pa
[
'weps'
]
==
$nosta
||
$force_imp
)
{
$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
{
$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'
]))
{
...
...
@@ -1418,7 +1426,11 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0)
$pa
[
'weps'
]
=
max
(
0
,
$pa
[
'weps'
]
-
$hurtvalue
);
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'
]))
{
$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)
}
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'
]))
{
$log
.=
"
{
$pa
[
'nm'
]
}
的<span class=
\"
red
\"
>
{
$pa
[
'wep'
]
}
</span>弹药用光了!<br>"
;
...
...
include/game/revattr.func.php
View file @
10e86d01
...
...
@@ -154,10 +154,7 @@
unset
(
$pa
[
'ex_keys'
][
$key
]);
}
# 「天义」效果判定:
if
(
isset
(
$pa
[
'skill_c6_justice'
])
&&
(
empty
(
$pa
[
'ex_keys'
])
||
!
in_array
(
'N'
,
$pa
[
'ex_keys'
])))
{
$pa
[
'ex_keys'
][]
=
'N'
;
}
if
(
isset
(
$pa
[
'skill_c6_justice'
])
&&
(
empty
(
$pa
[
'ex_keys'
])
||
!
in_array
(
'N'
,
$pa
[
'ex_keys'
])))
$pa
[
'ex_keys'
][]
=
'N'
;
return
;
}
...
...
@@ -306,8 +303,8 @@
$hitrate
+=
round
(
$pa
[
'wep_skill'
]
*
$hitrate_r
[
$pa
[
'wep_kind'
]]);
//武器基础命中率上限
$hitrate
=
min
(
$hitrate_max_obbs
[
$pa
[
'wep_kind'
]],
$hitrate
);
//获取社团技能对基础命中率的修正
$hitrate
*=
rev_get_clubskill_bonus_hitrate
(
$pa
[
'club'
],
$pa
[
'skills'
],
$pa
,
$pd
[
'club'
],
$pd
[
'skills'
],
$pd
);
//获取社团技能对基础命中率的修正
(旧)
//
$hitrate *= rev_get_clubskill_bonus_hitrate($pa['club'],$pa['skills'],$pa,$pd['club'],$pd['skills'],$pd);
//获取社团技能对基础命中率的修正(新)
$hitrate
=
get_clbskill_hitrate
(
$pa
,
$pd
,
$active
,
$hitrate
);
//异常状态状态修正
...
...
@@ -328,15 +325,15 @@
//获取基础连击命中率衰减系数:注意,这个值越高衰减越慢
$hitratebonus
=
0.8
;
//获取社团技能对连击命中率衰减系数的修正
$hitratebonus
*=
rev_get_clubskill_bonus_hitrate
(
$pa
[
'club'
],
$pa
[
'skills'
],
$pa
,
$pd
[
'club'
],
$pd
[
'skills'
],
$pd
);
//获取社团技能对连击命中率衰减系数的修正
(旧)
//
$hitratebonus *= rev_get_clubskill_bonus_hitrate($pa['club'],$pa['skills'],$pa,$pd['club'],$pd['skills'],$pd);
//获取社团技能对连击命中率衰减系数的修正(新)
$hitratebonus
=
get_clbskill_r_hitrate
(
$pa
,
$pd
,
$active
,
$hitratebonus
);
//获取基础致伤率(防具耐久损伤率)系数
$inf_r
=
$infobbs
[
$pa
[
'wep_kind'
]];
//获取社团技能对致伤率(防具耐久损伤率)的修正
$inf_r
*=
rev_get_clubskill_bonus_imfrate
(
$pa
[
'club'
],
$pa
[
'skills'
],
$pa
,
$pd
[
'club'
],
$pd
[
'skills'
],
$pd
);
//获取社团技能对致伤率(防具耐久损伤率)的修正
(旧)
//
$inf_r *= rev_get_clubskill_bonus_imfrate($pa['club'],$pa['skills'],$pa,$pd['club'],$pd['skills'],$pd);
//获取社团技能对致伤率(防具耐久损伤率)的修正(新)
$inf_r
=
get_clbskill_infrate
(
$pa
,
$pd
,
$active
,
$inf_r
);
//获取基础致伤效果(每次致伤会损耗多少点防具耐久)
...
...
@@ -354,8 +351,8 @@
//额外损伤系数
if
(
isset
(
$pa
[
'is_wpg'
]))
$wep_imp_obbs
*=
4
;
if
(
$pa
[
'weps'
]
==
$nosta
)
$wep_imp_obbs
*=
2
;
//社团技能对武器损伤系数的修正
$wep_imp_obbs
*=
rev_get_clubskill_bonus_imprate
(
$pa
[
'club'
],
$pa
[
'skills'
],
$pa
,
$pd
[
'club'
],
$pd
[
'skills'
],
$pd
);
//社团技能对武器损伤系数的修正
(旧)
//
$wep_imp_obbs *= rev_get_clubskill_bonus_imprate($pa['club'],$pa['skills'],$pa,$pd['club'],$pd['skills'],$pd);
//社团技能对武器损伤系数的修正(新)
# 「解牛」技能效果:
if
(
isset
(
$pa
[
'bskill_c2_butcher'
]))
...
...
@@ -415,7 +412,7 @@
//获取不受其他条件影响的固定伤害变化(混沌伤害)
function
get_fix_damage
(
&
$pa
,
&
$pd
,
$active
)
{
global
$log
;
global
$log
,
$nosta
;
# 黑熊吃香蕉事件:
if
(
$pa
[
'type'
]
&&
in_array
(
'X'
,
$pa
[
'ex_keys'
]))
...
...
@@ -505,8 +502,24 @@
if
(
in_array
(
'R'
,
$pa
[
'ex_keys'
]))
{
$maxdmg
=
$pd
[
'mhp'
]
>
$pa
[
'wepe'
]
?
$pa
[
'wepe'
]
:
$pd
[
'mhp'
];
$damage
=
rand
(
1
,
$maxdmg
);
$log
.=
"武器随机造成了<span class=
\"
red
\"
>
$damage
</span>点伤害!<br>"
;
$mindmg
=
max
(
-
1
*
$pa
[
'wepe'
],
-
1
*
(
$pd
[
'mhp'
]
-
$pd
[
'hp'
]
+
1
));
do
{
$damage
=
rand
(
$mindmg
,
$maxdmg
);
}
while
(
empty
(
$damage
));
if
(
$damage
>
0
)
{
$log
.=
"武器随机造成了<span class=
\"
red
\"
>
$damage
</span>点伤害!<br>"
;
}
else
{
$log
.=
"武器随机为
{
$pd
[
'nm'
]
}
回复了<span class=
\"
lime
\"
>"
.
abs
(
$damage
)
.
"</span>点生命!<br>"
;
}
// 混沌混沌
$max_imp_times
=
$pa
[
'weps'
]
==
$nosta
?
$pa
[
'wepe'
]
:
$pa
[
'weps'
];
$min_imp_times
=
$pa
[
'weps'
]
==
$nosta
?
-
$pa
[
'wepe'
]
:
-
$pa
[
'weps'
];
do
{
$pa
[
'wep_imp_times'
]
=
rand
(
$min_imp_times
,
$max_imp_times
);
}
while
(
empty
(
$pa
[
'wep_imp_times'
]));
// 混沌伤害打满时 保存至成就
if
(
$damage
==
$maxdmg
)
$pa
[
'clbpara'
][
'achvars'
][
'full_chaosdmg'
]
=
1
;
return
$damage
;
...
...
@@ -543,12 +556,12 @@
$pa
[
'wepe_t'
]
=
$pa
[
'wepe'
]
*
2
;
}
# 获取pa社团技能对攻击力的加成
if
(
!
empty
(
$pa
[
'skills'
]))
# 获取pa社团技能对攻击力的加成
(旧)
/*
if(!empty($pa['skills']))
{
rev_get_clubskill_bonus($pa['club'],$pa['skills'],$pa,$pd['club'],$pa['skills'],$pd,$att1,$def1);
$pa['att'] += $att1;
}
}
*/
# 汇总::
$base_att
=
$pa
[
'att'
]
+
$pa
[
'wepe_t'
];
...
...
@@ -598,23 +611,23 @@
}
}
# 计算社团技能对pa攻击力的修正
$club_atk_per
=
100
;
# 计算社团技能对pa攻击力的修正
(旧)
/*
$club_atk_per = 100;
if(!empty($pa['club']) || !empty($pa['skills']))
{
rev_get_clubskill_bonus_p($pa['club'],$pa['skills'],$pa,$pd['club'],$pa['skills'],$pd,$attfac,$deffac);
$club_atk_per *= $attfac;
}
}
*/
# 汇总
$base_att
=
round
(
$base_att
*
(
$base_atk_per
/
100
)
*
(
$inf_atk_per
/
100
)
*
(
$club_atk_per
/
100
)
);
$base_att
=
round
(
$base_att
*
(
$base_atk_per
/
100
)
*
(
$inf_atk_per
/
100
));
$base_att
=
max
(
1
,
$base_att
);
if
(
$tooltip
)
{
$tooltip
.=
"天气修正:
{
$wth_atk_per
}
%
\r
地点修正:
{
$pls_atk_per
}
%
\r
姿态修正:
{
$pose_atk_per
}
%
\r
策略修正:
{
$tac_atk_per
}
%"
;
if
(
$inf_atk_per
<>
100
)
$tooltip
.=
"
\r
异常状态修正:
{
$inf_atk_per
}
%"
;
if
(
$club_atk_per
<>
100
)
$tooltip
.=
"
\r
称号技能修正:
{
$club_atk_per
}
%"
;
//
if($club_atk_per <> 100) $tooltip .=" \r 称号技能修正:{$club_atk_per}%";
$tooltip
.=
"
\"
>"
.
$base_att
.
"</span>"
;
return
$tooltip
;
}
...
...
@@ -645,13 +658,13 @@
}
}
# 获取pd社团技能对防御力的加成(旧)
if
(
!
empty
(
$pd
[
'skills'
]))
/*
if(!empty($pd['skills']))
{
rev_get_clubskill_bonus($pa['club'],$pa['skills'],$pa,$pd['club'],$pa['skills'],$pd,$att1,$def1);
}
}
*/
# 获取pd社团技能对防御力的加成(新)
# 「格挡」技能加成
if
(
isset
(
$pd
[
'skill_c1_def'
]
))
if
(
!
check_skill_unlock
(
'c1_def'
,
$pd
))
{
global
$cskills
;
$def_trans_rate
=
$cskills
[
'c1_def'
][
'vars'
][
'trans'
];
...
...
@@ -710,23 +723,23 @@
}
}
# 计算社团技能对pd防御力的修正
$club_def_per
=
100
;
# 计算社团技能对pd防御力的修正
(旧)
/*
$club_def_per = 100;
if(!empty($pd['club']) || !empty($pd['skills']))
{
rev_get_clubskill_bonus_p($pa['club'],$pa['skills'],$pa,$pd['club'],$pa['skills'],$pd,$attfac,$deffac);
$club_def_per *= $deffac;
}
}
*/
# 汇总
$total_def
=
round
(
$total_def
*
(
$base_def_per
/
100
)
*
(
$inf_def_per
/
100
)
*
(
$club_def_per
/
100
)
);
$total_def
=
round
(
$total_def
*
(
$base_def_per
/
100
)
*
(
$inf_def_per
/
100
));
$total_def
=
max
(
0.01
,
$total_def
);
if
(
$tooltip
)
{
$tooltip
.=
"天气修正:
{
$wth_def_per
}
%
\r
地点修正:
{
$pls_def_per
}
%
\r
姿态修正:
{
$pose_def_per
}
%
\r
策略修正:
{
$tac_def_per
}
%"
;
if
(
$inf_def_per
<>
100
)
$tooltip
.=
"
\r
异常状态修正:
{
$inf_def_per
}
%"
;
if
(
$club_def_per
<>
100
)
$tooltip
.=
"
\r
称号技能修正:
{
$club_def_per
}
%"
;
//
if($club_def_per <> 100) $tooltip .=" \r 称号技能修正:{$club_def_per}%";
$tooltip
.=
"
\"
>"
.
$total_def
.
"</span>"
;
return
$tooltip
;
}
...
...
@@ -746,8 +759,8 @@
$damage
=
(
$pa
[
'base_att'
]
/
$pd
[
'base_def'
])
*
$pa
[
'wep_skill'
]
*
$skill_dmg
[
$pa
[
'wep_kind'
]];
//获取伤害浮动系数:
$dfluc
=
$dmg_fluc
[
$pa
[
'wep_kind'
]];
//获取社团技能对伤害浮动系数的修正:
$dfluc
+=
rev_get_clubskill_bonus_fluc
(
$pa
[
'club'
],
$pa
[
'skills'
],
$pa
,
$pd
[
'club'
],
$pa
[
'skills'
],
$pd
);
//获取社团技能对伤害浮动系数的修正:
(旧)
//
$dfluc += rev_get_clubskill_bonus_fluc($pa['club'],$pa['skills'],$pa,$pd['club'],$pa['skills'],$pd);
//获取社团技能对伤害浮动系数的修正(新):
$dfluc
+=
get_clbskill_fluc
(
$pa
,
$pd
,
$active
);
//计算具体伤害浮动:
...
...
@@ -756,7 +769,9 @@
if
(
isset
(
$pa
[
'skill_c2_intuit'
])
&&
$dfluc
<
0
)
$dfluc
=
abs
(
$dfluc
);
//汇总
$dmg_factor
=
(
100
+
$dfluc
)
/
100
;
//echo "浮动前 damage = {$damage}<br>";
$damage
=
round
(
$damage
*
$dmg_factor
*
rand
(
4
,
10
)
/
10
);
//echo "浮动后 damage = {$damage}<br>";
//把计算得到的原始伤害保存在$pa['original_dmg']里
$pa
[
'original_dmg'
]
=
$damage
;
return
$damage
;
...
...
@@ -766,14 +781,14 @@
function
get_original_fix_dmg_rev
(
&
$pa
,
&
$pd
,
$active
)
{
$damage
=
0
;
//
重枪
#
重枪
if
(
$pa
[
'wep_kind'
]
==
'J'
)
{
$adddamage
=
$pd
[
'mhp'
]
/
3
;
if
(
$adddamage
>
20000
)
$adddamage
=
10000
;
$damage
+=
round
(
$pa
[
'wepe'
]
*
2
/
3
+
$adddamage
);
}
//
灵力武器
#
灵力武器
if
(
$pa
[
'wep_kind'
]
==
'F'
)
{
global
$log
;
...
...
@@ -869,7 +884,7 @@
$sk_p
=
1
+
(
get_skillvars
(
'c1_crit'
,
'attgain'
,
$sk_lvl
)
/
100
);
$dmg_p
[]
=
$sk_p
;
//输出log
$log
.=
$pa
[
'skill_c1_crit_log'
]
;
$log
.=
"<span class=
\"
yellow
\"
>
{
$pa
[
'nm'
]
}
朝着
{
$pd
[
'nm'
]
}
打出了凶猛的一击!<span class=
\"
clan
\"
>
{
$pd
[
'nm'
]
}
被打晕了过去!</span></span><br>"
;
}
#「潜能」判定:
if
(
isset
(
$pa
[
'bskill_c3_potential'
]))
...
...
@@ -936,7 +951,16 @@
//检查抹消属性是否生效
if
(
$dice
>
$obbs
)
{
$pd
[
'phy_def_flag'
]
=
2
;
#「脉冲」效果判定:
if
(
isset
(
$pa
[
'bskill_c7_emp'
])
||
isset
(
$pd
[
'bskill_c7_emp'
]))
{
$log
.=
"<span class='yellow'>在电磁脉冲的干扰下,伤害抹消力场被无效化了!</span><br>"
;
$pa
[
'bskill_c7_emp'
]
=
2
;
}
else
{
$pd
[
'phy_def_flag'
]
=
2
;
}
}
else
{
...
...
@@ -1102,10 +1126,13 @@
//提取判断pd是否防具受损、受伤,但log在结尾统一输出
function
get_hurt_prepare_events
(
&
$pa
,
&
$pd
,
$active
)
{
global
$infatt_rev
;
global
$infatt_rev
,
$log
;
# pa致伤次数>0时,计算pd防具受损或致伤情况
if
(
$pa
[
'inf_times'
]
>
0
)
{
# 「护盾」存在时无视致伤效果
if
(
isset
(
$pd
[
'skill_buff_shield'
]))
return
;
//获取可致伤部位
$inf_parts
=
$infatt_rev
[
$pa
[
'wep_kind'
]];
$inf_att
=
Array
();
...
...
@@ -1144,7 +1171,7 @@
function
get_base_ex_att_array
(
&
$pa
,
&
$pd
,
$active
)
{
global
$ex_attack
,
$log
,
$itemspkinfo
;
$ex_keys
=
Array
();
$ex_keys
=
Array
();
foreach
(
$pa
[
'ex_keys'
]
as
$ex
)
{
if
(
in_array
(
$ex
,
$ex_attack
))
...
...
@@ -1181,6 +1208,8 @@
// 使用次数+1
set_skillpara
(
'c3_enchant'
,
'active_t'
,
get_skillpara
(
'c3_enchant'
,
'active_t'
,
$pa
[
'clbpara'
])
+
1
,
$pa
[
'clbpara'
]);
}
# 「磁暴」效果判定:
if
(
isset
(
$pa
[
'bskill_c7_electric'
])
&&
(
empty
(
$ex_keys
)
||
!
in_array
(
'e'
,
$ex_keys
)))
$ex_keys
[]
=
'e'
;
return
$ex_keys
;
}
...
...
@@ -1196,7 +1225,16 @@
//检查抹消属性是否生效
if
(
$dice
<
$specialrate
[
'b'
])
{
$pd
[
'ex_def_flag'
]
=
2
;
#「脉冲」效果判定:
if
(
isset
(
$pa
[
'bskill_c7_emp'
])
||
isset
(
$pd
[
'bskill_c7_emp'
]))
{
$log
.=
"<span class='yellow'>在电磁脉冲的干扰下,属性抹消力场被无效化了!</span><br>"
;
$pa
[
'bskill_c7_emp'
]
=
2
;
}
else
{
$pd
[
'ex_def_flag'
]
=
2
;
}
}
else
{
...
...
@@ -1292,15 +1330,36 @@
//计算单个属性的基础属性伤害: 基础伤害 + 效果↔伤害系数修正 + 熟练↔伤害系数修正
$ex_dmg
=
$ex_base_dmg
[
$ex
]
+
$pa
[
'wepe'
]
/
$ex_wep_dmg
[
$ex
]
+
$pa
[
'wep_skill'
]
/
$ex_skill_dmg
[
$ex
];
//计算单个属性能造成的基础伤害上限
if
(
$ex_max_dmg
[
$ex
]
>
0
&&
$ex_dmg
>
$ex_max_dmg
[
$ex
])
$ex_dmg
=
$ex_max_dmg
[
$ex
]
;
$ex_dmg
=
get_ex_base_dmg_max
(
$pa
,
$pd
,
$active
,
$ex
,
$ex_dmg
)
;
//计算得意武器类型对单个属性伤害的系数修正
if
(
isset
(
$ex_good_wep
[
$ex
])
&&
$ex_good_wep
[
$ex
]
==
$pa
[
'wep_kind'
])
$ex_dmg
*=
2
;
//计算属性伤害浮动
$ex_dmg
=
round
(
$ex_dmg
*
rand
(
100
-
$ex_dmg_fluc
[
$ex
],
100
+
$ex_dmg_fluc
[
$ex
])
/
100
);
//计算单个属性的属性伤害变化:
$ex_dmg
=
get_ex_base_dmg_p
(
$pa
,
$pd
,
$active
,
$ex
,
$ex_dmg
);
//pd身上保有「护盾」的情况下 计算会对护盾造成的损害
if
(
isset
(
$pd
[
'skill_buff_shield'
]))
{
$shield
=
get_skillpara
(
'buff_shield'
,
'svar'
,
$pd
[
'clbpara'
]);
$ex_shield_dmg_r
=
$ex
==
'e'
?
2
:
1
;
$ex_shield_dmg
=
$ex_dmg
*
$ex_shield_dmg_r
;
if
(
$ex_shield_dmg
>=
$shield
)
{
$ex_dmg
=
max
(
1
,
round
((
$ex_shield_dmg
-
$shield
)
/
$ex_shield_dmg_r
));
unset
(
$pd
[
'skill_buff_shield'
]);
lostclubskill
(
'buff_shield'
,
$pd
[
'clbpara'
]);
$pa
[
'ex_breakshield_log'
]
=
1
;
}
else
{
$shield
-=
$ex_dmg
;
$ex_dmg
=
0
;
set_skillpara
(
'buff_shield'
,
'svar'
,
$shield
,
$pd
[
'clbpara'
]);
$pa
[
'ex_shield_log'
]
=
1
;
}
}
//计算是否能够施加属性异常
if
(
empty
(
$pd
[
'ex_def_flag'
])
&&
isset
(
$ex_inf
[
$ex
])
&&
strpos
(
$pd
[
'inf'
],
$ex_inf
[
$ex
])
===
false
)
if
(
empty
(
$pd
[
'ex_def_flag'
])
&&
empty
(
$pd
[
'skill_buff_shield'
])
&&
isset
(
$ex_inf
[
$ex
])
&&
strpos
(
$pd
[
'inf'
],
$ex_inf
[
$ex
])
===
false
)
{
$dice
=
diceroll
(
99
);
//获取属性施加异常的基础概率 + 熟练度修正
...
...
@@ -1320,15 +1379,35 @@
//整理后统一输出文本
if
(
!
empty
(
$pa
[
'ex_dmgpsh_log'
]))
$log
.=
$pa
[
'ex_dmgpsh_log'
];
//由于对方已经xx xx伤害提升/降低
$log
.=
$exdmgname
[
$ex
];
//xx
if
(
!
empty
(
$pa
[
'ex_dmgdef_log'
]))
$log
.=
"被防御效果抵消了!仅"
;
$log
.=
"造成了<span class=
\"
red
\"
>
{
$ex_dmg
}
</span>点伤害!"
;
if
(
!
empty
(
$pa
[
'ex_dmginf_log'
]))
$log
.=
"并使
{
$pd
[
'nm'
]
}{
$exdmginf
[
$pa
[
'ex_dmginf_log'
]]
}
了!"
;
$log
.=
"<br>"
;
$total_ex_dmg
[]
=
$ex_dmg
;
if
(
$ex_dmg
)
{
if
(
!
empty
(
$pa
[
'ex_dmgdef_log'
]))
$log
.=
"被防御效果抵消了!仅"
;
$log
.=
"造成了<span class=
\"
red
\"
>
{
$ex_dmg
}
</span>点伤害!"
;
if
(
!
empty
(
$pa
[
'ex_dmginf_log'
]))
$log
.=
"并使
{
$pd
[
'nm'
]
}{
$exdmginf
[
$pa
[
'ex_dmginf_log'
]]
}
了!"
;
$log
.=
"<br>"
;
if
(
!
empty
(
$pa
[
'ex_breakshield_log'
]))
$log
.=
"<span class='red'>
{
$pd
[
'nm'
]
}
的「护盾」被打破了!</span><br>"
;
$total_ex_dmg
[]
=
$ex_dmg
;
}
else
{
if
(
!
empty
(
$pa
[
'ex_shield_log'
]))
$log
.=
"被「护盾」抵消了!"
;
$log
.=
"没能造成伤害!<br>"
;
if
(
!
empty
(
$pa
[
'ex_shield_log'
]))
$log
.=
"<span class='grey'>
{
$pd
[
'nm'
]
}
的「护盾」效力减弱了……</span><br>"
;
}
}
return
$total_ex_dmg
;
}
//计算单个属性伤害上限
function
get_ex_base_dmg_max
(
&
$pa
,
&
$pd
,
$active
,
$ex
,
$ex_dmg
)
{
global
$ex_max_dmg
;
# 「过载」效果判定:
if
(
$ex
==
'e'
&&
isset
(
$pa
[
'skill_c7_overload'
]))
return
$ex_dmg
;
if
(
$ex_max_dmg
[
$ex
]
>
0
&&
$ex_dmg
>
$ex_max_dmg
[
$ex
])
$ex_dmg
=
$ex_max_dmg
[
$ex
];
return
$ex_dmg
;
}
//计算单个属性伤害系数变化
function
get_ex_base_dmg_p
(
&
$pa
,
&
$pd
,
$active
,
$ex
,
$ex_dmg
)
{
...
...
@@ -1517,8 +1596,17 @@
}
else
{
$fin_dmg
=
1950
+
$dice
;
$log
.=
"在
{
$pd
[
'nm'
]
}
的装备的作用下,攻击伤害被限制了!<br>"
;
#「脉冲」效果判定:
if
(
isset
(
$pa
[
'bskill_c7_emp'
])
||
isset
(
$pd
[
'bskill_c7_emp'
]))
{
$log
.=
"<span class='yellow'>在电磁脉冲的干扰下,伤害制御力场被无效化了!</span><br>"
;
$pa
[
'bskill_c7_emp'
]
=
2
;
}
else
{
$fin_dmg
=
1950
+
$dice
;
$log
.=
"在
{
$pd
[
'nm'
]
}
的装备的作用下,攻击伤害被限制了!<br>"
;
}
}
}
else
...
...
@@ -1538,6 +1626,14 @@
}
}
# 「护盾」效果判定
if
(
isset
(
$pd
[
'skill_buff_shield'
]))
{
$sk_var
=
get_skillpara
(
'buff_shield'
,
'svar'
,
$pd
[
'clbpara'
]);
$fin_dmg
=
max
(
0
,
$fin_dmg
-
$sk_var
);
$log
.=
"<span class=
\"
lime
\"
>「护盾」使
{
$pd
[
'nm'
]
}
受到的伤害降低了
{
$sk_var
}
点!</span><br>"
;
}
# 「爆头」技能效果
if
(
isset
(
$pa
[
'skill_c4_headshot'
])
&&
$fin_dmg
>
$pd
[
'hp'
]
*
0.85
&&
$fin_dmg
<
$pd
[
'hp'
])
{
...
...
@@ -1563,11 +1659,27 @@
}
else
{
$hp_d
=
floor
(
$pa
[
'hp'
]
*
4
/
5
);
}
if
(
in_array
(
'H'
,
$pa
[
'ex_keys'
]))
{
$hp_d
=
floor
(
$hp_d
/
10
);
if
(
in_array
(
'H'
,
$pa
[
'ex_keys'
]))
{
#「脉冲」效果判定:
if
(
isset
(
$pa
[
'bskill_c7_emp'
])
||
isset
(
$pd
[
'bskill_c7_emp'
]))
{
$log
.=
"<span class='yellow'>在电磁脉冲的干扰下,HP制御力场被无效化了!</span><br>"
;
$pa
[
'bskill_c7_emp'
]
=
2
;
}
else
{
$hp_d
=
floor
(
$hp_d
/
10
);
}
}
# 「护盾」效果判定
if
(
$hp_d
&&
isset
(
$pa
[
'skill_buff_shield'
]))
{
$hp_d
=
0
;
$log
.=
"<span class='yellow'>「护盾」使
{
$pa
[
'nm'
]
}
免受反噬伤害!</span><br>"
;
}
# 「冰心」技能判定
if
(
isset
(
$pa
[
'skill_c9_iceheart'
]))
if
(
$hp_d
&&
isset
(
$pa
[
'skill_c9_iceheart'
]))
{
$sk_r
=
1
-
(
get_skillvars
(
'c9_iceheart'
,
'hpshloss'
)
/
100
);
$hp_d
=
floor
(
$hp_d
*
$sk_r
);
...
...
@@ -1589,7 +1701,7 @@
//防守方(pd)在受到伤害后触发的事件
function
get_hurt_events
(
&
$pa
,
&
$pd
,
$active
)
{
global
$log
,
$infinfo
;
global
$log
,
$infinfo
,
$exdmginf
;
# pd存在防具受损况,在这里应用
if
(
!
empty
(
$pd
[
'armor_hurt'
]))
...
...
@@ -1603,7 +1715,54 @@
foreach
(
$pd
[
'inf_hurt'
]
as
$which
=>
$times
)
{
$flag
=
get_inf_rev
(
$pd
,
$which
);
if
(
$flag
)
$log
.=
"
{
$pd
[
'nm'
]
}
的<span class=
\"
red
\"
>
$infinfo[$which]
</span>部受伤了!<br>"
;
if
(
$flag
)
$log
.=
"
{
$pd
[
'nm'
]
}
的
{
$exdmginf
[
$which
]
}
了!<br>"
;
}
}
if
(
isset
(
$pa
[
'bskill_c7_electric'
]))
{
if
(
strpos
(
$pd
[
'inf'
],
'e'
)
!==
false
)
{
$flag
=
get_skillinf_rev
(
$pd
,
'inf_dizzy'
,
get_skillvars
(
'c7_electric'
,
'lasttimes'
));
if
(
$flag
)
{
$log
.=
"<span class='yellow'>由于已经处于麻痹状态,狂暴的电流直接将
{
$pd
[
'nm'
]
}
电晕了!</span><br>"
;
if
(
!
$pd
[
'type'
]
&&
$pd
[
'nm'
]
!=
'你'
)
$pd
[
'logsave'
]
.=
"狂暴的电流直接将你电晕!<br>"
;
elseif
(
!
$pa
[
'type'
]
&&
$pa
[
'nm'
]
!=
'你'
)
$pa
[
'logsave'
]
.=
"狂暴的电流直接将<span class=
\"
yellow
\"
>
{
$pd
[
'name'
]
}
</span>电晕!<br>"
;
}
}
else
{
$infr
=
get_skillvars
(
'c7_electric'
,
'infr'
);
$dice
=
diceroll
(
99
);
if
(
$dice
<
$infr
)
{
$flag
=
get_inf_rev
(
$pd
,
'e'
);
$log
.=
"<span class='yellow'>「磁暴」使
{
$pd
[
'nm'
]
}{
$exdmginf
[
'e'
]
}
了!</span><br>"
;
}
else
{
$log
.=
"<span class='yellow'>
{
$pd
[
'nm'
]
}
没有受到「磁暴」影响!</span><br>"
;
}
}
}
if
(
isset
(
$pa
[
'bskill_c7_emp'
])
&&
$pa
[
'bskill_c7_emp'
]
>
1
)
{
if
(
strpos
(
$pd
[
'inf'
],
'e'
)
!==
false
)
{
$flag
=
get_skillinf_rev
(
$pd
,
'inf_dizzy'
,
get_skillvars
(
'c7_electric'
,
'lasttimes'
));
if
(
$flag
)
{
$log
.=
"<span class='yellow'>由于已经处于麻痹状态,狂暴的能量脉冲直接把
{
$pd
[
'nm'
]
}
冲晕了过去!</span><br>"
;
if
(
!
$pd
[
'type'
]
&&
$pd
[
'nm'
]
!=
'你'
)
$pd
[
'logsave'
]
.=
"狂暴的能量脉冲把你冲晕了过去!<br>"
;
elseif
(
!
$pa
[
'type'
]
&&
$pa
[
'nm'
]
!=
'你'
)
$pa
[
'logsave'
]
.=
"狂暴的能量脉冲把<span class=
\"
yellow
\"
>
{
$pd
[
'name'
]
}
</span>冲晕了过去!<br>"
;
}
}
else
{
$flag
=
get_inf_rev
(
$pd
,
'e'
);
$log
.=
"<span class='yellow'>「脉冲」使
{
$pd
[
'nm'
]
}{
$exdmginf
[
'e'
]
}
了!</span><br>"
;
}
}
...
...
@@ -1646,6 +1805,15 @@
return
0
;
}
# 应用技能类异常
function
get_skillinf_rev
(
&
$pa
,
$sk
,
$last
=
0
)
{
global
$log
;
$flag
=
getclubskill
(
$sk
,
$pa
[
'clbpara'
]);
if
(
$last
&&
$flag
)
set_lasttimes
(
$sk
,
$last
,
$pa
[
'clbpara'
]);
return
$flag
;
}
# 从异常状态中恢复
function
heal_inf_rev
(
&
$pa
,
$infnm
)
{
...
...
@@ -1662,7 +1830,7 @@
//打击结束,已经应用扣血后的事件结算
function
rev_combat_result_events
(
&
$pa
,
&
$pd
,
$active
)
{
global
$log
,
$infinfo
,
$
dtinfinfo
;
global
$log
,
$infinfo
,
$
exdmginf
;
# 真蓝凝防守事件:
if
(
$pd
[
'type'
]
==
19
&&
$pd
[
'name'
]
==
'蓝凝'
)
...
...
@@ -1682,18 +1850,11 @@
{
$sk_lvl
=
get_skilllvl
(
'c1_crit'
,
$pa
);
$sk_lst
=
get_skillvars
(
'c1_crit'
,
'stuntime'
,
$sk_lvl
);
getclubskill
(
'inf_dizzy'
,
$pd
[
'clbpara'
]);
set_lasttimes
(
'inf_dizzy'
,
$sk_lst
,
$pd
[
'clbpara'
]);
//$pd['clbpara']['lasttimes']['inf_dizzy'] = $sk_lst;
// 猛击logsave……先放这,以后再整理
global
$now
;
if
(
!
$pd
[
'type'
]
&&
$pd
[
'nm'
]
!=
'你'
)
{
$pd
[
'logsave'
]
.=
"凶猛的一击直接将你打晕了过去!<br>"
;
}
elseif
(
!
$pa
[
'type'
]
&&
$pa
[
'nm'
]
!=
'你'
)
$flag
=
get_skillinf_rev
(
$pd
,
'inf_dizzy'
,
$sk_lst
);
if
(
$flag
)
{
$pa
[
'logsave'
]
.=
"你凶猛的一击直接将<span class=
\"
yellow
\"
>
{
$pd
[
'name'
]
}
}</span>打晕了过去!<br>"
;
if
(
!
$pd
[
'type'
]
&&
$pd
[
'nm'
]
!=
'你'
)
$pd
[
'logsave'
]
.=
"凶猛的一击直接将你打晕了过去!<br>"
;
elseif
(
!
$pa
[
'type'
]
&&
$pa
[
'nm'
]
!=
'你'
)
$pa
[
'logsave'
]
.=
"你凶猛的一击直接将<span class=
\"
yellow
\"
>
{
$pd
[
'name'
]
}
</span>打晕了过去!<br>"
;
}
}
...
...
@@ -1711,7 +1872,7 @@
$flag
=
heal_inf_rev
(
$pd
,
$heal_inf
);
if
(
$flag
)
{
$log
.=
"<span class='yellow'>
{
$pd
[
'nm'
]
}
敛神聚气,从
{
$
dtinfinfo
[
$heal_inf
]
}
中恢复了!</span><br>"
;
$log
.=
"<span class='yellow'>
{
$pd
[
'nm'
]
}
敛神聚气,从
{
$
exdmginf
[
$heal_inf
]
}
中恢复了!</span><br>"
;
$pd
[
'rage'
]
=
max
(
255
,
$pd
[
'rage'
]
+
get_skillvars
(
'c9_iceheart'
,
'ragegain'
));
}
}
...
...
@@ -1786,7 +1947,7 @@
include_once
GAME_ROOT
.
'./include/game/clubskills.func.php'
;
# 计算社团技能对躲避率的系数修正(旧):
$hide_r
*=
get_clubskill_bonus_hide
(
$pd
[
'club'
],
$pd
[
'skills'
]);
//
$hide_r *= get_clubskill_bonus_hide($pd['club'],$pd['skills']);
# 计算社团技能对躲避率的定值修正:
$hide_r
=
get_clbskill_hide_rate_fix
(
$pa
,
$pd
,
$hide_r
);
...
...
@@ -1822,7 +1983,7 @@
}
# 计算社团技能对于先攻率的系数修正(旧):
$active_r
*=
get_clubskill_bonus_active
(
$pa
[
'club'
],
$pa
[
'skills'
],
$pd
[
'club'
],
$pd
[
'skills'
]);
//
$active_r *= get_clubskill_bonus_active($pa['club'],$pa['skills'],$pd['club'],$pd['skills']);
# 计算社团技能对于先攻率的定值修正(新):
$active_r
=
get_clbskill_active_rate_fix
(
$pa
,
$pd
,
$active_r
);
...
...
@@ -1926,8 +2087,8 @@
# 鏖战状态下,将基础反击率修正为100
if
(
isset
(
$pd
[
'is_dfight'
])
||
isset
(
$pa
[
'is_dfight'
]))
$counter
=
100
;
# 获取社团技能对反击率的修正
$counter
*=
rev_get_clubskill_bonus_counter
(
$pd
[
'club'
],
$pd
[
'skills'
],
$pd
,
$pa
[
'club'
],
$pa
[
'skills'
],
$pa
);
# 获取社团技能对反击率的修正
(旧)
//
$counter *= rev_get_clubskill_bonus_counter($pd['club'],$pd['skills'],$pd,$pa['club'],$pa['skills'],$pa);
# 获取社团技能对反击率的修正(新)
$counter
=
get_clbskill_counterate
(
$pd
,
$pa
,
$active
,
$counter
);
...
...
include/game/revattr_extra.func.php
View file @
10e86d01
...
...
@@ -28,7 +28,7 @@
if
(
$bsk_cost
)
$pa
[
'rage'
]
-=
$bsk_cost
;
# 成功释放主动技,应用标记
$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
if
(
get_skilltags
(
$bsk
,
'limit'
))
{
...
...
@@ -64,7 +64,7 @@
if
(
$bsk_cost
)
$pa
[
'rage'
]
-=
$bsk_cost
;
# 成功释放主动技,应用标记
$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
if
(
get_skilltags
(
$bsk
,
'limit'
))
{
...
...
@@ -83,9 +83,10 @@
# 技能判定(被动型):这里通常只判定技能是否生效,如生效,提供一个标记
function
attr_extra_passive_skills
(
&
$pa
,
&
$pd
,
$active
,
$sk
=
''
)
{
global
$cskills
;
global
$cskills
,
$log
;
if
(
!
empty
(
$pa
[
'clbpara'
][
'skill'
]))
{
$pa
[
'skilllog'
]
=
''
;
# 遍历pa技能队列 检查是否解锁
foreach
(
$pa
[
'clbpara'
][
'skill'
]
as
$sk
)
{
...
...
@@ -100,17 +101,27 @@
# 「偷袭」或「闷棍」技能生效时,「猛击」必定触发;
$sk_obbs
=
isset
(
$pa
[
'bskill_c1_stalk'
])
||
isset
(
$pa
[
'bskill_c1_bjack'
])
?
100
:
get_skillvars
(
'c1_crit'
,
'rate'
);
# 成功触发时
if
(
$sk_dice
<
$sk_obbs
)
{
$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>"
;
}
if
(
$sk_dice
<
$sk_obbs
)
$pa
[
'skill_c1_crit'
]
=
1
;
}
# 「枭眼」特殊判定:射程不小于对方时激活效果
elseif
(
$sk
==
'c3_hawkeye'
&&
$pa
[
'wep_range'
]
>=
$pd
[
'wep_range'
])
{
$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
{
...
...
@@ -438,6 +449,12 @@
$sk_var
=
round
(
$pa
[
'att'
]
/
$ex_wep_dmg
[
$key
]);
$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
;
}
...
...
include/game/revclubskills.func.php
View file @
10e86d01
...
...
@@ -53,6 +53,11 @@
$uskid
=
substr
(
$event
,
9
);
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'
]);
...
...
@@ -95,7 +100,8 @@
function
upgclbskills
(
$sk
,
$nums
=
1
,
$choice
=
NULL
)
{
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
);
...
...
@@ -132,9 +138,10 @@
{
foreach
(
$cskill
[
'events'
]
as
$event
)
{
$flag
=
upgclbskills_events
(
$event
,
$sk
);
$flag
=
upgclbskills_events
(
$event
,
$sk
,
$pdata
);
if
(
!
$flag
)
break
;
}
# 会触发多个事件时,只要有一个事件成功触发就会继续升级流程
# 会触发多个事件时,只要有一个事件成功触发就会继续升级流程
# 什么脑瘫设计,赶紧改成反过来
if
(
!
$flag
)
return
;
}
# 检查技能升级是否会直接影响属性:
...
...
@@ -169,159 +176,12 @@
if
(
!
empty
(
$cost
))
$skillpoint
-=
$cost
;
$log
.=
$clog
;
# 存在复选框的技能,升级后重载技能页面
//if(isset($cskill['num_input
']))
//
{
if
(
empty
(
$cskill
[
'no_reload_page
'
]))
{
global
$opendialog
;
$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
;
}
# 事件:为指定技能设置开始时间
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
;
return
;
}
# 升级技能时的合法性检查
...
...
@@ -398,7 +258,8 @@
$st
=
get_starttimes
(
$sk
,
$data
[
'clbpara'
]);
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
)
{
$last_cd
=
$st
+
$cd
-
$now
;
...
...
include/game/revclubskills_extra.func.php
View file @
10e86d01
...
...
@@ -6,35 +6,182 @@
# 新社团技能 - 特殊社团技能处理:
//include_once GAME_ROOT.'./include/game/dice.func.php';
/*# 「百战」技能判定
function skill_c1_veteran_act($choice)
# 升级指定技能会触发的事件,返回0时代表无法升级技能
function
upgclbskills_events
(
$event
,
$sk
,
&
$data
=
NULL
)
{
global $log,$pdata,$cskills,$club,$clbpara,$itemspkinfo;
if(!check_skill_unlock('c1_veteran',$pdata))
global
$log
,
$cskills
,
$clbpara
,
$name
;
# 事件:激活技能
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'];
if(empty($choice) || !in_array($choice,$c_arr))
# 事件效果:回复满生命、体力,并清空所有异常状态
global
$hp
,
$mhp
,
$sp
,
$msp
,
$inf
;
$heal_flag
=
0
;
if
(
!
empty
(
$inf
))
{
$log .= "选定的防御属性不存在!<br>";
return;
$inf
=
''
;
$heal_flag
=
1
;
$log
.=
"你的所有异常状态全部解除了!<br>"
;
}
if($
choice == $cvar
)
if
(
$
hp
<
$mhp
||
$sp
<
$msp
)
{
$log .= "不能重复选择属性。<br>";
return;
$hp
=
$mhp
;
$sp
=
$msp
;
$heal_flag
=
1
;
$log
.=
"你的生命与体力完全恢复了!<br>"
;
}
if
(
!
$heal_flag
)
{
$log
.=
"你不需要使用这个技能!<br>"
;
return
0
;
}
$cvar = $choice;
$log .= "防御属性已变更为<span class='yellow'>{$itemspkinfo[$choice]}</span>!<br>";
return
1
;
}
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
)
...
...
include/game/revcombat.func.php
View file @
10e86d01
...
...
@@ -533,6 +533,7 @@
# 战斗技文本
if
(
isset
(
$pa
[
'bskilllog'
]))
$log
.=
$pa
[
'bskilllog'
];
if
(
isset
(
$pa
[
'bskilllog2'
]))
$log
.=
$pa
[
'bskilllog2'
];
if
(
!
empty
(
$pa
[
'skilllog'
]))
$log
.=
$pa
[
'skilllog'
];
# 命中次数大于0时 执行伤害判断
if
(
$pa
[
'hitrate_times'
]
>
0
)
...
...
@@ -543,7 +544,7 @@
{
$damage
=
$fix_dmg
;
$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
...
...
@@ -587,8 +588,9 @@
}
$damage
=
$damage
>
1
?
round
(
$damage
)
:
1
;
//命中了至少会保留1点伤害 此所谓雁过拔毛
$log
.=
"<span class=
\"
red
\"
>
$damage
</span>点伤害!<br>"
;
//最终物理伤害
//
造成的
最终物理伤害
$pdamage
=
$damage
;
$pa
[
'phy_damage'
]
=
$pdamage
;
# 物理伤害计算结束后、加载预受伤事件……:
get_hurt_prepare_events
(
$pa
,
$pd
,
$active
);
...
...
@@ -652,7 +654,8 @@
//存在额外的属性伤害文本,输出
if
(
isset
(
$elog
))
$log
.=
$elog
.
"=<span class=
\"
red
\"
>
{
$ex_damage
}
</span>点属性伤害!<br>"
;
}
//并入最终伤害
//将造成的最终属性伤害登记在$pa['ex_damage'] 并入最终伤害
$pa
[
'ex_damage'
]
=
$ex_damage
;
$damage
+=
$ex_damage
;
}
...
...
@@ -719,7 +722,7 @@
# active已经没用了……大概吧
function
rev_combat_result
(
&
$pa
,
&
$pd
,
$active
)
{
global
$log
;
global
$log
,
$now
;
# 执行扣血后的战斗结算阶段事件
rev_combat_result_events
(
$pa
,
$pd
,
$active
);
# 死者(受伤者)pd血量低于0时 结算击杀/复活事件
...
...
include/game/search.func.php
View file @
10e86d01
...
...
@@ -597,7 +597,7 @@ function discover($schmode = 0) {
//include_once GAME_ROOT.'./include/game/dice.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
);
$bid
=
$edata
[
'pid'
];
...
...
@@ -610,7 +610,7 @@ function discover($schmode = 0) {
#findenemy($edata);
findenemy_rev
(
$edata
);
return
;
}
}
//挨打
else
{
...
...
include/init.func.php
View file @
10e86d01
...
...
@@ -38,6 +38,11 @@ function init_icon_states(&$pa,$pd,$ismeet=0)
function
init_hp_states
(
&
$pa
,
$pd
,
$ismeet
=
0
)
{
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
))
{
...
...
include/system.func.php
View file @
10e86d01
...
...
@@ -538,7 +538,7 @@ function gameover($time = 0, $mode = '', $winname = '') {
$pdata
[
'getime'
]
=
$time
;
$pdata
[
'hdmg'
]
=
$hdamage
;
$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
;
$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'
]
.
"')"
);
}
...
...
templates/default/battle_rev.htm
View file @
10e86d01
...
...
@@ -90,7 +90,7 @@
</tr>
<tr>
<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=
"b3"
width=
105px
><span>
$sdata['sp'] / $sdata['msp']
</span></td>
<td
class=
"b2"
width=
70px
><span>
{lang rage}
</span></td>
...
...
templates/default/command.htm
View file @
10e86d01
...
...
@@ -104,14 +104,14 @@
<!-- 第 4 行:地区功能-->
<!--{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;"
>
<br>
<!--{/if}-->
<!--{if in_array($pls,$depots)}-->
<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;"
>
</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>
<!--{/if}-->
<!-- 第 5 行:社团特殊功能-->
<!--{if $club == 7}-->
...
...
templates/default/profile.htm
View file @
10e86d01
...
...
@@ -149,7 +149,14 @@
</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=
"b3"
>
<!--{if $skillpoint > 0}-->
<span
class=
"lime"
>
$skillpoint
</span>
<!--{else}-->
<span>
$skillpoint
</span>
<!--{/if}-->
</td>
</tr>
...
...
valid.php
View file @
10e86d01
...
...
@@ -124,8 +124,8 @@ if($mode == 'enter') {
//$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] = 'GRAND OPENING 「开门大吉」'; $itmk[5] = 'p000'; $itme[5] = 1; $itms[5] = 1;
$dice
=
rand
(
1
,
7
);
if
(
$dice
==
7
)
$dice
=
9
;
$dice
=
rand
(
4
,
8
);
if
(
$dice
==
8
)
$dice
=
9
;
$dice_name
=
$clubinfo
[
$dice
];
$itm
[
5
]
=
'「'
.
$dice_name
.
' 社团卡」'
;
$itmk
[
5
]
=
'ZB'
;
$itme
[
5
]
=
$dice
;
$itms
[
5
]
=
1
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment