diff --git a/src/public/user.ts b/src/public/user.ts index 851f82c..a9270b0 100644 --- a/src/public/user.ts +++ b/src/public/user.ts @@ -297,8 +297,7 @@ export class UserFun { if (val == -1 && !gud.headFrames[conf.id]) { change = true; gud.headFrames[conf.id] = -1; - } - else if (val >= 0) { + } else if (val > 0 && gud.headFrames[conf.id] != -1) { change = true; gud.headFrames[conf.id] = G.time + val * v; } @@ -342,15 +341,16 @@ export class UserFun { if (conf?.cond?.[0] == 'time') { let val = conf.cond[1]; - if (val == -1 && !gud.headFrames[conf.id]) { + if (val == -1 && !gud.chatFrames[conf.id]) { change = true; - gud.headFrames[conf.id] = -1; - } else if (val >= 0) { + gud.chatFrames[conf.id] = -1; + } else if (val > 0 && gud.chatFrames[conf.id] != -1) { change = true; - gud.headFrames[conf.id] = G.time + val * v; + gud.chatFrames[conf.id] = G.time + val * v; } } } + if (change) { PlayerFun.changeAttr(uid, {chatFrames: gud.chatFrames}); G.server.sendMsgByUid(uid, 'msg_s2c/PlayerChange', {chatFrames: gud.chatFrames}); @@ -385,13 +385,15 @@ export class UserFun { if (conf?.cond?.[0] == 'time') { let val = conf.cond[1]; - if (val == -1 && !gud.headFrames[conf.id]) { + if (val == -1) { change = true; - gud.headFrames[conf.id] = -1; - } - else if (val >= 0) { + gud.model[conf.id] = {id: conf.id + '', time: -1}; + } else if (gud.model[conf.id].time < G.time) { change = true; - gud.headFrames[conf.id] = G.time + val * v; + gud.model[conf.id] = {id: conf.id + '', time: G.time + val * v}; + } else { + change = true; + gud.model[conf.id] = {id: conf.id + '', time: gud.model[conf.id].time += val * v} } } }