This commit is contained in:
liwei 2023-08-02 16:26:31 +08:00
commit 27908f10f0
9 changed files with 181 additions and 87 deletions

View File

@ -585,6 +585,7 @@ const (
Reddot28101 ReddotType = 28101 // 剩余车票 Reddot28101 ReddotType = 28101 // 剩余车票
//种族塔 //种族塔
Reddot29101 ReddotType = 29101 // 今日剩余可挑战关卡x Reddot29101 ReddotType = 29101 // 今日剩余可挑战关卡x
) )
type TaskType int32 type TaskType int32
@ -984,13 +985,12 @@ const (
) )
const ( const (
HdTypeSign = 9 // 七日签到
HdTypeWarorder = 1 // 圣桃战令类型 HdTypeWarorder = 1 // 圣桃战令类型
HdTypePay = 2 // 圣桃充值礼包 HdTypePay = 2 // 圣桃充值礼包
KFSevenTask = 3 //开服任务 KFSevenTask = 3 //开服任务
XSFundPhysical = 4 //现时活动 体力基金 XSFundPhysical = 4 //现时活动 体力基金
XSFundRecruit = 5 //现时活动 招募基金 XSFundRecruit = 5 //现时活动 招募基金
XSFundExp = 6 //现时活动 经验基金 XSFundExp = 6 //现时活动 经验基金
HdLevel = 7 //开服等级活动
HdTypeSign = 8 // 七日签到
) )

View File

@ -1,6 +1,7 @@
package activity package activity
import ( import (
"fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go_dreamfactory/sys/configure" "go_dreamfactory/sys/configure"
@ -13,41 +14,35 @@ func (this *apiComp) GetHdDataCheck(session comm.IUserSession, req *pb.ActivityG
return return
} }
// 活动活动
func (this *apiComp) GetHdData(session comm.IUserSession, req *pb.ActivityGetHdDataReq) (errdata *pb.ErrorData) { func (this *apiComp) GetHdData(session comm.IUserSession, req *pb.ActivityGetHdDataReq) (errdata *pb.ErrorData) {
var ( var (
list *pb.DBActivityData result []*pb.DBActivityData
err error activity *pb.DBHuodong
err error
) )
if req.Oid == "" { curTime := configure.Now().Unix()
for _, id := range req.Oid {
} else { if activity, err = this.module.modelhdList.getHdListByHdId(id); err != nil {
list, err = this.module.modelhdData.getHddataByOid(session.GetUserId(), req.Oid) if activity.Stime <= curTime && curTime <= activity.Etime {
if err != nil { continue
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
}
return
}
}
// 校验活动是否过期
if a, err := this.module.modelhdList.getHdListByHdId(req.Oid); err != nil {
curTime := configure.Now().Unix()
if a.Htype == comm.HdTypeSign && a.Stime <= curTime && curTime <= a.Etime {
if !utils.IsToday(list.Lasttime) {
list.Lasttime = curTime
list.Val += 1
update := make(map[string]interface{})
update["lasttime"] = list.Lasttime
update["val"] = list.Val
this.module.modelhdData.ModifyActivityList(session.GetUserId(), list.Id, update)
} }
} }
key := fmt.Sprintf("%s:%s", session.GetUserId(), id)
list, _ := this.module.modelhdData.getHddataByOid(session.GetUserId(), key)
if activity.Itype == comm.HdTypeSign && !utils.IsToday(list.Lasttime) {
list.Lasttime = curTime
list.Val += 1
update := make(map[string]interface{})
update["lasttime"] = list.Lasttime
update["val"] = list.Val
this.module.modelhdData.ModifyActivityList(session.GetUserId(), list.Id, update)
}
result = append(result, list)
} }
session.SendMsg(string(this.module.GetType()), "gethddata", &pb.ActivityGetHdDataResp{ session.SendMsg(string(this.module.GetType()), "gethddata", &pb.ActivityGetHdDataResp{
Data: []*pb.DBActivityData{list}, Data: result,
}) })
return return
} }

View File

