diff --git a/modules/stonehenge/api_event.go b/modules/stonehenge/api_event.go index 7f1ac7305..9cd633a14 100644 --- a/modules/stonehenge/api_event.go +++ b/modules/stonehenge/api_event.go @@ -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 { diff --git a/pb/stonehenge_db.pb.go b/pb/stonehenge_db.pb.go index 3ffa422cd..a8e1c0205 100644 --- a/pb/stonehenge_db.pb.go +++ b/pb/stonehenge_db.pb.go @@ -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 (