特权处理 累计选择3个关卡开局所选类型的buff后,可额外触发一次随机buff三选一事件

This commit is contained in:
meixiongfeng 2023-08-16 18:09:39 +08:00
parent 0644ca11f1
commit b77b4d8025
2 changed files with 66 additions and 21 deletions

View File

@ -104,19 +104,7 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq
update["userbuff"] = stone.Userbuff
this.module.modelStonehengeBook.addStonehengeBook(session.GetUserId(), conf.Type, conf.SkillId)
}
// 查特权
for _, v := range stone.Privilege {
if v == 3 { //
// 记录buff 三选一的次数
stone.Selectcount++
if stone.Selectcount == 3 { //可额外触发一次随机buff三选一事件
if c, err := this.module.configure.getGameStonePrivilegeData(3); err != nil {
newEvent = c.Value1
}
}
break
}
}
stone.Selectcount++ // 记录三选一的次数
} else { // 参数错误
errdata = &pb.ErrorData{
@ -355,14 +343,33 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq
}
}
update["userbuff"] = stone.Userbuff
}
stone.Rooms.Eventid[req.Eventid] = true //
// 校验事件有后续事件
if newEvent == 0 && eventConf.Probability >= comm.GetRandNum(0, 1000) { // 命中
if eventConf.Probability >= comm.GetRandNum(0, 1000) { // 命中
newEvent = eventConf.PostEvent
this.module.modelStonehenge.AddNewEvent([]int32{eventConf.PostEvent}, stone)
} else { // 没有后置事件的事件处理特权事件
// 查特权
for _, v := range stone.Privilege {
if v == pb.StonehengePrivilege_StonehengePrivilege_4 ||
v == pb.StonehengePrivilege_StonehengePrivilege_5 ||
v == pb.StonehengePrivilege_StonehengePrivilege_6 { // 4 5 6 特权
if p, err := this.module.configure.getGameStonePrivilegeData(int32(v)); err != nil {
if stone.Selectcount > p.Value2 { // 达到指定次数
if _, ok := stone.PrivilegeEvent[int32(v)]; !ok {
// 记录buff 三选一的次数
if stone.Selectcount == p.Value2 { //可额外触发一次随机buff三选一事件
if c, err := this.module.configure.getGameStonePrivilegeData(3); err != nil {
newEvent = c.Value1
}
}
}
}
}
break
}
}
}
stone.Rooms.Complete = true
for _, v := range roomConf.Condition {

View File

@ -25,15 +25,39 @@ type StonehengePrivilege int32
const (
StonehengePrivilege_StonehengePrivilege_Noll StonehengePrivilege = 0
StonehengePrivilege_StonehengePrivilege_1 StonehengePrivilege = 1 //解锁“事件商店”中,复活事件
StonehengePrivilege_StonehengePrivilege_2 StonehengePrivilege = 2 //解锁“事件商店”中,支援事件
StonehengePrivilege_StonehengePrivilege_3 StonehengePrivilege = 3 //解锁“事件商店”中,更换buff事件
StonehengePrivilege_StonehengePrivilege_4 StonehengePrivilege = 4 //累计选择3个关卡开局所选类型的buff后可额外触发一次随机buff三选一事件
StonehengePrivilege_StonehengePrivilege_5 StonehengePrivilege = 5 //累计选择6个关卡开局所选类型的buff后可额外触发一次随机buff三选一事件
StonehengePrivilege_StonehengePrivilege_6 StonehengePrivilege = 6 //累计选择10个所选类型的buff后可额外触发一次随机buff三选一事件
StonehengePrivilege_StonehengePrivilege_7 StonehengePrivilege = 7 //随机buff三选一事件,新增重置功能
StonehengePrivilege_StonehengePrivilege_8 StonehengePrivilege = 8 //每次进入关卡时,玩家会增加指定数量的道具(必定为item类型)
)
// Enum value maps for StonehengePrivilege.
var (
StonehengePrivilege_name = map[int32]string{
0: "StonehengePrivilege_Noll",
1: "StonehengePrivilege_1",
2: "StonehengePrivilege_2",
3: "StonehengePrivilege_3",
4: "StonehengePrivilege_4",
5: "StonehengePrivilege_5",
6: "StonehengePrivilege_6",
7: "StonehengePrivilege_7",
8: "StonehengePrivilege_8",
}
StonehengePrivilege_value = map[string]int32{
"StonehengePrivilege_Noll": 0,
"StonehengePrivilege_1": 1,
"StonehengePrivilege_2": 2,
"StonehengePrivilege_3": 3,
"StonehengePrivilege_4": 4,
"StonehengePrivilege_5": 5,
"StonehengePrivilege_6": 6,
"StonehengePrivilege_7": 7,
"StonehengePrivilege_8": 8,
}
)
@ -821,11 +845,25 @@ var file_stonehenge_stonehenge_db_proto_rawDesc = []byte{
0x53, 0x74, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x33, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68,
0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x12, 0x1c, 0x0a,
0x18, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69,
0x6c, 0x65, 0x67, 0x65, 0x5f, 0x4e, 0x6f, 0x6c, 0x6c, 0x10, 0x00, 0x42, 0x06, 0x5a, 0x04, 0x2e,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x8b, 0x02, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x6e, 0x65,
0x68, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x12, 0x1c,
0x0a, 0x18, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76,
0x69, 0x6c, 0x65, 0x67, 0x65, 0x5f, 0x4e, 0x6f, 0x6c, 0x6c, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15,
0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c,
0x65, 0x67, 0x65, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x6e, 0x65,
0x68, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x5f, 0x32,
0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65,
0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x5f, 0x33, 0x10, 0x03, 0x12, 0x19, 0x0a,
0x15, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69,
0x6c, 0x65, 0x67, 0x65, 0x5f, 0x34, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x6e,
0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x5f,
0x35, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67,
0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x5f, 0x36, 0x10, 0x06, 0x12, 0x19,
0x0a, 0x15, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76,
0x69, 0x6c, 0x65, 0x67, 0x65, 0x5f, 0x37, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x74, 0x6f,
0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65,
0x5f, 0x38, 0x10, 0x08, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
}
var (