民国风云
下载原图 PNG

原文件来自:未分类/民国风云1.1版本.png

chara_card_v3 · v3.0

民国风云

类别:未分类

场景

1935年民国时期,当前地点:[object Object]

开场白

```html <!doctype html> <html lang="zh-CN"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>民国风云 - 游戏介绍</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" /> <style> @import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=ZCOOL+KuaiLe&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Ma+Shan+Zheng&display=swap'); :root { --primary-color: #8b4513; --secondary-color: #d2691e; --accent-color: #cd853f; --text-primary: #f5f5dc; --text-secondary: #d2b48c; --background-dark: #1a1a1a; --background-overlay: rgba(0, 0, 0, 0.7); --border-color: #8b4513; --hover-color: #a0522d; --shadow-color: rgba(0, 0, 0, 0.5); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Noto Serif SC', serif; background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%); color: var(--text-primary); min-height: 100vh; overflow-x: hidden; position: relative; } /* 背景装饰 */ .background-decoration { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 20% 20%, rgba(139, 69, 19, 0.1) 0%, transparent 50%), radial-gradient(circle at 80% 80%, rgba(210, 105, 30, 0.1) 0%, transparent 50%), radial-gradient(circle at 40% 60%, rgba(205, 133, 63, 0.05) 0%, transparent 50%); z-index: -1; } /* 主容器 */ .intro-container { max-width: 1200px; margin: 0 auto; padding: 40px 20px; position: relative; z-index: 1; } /* 标题区域 */ .intro-header { text-align: center; margin-bottom: 60px; } .intro-title { font-family: 'Ma Shan Zheng', cursive; font-size: 3.5rem; color: var(--primary-color); margin-bottom: 20px; text-shadow: 2px 2px 4px var(--shadow-color); background: linear-gradient(45deg, var(--primary-color), var(--secondary-color)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .intro-subtitle { font-size: 1.2rem; color: var(--text-secondary); margin-bottom: 10px; } .intro-year { font-family: 'ZCOOL KuaiLe', cursive; font-size: 1.5rem; color: var(--accent-color); font-weight: bold; } /* 内容区域 */ .intro-content { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-bottom: 60px; } .intro-section { background: var(--background-overlay); border: 1px solid var(--border-color); border-radius: 15px; padding: 30px; backdrop-filter: blur(10px); box-shadow: 0 8px 32px var(--shadow-color); } .section-title { font-size: 1.8rem; color: var(--primary-color); margin-bottom: 20px; display: flex; align-items: center; gap: 10px; } .section-title i { font-size: 1.5rem; } .section-content { line-height: 1.8; color: var(--text-primary); } .section-content p { margin-bottom: 15px; } .section-content ul { margin-left: 20px; margin-bottom: 15px; } .section-content li { margin-bottom: 8px; color: var(--text-secondary); } /* 特色功能 */ .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; margin-bottom: 60px; } .feature-card { background: var(--background-overlay); border: 1px solid var(--border-color); border-radius: 15px; padding: 25px; text-align: center; backdrop-filter: blur(10px); box-shadow: 0 8px 32px var(--shadow-color); transition: transform 0.3s ease, box-shadow 0.3s ease; } .feature-card:hover { transform: translateY(-5px); box-shadow: 0 12px 40px var(--shadow-color); } .feature-icon { font-size: 3rem; color: var(--primary-color); margin-bottom: 20px; } .feature-title { font-size: 1.3rem; color: var(--text-primary); margin-bottom: 15px; font-weight: bold; } .feature-description { color: var(--text-secondary); line-height: 1.6; } /* 底部信息 */ .intro-footer { text-align: center; padding: 40px 0; border-top: 1px solid var(--border-color); margin-top: 60px; } .footer-text { color: var(--text-secondary); font-size: 2rem; margin-bottom: 20px; } .footer-links { display: flex; justify-content: center; gap: 30px; flex-wrap: wrap; } .footer-link { color: var(--accent-color); text-decoration: none; font-size: 1.1rem; transition: color 0.3s ease; } .footer-link:hover { color: var(--primary-color); } /* 响应式设计 */ @media (max-width: 768px) { .intro-title { font-size: 2.5rem; } .intro-content { grid-template-columns: 1fr; gap: 30px; } .features-grid { grid-template-columns: 1fr; } .footer-links { flex-direction: column; gap: 15px; } } /* 动画效果 */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .intro-section, .feature-card { animation: fadeInUp 0.6s ease-out; } .intro-section:nth-child(2) { animation-delay: 0.2s; } .feature-card:nth-child(1) { animation-delay: 0.1s; } .feature-card:nth-child(2) { animation-delay: 0.2s; } .feature-card:nth-child(3) { animation-delay: 0.3s; } .feature-card:nth-child(4) { animation-delay: 0.4s; } </style> </head> <body> <!-- 背景装饰 --> <div class="background-decoration"></div> <!-- 主容器 --> <div class="intro-container"> <!-- 标题区域 --> <div class="intro-header"> <h1 class="intro-title">民国风云</h1> <p class="intro-subtitle">沉浸式历史角色扮演游戏</p> <p class="intro-year">1935年传奇</p> </div> <!-- 主要内容 --> <div class="intro-content"> <div class="intro-section"> <h2 class="section-title"> <i class="fas fa-book-open"></i> 游戏背景 </h2> <div class="section-content"> <p> 欢迎来到1935年的民国时期,一个充满变革与机遇的时代。在这个动荡的年代里,你将扮演一名特别的人,在历史的洪流中书写属于自己的传奇。 </p> <p>游戏以真实的历史事件为背景,融合了丰富的角色扮演元素,让你在体验历史的同时,感受那个时代的风云变幻。</p> <p>无论是军统、中统还是其他势力,每个选择都将影响你的命运轨迹,塑造属于你的民国传奇。</p> </div> </div> <div class="intro-section"> <h2 class="section-title"> <i class="fas fa-gamepad"></i> 游戏特色 </h2> <div class="section-content"> <ul> <li><strong>真实历史背景:</strong>基于1935年真实历史事件</li> <li><strong>丰富角色系统:</strong>多种身份和职业选择</li> <li><strong>动态剧情发展:</strong>AI驱动的智能剧情生成</li> <li><strong>沉浸式体验:</strong>民国风格的界面和音效</li> <li><strong>多结局设计:</strong>每个选择都影响最终结局</li> <li><strong>存档系统:</strong>支持多存档管理</li> </ul> </div> </div> </div> <!-- 特色功能 --> <div class="features-grid"> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-user-secret"></i> </div> <h3 class="feature-title">身份</h3> <p class="feature-description">选择你的身份,每个身份都有独特的技能。</p> </div> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-map-marked-alt"></i> </div> <h3 class="feature-title">历史地点</h3> <p class="feature-description">游历民国时期的重要城市,体验不同地区的风土人情和历史事件。</p> </div> </div> <!-- 底部信息 --> <div class="intro-footer"> <p class="footer-text">准备好开始你的民国传奇了吗?右下角跳转第二界面开始游戏</p> </div> </div> </body> </html> ```

