技术总览与架构
Lua脚本目录结构
项目所有逻辑脚本位于 global_script/ 下,按模块组织:
global_script/
├── main.lua -- 入口,注册游戏初始化事件
├── config/
│ ├── const.lua -- 全局常量(物编Key、数值参数)
│ └── balance.lua -- 可调数值表(伤害、冷却、怀疑值阈值等)
├── core/
│ ├── game_manager.lua -- 游戏主状态机,局流程控制
│ ├── player_manager.lua -- 玩家创建、死亡、复活、积分
│ ├── npc_manager.lua -- NPC批量生成、回收、密度控制
│ ├── mode_manager.lua -- 模式切换(FFA / Team / VIP)
│ └── timer_manager.lua -- 全局计时器(局时间、缩圈倒计时)
├── systems/
│ ├── suspicion.lua -- 怀疑值计算、阈值Buff刷新
│ ├── disguise.lua -- 换装、模型替换
│ ├── corpse.lua -- 尸体生命周期、藏尸点
│ ├── assassination.lua -- 刺杀前摇、背刺判定、伤害结算
│ ├── item_spawner.lua -- 物品刷新点、拾取逻辑
│ └── circle.lua -- 缩圈逻辑
├── profession/
│ ├── base.lua -- 职业基类
│ ├── shadow_blade.lua -- 影刃
│ ├── mimic.lua -- 千面
│ ├── eagle_eye.lua -- 鹰眼
│ ├── surgeon.lua -- 医师
│ ├── phantom.lua -- 幽灵
│ └── hound.lua -- 猎犬
├── ai/
│ ├── npc_behavior.lua -- NPC行为树调度
│ ├── patrol_ai.lua -- 巡逻型AI
│ ├── civilian_ai.lua -- 居民型AI
│ ├── vendor_ai.lua -- 商贩型AI
│ └── wanderer_ai.lua -- 闲逛型AI
└── ui/
├── hud.lua -- HUD更新(怀疑值条、物品栏等)
├── notification.lua -- 全局通知、击杀提示
└── scoreboard.lua -- 结算面板
系统依赖关系
game_manager (局状态)
├── mode_manager (模式规则)
│ └── player_manager (玩家生死)
│ ├── suspicion (怀疑值)
│ ├── disguise (伪装)
│ ├── assassination (刺杀)
│ └── profession/* (职业技能)
├── npc_manager (NPC管理)
│ └── ai/* (行为树)
├── corpse (尸体管理)
├── item_spawner (物品)
├── circle (缩圈)
└── timer_manager (计时)
游戏状态机
LOBBY → LOADING → PREPARE(10s不可攻击) → PLAYING → OVERTIME(最后1分钟) → ENDED
| 状态 |
持续 |
行为 |
| PREPARE |
10秒 |
玩家已生成,不可攻击,可移动 |
| PLAYING |
局时长-10s-60s |
正常游戏 |
| OVERTIME |
60秒 |
怀疑值增速×2,NPC减少30% |
| ENDED |
— |
结算面板,停止逻辑 |
关键同步原则
| 类型 |
使用API |
说明 |
| 游戏逻辑计时 |
y3.timer (Timer) |
同步计时器,所有客户端一致 |
| 随机数 |
Game.set_random_seed() |
开局设种子,确保各端随机结果相同 |
| 单位操作 |
Unit.* 系列 |
服务端执行,自动同步 |
| 纯本地UI |
Player.with_local() |
仅在本地客户端执行 |
| 本地计时 |
y3.ltimer (LocalTimer) |
仅用于UI动画等不影响逻辑的场景 |
| 数据同步 |
y3.sync (Sync) |
将客户端输入同步给服务端 |
物编对象命名规范
| 类别 |
前缀 |
示例 |
| 玩家单位 |
unit_player_ |
unit_player_assassin |
| NPC单位 |
unit_npc_ |
unit_npc_civilian |
| Buff |
buff_ |
buff_suspicion_yellow |
| 技能 |
abi_ |
abi_shadow_dash |
| 物品 |
item_ |
item_poison_needle |
| 投射物 |
proj_ |
proj_throwing_knife |
| 特效 |
sfx_ |
sfx_smoke_bomb |
文档索引