
一个location与event开发场景的思考
一个location与event开发场景的思考
在做项目的时候,有一个稍微复杂的需求。这个需求是一个关于游戏场景的需求。
创作者可以配置一个角色。角色有很多属性,这些属性自然都是跟character
这相关的表绑定的。需求要给一个角色配置场景location和事件event,location里会绑定event,这里希望location和event不要相互强关联。能做到location和event都相对独立。一个场景可以配置多个event,但不会加上一个event多次。多个场景可能都会用到某一个event。
event的信息字段里,有一个字段trigger_count,是记录这个游戏开始,这个事件在多个location里的触发次数,比如count为5,就是只会在一场游戏,多个场景里,最多触发5次,之后这个event再也不会被触发。如果trigger_count配置为-1,则是无限制触发。
我目前对上述的需求,我目前实现是这样的,创建了location、event、event_location三个表,location和event表记录信息,event_location表负责记录location和event的关联,比如A场景要事件1、事件2,B场景要事件1、事件3。然后在一个rpg_data表新加一个字段trigger_data
,在玩家开启一场角色游戏的时候,查询location、event、event_location三个表下,对应角色的场景和事件,作为一个json结构存入trigger_data
字段:
[
{
"id": 1,
"name": "聊浩宇11",
"photo": "https://loremflickr.com/400/400?lock=5966514865902078",
"events": [
{
"id": 1,
"name": "11",
"content": "11",
"keyword": "111",
"event_type": 1,
"probability": 1,
"character_id": "6122686741",
"trigger_count": 1
},
{
"id": 3,
"name": "33",
"content": "33",
"keyword": "33",
"event_type": 1,
"probability": 1,
"character_id": "6122686741",
"trigger_count": -1
}
],
"description": "派改部格白压受直际。心想该去和与没要美海。展安际。手一果清际。省角包没片接步。花素第入林群场。",
"character_id": "6065572891"
},
{
"id": 2,
"name": "1123",
"photo": "",
"events": [],
"description": "123",
"character_id": "6065572891"
}
]
以上内容就是存入的trigger_data
数据,考虑的是玩家开启一场游戏,把对应角色的所有location和event作为json存入这个字段里,然后每次RPG游戏中需要用到location和event,就在这个字段里读取json,如果trigger_count内容处于有限次数,则在基础上减-1,减少到0,则在这个json内容里,删去对应的event,修改字段数据。
目前正在考虑是否有更好的处理方案。