@ -1,6 +1,7 @@
package activity package activity
import ( import (
"fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go_dreamfactory/sys/configure" "go_dreamfactory/sys/configure"
@ -28,31 +29,47 @@ func (this *apiComp) GetReward(session comm.IUserSession, req *pb.ActivityGetRew
reward []*cfg.Gameatn reward []*cfg.Gameatn
atno []*pb.UserAtno atno []*pb.UserAtno
) )
if activity, err = this.module.modelhdList.getHdListByHdId(req.Oid); err != nil { key := fmt.Sprintf("%s:%s", session.GetUserId(), req.Oid)
curTime := configure.Now().Unix() data, err := this.module.modelhdData.getHddataByOid(session.GetUserId(), key)
if err == nil {
if activity.Stime <= curTime && curTime <= activity.Etime { if activity, err = this.module.modelhdList.getHdListByHdId(req.Oid); err == nil {
curTime := configure.Now().Unix()
if activity.Stime > curTime || curTime > activity.Etime { //不在活动时间范围内
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ActivityNotIntime,
Title: pb.ErrorCode_ActivityNotIntime.ToString(),
}
return
}
} else {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ActivityInvalid,
Title: pb.ErrorCode_ActivityInvalid.ToString(),
}
return return
} }
} else { // 补充错误码 if data.Val <= req.Val { //没达到领奖条件
return errdata = &pb.ErrorData{
} Code: pb.ErrorCode_ActivityCantReward,
data, err := this.module.modelhdData.getHddataByOid(session.GetUserId(), req.Oid) Title: pb.ErrorCode_ActivityCantReward.ToString(),
if err != nil { }
return
}
if data.Gotarr != nil {
if _, ok := data.Gotarr[req.Val]; ok { // 重复领奖
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ActivityRepatReward,
Title: pb.ErrorCode_ActivityRepatReward.ToString(),
}
return
}
}
} else {
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError, Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(), Title: pb.ErrorCode_DBError.ToString(),
} }
return return
} else {
if data.Val <= req.Val { //没达到领奖条件
return
}
if data.Gotarr != nil {
if _, ok := data.Gotarr[req.Val]; ok { // 重复领奖
return
}
}
} }
// 发奖 // 发奖
for _, v := range activity.Data.Prize { for _, v := range activity.Data.Prize {

View File

@ -1,6 +1,7 @@
package activity package activity
import ( import (
"fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/modules" "go_dreamfactory/modules"
@ -30,8 +31,7 @@ func (this *modelhdData) Init(service core.IService, module core.IModule, comp c
} }
// 获取所有活动数据 // 获取所有活动数据
func (this *modelhdData) getHdAlldata(uid string, oid string) (result []*pb.DBActivityData, err error) { func (this *modelhdData) getHdAlldata(uid string) (result []*pb.DBActivityData, err error) {
result = make([]*pb.DBActivityData, 0) result = make([]*pb.DBActivityData, 0)
if err = this.GetList(uid, &result); err != nil { if err = this.GetList(uid, &result); err != nil {
this.module.Errorf("err:%v", err) this.module.Errorf("err:%v", err)
@ -42,9 +42,20 @@ func (this *modelhdData) getHdAlldata(uid string, oid string) (result []*pb.DBAc
// 通过活动唯一ID 获取活动数据 // 通过活动唯一ID 获取活动数据
func (this *modelhdData) getHddataByOid(uid string, oid string) (result *pb.DBActivityData, err error) { func (this *modelhdData) getHddataByOid(uid string, oid string) (result *pb.DBActivityData, err error) {
result = &pb.DBActivityData{} result = &pb.DBActivityData{
if err = this.GetListObj(uid, oid, &result); err != nil { Id: "",
this.module.Errorf("err:%v", err) Uid: uid,
Hdoid: oid,
Gotarr: map[int32]int32{},
Lasttime: 0,
Val: 0,
}
if err = this.GetListObj(uid, oid, &result); err == mongo.ErrNoDocuments {
result.Id = fmt.Sprintf("%s:%s", uid, oid)
result.Uid = uid
result.Hdoid = oid
this.AddList(uid, result.Id, result)
err = nil
return return
} }
return return

View File

@ -21,10 +21,10 @@ func (this *apiComp) ChallengeRaceCheck(session comm.IUserSession, req *pb.Pagod
// /阵营塔开始挑战 // /阵营塔开始挑战
func (this *apiComp) ChallengeRace(session comm.IUserSession, req *pb.PagodaChallengeRaceReq) (errdata *pb.ErrorData) { func (this *apiComp) ChallengeRace(session comm.IUserSession, req *pb.PagodaChallengeRaceReq) (errdata *pb.ErrorData) {
var ( var (
pagoda *pb.DBPagodaRace pagoda *pb.DBPagodaRace
err error err error
//timeCheckOk bool timeCheckOk bool
pType pb.PlayType pType pb.PlayType
) )
if errdata = this.ChallengeRaceCheck(session, req); errdata != nil { if errdata = this.ChallengeRaceCheck(session, req); errdata != nil {
return // 参数校验失败直接返回 return // 参数校验失败直接返回
@ -40,24 +40,24 @@ func (this *apiComp) ChallengeRace(session comm.IUserSession, req *pb.PagodaChal
return return
} }
// 判断开启时间 //判断开启时间
// curWeekDay := int32(configure.Now().Weekday()) curWeekDay := int32(configure.Now().Weekday())
// if curWeekDay == 0 { if curWeekDay == 0 {
// curWeekDay = 7 curWeekDay = 7
// } }
// for _, v := range conf.Openingtime { for _, v := range conf.Openingtime {
// if v == curWeekDay { if v == curWeekDay {
// timeCheckOk = true timeCheckOk = true
// break break
// } }
// } }
// if !timeCheckOk { if !timeCheckOk {
// errdata = &pb.ErrorData{ errdata = &pb.ErrorData{
// Code: pb.ErrorCode_PagodaTimeError, Code: pb.ErrorCode_PagodaTimeError,
// Title: pb.ErrorCode_PagodaTimeError.ToString(), Title: pb.ErrorCode_PagodaTimeError.ToString(),
// } }
// return return
// } }
pagoda, err = this.module.modelRacePagoda.getPagodaRaceList(session.GetUserId()) pagoda, err = this.module.modelRacePagoda.getPagodaRaceList(session.GetUserId())
if err != nil { if err != nil {
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{

View File

@ -159,12 +159,55 @@ func (this *Pagoda) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (r
Activated: this.CheckPoint6(session.GetUserId()), Activated: this.CheckPoint6(session.GetUserId()),
} }
break break
case comm.Reddot29101:
reddot[comm.Reddot29101] = &pb.ReddotItem{
Rid: int32(comm.Reddot29101),
Activated: this.CheckPoint29101(session.GetUserId()),
}
break
} }
} }
return return
} }
func (this *Pagoda) CheckPoint29101(uid string) bool {
var (
curWeekDay int32 //今天周几
)
curWeekDay = int32(configure.Now().Weekday())
if curWeekDay == 0 {
curWeekDay = 7
}
list, err := this.modelRacePagoda.getPagodaRaceList(uid)
if err != nil {
return false
}
for _, v := range list.Race {
if v.Race < 10 {
bOpen := false
// 校验今天是否开启
if c, err := this.configure.GetPagodaCirculateConf(v.Race, v.Curfloor); err != nil {
for _, v := range c.Openingtime {
if curWeekDay == v {
bOpen = true
break
}
}
}
if !bOpen {
break
}
if !utils.IsToday(v.Rtime) {
list.Race[v.Race].Rtime = configure.Now().Unix()
list.Race[v.Race].Defeat = 0
return true
}
if v.Defeat < 10 {
return true
}
}
}
return true
}
// 红点检测 // 红点检测
func (this *Pagoda) CheckPoint6(uid string) bool { func (this *Pagoda) CheckPoint6(uid string) bool {

View File

@ -327,7 +327,7 @@ type DBActivityData struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //自定义id uid+hdoid
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"` Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"`
Hdoid string `protobuf:"bytes,3,opt,name=hdoid,proto3" json:"hdoid"` // 活动唯一id Hdoid string `protobuf:"bytes,3,opt,name=hdoid,proto3" json:"hdoid"` // 活动唯一id
Gotarr map[int32]int32 `protobuf:"bytes,4,rep,name=gotarr,proto3" json:"gotarr" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` Gotarr map[int32]int32 `protobuf:"bytes,4,rep,name=gotarr,proto3" json:"gotarr" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`

View File

@ -112,7 +112,7 @@ type ActivityGetHdDataReq struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Oid string `protobuf:"bytes,1,opt,name=oid,proto3" json:"oid"` // obj 为空 取所有的活动 Oid []string `protobuf:"bytes,1,rep,name=oid,proto3" json:"oid"` //
} }
func (x *ActivityGetHdDataReq) Reset() { func (x *ActivityGetHdDataReq) Reset() {
@ -147,11 +147,11 @@ func (*ActivityGetHdDataReq) Descriptor() ([]byte, []int) {
return file_activity_activity_msg_proto_rawDescGZIP(), []int{2} return file_activity_activity_msg_proto_rawDescGZIP(), []int{2}
} }
func (x *ActivityGetHdDataReq) GetOid() string { func (x *ActivityGetHdDataReq) GetOid() []string {
if x != nil { if x != nil {
return x.Oid return x.Oid
} }
return "" return nil
} }
// 获取活动数据列表 // 获取活动数据列表
@ -208,7 +208,7 @@ type ActivityGetRewardReq struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Oid string `protobuf:"bytes,1,opt,name=oid,proto3" json:"oid"` // 活动唯一id Oid string `protobuf:"bytes,1,opt,name=oid,proto3" json:"oid"`
Val int32 `protobuf:"varint,2,opt,name=val,proto3" json:"val"` Val int32 `protobuf:"varint,2,opt,name=val,proto3" json:"val"`
} }
@ -328,7 +328,7 @@ var file_activity_activity_msg_proto_rawDesc = []byte{
0x32, 0x0a, 0x2e, 0x44, 0x42, 0x48, 0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x52, 0x04, 0x64, 0x61, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x48, 0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x52, 0x04, 0x64, 0x61,
0x74, 0x61, 0x22, 0x28, 0x0a, 0x14, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x47, 0x65, 0x74, 0x61, 0x22, 0x28, 0x0a, 0x14, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x47, 0x65,
0x74, 0x48, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x74, 0x48, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x3c, 0x0a, 0x15, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x3c, 0x0a, 0x15,
0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x47, 0x65, 0x74, 0x48, 0x64, 0x44, 0x61, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x47, 0x65, 0x74, 0x48, 0x64, 0x44, 0x61, 0x74,
0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,

View File

@ -424,6 +424,13 @@ const (
ErrorCode_StonehengeEnterRoomFailed ErrorCode = 4904 // 进入房间失败 ErrorCode_StonehengeEnterRoomFailed ErrorCode = 4904 // 进入房间失败
ErrorCode_StonehengeRepeatedReward ErrorCode = 4905 // 事件重复完成 ErrorCode_StonehengeRepeatedReward ErrorCode = 4905 // 事件重复完成
ErrorCode_StonehengeGotoRoomFailed ErrorCode = 4906 // 进入房间失败 ErrorCode_StonehengeGotoRoomFailed ErrorCode = 4906 // 进入房间失败
// 活动错误码
ErrorCode_ActivityOver ErrorCode = 5001 //活动结束
ErrorCode_ActivityUnOpened ErrorCode = 5002 // 活动未开启
ErrorCode_ActivityRepatReward ErrorCode = 5003 // 重复领取
ErrorCode_ActivityNotIntime ErrorCode = 5004 // 不在活动时间范围
ErrorCode_ActivityInvalid ErrorCode = 5005 // 不存在的活动
ErrorCode_ActivityCantReward ErrorCode = 5006 // 还不能领奖
) )
// Enum value maps for ErrorCode. // Enum value maps for ErrorCode.
@ -788,6 +795,12 @@ var (
4904: "StonehengeEnterRoomFailed", 4904: "StonehengeEnterRoomFailed",
4905: "StonehengeRepeatedReward", 4905: "StonehengeRepeatedReward",
4906: "StonehengeGotoRoomFailed", 4906: "StonehengeGotoRoomFailed",
5001: "ActivityOver",
5002: "ActivityUnOpened",
5003: "ActivityRepatReward",
5004: "ActivityNotIntime",
5005: "ActivityInvalid",
5006: "ActivityCantReward",
} }
ErrorCode_value = map[string]int32{ ErrorCode_value = map[string]int32{
"Success": 0, "Success": 0,
@ -1149,6 +1162,12 @@ var (
"StonehengeEnterRoomFailed": 4904, "StonehengeEnterRoomFailed": 4904,
"StonehengeRepeatedReward": 4905, "StonehengeRepeatedReward": 4905,
"StonehengeGotoRoomFailed": 4906, "StonehengeGotoRoomFailed": 4906,
"ActivityOver": 5001,
"ActivityUnOpened": 5002,
"ActivityRepatReward": 5003,
"ActivityNotIntime": 5004,
"ActivityInvalid": 5005,
"ActivityCantReward": 5006,
} }
) )
@ -1183,7 +1202,7 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{ var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2a, 0xb4, 0x42, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x6f, 0x2a, 0xbf, 0x43, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10,
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76,
@ -1714,8 +1733,17 @@ var file_errorcode_proto_rawDesc = []byte{
0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64,
0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa9, 0x26, 0x12, 0x1d, 0x0a, 0x18, 0x53, 0x74, 0x6f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa9, 0x26, 0x12, 0x1d, 0x0a, 0x18, 0x53, 0x74, 0x6f,
0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x47, 0x6f, 0x74, 0x6f, 0x52, 0x6f, 0x6f, 0x6d, 0x46, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x47, 0x6f, 0x74, 0x6f, 0x52, 0x6f, 0x6f, 0x6d, 0x46,
0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xaa, 0x26, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xaa, 0x26, 0x12, 0x11, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x76, 0x69, 0x74, 0x79, 0x4f, 0x76, 0x65, 0x72, 0x10, 0x89, 0x27, 0x12, 0x15, 0x0a, 0x10, 0x41,
0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x55, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x10,
0x8a, 0x27, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65,
0x70, 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x8b, 0x27, 0x12, 0x16, 0x0a, 0x11,
0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x74, 0x69, 0x6d,
0x65, 0x10, 0x8c, 0x27, 0x12, 0x14, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x8d, 0x27, 0x12, 0x17, 0x0a, 0x12, 0x41, 0x63,
0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x43, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
0x10, 0x8e, 0x27, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
} }
var ( var (