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
3cfd50f3
Commit
3cfd50f3
authored
Apr 17, 2025
by
Nemo Ma
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FEAT: Add Second Chance and Once More skill
parent
62b7ccca
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
449 additions
and
34 deletions
+449
-34
doc/etc/20250417_203340_tl_skills_implementation.txt
doc/etc/20250417_203340_tl_skills_implementation.txt
+143
-0
doc/etc/20250417_205006_skill_books_implementation.txt
doc/etc/20250417_205006_skill_books_implementation.txt
+94
-0
doc/etc/20250417_213905_tl_2ndchance_fix.txt
doc/etc/20250417_213905_tl_2ndchance_fix.txt
+45
-0
gamedata/cache/clubskills_1.php
gamedata/cache/clubskills_1.php
+16
-16
include/game/item.nouveau_booster1.php
include/game/item.nouveau_booster1.php
+82
-0
include/game/item.recovery.php
include/game/item.recovery.php
+34
-18
include/game/revattr.func.php
include/game/revattr.func.php
+28
-0
include/state.func.php
include/state.func.php
+7
-0
No files found.
doc/etc/20250417_203340_tl_skills_implementation.txt
0 → 100644
View file @
3cfd50f3
# 奇机与起迹技能实装
## 技能概述
1. **奇机(tl_2ndchance)**:
- 被动技能,在战斗中,当受到将大于目前生命值的伤害时,那个伤害成为目前生命值-1的数值(也即留下1HP)
- 这是一个保命技能,可以防止玩家被一击致命
2. **起迹(tl_oncemore)**:
- 被动技能,在战斗中,只要自己的生命值为1,则将那次伤害变为0
- 使用后会在玩家的clbpara中记录一个flag(tl_oncemore_used)
- flag存在的场合该技能无效
- 玩家通过使用补给和治疗获得生命值时,将这个flag去除
- 这是一个配合奇机使用的技能,可以在生命值为1时免疫一次伤害
## 实装步骤
### 1. 添加技能定义
在 `gamedata/cache/clubskills_1.php` 文件中添加了两个技能的定义:
```php
'tl_2ndchance' => Array
(
'name' => '奇机',
'tags' => Array('passive'),
'desc' => '被动技能,在战斗中,受到将大于目前生命值的伤害时,那个伤害成为目前生命值-1的数值(也即留下1HP)。',
'cost' => 30,
'input' => '学习',
'log' => '消耗了<span class="lime">[:cost:]</span>点技能点,学会了技能「奇机」。<br>',
),
'tl_oncemore' => Array
(
'name' => '起迹',
'tags' => Array('passive'),
'desc' => '被动技能,在战斗中,只要自己的生命值为1,则将那次伤害变为0,并在该玩家的clbpara中记录一个flag,flag存在的场合该技能无效。玩家通过使用补给和治疗获得生命值时,将这个flag去除。',
'cost' => 30,
'input' => '学习',
'log' => '消耗了<span class="lime">[:cost:]</span>点技能点,学会了技能「起迹」。<br>',
),
```
### 2. 实现技能检测
在 `include/game/revattr.func.php` 文件的 `get_attr_passive_skills` 函数中添加了对这两个技能的检测:
```php
# 「奇机」特殊判定:
elseif($sk == 'tl_2ndchance')
{
$pa['skill_tl_2ndchance'] = 1;
}
# 「起迹」特殊判定:
elseif($sk == 'tl_oncemore')
{
$pa['skill_tl_oncemore'] = 1;
}
```
### 3. 实现技能效果
在 `include/game/revattr.func.php` 文件的 `get_final_dmg_fix` 函数中添加了这两个技能的效果实现:
```php
# 「奇机」效果判定:
if(isset($pd['skill_tl_2ndchance']) && $fin_dmg > $pd['hp'])
{
$fin_dmg = $pd['hp'] - 1;
$log .= "<span class='yellow'>「奇机」使{$pd['nm']}在危险时刻保留了1点生命值!</span><br>";
return $fin_dmg;
}
# 「起迹」效果判定:
if(isset($pd['skill_tl_oncemore']) && $pd['hp'] == 1 && !isset($pd['clbpara']['tl_oncemore_used']))
{
$pd['clbpara']['tl_oncemore_used'] = 1;
$fin_dmg = 0;
$log .= "<span class='yellow'>「起迹」使{$pd['nm']}在生命值为1时免疫了这次伤害!</span><br>";
return $fin_dmg;
}
```
### 4. 实现flag清除
在以下三个函数中添加了清除 `tl_oncemore_used` flag 的代码:
1. 在 `include/game/item.recovery.php` 文件的 `item_recovery_health` 函数中:
```php
# 「起迹」标记清除:
if(isset($clbpara['tl_oncemore_used'])) {
unset($clbpara['tl_oncemore_used']);
$log .= "<span class='yellow'>「起迹」技能恢复了效果!</span><br>";
}
```
2. 在 `include/game/item.recovery.php` 文件的 `item_recovery_both` 函数中:
```php
# 「起迹」标记清除:
if(isset($clbpara['tl_oncemore_used'])) {
unset($clbpara['tl_oncemore_used']);
$log .= "<span class='yellow'>「起迹」技能恢复了效果!</span><br>";
}
```
3. 在 `include/state.func.php` 文件的 `rest` 函数中:
```php
# 「起迹」标记清除:
if($uphp > 0 && isset($clbpara['tl_oncemore_used'])) {
unset($clbpara['tl_oncemore_used']);
$log .= "<span class='yellow'>「起迹」技能恢复了效果!</span><br>";
}
```
## 技能机制说明
### 奇机(tl_2ndchance)
1. 当玩家受到的伤害大于当前生命值时(即致命伤害),该技能会将伤害减少为"当前生命值-1"
2. 这样玩家就会剩下1点生命值,而不是被击败
3. 技能会在游戏日志中显示提示信息
4. 这个技能没有使用次数限制,每次受到致命伤害时都会触发
### 起迹(tl_oncemore)
1. 当玩家生命值为1点时,该技能会将下一次受到的伤害变为0
2. 技能触发后,会在玩家的clbpara中设置一个flag(tl_oncemore_used)
3. 当这个flag存在时,技能不会再次触发
4. 玩家通过使用补给、治疗物品或休息恢复生命值时,会清除这个flag,使技能可以再次使用
5. 技能会在游戏日志中显示提示信息
## 技能组合效果
这两个技能可以很好地配合使用:
1. 当玩家受到致命伤害时,"奇机"会使玩家剩下1点生命值
2. 然后,如果玩家再次受到攻击,"起迹"会使这次伤害变为0,保护玩家
3. 玩家可以利用这个机会使用补给或治疗物品恢复生命值
4. 恢复生命值后,"起迹"的flag会被清除,可以再次使用
这种组合为玩家提供了强大的生存能力,特别是在危险的战斗中。
doc/etc/20250417_205006_skill_books_implementation.txt
0 → 100644
View file @
3cfd50f3
# 奇机与起迹技能书实装
## 实装内容概述
本次实装了三本技能书,用于让玩家获得"奇机"和"起迹"技能:
1. **现实逃避论 ~风中残烛之卷**:使用后玩家获得"奇机"技能
2. **现实逃避论 ~一转攻势之卷**:使用后玩家获得"起迹"技能
3. **现实逃避论 ~全卷**:使用后玩家同时获得"奇机"和"起迹"技能
## 技能书详情
### 1. 现实逃避论 ~风中残烛之卷
- **物品名称**:现实逃避论 ~风中残烛之卷
- **物品类型**:VS(技能书)
- **物品属性**:tl_2ndchance(奇机技能)
- **使用效果**:获得"奇机"技能,该技能可以在战斗中受到致命伤害时保留1点生命值
- **描述文本**:书中详细描述了在危机时刻如何保持最后一丝生机的秘诀
### 2. 现实逃避论 ~一转攻势之卷
- **物品名称**:现实逃避论 ~一转攻势之卷
- **物品类型**:VS(技能书)
- **物品属性**:tl_oncemore(起迹技能)
- **使用效果**:获得"起迹"技能,该技能可以在生命值为1时免疫一次伤害
- **描述文本**:书中详细描述了如何在生死一线之际转危为安的秘诀
### 3. 现实逃避论 ~全卷
- **物品名称**:现实逃避论 ~全卷
- **物品类型**:VS(技能书)
- **物品属性**:tl_2ndchance,tl_oncemore(奇机和起迹技能)
- **使用效果**:同时获得"奇机"和"起迹"技能
- **描述文本**:这是一本完整的生存指南,详细描述了如何在绝境中求生的各种技巧
## 实装步骤
1. 在 `include/game/item.nouveau_booster1.php` 文件中添加了三个技能书的处理逻辑
2. 每本技能书的处理逻辑包括:
- 检查物品名称和属性是否匹配
- 使用 `getclubskill` 函数尝试为玩家添加对应技能
- 根据添加结果显示相应的提示信息
- 消耗物品(减少使用次数或移除物品)
- 记录获得技能的新闻
## 实装特点
1. **分级获取**:玩家可以选择单独获取"奇机"或"起迹"技能,也可以通过全卷同时获取两个技能
2. **友好提示**:根据玩家是否已经拥有技能,显示不同的提示信息
3. **完整记录**:使用 `addnews` 函数记录玩家获得技能的事件
4. **消耗机制**:使用后物品会被消耗,符合游戏的物品使用逻辑
## 使用方法
1. 玩家获得对应的技能书物品
2. 在物品栏中使用该技能书
3. 如果玩家还没有对应的技能,将会获得该技能并看到成功提示
4. 如果玩家已经拥有对应的技能,将会看到失败提示
## 代码实现
```php
// 现实逃避论 ~风中残烛之卷:获得奇机技能
if ($itm == '现实逃避论 ~风中残烛之卷' && $itmsk == 'tl_2ndchance') {
global $cskills, $now;
$flag = getclubskill('tl_2ndchance', $clbpara);
if ($flag) {
$log .= "你仔细阅读了<span class='red'>{$itm}</span>,书中详细描述了在危机时刻如何保持最后一丝生机的秘诀。<br>";
$log .= "哇!没想到这本书里竟然介绍了<span class='yellow'>「{$cskills['tl_2ndchance']['name']}」</span>的原理!<br>";
$log .= "获得了技能<span class='yellow'>「{$cskills['tl_2ndchance']['name']}」</span>!<br>";
$log .= "你心满意足地把<span class='red'>{$itm}</span>吃进了肚里。<br>";
addnews($now, 'getsk_tl_2ndchance', $name, $itm, $nick);
} else {
$log .= "什么嘛!原来里面都是些你看过的东西了,你没有从书中学到任何新东西。<br>";
$log .= "你一怒之下把这本破书撕了个稀巴烂!<br>";
}
// 消耗物品
if ($itms != $nosta) {
$itms--;
if ($itms <= 0) {
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
}
}
return true;
}
```
## 注意事项
1. 技能书的物品类型必须是 `VS`(技能书类型)
2. 技能书的物品属性必须与要授予的技能ID匹配
3. 全卷的物品属性使用逗号分隔两个技能ID
4. 玩家已经拥有的技能不会重复获得,但会消耗物品
doc/etc/20250417_213905_tl_2ndchance_fix.txt
0 → 100644
View file @
3cfd50f3
# 奇机技能修复
## 问题描述
技能"奇机"(tl_2ndchance)在玩家生命值为1的时候也会发动,这与技能的设计初衷不符。该技能应该只在玩家生命值大于1且即将受到致命伤害时才发动,将伤害减少到只剩1点生命值。
## 问题原因
在 `include/game/revattr.func.php` 文件的 `get_final_dmg_fix` 函数中,"奇机"技能的判定条件不完整。原来的代码只检查了两个条件:
1. 玩家拥有"奇机"技能
2. 即将受到的伤害大于当前生命值
但是缺少了第三个条件:当前生命值必须大于1。这导致即使玩家生命值已经是1,技能仍然会触发,这是不必要的,因为此时应该由"起迹"技能来处理。
## 修复内容
在 `include/game/revattr.func.php` 文件的 `get_final_dmg_fix` 函数中,修改了"奇机"技能的判定条件,添加了对当前生命值的检查:
```php
# 「奇机」效果判定:
if(isset($pd['skill_tl_2ndchance']) && $fin_dmg > $pd['hp'] && $pd['hp'] > 1)
{
$fin_dmg = $pd['hp'] - 1;
$log .= "<span class='yellow'>「奇机」使{$pd['nm']}在危险时刻保留了1点生命值!</span><br>";
return $fin_dmg;
}
```
添加了 `$pd['hp'] > 1` 条件,确保只有当玩家当前生命值大于1时,"奇机"技能才会触发。
## 修复效果
1. 现在"奇机"技能只会在玩家生命值大于1且即将受到致命伤害时触发
2. 当玩家生命值已经是1时,"奇机"技能不会触发,而是由"起迹"技能来处理(如果玩家拥有该技能)
3. 这样两个技能可以更好地配合工作,不会出现功能重叠的情况
## 技能组合效果
修复后,"奇机"和"起迹"技能的组合效果更加明确:
1. 当玩家受到致命伤害时,"奇机"会使玩家剩下1点生命值
2. 然后,如果玩家再次受到攻击,"起迹"会使这次伤害变为0,保护玩家
3. 玩家可以利用这个机会使用补给或治疗物品恢复生命值
4. 恢复生命值后,"起迹"的flag会被清除,可以再次使用
这种组合为玩家提供了强大的生存能力,特别是在危险的战斗中。
gamedata/cache/clubskills_1.php
View file @
3cfd50f3
...
...
@@ -78,37 +78,37 @@ $cskills = Array
(
'name'
=>
'种火I'
,
'tags'
=>
Array
(
'passive'
),
'desc'
=>
'被动技能,使你因为战斗受到的所有最终伤害都降低为75%。'
,
'cost'
=>
10
,
'input'
=>
'学习'
,
'log'
=>
'消耗了<span class="lime">[:cost:]</span>点技能点,学会了技能「种火I」。<br>'
,
'desc'
=>
'套装技能,使你因为战斗受到的所有最终伤害都降低为75%。'
,
),
'fireseed2'
=>
Array
(
'name'
=>
'种火II'
,
'tags'
=>
Array
(
'passive'
),
'desc'
=>
'被动技能,使你因为战斗受到的所有最终伤害都降低为50%。'
,
'cost'
=>
20
,
'input'
=>
'学习'
,
'log'
=>
'消耗了<span class="lime">[:cost:]</span>点技能点,学会了技能「种火II」。<br>'
,
'desc'
=>
'套装技能,使你因为战斗受到的所有最终伤害都降低为50%。'
,
),
'fireseed3'
=>
Array
(
'name'
=>
'种火III'
,
'tags'
=>
Array
(
'passive'
),
'desc'
=>
'被动技能,使你因为战斗受到的所有最终伤害都变为1。'
,
'cost'
=>
30
,
'input'
=>
'学习'
,
'log'
=>
'消耗了<span class="lime">[:cost:]</span>点技能点,学会了技能「种火III」。<br>'
,
'desc'
=>
'套装技能,使你因为战斗受到的所有最终伤害都变为1。'
,
),
'fireseed4'
=>
Array
(
'name'
=>
'种火IV'
,
'tags'
=>
Array
(
'passive'
),
'desc'
=>
'被动技能,使你受到的所有伤害(包括战斗、事件、陷阱、食用毒物等)都变为0。'
,
'cost'
=>
50
,
'input'
=>
'学习'
,
'log'
=>
'消耗了<span class="lime">[:cost:]</span>点技能点,学会了技能「种火IV」。<br>'
,
'desc'
=>
'套装技能,使你受到的所有伤害(包括战斗、事件、陷阱、食用毒物等)都变为0。'
,
),
'tl_2ndchance'
=>
Array
(
'name'
=>
'奇机'
,
'tags'
=>
Array
(
'passive'
),
'desc'
=>
'在战斗中,受到将大于目前生命值的伤害时,以一线生机存活下来。'
,
),
'tl_oncemore'
=>
Array
(
'name'
=>
'起迹'
,
'tags'
=>
Array
(
'passive'
),
'desc'
=>
'在战斗中,只要自己的生命值为1,则只有一次可以免除下一次伤害(状态可刷新)。'
,
),
// 可以通过在此文件中填写配置项来创建一个新技能,系统会自动生成模板。如果配置文件不能满足需求,可以自己创建一个模板文件
/*'技能编号' => Array
...
...
include/game/item.nouveau_booster1.php
View file @
3cfd50f3
...
...
@@ -112,6 +112,88 @@ function item_nouveau_booster1($itmn, &$data) {
return
true
;
}
// 处理技能书物品
if
(
$itmk
==
'VS'
)
{
// 现实逃避论 ~风中残烛之卷:获得奇机技能
if
(
$itm
==
'现实逃避论~风中残烛之卷'
&&
$itmsk
==
'tl_2ndchance'
)
{
global
$cskills
,
$now
;
$flag
=
getclubskill
(
'tl_2ndchance'
,
$clbpara
);
if
(
$flag
)
{
$log
.=
"你仔细阅读了<span class='red'>
{
$itm
}
</span>,书中详细描述了在危机时刻如何保持最后一丝生机的秘诀。<br>"
;
$log
.=
"哇!没想到这本书里竟然介绍了<span class='yellow'>「
{
$cskills
[
'tl_2ndchance'
][
'name'
]
}
」</span>的原理!<br>"
;
$log
.=
"获得了技能<span class='yellow'>「
{
$cskills
[
'tl_2ndchance'
][
'name'
]
}
」</span>!<br>"
;
$log
.=
"你心满意足地把<span class='red'>
{
$itm
}
</span>吃进了肚里。<br>"
;
//addnews($now, 'getsk_tl_2ndchance', $name, $itm, $nick);
}
else
{
$log
.=
"什么嘛!原来里面都是些你看过的东西了,你没有从书中学到任何新东西。<br>"
;
$log
.=
"你一怒之下把这本破书撕了个稀巴烂!<br>"
;
}
$itm
=
$itmk
=
$itmsk
=
''
;
$itme
=
$itms
=
0
;
// 消耗物品
return
true
;
}
// 现实逃避论 ~一转攻势之卷:获得起迹技能
if
(
$itm
==
'现实逃避论~一转攻势之卷'
&&
$itmsk
==
'tl_oncemore'
)
{
global
$cskills
,
$now
;
$flag
=
getclubskill
(
'tl_oncemore'
,
$clbpara
);
if
(
$flag
)
{
$log
.=
"你仔细阅读了<span class='red'>
{
$itm
}
</span>,书中详细描述了如何在生死一线之际转危为安的秘诀。<br>"
;
$log
.=
"哇!没想到这本书里竟然介绍了<span class='yellow'>「
{
$cskills
[
'tl_oncemore'
][
'name'
]
}
」</span>的原理!<br>"
;
$log
.=
"获得了技能<span class='yellow'>「
{
$cskills
[
'tl_oncemore'
][
'name'
]
}
」</span>!<br>"
;
$log
.=
"你心满意足地把<span class='red'>
{
$itm
}
</span>吃进了肚里。<br>"
;
//addnews($now, 'getsk_tl_oncemore', $name, $itm, $nick);
}
else
{
$log
.=
"什么嘛!原来里面都是些你看过的东西了,你没有从书中学到任何新东西。<br>"
;
$log
.=
"你一怒之下把这本破书撕了个稀巴烂!<br>"
;
}
$itm
=
$itmk
=
$itmsk
=
''
;
$itme
=
$itms
=
0
;
// 消耗物品
return
true
;
}
// 现实逃避论 ~全卷:同时获得奇机和起迹技能
if
(
$itm
==
'现实逃避论~全卷'
)
{
global
$cskills
,
$now
;
$flag1
=
getclubskill
(
'tl_2ndchance'
,
$clbpara
);
$flag2
=
getclubskill
(
'tl_oncemore'
,
$clbpara
);
if
(
$flag1
||
$flag2
)
{
$log
.=
"你仔细阅读了<span class='red'>
{
$itm
}
</span>,这是一本完整的生存指南,详细描述了如何在绝境中求生的各种技巧。<br>"
;
if
(
$flag1
)
{
$log
.=
"哇!没想到这本书里竟然介绍了<span class='yellow'>「
{
$cskills
[
'tl_2ndchance'
][
'name'
]
}
」</span>的原理!<br>"
;
$log
.=
"获得了技能<span class='yellow'>「
{
$cskills
[
'tl_2ndchance'
][
'name'
]
}
」</span>!<br>"
;
//addnews($now, 'getsk_tl_2ndchance', $name, $itm, $nick);
}
if
(
$flag2
)
{
$log
.=
"哇!没想到这本书里竟然还介绍了<span class='yellow'>「
{
$cskills
[
'tl_oncemore'
][
'name'
]
}
」</span>的原理!<br>"
;
$log
.=
"获得了技能<span class='yellow'>「
{
$cskills
[
'tl_oncemore'
][
'name'
]
}
」</span>!<br>"
;
//addnews($now, 'getsk_tl_oncemore', $name, $itm, $nick);
}
$log
.=
"你心满意足地把<span class='red'>
{
$itm
}
</span>吃进了肚里。<br>"
;
}
else
{
$log
.=
"什么嘛!原来里面都是些你看过的东西了,你没有从书中学到任何新东西。<br>"
;
$log
.=
"你一怒之下把这本破书撕了个稀巴烂!<br>"
;
}
$itm
=
$itmk
=
$itmsk
=
''
;
$itme
=
$itms
=
0
;
// 消耗物品
return
true
;
}
}
// 如果没有匹配的物品,返回 false
return
false
;
}
...
...
include/game/item.recovery.php
View file @
3cfd50f3
...
...
@@ -75,7 +75,15 @@ function item_recovery_health($itmn, &$data) {
$addhp
=
diceroll
(
$itme
);
$log
.=
"随机数大神不喜欢给定值,你回复的生命被骰子改动了!<br>"
;
}
if
(
$addhp
>
0
)
$hp
+=
$addhp
;
if
(
$addhp
>
0
)
{
$hp
+=
$addhp
;
# 「起迹」标记清除:
if
(
isset
(
$clbpara
[
'tl_oncemore_used'
]))
{
unset
(
$clbpara
[
'tl_oncemore_used'
]);
$log
.=
"<span class='yellow'>「起迹」技能恢复了效果!</span><br>"
;
}
}
else
$addhp
=
0
;
$log
.=
"你使用了<span class=
\"
red
\"
>
$itm
</span>,恢复了<span class=
\"
yellow
\"
>
$addhp
</span>点生命。<br>"
;
if
(
$itms
!=
$nosta
)
{
...
...
@@ -226,7 +234,15 @@ function item_recovery_both($itmn, &$data) {
$addhp
=
diceroll
(
$itme
);
$log
.=
"随机数大神不喜欢给定值,你回复的生命被骰子改动了!<br>"
;
}
if
(
$addhp
>
0
)
$hp
+=
$addhp
;
if
(
$addhp
>
0
)
{
$hp
+=
$addhp
;
# 「起迹」标记清除:
if
(
isset
(
$clbpara
[
'tl_oncemore_used'
]))
{
unset
(
$clbpara
[
'tl_oncemore_used'
]);
$log
.=
"<span class='yellow'>「起迹」技能恢复了效果!</span><br>"
;
}
}
else
$addhp
=
0
;
$log
.=
"你使用了<span class=
\"
red
\"
>
$itm
</span>,恢复了<span class=
\"
yellow
\"
>
$addhp
</span>点生命和<span class=
\"
yellow
\"
>
$addsp
</span>点体力。<br>"
;
//吃了无毒的围棋子饼干 真勇啊!
...
...
include/game/revattr.func.php
View file @
3cfd50f3
...
...
@@ -256,6 +256,16 @@ namespace revattr
$pa
[
'skill_c12_swell'
]
=
$pa
[
'hp'
]
<=
$pa
[
'mhp'
]
*
0.3
?
2
:
1
;
}
}
# 「奇机」特殊判定:
elseif
(
$sk
==
'tl_2ndchance'
)
{
$pa
[
'skill_tl_2ndchance'
]
=
1
;
}
# 「起迹」特殊判定:
elseif
(
$sk
==
'tl_oncemore'
)
{
$pa
[
'skill_tl_oncemore'
]
=
1
;
}
# 其他非特判技能,默认给一个触发标记
else
{
...
...
@@ -1936,6 +1946,24 @@ namespace revattr
return
$fin_dmg
;
}
# 「奇机」效果判定:
if
(
isset
(
$pd
[
'skill_tl_2ndchance'
])
&&
$fin_dmg
>
$pd
[
'hp'
]
&&
$pd
[
'hp'
]
>
1
)
{
$fin_dmg
=
$pd
[
'hp'
]
-
1
;
$log
.=
"<span class='yellow'>「奇机」使
{
$pd
[
'nm'
]
}
在危险时刻保留了1点生命值!</span><br>"
;
return
$fin_dmg
;
}
# 「起迹」效果判定:
if
(
isset
(
$pd
[
'skill_tl_oncemore'
])
&&
$pd
[
'hp'
]
==
1
&&
!
isset
(
$pd
[
'clbpara'
][
'tl_oncemore_used'
]))
{
$pd
[
'clbpara'
][
'tl_oncemore_used'
]
=
1
;
$fin_dmg
=
0
;
$log
.=
"<span class='yellow'>「起迹」使
{
$pd
[
'nm'
]
}
在生命值为1时免疫了这次伤害!</span><br>"
;
return
$fin_dmg
;
}
# 「量心」效果判定 手加减:
if
(
isset
(
$pa
[
'askill_c19_dispel'
])
&&
$fin_dmg
>=
$pd
[
'hp'
])
{
...
...
include/state.func.php
View file @
3cfd50f3
...
...
@@ -949,6 +949,13 @@
$hp
+=
$uphp
;
$hp
=
min
(
$hp
,
$mhp
);
$uphp
=
$hp
-
$oldhp
;
$uphp
=
max
(
0
,
$uphp
);
# 「起迹」标记清除:
if
(
$uphp
>
0
&&
isset
(
$clbpara
[
'tl_oncemore_used'
]))
{
unset
(
$clbpara
[
'tl_oncemore_used'
]);
$log
.=
"<span class='yellow'>「起迹」技能恢复了效果!</span><br>"
;
}
if
(
!
$uphp
&&
$hp
>=
$mhp
)
$log
.=
"没有伤口需要治疗了。"
;
else
$log
.=
"你的生命恢复了<span class=
\"
yellow b
\"
>
$uphp
</span>点。"
;
}
...
...
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