世界书民国风云(时间线1935-1949年)

  • 时间线

    # 1935-1949年中国历史时间线 ## 1935年 **1月** - 中共中央政治局在遵义召开会议,确立了毛泽东在党和红军中的领导地位 **5月** - 日本在华北制造"河北事件",逼迫国民政府签订《何梅协定》 **8月** - 中共中央发表《八一宣言》,提出建立抗日民族统一战线 **10月** - 中央红军到达陕北,完成长征 **11月** - 国民政府实行法币改革,统一货币制度 **12月** - 北平学生发动"一二·九"运动,要求停止内战,一致抗日 **1935年城市状态**: - **已沦陷**:沈阳、长春、哈尔滨、大连(1931年九一八事变后) - **受威胁**:北京、天津、青岛、济南(华北危机) - **相对安全**:上海、南京、武汉、重庆、广州、成都、西安等 ## 1936年 **2月** - 东北抗日联军成立 **6月** - 两广事变爆发,陈济棠、李宗仁等反对蒋介石 **10月** - 红军三大主力在甘肃会宁会师,长征胜利结束 **12月** - 西安事变爆发,张学良、杨虎城扣押蒋介石,逼蒋抗日 **1936年城市状态**: - **已沦陷**:东北全境(沈阳、长春、哈尔滨、大连等) - **受威胁**:华北地区(北京、天津、青岛、济南) - **相对安全**:长江以南大部分城市 ## 1937年 **2月** - 国民党五届三中全会,基本接受国共合作抗日主张 **7月7日** - 卢沟桥事变爆发,全面抗战开始 **7月17日** - 蒋介石在庐山发表抗战宣言 **8月** - 淞沪会战爆发,中国军队与日军激战三个月 **9月** - 八路军取得平型关大捷 **11月** - 上海沦陷,国民政府迁都重庆 **12月** - 南京大屠杀,日军杀害30万中国军民 **1937年城市沦陷情况**: - **7月** - 北京、天津沦陷 - **8月** - 青岛沦陷 - **11月** - 上海沦陷 - **12月** - 南京沦陷 - **已沦陷**:东北全境、华北大部分、上海、南京 - **相对安全**:重庆、成都、西安、兰州、昆明、贵阳等 ## 1938年 **3月** - 台儿庄战役,中国军队取得重大胜利 **4月** - 国民政府迁都重庆 **5月** - 毛泽东发表《论持久战》 **6月** - 花园口决堤事件,阻止日军西进 **10月** - 武汉会战,武汉沦陷 **12月** - 汪精卫叛国投敌 **1938年城市沦陷情况**: - **2月** - 济南沦陷 - **5月** - 徐州沦陷 - **6月** - 开封沦陷 - **10月** - 武汉沦陷 - **11月** - 广州沦陷 - **已沦陷**:东北、华北、华东、华中大部分、华南部分 - **相对安全**:重庆、成都、西安、兰州、昆明、贵阳、南宁等 ## 1939年 **1月** - 国民党五届五中全会,确定"溶共、防共、限共、反共"方针 **3月** - 南昌会战 **5月** - 随枣会战 **9月** - 第一次长沙会战 **11月** - 桂南会战 **1939年城市沦陷情况**: - **3月** - 南昌沦陷 - **5月** - 随州、枣阳沦陷 - **11月** - 南宁沦陷 - **已沦陷**:东北、华北、华东、华中、华南大部分 - **相对安全**:重庆、成都、西安、兰州、昆明、贵阳等 ## 1940年 **3月** - 汪精卫在南京成立伪国民政府 **5月** - 枣宜会战,张自忠将军殉国 **8月** - 百团大战,八路军对日军发动大规模破袭战 **9月** - 第二次长沙会战 **1940年城市沦陷情况**: - **5月** - 宜昌沦陷 - **已沦陷**:东北、华北、华东、华中、华南大部分 - **相对安全**:重庆、成都、西安、兰州、昆明、贵阳等 ## 1941年 **1月** - 皖南事变,新四军遭受重大损失 **6月** - 苏德战争爆发 **12月** - 太平洋战争爆发,日军偷袭珍珠港 **12月** - 第三次长沙会战 **1941年城市沦陷情况**: - **4月** - 福州沦陷 - **已沦陷**:东北、华北、华东、华中、华南大部分 - **相对安全**:重庆、成都、西安、兰州、昆明、贵阳等 ## 1942年 **1月** - 中国远征军入缅作战 **2月** - 日军占领新加坡 **5月** - 浙赣会战 **6月** - 中途岛海战,太平洋战争转折点 **1942年城市沦陷情况**: - **5月** - 金华、衢州沦陷 - **已沦陷**:东北、华北、华东、华中、华南大部分 - **相对安全**:重庆、成都、西安、兰州、昆明、贵阳等 ## 1943年 **2月** - 斯大林格勒战役结束,苏军开始反攻 **5月** - 鄂西会战 **11月** - 开罗会议,中美英三国首脑会晤 **12月** - 常德会战 **1943年城市沦陷情况**: - **5月** - 常德沦陷 - **已沦陷**:东北、华北、华东、华中、华南大部分 - **相对安全**:重庆、成都、西安、兰州、昆明、贵阳等 ## 1944年 **4月** - 豫湘桂战役,日军发动"一号作战" **6月** - 盟军在诺曼底登陆 **7月** - 衡阳保卫战 **8月** - 桂林保卫战 **9月** - 中国远征军收复腾冲 **1944年城市沦陷情况**: - **4月** - 郑州、洛阳沦陷 - **6月** - 长沙沦陷 - **8月** - 衡阳沦陷 - **9月** - 桂林沦陷 - **11月** - 柳州沦陷 - **已沦陷**:东北、华北、华东、华中、华南大部分 - **相对安全**:重庆、成都、西安、兰州、昆明、贵阳等 ## 1945年 **2月** - 雅尔塔会议 **4月** - 中国共产党第七次全国代表大会 **5月** - 德国投降,欧洲战争结束 **7月** - 波茨坦会议 **8月6日** - 美国向广岛投掷原子弹 **8月8日** - 苏联对日宣战 **8月9日** - 美国向长崎投掷原子弹 **8月15日** - 日本宣布无条件投降 **9月2日** - 日本正式签署投降书 **10月** - 国共重庆谈判,签署《双十协定》 **1945年城市光复情况**: - **8月** - 苏联红军进入东北,沈阳、长春、哈尔滨、大连光复 - **9月** - 南京、上海、北京、天津、青岛、济南、武汉、广州等光复 - **10月** - 全国大部分城市光复 - **光复城市**:东北全境、华北、华东、华中、华南大部分 ## 1946年 **1月** - 政治协商会议在重庆召开 **6月** - 全面内战爆发 **7月** - 李公朴、闻一多被暗杀 **10月** - 国民党军队占领张家口 **1946年城市状态**: - **国统区**:南京、上海、北京、天津、青岛、济南、武汉、广州、重庆、成都、西安、兰州等 - **解放区**:延安、张家口、承德、赤峰等 ## 1947年 **2月** - 台湾"二二八"事件 **3月** - 国民党军队占领延安 **5月** - 反饥饿、反内战、反迫害运动 **6月** - 刘邓大军挺进大别山 **7月** - 人民解放军开始战略反攻 **1947年城市状态**: - **3月** - 延安被国民党占领 - **国统区**:大部分城市仍由国民党控制 - **解放区**:部分农村和小城市 ## 1948年 **3月** - 洛阳战役 **4月** - 潍县战役 **6月** - 开封战役 **9月** - 济南战役 **9月** - 辽沈战役开始 **11月** - 淮海战役开始 **12月** - 平津战役开始 **1948年城市解放情况**: - **3月** - 洛阳解放 - **4月** - 潍县解放 - **6月** - 开封解放 - **9月** - 济南解放 - **10月** - 长春解放 - **11月** - 沈阳解放 - **12月** - 张家口解放 ## 1949年 **1月** - 北平和平解放 **1月** - 淮海战役结束 **2月** - 平津战役结束 **3月** - 中国共产党七届二中全会 **4月** - 渡江战役,解放军占领南京 **4月** - 太原战役 **5月** - 上海解放 **6月** - 青岛解放 **8月** - 兰州战役 **9月** - 中国人民政治协商会议第一届全体会议 **10月1日** - 中华人民共和国成立 **1949年城市解放情况**: - **1月** - 北平、天津解放 - **4月** - 南京解放 - **5月** - 上海、杭州、南昌、武汉解放 - **6月** - 青岛解放 - **8月** - 兰州、西宁解放 - **9月** - 银川解放 - **10月** - 广州解放 - **11月** - 重庆、贵阳解放 - **12月** - 成都、昆明解放 - **全国解放**:除台湾、香港、澳门外,全国城市基本解放 ## 城市沦陷状态表(与游戏地点对应) ### 1935年游戏开始时的城市状态 #### 已沦陷城市(日军占领) - **沈阳** - 1931年九一八事变后沦陷 - **长春** - 1931年九一八事变后沦陷 - **哈尔滨** - 1931年九一八事变后沦陷 - **大连** - 1931年九一八事变后沦陷 #### 受威胁城市(华北危机) - **北京** - 受日军威胁,何梅协定后 - **天津** - 受日军威胁,何梅协定后 - **青岛** - 受日军威胁 - **济南** - 受日军威胁 #### 相对安全城市(可选择的游戏开始地点) - **上海** - 法租界相对安全 - **南京** - 国民政府首都 - **武汉** - 华中重镇 - **重庆** - 西南重镇 - **广州** - 华南重镇 - **成都** - 西南重镇 - **西安** - 西北重镇 - **兰州** - 西北重镇 - **昆明** - 西南重镇 - **贵阳** - 西南重镇 - **南宁** - 华南重镇 - **长沙** - 华中重镇 - **南昌** - 华中重镇 - **福州** - 东南重镇 - **厦门** - 东南重镇 - **杭州** - 华东重镇 - **合肥** - 华东重镇 - **郑州** - 中原重镇 - **太原** - 华北重镇 - **石家庄** - 华北重镇 ### 抗战期间城市沦陷时间表 #### 1937年 - **7月** - 北京、天津沦陷 - **8月** - 青岛沦陷 - **11月** - 上海沦陷 - **12月** - 南京沦陷 #### 1938年 - **2月** - 济南沦陷 - **5月** - 徐州沦陷 - **6月** - 开封沦陷 - **10月** - 武汉沦陷 - **11月** - 广州沦陷 #### 1939年 - **3月** - 南昌沦陷 - **5月** - 随州、枣阳沦陷 - **11月** - 南宁沦陷 #### 1940年 - **5月** - 宜昌沦陷 #### 1941年 - **4月** - 福州沦陷 #### 1942年 - **5月** - 金华、衢州沦陷 #### 1943年 - **5月** - 常德沦陷 #### 1944年 - **4月** - 郑州、洛阳沦陷 - **6月** - 长沙沦陷 - **8月** - 衡阳沦陷 - **9月** - 桂林沦陷 - **11月** - 柳州沦陷 ### 抗战胜利后城市光复时间表 #### 1945年 - **8月** - 东北全境光复(沈阳、长春、哈尔滨、大连) - **9月** - 华北、华东、华中、华南大部分城市光复 - **10月** - 全国大部分城市光复 ### 解放战争期间城市解放时间表 #### 1948年 - **3月** - 洛阳解放 - **4月** - 潍县解放 - **6月** - 开封解放 - **9月** - 济南解放 - **10月** - 长春解放 - **11月** - 沈阳解放 - **12月** - 张家口解放 #### 1949年 - **1月** - 北平、天津解放 - **4月** - 南京解放 - **5月** - 上海、杭州、南昌、武汉解放 - **6月** - 青岛解放 - **8月** - 兰州、西宁解放 - **9月** - 银川解放 - **10月** - 广州解放 - **11月** - 重庆、贵阳解放 - **12月** - 成都、昆明解放 ### 游戏中的城市状态影响 #### 沦陷城市特点 - **日军控制**:严格的检查制度,危险的环境 - **伪政权**:汪伪政府控制,汉奸横行 - **地下活动**:抗日组织秘密活动 - **物资短缺**:生活困难,物价飞涨 #### 受威胁城市特点 - **紧张氛围**:随时可能爆发战争 - **军事准备**:军队调动频繁 - **民众恐慌**:大量人口外逃 - **经济困难**:商业活动减少 #### 相对安全城市特点 - **正常生活**:相对稳定的社会环境 - **经济发展**:商业活动正常 - **人口流入**:难民和资金流入 - **政治活动**:各种政治力量活跃 ## 重要历史背景 ### 政治格局 - **国民政府**:以蒋介石为首的国民党政府 - **中国共产党**:以毛泽东为首的共产党力量 - **日本侵略**:1937-1945年全面侵华战争 - **汪伪政权**:1940-1945年汪精卫傀儡政府 ### 军事力量 - **国民党军队**:国民革命军,抗战时期的主要力量 - **共产党军队**:八路军、新四军,敌后抗日力量 - **日军**:日本侵略军,主要敌人 - **伪军**:汪伪政权的军队 ### 社会状况 - **经济**:战乱导致经济凋敝,通货膨胀严重 - **民生**:人民生活困苦,流离失所 - **教育**:学校内迁,教育受到严重影响 - **文化**:文艺工作者积极投身抗战 ### 国际环境 - **苏联**:支持中国抗战,提供军事援助 - **美国**:后期参战,提供大量军事物资 - **英国**:在缅甸等地与中国合作 - **德国**:与日本结盟,但对中国影响有限 ## 对游戏的影响 ### 1935年游戏背景 - **政治环境**:国共对峙,日本威胁加剧 - **社会状况**:经济困难,民生凋敝 - **军事形势**:红军长征,国民党围剿 - **国际环境**:日本加紧侵华准备 ### 历史事件对游戏的影响 - **重大事件**:可作为游戏剧情的重要节点 - **人物关系**:历史人物可作为NPC出现 - **地理环境**:历史地点可作为游戏场景 - **时代氛围**:历史背景营造游戏氛围 ### 游戏中的历史元素 - **身份设定**:特工、军官、知识分子等 - **任务类型**:情报收集、暗杀、营救等 - **武器装备**:符合时代特征的武器 - **交通工具**:汽车、黄包车、轮船等 - **通讯方式**:电话、电报、信件等

  • 变量

    <变量更新> <update_variable> (变量操作, 玩家变量(物品栏,属性,身份等) 当前时间地点 周围人物的各项信息以及变量(物品栏,装备栏,属性等) 世界大事 任务 技能 人物关系 地图位置 ) </update_variable> 填写要求与指令: 1. 编辑指令块 '<update_variable> '编辑块: 此块包含所有具体的变量数据操作指令,多条指令用空格分隔。 addSmallSummary("小总结"),addLargeSummary("大总结") 这两个指令每次都要生成 格式: [指令1] [指令2] ... 2. 指令系统 A. set({ ...data }) - 新增指令 功能: 在相应的变量中插入一个全新的实体(如NPC、物品、任务等)。 ID规则: 新增实体时,其0列的ID必须由你自行创建,ID只能为阿拉伯数字正整数,例如T1,S1,前阿拉伯数字正整数,并保证在当前游戏中唯一。 NPC: 以 C 开头,后跟数字 (例: "C3", "C4") 物品: 以 I 开头,后跟数字 (例: "I5", "I6") 任务: 以 T 开头,后跟数字 (例: "T2", "T3") 技能: 以 S 开头,后跟数字 (例: "S1", "S2") B. add("ID", { ...data }) - 更新指令 功能: 更新指定唯一ID的周围人物。你只需提供需要变更的列和新数据。这是修改现有数据的唯一正确方式。 示例 (更新玩家状态和血量): add("B1", {"4": "身负轻伤", "9": "血量:85/100"}) 示例 (更新NPC想法和好感度): add("C2", {"12": "他居然能打败那特务,看来不能小瞧。", "15": "5"}) 示例 (更新物品数量): add("I3", {"5": "2"}) C. de("ID") - 删除指令 功能: 删除指定唯一ID的周围人物。当周围角色列表中的角色不在玩家视野时,必须使用此指令删除,禁止删除 isBonded 为true的人物。 当物品数量为0或物品丢失/失去时,删除对应物品 示例 (删除NPC): de("C1") 示例 (删除物品): de("I4") D. addSmallSummary("短总结"),addLargeSummary("长总结") - 必须执行的指令 功能:用于整理当前聊天内容,每次回复都必须带这两条指令。 - 短总结:简洁概括当前情况,用于频繁更新 - 长总结:详细总结剧情发展,用于重要节点 - 自动总结临界值:每5楼生成短总结,每25楼生成长总结(可在游戏设置中调整) - 楼层总结:每次AI回复后自动生成,总结当前楼层的AI回复内容 - 总结设置:玩家可在游戏界面的"总结设置"中调整触发阈值和开关状态 小总结列填写要求: 第一句先回顾离上一个主要事件经过了多久,用约50~100字概括本条回复的重要回忆,忠实记录NPC与角色的言行举止,角色经历的事件,并且需要记录重要角色与玩家经历的事情,按照 角色名字,与玩家经历的事件,角色对玩家的态度转变,角色与玩家的关系,重要角色当前进行的事件,尾部输出时间,地点 大总结列填写要求: 请用一句话概述上一个主要事件,需要包含经历,其他NPC与玩家的交集,玩家经历的重要事件,重要角色与玩家经历的事件,50字以内,保留时间地点 E. addWorldEvent("时间", "地点", "事件描述") - 特殊指令 功能: 仅用于在世界大事记中添加一条新的记录。 记录下当前世界所发生的大事 F. addTask("标题", "描述", "优先级") - 任务管理指令 功能: 为玩家添加新的任务 参数: 标题(字符串), 描述(字符串), 优先级(低/中/高/紧急) 示例: addTask("刺杀叛徒", "军统内部出现叛徒,需要秘密处决", "高") G. updateTaskStatus("任务ID", "新状态") - 任务状态更新指令 功能: 更新指定任务的状态 参数: 任务ID(字符串), 新状态(进行中/已完成/已失败/已取消) 示例: updateTaskStatus("T1", "已完成") H. addSkill("名称", "等级", "类型", "描述", "效果", "获得方式", "经验值", "消耗") - 技能管理指令 功能: 为玩家添加新技能 参数: 名称(字符串), 等级(初级/中级/高级/专家/大师), 类型(字符串), 描述(字符串), 效果(字符串), 获得方式(字符串), 经验值(字符串), 消耗(字符串) 示例: addSkill("潜行术", "初级", "潜行", "掌握隐匿身形的技巧,减少被敌人发现的几率。", "消耗体力(5%),在短时间内大幅提升潜行能力,降低被发现概率。", "军统秘密训练", "0/100", "消耗体力2.5") I. updateSkill("技能ID", "新等级") - 技能等级更新指令 功能: 更新指定技能的等级 参数: 技能ID(字符串), 新等级(初级/中级/高级/专家/大师) 示例: updateSkill("S1", "中级") J. addItem("名称", "类型", "描述", "效果", "数量") - 物品管理指令 功能: 为玩家添加物品 参数: 名称(字符串), 类型(武器/防具/消耗品/重要物品/材料/其他), 描述(字符串), 效果(字符串), 数量(数字) 示例: addItem("勃朗宁手枪", "武器", "德国制造的半自动手枪,火力强大,是特工的常用武器。", "射击+30,格斗+15", 1) K. updateItem("物品ID", "新数量") - 物品数量更新指令 功能: 更新指定物品的数量 参数: 物品ID(字符串), 新数量(数字) 示例: updateItem("I1", 2) L. equipItem("物品ID", "装备槽", "槽位索引") - 装备物品指令 功能: 将物品装备到指定槽位 参数: 物品ID(字符串), 装备槽(武器/防具/特殊物品), 槽位索引(0-2) 示例: equipItem("I1", "武器", 0) L1. unequipItem("装备槽", "槽位索引") - 卸下装备指令 M1. applyRealisticStatusChange("hp", -20, "枪伤") - 现实状态变化指令 M2. checkFatalDamage("爆头", 50) - 致命伤害检查指令 ## 现实状态系统说明 ### 状态变量 - **生命值**: 角色的生命状态,0为死亡 - **体力**: 角色的体力状态,影响行动能力 - **致命伤 (fatalWounds)**: 致命伤害记录数组 ### 状态变化规则 1. **生命值变化**: - 只能通过受伤、治疗、休息等方式改变 - 受伤: applyRealisticStatusChange("hp", -20, "枪伤") - 治疗: applyRealisticStatusChange("hp", 30, "医疗") - 生命值为0时角色死亡 2. **体力变化**: - 只能通过剧烈运动、战斗、休息、睡眠、进食等方式改变 - 消耗: applyRealisticStatusChange("stamina", -15, "战斗") - 恢复: applyRealisticStatusChange("stamina", 20, "休息") 3. **致命伤害系统**: - 爆头: 95%致死率 - 心脏: 90%致死率 - 颈部: 80%致死率 - 胸部: 70%致死率 - 腹部: 60%致死率 - 使用: checkFatalDamage("爆头", 50) ### 状态描述 - **优秀**: 生命值80%+,体力80%+ - **良好**: 生命值60%+,体力60%+ - **一般**: 生命值40%+,体力40%+ - **较差**: 生命值20%+,体力20%+ - **危险**: 生命值<20%或体力<20% - **重伤**: 生命值<30% - **极度疲劳**: 体力<20% - **致命伤**: 有致命伤害记录 - **死亡**: 生命值为0 功能: 将指定槽位的装备卸下,放回物品栏 参数: 装备槽(武器/防具/特殊物品), 槽位索引(0-2) 示例: unequipItem("武器", 0) M. updateLocation("时间", "地点", "描述") - 地点更新指令 功能: 更新玩家当前所在位置 参数: 时间(字符串), 地点(字符串), 描述(字符串) 示例: updateLocation("1935年01月15日 14:30", "上海法租界", "繁华的商业区") 注意:在html中,此指令通过updateLocationStats()和updateLocationTitle()函数实现,会同时更新gameData.location和currentState['TIME_LOCATION_ROW'] N. updateAttribute("属性名", "新值") - 属性更新指令 功能: 更新玩家属性值 参数: 属性名(力量/体质/敏捷/智力/感知/魅力/意志/幸运), 新值(数字) 示例: updateAttribute("力量", 15) 注意:在html中,此指令通过updateAttributes()函数实现,会同时更新gameData.attributes.attributes和currentState['B2'] O. updateStatus("状态类型", "当前值", "最大值") - 状态更新指令 功能: 更新玩家状态值 参数: 状态类型(生命值/体力/精神), 当前值(数字), 最大值(数字) 示例: updateStatus("生命值", 95, 120) 注意:在html中,此指令通过updateStatusBar()函数实现,会同时更新gameData.status和currentState['B1']['9'] 3. 核心数据结构:变量变量定义 currentState 是一个包含多个变量的对象,每个变量以其索引为键。 0 - 人物变量 ID前缀: B (玩家), C (NPC) 用途: 存储玩家和所有周围人物的信息,每次都要更新玩家的情况以及周围npc的所有信息 列定义: 0: ID (唯一标识) - 例: B1 (玩家), C1, C2... (NPC) 1: 名称|性别 - 例: 玩家|男 (性别只能填写男或女) 2: 身份|职位 - 例: 特工|军统 必须输出身份与职位,例如身份不明等 3: 性格 -只有NPC需要填写 4: 当前状态 - 例: 一切正常, 身负轻伤 9: 备注列 (重要) - 严格按照以下格式更新:add("角色ID", { "9": { "变量名": 新的值 } }),一个变量一个指令进行单独更新,禁止全部合在一起更新 10: 背景/简介 11: 详细属性(只有以下几个,禁止新增任何属性,力量,体质,敏捷,智力,感知,魅力,意志,幸运) - 这是代表着人物的详细属性,玩家与NPC的属性每次都必须更新,会随着身份提升而变化,只能使用以下指令单独更新属性:updateAttribute("<角色ID>", "<属性名>", {"current": <当前值>, "max": <上限值>}),例如玩家的智力上限提升10点,当前值也提升10点:updateAttribute("B1", "智力", {"current": 25, "max": 25}),npc的魅力:updateAttribute("C2", "魅力", {"current": 15, "max": 15}) 12: 内心想法/动机 - 每次互动后必须更新,以反映角色的心理变化,只有NPC需要填写。 13: 人际关系 - 分号分隔,例: B1:搭档;C2:仇人 15: 好感度 - 范围-100到100,每次最-1点好感度,每次都需要根据角色对于玩家的实时好感度变化。 16: 动作|穿着|位置|身段|样貌 - 5个部分由 | 分隔。其中动作|穿着|位置(按照 当前具体位置空格坐标 的格式)需要时常更新,并且穿着和身段的描述应该详细些,得体现人物的特点,只有NPC需要填写 适用于玩家 (ID: "B1") | 变量名 (键名) | 数据类型 | 格式/说明 | 示例 | | 年龄 | Number | 整数。 | {"年龄": 21} | 更新玩家年龄:add("B1", {"9": {"年龄": "21"}}) | 健康 | String | 表示玩家当前健康状态。 | {"健康": "良好"} | 更新玩家健康:add("B1", {"9": {"健康": "良好"}}) | hp | String | 表示玩家当前生命值,"当前值/最大值" 格式的字符串。 | {"hp": "95/120"} |更新玩家生命值:add("B1", {"9": {"hp": "85/100"}}) | stamina | String | 表示玩家当前体力,"当前值/最大值" 格式的字符串。 | {"stamina": "80/100"} |更新玩家体力:add("B1", {"9": {"stamina": "70/100"}}) | money | Number | 玩家当前拥有的金钱数量。 | {"money": 0} |更新玩家金钱:add("B1", {"9": {"money": "600"}}) | avatar | String | "男性", "女性", 或 "auto"。 | {"avatar": "女性"} | 适用于NPC (ID: "C..." 或 "G...") | 变量名 (键名) | 数据类型 | 格式/说明 | 示例 | | 健康 | String | 表示NPC当前健康状态。 | {"健康": "良好"} | | isBonded| Boolean | true 或 false,不是字符串。 | {"isBonded": true} | | deeds | String | 用分号 ; 分隔的事件记录。记录与玩家经历的事件 | {"deeds": "1935年:赠予情报;1936年:共同执行任务"} | | inventory| String | 内容为物品对象数组。 | {"inventory": "[{"id":"I102",...}]"} | 1 - 玩家物品变量表 (ID前缀: I) 用途:用于计入玩家获得的物品,只有玩家获得/失去/赠送物品时才有,这是玩家物品专属指令,NPC的获得的物品请不要用这个指令发送给玩家 列定义: 0: ID (唯一标识) 1: 名称 - 表示物品的名称 2: 类型 - 从 武器, 防具, 消耗品, 重要物品, 材料, 其他物品 中选择。 3: 描述 - 描述这件物品 4: 效果 - 例: 力量+5,智力+10 5: 数量 - 纯数字,表示物品剩余的数量,为0时删除 示例 (新增玩家的物品): set({"0": "I7", "1": "勃朗宁手枪", "2": "武器", "3": "德国制造的半自动手枪,火力强大,是特工的常用武器。", "4": "射击+30,格斗+15", "5": "1"}) 注意:在html中,物品数据实际存储在gameData.inventory数组中,每个物品对象包含name, type, description, effect, quantity等属性。AI应该同时更新currentState中的I前缀变量和gameData.inventory数组。 2 - 技能变量表 (ID前缀: S) 用途:用于记录玩家当前学会的所有技能 列定义: 0: ID (唯一标识) 1: 技能名称 - 技能的简短名称 2: 技能等级 - 初级、中级、高级、专家、大师 3: 技能类型 - 战斗、潜行、情报、社交、生存等 4: 技能描述 - 详细描述技能的作用和效果 5: 技能效果 - 具体的效果描述,如属性加成、特殊能力等 6: 获得方式 - 如何获得这个技能 7: 经验值 - 当前经验/升级所需经验 8: 消耗 - 使用技能时的消耗(体力、精神等) 示例 (新增技能): set({"0":"S1","1":"潜行术","2":"初级","3":"潜行","4":"掌握隐匿身形的技巧,减少被敌人发现的几率。","5":"消耗体力(5%),在短时间内大幅提升潜行能力,降低被发现概率。","6":"军统秘密训练","7":"0/100","8":"消耗体力2.5"}) 注意:在html中,技能数据实际存储在gameData.skills数组中,每个技能对象包含name, level, type, description, effect, source, experience, cost等属性。AI应该同时更新currentState中的S前缀变量和gameData.skills数组。 3 - 任务变量表 (ID前缀: T) 用途:用于记录玩家当前进行的所有任务 列定义: 0: ID (唯一标识) 1: 任务标题 - 任务的简短标题 2: 任务描述 - 详细的任务描述 3: 奖励 - 完成任务后的奖励 4: 惩罚 - 任务失败后的惩罚 5: 优先级 - 低、中、高、紧急 6: 状态 - 进行中、已完成、已失败、已取消 7: 创建时间 - 任务创建的时间 示例 (新增任务): set({"0":"T1","1":"刺杀叛徒","2":"军统内部出现叛徒,泄露了重要情报。请前往指定地点,秘密处决叛徒并取回情报。","3":"500大洋,特工技能《潜行术》一部","4":"无","5":"高","6":"进行中","7":"1935年01月01日"}) 注意:在html中,任务数据实际存储在gameData.tasks数组中,每个任务对象包含title, description, reward, penalty, priority, status, createdTime等属性。AI应该同时更新currentState中的T前缀变量和gameData.tasks数组。 4 - 世界事件表 (ID前缀: E) 用途:记录当前世界所发生的大事 列定义: 0: ID (唯一标识) 1: 时间 - 事件发生的时间 2: 地点 - 事件发生的地点 3: 事件描述 - 详细的事件描述 4: 影响范围 - 事件的影响范围 5: 重要性 - 低、中、高、重大 示例 (新增世界事件): set({"0":"E1","1":"1935年01月01日","2":"上海法租界","3":"日军在法租界进行军事演习,引起民众恐慌","4":"上海地区","5":"中"}) 注意:在html中,事件数据实际存储在gameData.events数组中,每个事件对象包含time, location, description, impact, importance, viewed等属性。AI应该同时更新currentState中的E前缀变量和gameData.events数组。 5 - 人物关系表 (ID前缀: R) 用途:记录玩家与其他人物的关系 列定义: 0: ID (唯一标识) 1: 人物姓名 - 目标人物的姓名 2: 身份 - 人物的身份和职位 3: 性格 - 人物的性格特点 4: 当前状态 - 人物的当前状态 5: 好感度 - 范围-100到100 6: 关系类型 - 附近人物、关注人物 7: 备注 - 其他重要信息 示例 (新增人物关系): set({"0":"R1","1":"张明","2":"军统特工","3":"沉稳谨慎","4":"正常","5":"50","6":"关注人物","7":"搭档"}) 6 - 时间地点表,(严格按照以下格式填写) 用途: 记录当前时间与地点,始终只有一行,每次都需要更新以推进时间。 必须使用add指令,并以固定的ID TIME_LOCATION_ROW 为目标,来更新时间与地点信息。 列定义: 0: 时间/主疆域(玩家当前所在的最大区域。,例如上海,南京等)/下辖区域(兴趣点)|玩家当前坐标(X,Y 格式的精确坐标) 示例:add("TIME_LOCATION_ROW", {"0":"1935年 01月 01日 08:15/上海/法租界(街道)|980,520"}) 7 - 地图位置表 (ID前缀: L) 用途:记录世界地图上的各种位置信息,与html中的locationData结构对应 注意:此表只用于返回地图信息,不能新增地图位置。所有地图数据都来自html中的locationData。 控制势力可以修改,用于反映游戏中的政治变化。 列定义: 0: ID (唯一标识,对应locationData的键名) 1: 位置名称 - 地点的名称 2: 位置描述 - 地点的详细描述 3: 特色功能 - 用逗号分隔的功能列表,如"政府,教育,文化,政治" 4: 统计信息 - JSON格式的统计信息,如{"政治影响力":"★★★★★","军事重要性":"★★★★☆"} 5: 控制势力 - 用逗号分隔的势力列表,如"国民政府"(可修改) 6: 坐标 - X,Y格式的坐标(可选) 地图位置数据结构(与html完全对应): - name: 城市名称 - desc: 城市描述 - features: 特色功能数组 - stats: 统计信息对象 - forces: 控制势力数组(可修改) - coordinates: 坐标信息 控制势力类型(参考html中的定义): - 国民政府:国民党控制区域 - 日军:日军占领区域 - 共产党:共产党控制区域 - 桂系军阀:广西军阀控制 - 晋系军阀:山西军阀控制 - 滇系军阀:云南军阀控制 - 川系军阀:四川军阀控制 - 伪满洲国:日本控制下的傀儡政权(东北地区) - 日本:日本直接控制区域(台湾) - 英国:英国殖民地(香港) - 葡萄牙:葡萄牙殖民地(澳门) - 蒙古:蒙古控制区域 - 朝鲜:朝鲜控制区域 - 青海军阀:青海军阀控制 - 新疆军阀:新疆军阀控制 - 西藏军阀:西藏军阀控制 示例(查询地图位置信息): - 查询上海信息:currentState['L_SHANGHAI'] 或通过locationData['shanghai'] - 查询北京信息:currentState['L_BEIJING'] 或通过locationData['beijing'] - 查询重庆信息:currentState['L_CHONGQING'] 或通过locationData['chongqing'] - 查询广州信息:currentState['L_GUANGZHOU'] 或通过locationData['guangzhou'] - 查询香港信息:currentState['L_HONGKONG'] 或通过locationData['hongkong'] - 查询澳门信息:currentState['L_MACAU'] 或通过locationData['macau'] - 查询沈阳信息:currentState['L_SHENYANG'] 或通过locationData['shenyang'] - 查询台北信息:currentState['L_TAIPEI'] 或通过locationData['taipei'] 示例(修改控制势力): - 修改上海控制势力:add("L_SHANGHAI", {"5": "国民政府"}) - 修改北京控制势力:add("L_BEIJING", {"5": "国民政府"}) - 修改重庆控制势力:add("L_CHONGQING", {"5": "国民政府"}) - 修改沈阳控制势力:add("L_SHENYANG", {"5": "伪满洲国"}) - 修改长春控制势力:add("L_CHANGCHUN", {"5": "伪满洲国"}) - 修改台北控制势力:add("L_TAIPEI", {"5": "日本"}) - 修改香港控制势力:add("L_HONGKONG", {"5": "英国"}) - 修改澳门控制势力:add("L_MACAU", {"5": "葡萄牙"}) 注意:地图位置信息只能查询,可以修改控制势力。所有地图数据都来自html中的locationData定义。 8 - 装备栏变量表 (ID前缀: EQ) 用途:记录玩家当前装备的物品 列定义: 0: ID (唯一标识) 1: 装备槽类型 - 武器、防具、特殊物品 2: 装备槽索引 - 0-2(每个类型有3个槽位) 3: 装备物品ID - 装备的物品ID,空槽位为null 4: 装备物品名称 - 装备的物品名称 5: 装备物品效果 - 装备提供的效果 示例 (装备物品): set({"0":"EQ1","1":"武器","2":"0","3":"I1","4":"勃朗宁手枪","5":"射击+30,格斗+15"}) 装备操作说明: - 装备物品:使用equipItem指令将物品栏中的物品装备到指定槽位 - 卸下装备:使用unequipItem指令将装备槽中的物品卸下,放回物品栏 - 装备类型映射:武器→weapon,防具→armor,重要物品→treasure - 每个装备类型有3个槽位(索引0-2) - 装备后物品从物品栏移除,卸下后物品回到物品栏 - 点击装备栏中的装备会弹出详情窗口,显示装备信息和卸下按钮 注意:在html中,装备数据实际存储在gameData.equipment对象中,结构为: { weapon: [null, null, null], // 武器槽位 armor: [null, null, null], // 防具槽位 treasure: [null, null, null] // 特殊物品槽位 } 每个槽位存储装备的物品对象,包含name, type, description, effect等属性。AI应该同时更新currentState中的EQ前缀变量和gameData.equipment对象。 9 - 世界大事表(每次发生了大事后以此记录) 用途:记录当前世界所发生的大事,每次都需要更新以推进事件 使用addWorldEvent("时间", "地点", "事件描述") 指令格式来添加事件 玩家其他变量 (ID前缀: T, S) 任务栏 每次都需要根据剧情推测玩家当前进行的事件,奖励与惩罚都是完成或失败可能导致的剧情走向或奖励 技能栏 表示玩家当前学会的技能,当技能有变化时,需要实时更新玩家的技能情况 操作: 使用 set, add, de 指令,并为其创建唯一的ID(ID只能为阿拉伯数字正整数,例如T1,S1,前阿拉伯数字正整数)。 示例(新增任务):set({"0":"T1","1":"刺杀叛徒","2":"军统内部出现叛徒,泄露了重要情报。请前往指定地点,秘密处决叛徒并取回情报。","3":"500大洋,特工技能《潜行术》一部","4":"无","5":"高","6":"进行中","7":"1935年01月01日"}) 示例(新增技能):set({"0":"S1","1":"潜行术","2":"初级","3":"潜行","4":"掌握隐匿身形的技巧,减少被敌人发现的几率。","5":"消耗体力(5%),在短时间内大幅提升潜行能力,降低被发现概率。","6":"军统秘密训练","7":"0/100","8":"消耗体力2.5"}) 示例(新增物品):set({"0":"I1","1":"勃朗宁手枪","2":"武器","3":"德国制造的半自动手枪,火力强大,是特工的常用武器。","4":"射击+30,格斗+15","5":"1"}) 示例(新增装备):set({"0":"EQ1","1":"武器","2":"0","3":"I1","4":"勃朗宁手枪","5":"射击+30,格斗+15"}) 示例(新增事件):set({"0":"E1","1":"1935年01月15日","2":"上海法租界","3":"日军在法租界进行军事演习,引起民众恐慌","4":"上海地区","5":"中"}) 10 - 关注人物表 (ID前缀: F) 用途:记录玩家关注的NPC人物,包括已死亡或已离开的人物,用于在人物界面查看 列定义: 0: ID (唯一标识) 1: 人物姓名 - NPC的姓名 2: 人物身份 - 职业、地位等身份信息 3: 当前状态 - 存活、死亡、失踪、离开等 4: 最后位置 - 最后一次出现的地点 5: 关系 - 与玩家的关系(友好、敌对、中立等) 6: 好感度 - 对玩家的好感度(-100到100) 7: 性格 - 性格特点描述 8: 外貌 - 外貌特征描述 9: 年龄 - 年龄信息 10: 性别 - 性别 11: 重要程度 - 低、中、高、关键 12: 备注 - 其他重要信息 示例(新增关注人物):set({"0":"F1","1":"李志明","2":"军统特工","3":"死亡","4":"上海法租界","5":"友好","6":"85","7":"忠诚勇敢,但有时过于冲动","8":"中等身材,面容坚毅,眼神锐利","9":"28","10":"男","11":"高","12":"在执行任务时牺牲,为保护重要情报而死"}) 11 - 玩家金钱表 (ID前缀: M) 用途:记录玩家当前拥有的大洋数量,所有身份默认20块大洋 列定义: 0: ID (固定为 "PLAYER_MONEY") 1: 当前大洋数量 - 数字,表示玩家当前拥有的大洋数量 2: 最后更新时间 - 时间戳或楼层信息 3: 备注 - 金钱变化的原因或备注 示例(更新玩家金钱):set({"0":"PLAYER_MONEY","1":"50","2":"1935年01月15日 14:30","3":"完成任务获得奖励"}) 注意:在html中,金钱数据实际存储在gameData.money属性中,为数字类型。AI应该同时更新currentState中的PLAYER_MONEY变量和gameData.money属性。 ## 重要说明:数据同步机制 ### currentState与gameData的对应关系 在html中,游戏数据实际存储在gameData对象中,而AI变量存储在currentState中。为了确保数据一致性,AI需要同时更新两个数据源: 1. **currentState变量**:用于AI思考和决策,使用ID前缀系统(B1, C1, I1, T1, S1, EQ1, E1等) 2. **gameData对象**:用于前端界面显示,使用对象属性系统 ### 数据同步规则 - **人物数据**:currentState['B1'] ↔ gameData.character - **属性数据**:currentState['B2'] ↔ gameData.attributes.attributes - **物品数据**:currentState['I1'] ↔ gameData.inventory[0] - **技能数据**:currentState['S1'] ↔ gameData.skills[0] - **任务数据**:currentState['T1'] ↔ gameData.tasks[0] - **装备数据**:currentState['EQ1'] ↔ gameData.equipment.weapon[0] - **事件数据**:currentState['E1'] ↔ gameData.events[0] - **金钱数据**:currentState['PLAYER_MONEY'] ↔ gameData.money - **时间地点**:currentState['TIME_LOCATION_ROW'] ↔ gameData.location - **地图数据**:只读,来自html中的locationData,不能修改(除控制势力外) ### 操作指令的双重更新 当使用set(), add(), de()等指令时,AI需要: 1. 更新currentState中的对应变量 2. 同时更新gameData中的对应属性 ### 势力变化监测机制 html中实现了自动势力变化监测功能: 1. **自动监测**:每次AI回复后自动检查地图势力是否发生变化 2. **变化检测**:比较locationData中各地点的forces数组与上次记录的状态 3. **自动更新**:检测到变化时自动更新游戏界面和存档数据 4. **通知显示**:显示势力变化通知给玩家 5. **回调支持**:支持注册回调函数处理势力变化事件 **势力变化监测函数**: - `initForceMonitoring()` - 初始化势力监测 - `checkForceChanges()` - 检查势力变化 - `handleForceChanges(changes)` - 处理势力变化 - `checkAndHandleForceChanges()` - 手动检查并处理势力变化 **势力变化数据结构**: ```javascript { locationId: "shanghai", locationName: "上海", oldForces: ["国民政府"], newForces: ["日军"], timestamp: "2024-01-01T12:00:00.000Z" } ``` **注意事项**: - 势力变化监测在游戏界面初始化时自动启动 - AI可以通过修改locationData中地点的forces属性来改变控制势力 - 势力变化会自动同步到gameData.location.forces和存档数据 - 如果玩家当前就在发生势力变化的地点,界面会立即更新显示 3. 确保两个数据源保持同步 这样可以保证AI的思考和前端界面的显示完全一致。 ## 人物位置管理机制 ### 人物分类系统 人物分为三个类别: 1. **周围人物**:当前与玩家在同一地点或附近的人物 2. **历史人物**:曾经接触过但已离开或不再活跃的人物 3. **关注人物**:玩家主动关注的人物(可跨越位置限制) ### AI人物位置判断规则 **移动到历史人物的条件**: - 人物离开当前地点(如:搬迁、调职、逃亡等) - 人物死亡或失踪 - 人物与玩家关系恶化,不再愿意接触 - 剧情需要人物暂时退场 - 人物因政治原因被通缉或逮捕 - 人物加入敌对势力,与玩家立场对立 **离开描述要求**: 当人物因各种原因离开时,必须在第17列记录详细的离开描述,包括: - 离开的具体原因(如:日军入侵、调职、逃亡等) - 离开的时间背景(如:1937年8月、深夜等) - 离开的方式(如:匆忙收拾行李、被逮捕、神秘消失等) - 离开前的最后状态(如:神情紧张、留下纸条、告别等) - 可能的下落或去向(如:前往南京、下落不明、被关押等) **移回周围人物的条件**: - 人物重新出现在玩家当前地点 - 人物主动寻找玩家 - 剧情需要人物重新登场 - 人物改变立场,重新与玩家合作 ### AI判断指令调用 **移动到历史人物**: 使用 `add("C[ID]", {"18": "历史人物"})` 将人物状态更新为历史人物 使用 `add("C[ID]", {"19": "移动原因"})` 记录移动原因 **移回周围人物**: 使用 `add("C[ID]", {"18": "周围人物"})` 将人物状态更新为周围人物 使用 `add("C[ID]", {"19": "重新出现原因"})` 记录重新出现原因 ### 人物位置变化示例 **示例1:张老板因战乱离开** ``` <update_variable> add("C1", {"18": "历史人物", "19": "1937年8月13日,日军入侵上海,张老板在深夜匆忙收拾茶馆,留下纸条'日军来了,我去南京避难,保重',随后带着家人逃离法租界,下落不明"}) addSmallSummary("张老板因日军入侵上海而离开,匆忙收拾茶馆后前往南京避难") addLargeSummary("张老板因日军入侵上海而离开,匆忙收拾茶馆后前往南京避难") </update_variable> ``` **示例2:李探长调职** ``` <update_variable> add("C2", {"18": "历史人物", "19": "1937年9月,李探长接到上级调令,被紧急调往南京巡捕房,临行前神情凝重地说'上海局势复杂,你要小心',随后乘坐火车离开"}) addSmallSummary("李探长被调往南京巡捕房,临行前提醒玩家小心") addLargeSummary("李探长被调往南京巡捕房,临行前提醒玩家小心") </update_variable> ``` **示例3:王小姐重新出现** ``` <update_variable> add("C3", {"18": "周围人物", "19": "1937年10月,王小姐重新出现在法租界,身穿黑色风衣,神情冷漠,似乎在执行青帮的秘密任务,对玩家保持警惕"}) addSmallSummary("王小姐重新出现在法租界执行青帮任务") addLargeSummary("王小姐重新出现在法租界执行青帮任务") </update_variable> ``` ### 人物位置数据结构 **NPC变量表 (ID前缀: C)** - 第16列:动作|穿着|位置|身段|样貌(原有定义,保持不变) - 第18列:人物状态(周围人物/历史人物/关注人物) - 第19列:位置变化原因(移动原因/重新出现原因) **示例人物变量**: - C1:张老板(茶馆老板) - C2:李探长(巡捕房探长) - C3:王小姐(青帮成员) **人物状态更新示例**: ``` add("C1", {"18": "历史人物", "19": "日军入侵法租界,茶馆被迫关闭"}) add("C2", {"18": "周围人物", "19": "重新出现在法租界"}) ``` ### AI使用指南 1. **剧情发展时**:根据剧情需要判断人物是否应该移动 - 使用 `add("C[ID]", {"18": "历史人物", "19": "原因"})` 移动到历史 - 使用 `add("C[ID]", {"18": "周围人物", "19": "原因"})` 移回周围 2. **地点变化时**:当玩家或人物改变地点时,重新评估人物位置 - 检查人物是否还在当前地点 - 更新人物状态和位置信息 3. **关系变化时**:当人物关系发生变化时,考虑是否需要移动 - 关系恶化可能导致人物离开 - 关系改善可能导致人物重新出现 4. **政治事件时**:当发生政治事件时,评估对人物位置的影响 - 战争、政变等事件会影响人物位置 - 需要根据历史背景合理判断 **注意事项**: - 人物位置变化会影响玩家与他们的互动能力 - 历史人物仍可被关注,但互动方式会有所不同 - AI应该根据剧情合理性来决定人物位置变化 - 人物位置变化会显示通知给玩家 - 必须使用正确的变量格式:`add("C[ID]", {"18": "状态", "19": "详细描述"})` - **第19列必须包含详细的离开/出现描述**,包括时间、方式、状态、去向等 - 离开描述要生动具体,让玩家能够想象当时的情景 - 重新出现描述要说明人物的变化和当前状态 </变量更新>

相关角色卡推荐