```
refactor(socket): 优化消息处理逻辑,避免顺序执行问题 将消息处理的循环从协程外部移入协程内部,确保每个消息在独立的 goroutine 中处理, 避免因并发导致的消息顺序错乱问题。同时移除了多余的空行,使代码更简洁。 fix(controller): 为低 ID 用户设置 VIP 标志 在 COMMEND_ONLINE 接口逻辑中,新增对 UserID 小于 10000 的用户设置 IsVip = 1, 用于标识测试或特殊用户身份。 ref
This commit is contained in:
@@ -35,7 +35,7 @@ func Geteffect(etype EnumEffectType, id int) Effect {
|
||||
|
||||
eff := deep.MustCopy(ret)
|
||||
|
||||
return eff.(Effect)
|
||||
return eff
|
||||
//todo 获取后GetEffect
|
||||
}
|
||||
return nil
|
||||
@@ -66,10 +66,8 @@ func (c *Input) GetProp(id int, istue bool) int {
|
||||
return realValue
|
||||
|
||||
}
|
||||
func (c *Input) CountEffect(etype EnumEffectType, id int) int {
|
||||
return len(c.GetEffect(etype, id))
|
||||
}
|
||||
func (c *Input) GetEffect(etype EnumEffectType, id int) []Effect {
|
||||
|
||||
func (c *Input) GetEffect(etype EnumEffectType, id int) Effect {
|
||||
var ret []Effect
|
||||
for _, v := range c.Effects {
|
||||
if v.ID() == id {
|
||||
@@ -77,7 +75,10 @@ func (c *Input) GetEffect(etype EnumEffectType, id int) []Effect {
|
||||
}
|
||||
|
||||
}
|
||||
return ret
|
||||
if len(ret) > 0 {
|
||||
return ret[len(ret)-1]
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (c *Input) StatEffect_Exist(id int) bool {
|
||||
for _, v := range c.Effects {
|
||||
@@ -106,8 +107,9 @@ func (c *Input) AddEffect(e Effect) {
|
||||
// 如果已有同 ID 的效果,尝试叠加
|
||||
for _, v := range c.Effects {
|
||||
if v.ID() == e.ID() && v.Alive() {
|
||||
if v.MaxStack() >= 0 {
|
||||
v.NotALive() //取消之前效果
|
||||
v.NotALive() //取消之前效果
|
||||
if v.MaxStack() > 0 {
|
||||
|
||||
if v.Stack() < v.MaxStack() { //如果小于最大叠层,状态可以叠层
|
||||
e.SetArgs(v.GetInput(), v.GetArgs()...) //参数输入
|
||||
e.Stack(v.Stack() + e.Stack()) //获取到当前叠层数然后叠加
|
||||
|
||||
Reference in New Issue
Block a user