75 lines
3.1 KiB
Markdown
75 lines
3.1 KiB
Markdown
# game_ai_npc 模块概览
|
||
|
||
## 已创建文件(16 个)
|
||
|
||
```
|
||
addons/game_ai_npc/
|
||
├── __init__.py
|
||
├── __manifest__.py
|
||
├── models/
|
||
│ ├── __init__.py
|
||
│ ├── npc.py # NPC 主模型 + Tick 逻辑 + Cron 批处理
|
||
│ ├── npc_relationship.py # NPC 关系(好感度/关系层级)
|
||
│ ├── npc_behavior.py # 行为日志
|
||
│ └── npc_knowledge.py # NPC 所知信息(含谣言/准确性)
|
||
├── controllers/
|
||
│ ├── __init__.py
|
||
│ └── npc_api.py # REST API
|
||
├── security/
|
||
│ └── ir.model.access.csv
|
||
├── views/
|
||
│ ├── npc_views.xml # NPC 角色(列表+表单+ Cron)
|
||
│ ├── npc_relationship_views.xml
|
||
│ ├── npc_behavior_views.xml
|
||
│ ├── npc_knowledge_views.xml
|
||
│ └── menu.xml # 菜单:AI NPC → 角色/关系/日志/知识
|
||
├── data/
|
||
│ └── game_npc_data.xml # 7 个 NPC + 关系 + 知识 种子数据
|
||
└── overview.md
|
||
```
|
||
|
||
## 模型结构
|
||
|
||
| 模型 | 用途 |
|
||
|---|---|
|
||
| `game.npc` | 角色(身份/性格/统计/目标/行为刻) |
|
||
| `game.npc.relationship` | 关系(好感度-100~100、自动推导层级) |
|
||
| `game.npc.behavior.log` | 行为日志(每次 Tick 自动记录) |
|
||
| `game.npc.knowledge` | 知识体系(含准确性、来源) |
|
||
|
||
## 核心设计
|
||
|
||
**NPC Tick 周期**(Odoo Cron 每 15 分钟推一次):
|
||
1. 按角色类型日程表确定当前活动(居民/商人/战士/学者/工匠/领袖/游荡者各有不同日程)
|
||
2. 消耗基础资源(精力↓、饱腹↓)
|
||
3. 应用活动效果(劳作涨目标进度、用餐涨饱腹、睡眠涨精力)
|
||
4. 30% 概率触发社交 → 性格兼容性计算 → 好感变化 → 关系层级自动推导
|
||
5. 综合状态更新心情
|
||
6. 记录行为日志
|
||
|
||
**关系系统**:好感度 -100~100,自动推到 7 个层级(死敌→敌对→陌生人→熟人→朋友→挚友→至亲),性格兼容性影响社交互动结果。
|
||
|
||
## API 端点
|
||
|
||
| 路由 | 方法 | 说明 |
|
||
|---|---|---|
|
||
| `/game/api/npcs` | GET | 所有活跃 NPC 列表 |
|
||
| `/game/api/npc/<id>` | GET | NPC 详情(含关系+行为+知识) |
|
||
| `/game/api/npc/<id>/relationships` | GET | NPC 关系网 |
|
||
| `/game/api/npc/<id>/tick` | POST | 手动触发单个 NPC Tick(需登录) |
|
||
| `/game/api/npc/tick-all` | POST | 批量 Tick 所有 NPC(需登录) |
|
||
|
||
## 种子数据(7 个角色)
|
||
|
||
| NPC | 类型 | 性格 | 目标 |
|
||
|---|---|---|---|
|
||
| 张伯·老村长 | 领袖 | 严肃 | 维持村落安全 |
|
||
| 林铁柱·铁匠 | 工匠 | 刚毅 | 铸灵器级武器 |
|
||
| 柳絮·游方学者 | 学者 | 好奇 | 记录古遗迹 |
|
||
| 花娘·行商 | 商人 | 开朗 | 开辟跨层商路 |
|
||
| 阿猛·猎户 | 战士 | 大胆 | 猎杀三尾狐兽 |
|
||
| 老鬼·流浪药师 | 游荡者 | 神秘 | 寻忘忧草 |
|
||
| 小禾·农家女 | 居民 | 善良 | 学会识字记账 |
|
||
|
||
初始关系:张伯↔林铁柱(信赖)、张伯↔花娘(商业伙伴)、柳絮↔小禾(师生)、阿猛→柳絮(暗恋)。
|