狼人杀文字版是一个使用 UNET
制作的局域网社交聊天游戏,它的规则在下文将会介绍。
大厅功能借鉴使用了官方的示例程序。在游戏场景中使用了一个简单的状态机进行全局状态更新。而在子状态中,我使用了协程对程序的逻辑进行处理,而不是一个子状态机。事实上,它运行地不错。所有和游戏有关的逻辑处理均位于 Server
,而客户端使用 Rpc
函数接收服务器传来的信息和使用 Cmd
函数将信息发送至服务器。目前来看运行上暂时没有很明显的问题(当然,我暂时还没有添加处理玩家掉线等状态的代码)。目前这个程序是使用键盘输入文字进行交流(这是朋友的一个特殊需求),高考之后如果我还记得我可能会添加上语音聊天的功能。开发时间比较紧促,难免有些bug。
- 通过选择
主机模式
在局域网内创建房间 - 输入框中输入房间的
ip
地址,使用加入游戏连接房间
- 使用设置设置房间每个职业的人数(仅房主)
- 所有玩家进入准备状态后将自动进入游戏
- 房主可以选择移除大厅内的一些角色
- 在命名框中可以更改自己的玩家命名,准备后不可更改
- 进入游戏后将看到类似界面
- 系统将提示您本局对战的相关信息
- 显示的玩家名称为
playerName(playerId)
的格式 - 当需要您选择一个玩家时,应该输入
playerId
来选择一个玩家 - 当轮到你的环节时,你可以再输入框中输入对话,使用
return
或点击发送
按钮可以发送信息(某些环节别人将无法看到你发送的信息,例如投票杀人环节) - 你的发言将会有一定的时间限制,当没有超过时间限制而你发言完成时你可以点击结束按钮结束发言,当你的队友也发言完毕时将会跳到下一个环节(而不需要等待所有限制时间)
对于多人决定的环节,一般以决定的众数作为最后判决,的审判规则如下:
- 狼人杀人环节,如果所有狼人不输入或输入错误的玩家编号,或是杀害的玩家平票,则本回合空刀。
- 女巫解救环节,如果多名有解药的女巫使用解药,将判定为
playerId
值最小的女巫使用解药。 - 女巫只有有毒药时才能杀人,若多名女巫同时使用毒药,判断规则同上。
- 预言家检验玩家时如果平票将在平票的玩家中随机查验。
- 狼人讨论并决定杀害的玩家。
- 如果狼人杀害了一名玩家,有解药的女巫可以使用解药拯救该玩家。有毒药的女巫可以毒害一名玩家。对于所有女巫,毒药与解药每个回合只能使用一瓶。
- 预言家对所有玩家进行查验。
- 如果是第一天,则进行警长竞选。若无人上警,本局无警长;若只有一名玩家则直接上警;否则进行发言竞选,票数最多当选,若平票,再次发言并竞选,若再次平票,本局无警长。
- 公布死亡状态,死亡玩家使用其技能并留遗言。
- 如果有警长,则警长决定发言顺序,否则按玩家编号递增顺序依次发言。
- 玩家进行投票票杀一名玩家,若平票则重新投票,若再次平票则今天是平安日。