猫咪戏法优化

This commit is contained in:
hahwu 2025-04-28 10:38:33 +08:00
parent 985f5ad0c9
commit 5ac7ba79aa
2 changed files with 27 additions and 6 deletions

View File

@ -141,13 +141,17 @@ func (l *LimitedTimeEventMod) Trigger(Lv int) (int, []int, []int) {
Remain := 0
//删除过期事件
for k, v := range l.EventList {
if v.StartT+v.Remian <= Now {
EndTime := v.StartT + v.Remian
if k == EVENT_TYPE_CAT_TRICK {
EndTime += 5 * 60 // 猫咪戏法事件显示时间为5分钟
}
if EndTime <= Now {
delete(l.EventList, k)
TimeoutEvent = append(TimeoutEvent, k)
continue
}
EndTime := (v.StartT + v.Remian) - Now
Remain = GoUtil.IfTrue(Remain > 0, min(Remain, int(EndTime)), int(EndTime)).(int)
NowRemain := (v.StartT + v.Remian) - Now
Remain = GoUtil.IfTrue(Remain > 0, min(Remain, int(NowRemain)), int(NowRemain)).(int)
}
return Remain, TimeoutEvent, AddEvent
}
@ -381,7 +385,12 @@ func (l *LimitedTimeEventMod) AddCatTrickEnergy(Energy int) {
if l.EventList[EVENT_TYPE_CAT_TRICK] == nil {
return
}
d := l.EventList[EVENT_TYPE_CAT_TRICK].D.(*CatTrick)
Event := l.EventList[EVENT_TYPE_CAT_TRICK]
if Event.Remian+Event.StartT <= GoUtil.Now() {
return
}
// 事件未过期
d := Event.D.(*CatTrick)
d.Energy += Energy
}
@ -475,6 +484,7 @@ func getLimitEventMsg(t int, e *LTEInfo) *msg.LimitEvent {
Cd := 0
Mul := 0.0
Param := make(map[string]int32, 0)
ShowTime := int32(e.StartT + e.Remian)
switch t {
case EVENT_TYPE_FAST_PRODUCE:
NextPlay := GoUtil.Int64(e.Info["NextPlay"])
@ -489,12 +499,14 @@ func getLimitEventMsg(t int, e *LTEInfo) *msg.LimitEvent {
Param[msg.LimitEventParam_CAT_TRICK_ENERGY.String()] = int32(Energy)
info := d.List[0]
Param[msg.LimitEventParam_CAT_TRICK_TYPE.String()] = int32(info.Type)
ShowTime += 5 * 60 // 5分钟
case EVENT_TYPE_PAYBACK_DAY:
d := e.D.(*PaybackDay)
Param[msg.LimitEventParam_PAYBACK_DAY_COUNT.String()] = int32(d.count)
}
return &msg.LimitEvent{
EndTime: int32(e.StartT + e.Remian),
ShowTime: ShowTime,
Cd: int32(Cd),
Mul: float32(Mul),
StartTime: int32(e.StartT),

View File

@ -10676,6 +10676,7 @@ type LimitEvent struct {
Mul float32 `protobuf:"fixed32,3,opt,name=mul,proto3" json:"mul,omitempty"` //倍数
StartTime int32 `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间
Param map[string]int32 `protobuf:"bytes,5,rep,name=Param,proto3" json:"Param,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //key 为枚举 LimitEventParam
ShowTime int32 `protobuf:"varint,6,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` //显示时间
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -10745,6 +10746,13 @@ func (x *LimitEvent) GetParam() map[string]int32 {
return nil
}
func (x *LimitEvent) GetShowTime() int32 {
if x != nil {
return x.ShowTime
}
return 0
}
type LimitEventNotify struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 限时事件类型
@ -23285,14 +23293,15 @@ const file_proto_Gameapi_proto_rawDesc = "" +
"\x02Id\x18\x01 \x01(\x05R\x02Id\"O\n" +
"\x13ResSelectLimitEvent\x12&\n" +
"\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" +
"\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xd7\x01\n" +
"\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xf3\x01\n" +
"\n" +
"LimitEvent\x12\x18\n" +
"\aEndTime\x18\x01 \x01(\x05R\aEndTime\x12\x0e\n" +
"\x02Cd\x18\x02 \x01(\x05R\x02Cd\x12\x10\n" +
"\x03mul\x18\x03 \x01(\x02R\x03mul\x12\x1c\n" +
"\tStartTime\x18\x04 \x01(\x05R\tStartTime\x125\n" +
"\x05Param\x18\x05 \x03(\v2\x1f.tutorial.LimitEvent.ParamEntryR\x05Param\x1a8\n" +
"\x05Param\x18\x05 \x03(\v2\x1f.tutorial.LimitEvent.ParamEntryR\x05Param\x12\x1a\n" +
"\bShowTime\x18\x06 \x01(\x05R\bShowTime\x1a8\n" +
"\n" +
"ParamEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +