Commit 81a46c9e authored by Nemo Ma's avatar Nemo Ma

Restore functionality for 红杀之力 item

Added handling for the item '【我想要领略真正的红杀之力】' in item.npc.php, restoring its ability to summon 红暮 and 蓝凝 NPCs, broadcast system messages, and record news. This fixes a regression from previous item logic refactoring where this item's effect was missing.
parent eb466c00
NOUVEAU DAY 160
变更摘要:
- 修复使用【我想要领略真正的红杀之力】无反应的问题。
- 排查同类NPC召唤类道具,确认【挑战者之印】、【挑战者之印Ⅱ】、【黑色碎片】等在新模块中正常工作,无需改动。
问题原因:
- 早期的 item.func.old 中存在对【我想要领略真正的红杀之力】的处理逻辑(约 3415 行),但在 Y/Z 物品重构(模块化到 include/game/item.npc.php 等)时,该物品分支未被迁移,导致 Y/Z 调度链路中没有任何分支匹配,界面不显示任何反馈。
改动内容:
- 文件:include/game/item.npc.php
- 新增对物品名 “【我想要领略真正的红杀之力】” 的分支处理:
1) 输出使用文案与特效文案;
2) 调用 addnpc(19,0,1) 与 addnpc(19,1,1) 召唤红暮与蓝凝;
3) 调用 addnews($now, 'keyuu', $name, '', $pls, $nick) 记录新闻(地点依赖 c 参数);
4) 插入两条系统广播(聊天)与旧逻辑一致;
5) 销毁道具(清空 itm/itmk/itmsk 并置 0)。
参考与兼容:
- 函数 addnews 的签名来自 include/global.func.php:addnews($t,$n,$a,$b,$c,$d,$e),news.func.php 对 keyuu 已有模板,使用 c 渲染地点。
- 其余 NPC 类道具(挑战者之印、黑色碎片、破灭之诗、✦钥匙/阶段钥匙、✦【自律AI呼唤器】)在 include/game/item.npc.php 中均已存在,工作正常。
风险与验证:
- 此更改仅添加分支,不影响其他路径。原旧逻辑文本、新闻、广播与召唤调用保持一致。
- 需在测试机上通过实际使用该物品验证:
1) 界面应显示使用文案;
2) 新闻页出现 keyuu 记录并显示地点;
3) 聊天窗口出现红暮/蓝凝系统消息;
4) 地图上生成 2 名 19 类 NPC;
5) 道具被正常销毁。
附记:
- 此修复是对 Y/Z 物品重构遗漏的补全。后续如继续迁移老物品分支,请以 item.func.old 为对照全面排查,避免类似遗漏。
......@@ -7,20 +7,20 @@ if (! defined('IN_GAME')) {
/**
* 处理NPC相关物品
* 这些物品会影响NPC的生成、移动等
*
*
* @param int $itmn 物品在物品栏中的位置
* @param array &$data 玩家数据
*/
function item_npc($itmn, &$data) {
global $log, $now, $db, $tablepre, $hack, $gamevars;
extract($data, EXTR_REFS);
$itm = & ${'itm' . $itmn};
$itmk = & ${'itmk' . $itmn};
$itme = & ${'itme' . $itmn};
$itms = & ${'itms' . $itmn};
$itmsk = & ${'itmsk' . $itmn};
if ($itm == '杏仁豆腐的ID卡') {
include_once GAME_ROOT . './include/system.func.php';
$duelstate = duel($now, $itm);
......@@ -60,7 +60,7 @@ function item_npc($itmn, &$data) {
} elseif ($itm == '破灭之诗') {
$rp = 0;
$clbpara['dialogue'] = 'thiphase';
$clbpara['console'] = 1;
$clbpara['console'] = 1;
$clbpara['achvars']['thiphase'] += 1;
include_once GAME_ROOT . './include/system.func.php';
$log .= '在你唱出那单一的旋律的霎那,<br>整个虚拟世界起了翻天覆地的变化……<br>';
......@@ -82,7 +82,7 @@ function item_npc($itmn, &$data) {
$log .= '你已经呼唤了一个未知的存在,现在寻找并击败她,<br>并且搜寻她的游戏解除钥匙吧!<br>';
addnews($now, 'dfphase', $name, $nick);
addnpc(12, 0, 1);
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
} elseif ($itm == '✦钥匙碎片') {
......@@ -97,7 +97,7 @@ function item_npc($itmn, &$data) {
addnpc(2, 5, 2);
addnpc(2, 6, 2);
addnpc(2, 7, 2);
addnews($now, 'key0', $name, $nick);
addnews($now, 'key0', $name, $nick);
$itms--;
if ($itms <= 0) destory_single_item($data, $itmn, 1);
} elseif ($itm == '✦NPC钥匙·一阶段') {
......@@ -114,7 +114,7 @@ function item_npc($itmn, &$data) {
addnpc(13, 0, 1);
addnpc(13, 1, 1);
addnpc(13, 2, 1);
addnews($now, 'key1', $name, $nick);
addnews($now, 'key1', $name, $nick);
$itms--;
if ($itms <= 0) {
$log .= "<span class=\"red\">$itm</span>用光了。<br>";
......@@ -134,7 +134,7 @@ function item_npc($itmn, &$data) {
addnpc(6, 0, 1);
//假蓝凝
addnpc(9, 0, 1);
addnews($now, 'key2', $name, $nick);
addnews($now, 'key2', $name, $nick);
$itms--;
if ($itms <= 0) {
$log .= "<span class=\"red\">$itm</span>用光了。<br>";
......@@ -150,7 +150,7 @@ function item_npc($itmn, &$data) {
addnpc(92, 2, 10);
addnpc(92, 3, 10);
addnpc(92, 4, 10);
addnews($now, 'key3', $name, $nick);
addnews($now, 'key3', $name, $nick);
$itms--;
if ($itms <= 0) {
$log .= "<span class=\"red\">$itm</span>用光了。<br>";
......@@ -158,7 +158,7 @@ function item_npc($itmn, &$data) {
$itme = $itms = 0;
}
} elseif ($itm == '✦【自律AI呼唤器】') {
//Call in 30 type 93 NPCs, 6 each.
//Call in 30 type 93 NPCs, 6 each.
//get player's 1st Yume value - different value results in different NPC.
//There are 5 sets - K, C, G, P, D.
include_once GAME_ROOT . './include/system.func.php';
......@@ -206,5 +206,20 @@ function item_npc($itmn, &$data) {
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
}
} elseif ($itm == '【我想要领略真正的红杀之力】') {
// 召唤红暮与蓝凝(从旧版逻辑迁移,恢复原有功能)
include_once GAME_ROOT . './include/system.func.php';
$log .= '你拿起了这个球状物体,重重地向天空抛去!<br>地图上空出现了红杀组织的龙虎徽标!<br>';
addnpc(19, 0, 1);
addnpc(19, 1, 1);
// 发布新闻:需要将当前位置传入c参数以显示【地点】
addnews($now, 'keyuu', $name, '', $pls, $nick);
// 系统广播
$db->query("INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('2','$now','【红暮】','','切,真是少见的要求,那么我会在【无月之影】等着你们的挑战!')");
$db->query("INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('2','$now','【蓝凝】','','英雄就该姗姗来迟,我会和姐姐一起迎接你们!')");
// 销毁物品
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
}
}
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