Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
N
Neos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
love_飞影
Neos
Commits
a216ae8e
Commit
a216ae8e
authored
May 14, 2023
by
Chunchi Che
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix delay
parent
954fb8be
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
10 deletions
+24
-10
src/service/duel/gameMsg.ts
src/service/duel/gameMsg.ts
+0
-5
src/service/onSocketMessage.ts
src/service/onSocketMessage.ts
+24
-5
No files found.
src/service/duel/gameMsg.ts
View file @
a216ae8e
import
{
ygopro
}
from
"
@/api
"
;
import
{
ygopro
}
from
"
@/api
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
matStore
}
from
"
@/stores
"
;
import
{
matStore
}
from
"
@/stores
"
;
import
onMsgAttack
from
"
./attack
"
;
import
onMsgAttack
from
"
./attack
"
;
...
@@ -57,8 +56,6 @@ const ActiveList = [
...
@@ -57,8 +56,6 @@ const ActiveList = [
"
select_yes_no
"
,
"
select_yes_no
"
,
];
];
const
NeosConfig
=
useConfig
();
export
default
function
handleGameMsg
(
pb
:
ygopro
.
YgoStocMsg
)
{
export
default
function
handleGameMsg
(
pb
:
ygopro
.
YgoStocMsg
)
{
const
msg
=
pb
.
stoc_game_msg
;
const
msg
=
pb
.
stoc_game_msg
;
...
@@ -104,7 +101,6 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
...
@@ -104,7 +101,6 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
}
}
case
"
move
"
:
{
case
"
move
"
:
{
onMsgMove
(
msg
.
move
);
onMsgMove
(
msg
.
move
);
matStore
.
delay
=
NeosConfig
.
ui
.
moveDelay
+
500
;
break
;
break
;
}
}
...
@@ -230,7 +226,6 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
...
@@ -230,7 +226,6 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
}
}
case
"
chaining
"
:
{
case
"
chaining
"
:
{
onMsgChaining
(
msg
.
chaining
);
onMsgChaining
(
msg
.
chaining
);
matStore
.
delay
=
NeosConfig
.
ui
.
chainingDelay
;
break
;
break
;
}
}
...
...
src/service/onSocketMessage.ts
View file @
a216ae8e
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
* 长连接消息事件订阅处理逻辑
* 长连接消息事件订阅处理逻辑
*
*
* */
* */
import
{
ygopro
}
from
"
@/api
"
;
import
{
adaptStoc
}
from
"
@/api/ocgcore/ocgAdapter/adapter
"
;
import
{
adaptStoc
}
from
"
@/api/ocgcore/ocgAdapter/adapter
"
;
import
{
YgoProPacket
}
from
"
@/api/ocgcore/ocgAdapter/packet
"
;
import
{
YgoProPacket
}
from
"
@/api/ocgcore/ocgAdapter/packet
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
useConfig
}
from
"
@/config
"
;
...
@@ -30,11 +31,7 @@ const NeosConfig = useConfig();
...
@@ -30,11 +31,7 @@ const NeosConfig = useConfig();
export
default
function
handleSocketMessage
(
e
:
MessageEvent
)
{
export
default
function
handleSocketMessage
(
e
:
MessageEvent
)
{
const
packet
=
YgoProPacket
.
deserialize
(
e
.
data
);
const
packet
=
YgoProPacket
.
deserialize
(
e
.
data
);
const
pb
=
adaptStoc
(
packet
);
const
pb
=
adaptStoc
(
packet
);
const
delay
=
handleDelay
(
pb
);
// 防止MSG更新太频繁,做下控频
const
delay
=
matStore
.
delay
;
// 重置`delay`
matStore
.
delay
=
NeosConfig
.
ui
.
commonDelay
;
setTimeout
(()
=>
{
setTimeout
(()
=>
{
switch
(
pb
.
msg
)
{
switch
(
pb
.
msg
)
{
...
@@ -112,3 +109,25 @@ export default function handleSocketMessage(e: MessageEvent) {
...
@@ -112,3 +109,25 @@ export default function handleSocketMessage(e: MessageEvent) {
}
}
},
delay
);
},
delay
);
}
}
// 该函数用于控频,防止MSG更新太频繁,返回值是延迟的时间戳(毫秒)
//
// 对于一般的MSG,我们会延迟200ms执行处理逻辑;
// 当处理一些带有动画效果的MSG时,比如`MSG_MOVE`,`MSG_CHAINING`,我们会设置下一次执行处理逻辑的延迟,确保动画完整
function
handleDelay
(
stoc
:
ygopro
.
YgoStocMsg
):
number
{
const
delay
=
matStore
.
delay
;
// 重置下次`delay`
matStore
.
delay
=
NeosConfig
.
ui
.
commonDelay
;
// 对特定的`MSG`,设置特化的`delay`
if
(
stoc
.
has_stoc_game_msg
)
{
if
(
stoc
.
stoc_game_msg
.
gameMsg
==
"
move
"
)
{
matStore
.
delay
=
NeosConfig
.
ui
.
moveDelay
+
500
;
}
else
if
(
stoc
.
stoc_game_msg
.
gameMsg
==
"
chaining
"
)
{
matStore
.
delay
=
NeosConfig
.
ui
.
chainingDelay
;
}
}
return
delay
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment