Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
S
srvpro
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
nanahira
srvpro
Commits
9494c3c6
Commit
9494c3c6
authored
Jun 01, 2020
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'mc'
parents
5b108161
160c8f96
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
90 additions
and
92 deletions
+90
-92
YGOProMessages.js
YGOProMessages.js
+15
-16
ygopro-server.coffee
ygopro-server.coffee
+36
-35
ygopro-server.js
ygopro-server.js
+37
-39
ygopro.coffee
ygopro.coffee
+1
-1
ygopro.js
ygopro.js
+1
-1
No files found.
YGOProMessages.js
View file @
9494c3c6
...
@@ -27,6 +27,20 @@ class Handler {
...
@@ -27,6 +27,20 @@ class Handler {
class
YGOProMessagesHelper
{
class
YGOProMessagesHelper
{
constructor
()
{
constructor
()
{
this
.
handlers
=
{
STOC
:
[{},
{},
{},
{},
{},
],
CTOS
:
[{},
{},
{},
{},
{},
]
}
this
.
initDatas
();
this
.
initDatas
();
this
.
initStructs
();
this
.
initStructs
();
}
}
...
@@ -39,6 +53,7 @@ class YGOProMessagesHelper {
...
@@ -39,6 +53,7 @@ class YGOProMessagesHelper {
}
}
initStructs
()
{
initStructs
()
{
this
.
structs
=
{};
for
(
let
name
in
this
.
structs_declaration
)
{
for
(
let
name
in
this
.
structs_declaration
)
{
const
declaration
=
this
.
structs_declaration
[
name
];
const
declaration
=
this
.
structs_declaration
[
name
];
let
result
=
Struct
();
let
result
=
Struct
();
...
@@ -232,20 +247,4 @@ class YGOProMessagesHelper {
...
@@ -232,20 +247,4 @@ class YGOProMessagesHelper {
}
}
YGOProMessagesHelper
.
prototype
.
structs
=
{}
YGOProMessagesHelper
.
prototype
.
handlers
=
{
STOC
:
[{},
{},
{},
{},
{},
],
CTOS
:
[{},
{},
{},
{},
{},
]
}
module
.
exports
=
YGOProMessagesHelper
;
module
.
exports
=
YGOProMessagesHelper
;
ygopro-server.coffee
View file @
9494c3c6
...
@@ -1989,7 +1989,7 @@ ygopro.ctos_follow 'PLAYER_INFO', true, (buffer, info, client, server, datas)->
...
@@ -1989,7 +1989,7 @@ ygopro.ctos_follow 'PLAYER_INFO', true, (buffer, info, client, server, datas)->
else
else
#log.info("Not in map", geo.country, client.name, client.ip)
#log.info("Not in map", geo.country, client.name, client.ip)
client
.
lang
=
settings
.
modules
.
i18n
.
fallback
client
.
lang
=
settings
.
modules
.
i18n
.
fallback
return
false
await
return
false
ygopro
.
ctos_follow
'JOIN_GAME'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
ctos_follow
'JOIN_GAME'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
#log.info info
#log.info info
...
@@ -2494,7 +2494,7 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
...
@@ -2494,7 +2494,7 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
client
.
setTimeout
(
300000
)
#连接后超时5分钟
client
.
setTimeout
(
300000
)
#连接后超时5分钟
client
.
rid
=
_
.
indexOf
(
ROOM_all
,
room
)
client
.
rid
=
_
.
indexOf
(
ROOM_all
,
room
)
room
.
connect
(
client
)
room
.
connect
(
client
)
return
await
return
ygopro
.
stoc_follow
'JOIN_GAME'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'JOIN_GAME'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
#欢迎信息
#欢迎信息
...
@@ -2577,7 +2577,7 @@ ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
...
@@ -2577,7 +2577,7 @@ ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
watcher
.
on
'error'
,
(
error
)
->
watcher
.
on
'error'
,
(
error
)
->
log
.
error
"watcher error"
,
error
log
.
error
"watcher error"
,
error
return
return
return
await
return
# 登场台词
# 登场台词
load_words
=
global
.
load_words
=
(
callback
)
->
load_words
=
global
.
load_words
=
(
callback
)
->
...
@@ -2615,7 +2615,7 @@ load_dialogues = global.load_dialogues = (callback) ->
...
@@ -2615,7 +2615,7 @@ load_dialogues = global.load_dialogues = (callback) ->
if
callback
if
callback
callback
(
error
,
body
)
callback
(
error
,
body
)
return
return
return
await
return
load_dialogues_custom
=
global
.
load_dialogues_custom
=
(
callback
)
->
load_dialogues_custom
=
global
.
load_dialogues_custom
=
(
callback
)
->
request
request
...
@@ -2938,7 +2938,7 @@ ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)->
...
@@ -2938,7 +2938,7 @@ ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)->
room
.
recover_buffers
[
client
.
pos
].
push
(
buffer
)
room
.
recover_buffers
[
client
.
pos
].
push
(
buffer
)
return
true
return
true
return
false
await
return
false
#房间管理
#房间管理
ygopro
.
ctos_follow
'HS_TOOBSERVER'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
ctos_follow
'HS_TOOBSERVER'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
...
@@ -2953,7 +2953,7 @@ ygopro.ctos_follow 'HS_TOOBSERVER', true, (buffer, info, client, server, datas)-
...
@@ -2953,7 +2953,7 @@ ygopro.ctos_follow 'HS_TOOBSERVER', true, (buffer, info, client, server, datas)-
if
player
==
client
if
player
==
client
ygopro
.
stoc_send_chat
(
client
,
"${cannot_to_observer}"
,
ygopro
.
constants
.
COLORS
.
BABYBLUE
)
ygopro
.
stoc_send_chat
(
client
,
"${cannot_to_observer}"
,
ygopro
.
constants
.
COLORS
.
BABYBLUE
)
return
true
return
true
return
false
await
return
false
ygopro
.
ctos_follow
'HS_KICK'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
ctos_follow
'HS_KICK'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -2971,7 +2971,7 @@ ygopro.ctos_follow 'HS_KICK', true, (buffer, info, client, server, datas)->
...
@@ -2971,7 +2971,7 @@ ygopro.ctos_follow 'HS_KICK', true, (buffer, info, client, server, datas)->
CLIENT_kick
(
client
)
CLIENT_kick
(
client
)
return
true
return
true
ygopro
.
stoc_send_chat_to_room
(
room
,
"
#{
player
.
name
}
${kicked_by_player}"
,
ygopro
.
constants
.
COLORS
.
RED
)
ygopro
.
stoc_send_chat_to_room
(
room
,
"
#{
player
.
name
}
${kicked_by_player}"
,
ygopro
.
constants
.
COLORS
.
RED
)
return
false
await
return
false
ygopro
.
stoc_follow
'TYPE_CHANGE'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'TYPE_CHANGE'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
selftype
=
info
.
type
&
0xf
selftype
=
info
.
type
&
0xf
...
@@ -2982,7 +2982,7 @@ ygopro.stoc_follow 'TYPE_CHANGE', true, (buffer, info, client, server, datas)->
...
@@ -2982,7 +2982,7 @@ ygopro.stoc_follow 'TYPE_CHANGE', true, (buffer, info, client, server, datas)->
client
.
is_host
=
is_host
client
.
is_host
=
is_host
client
.
pos
=
selftype
client
.
pos
=
selftype
#console.log "TYPE_CHANGE to #{client.name}:", info, selftype, is_host
#console.log "TYPE_CHANGE to #{client.name}:", info, selftype, is_host
return
false
await
return
false
ygopro
.
stoc_follow
'HS_PLAYER_ENTER'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'HS_PLAYER_ENTER'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -2993,7 +2993,7 @@ ygopro.stoc_follow 'HS_PLAYER_ENTER', true, (buffer, info, client, server, datas
...
@@ -2993,7 +2993,7 @@ ygopro.stoc_follow 'HS_PLAYER_ENTER', true, (buffer, info, client, server, datas
struct
.
_setBuff
(
buffer
)
struct
.
_setBuff
(
buffer
)
struct
.
set
(
"name"
,
"********"
)
struct
.
set
(
"name"
,
"********"
)
buffer
=
struct
.
buffer
buffer
=
struct
.
buffer
return
false
await
return
false
ygopro
.
stoc_follow
'HS_PLAYER_CHANGE'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'HS_PLAYER_CHANGE'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3039,10 +3039,10 @@ ygopro.stoc_follow 'HS_PLAYER_CHANGE', false, (buffer, info, client, server, dat
...
@@ -3039,10 +3039,10 @@ ygopro.stoc_follow 'HS_PLAYER_CHANGE', false, (buffer, info, client, server, dat
if
room
.
ready_player_count_without_host
>=
room
.
max_player
-
1
if
room
.
ready_player_count_without_host
>=
room
.
max_player
-
1
#log.info "all ready"
#log.info "all ready"
setTimeout
(()
->
wait_room_start
(
ROOM_all
[
client
.
rid
],
settings
.
modules
.
random_duel
.
ready_time
);
return
),
1000
setTimeout
(()
->
wait_room_start
(
ROOM_all
[
client
.
rid
],
settings
.
modules
.
random_duel
.
ready_time
);
return
),
1000
return
await
return
ygopro
.
ctos_follow
'REQUEST_FIELD'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
ctos_follow
'REQUEST_FIELD'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
return
true
await
return
true
ygopro
.
stoc_follow
'FIELD_FINISH'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'FIELD_FINISH'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3054,7 +3054,7 @@ ygopro.stoc_follow 'FIELD_FINISH', true, (buffer, info, client, server, datas)->
...
@@ -3054,7 +3054,7 @@ ygopro.stoc_follow 'FIELD_FINISH', true, (buffer, info, client, server, datas)->
if
client
.
last_hint_msg
if
client
.
last_hint_msg
ygopro
.
stoc_send
(
client
,
'GAME_MSG'
,
client
.
last_hint_msg
)
ygopro
.
stoc_send
(
client
,
'GAME_MSG'
,
client
.
last_hint_msg
)
ygopro
.
stoc_send
(
client
,
'GAME_MSG'
,
client
.
last_game_msg
)
ygopro
.
stoc_send
(
client
,
'GAME_MSG'
,
client
.
last_game_msg
)
return
true
await
return
true
ygopro
.
stoc_follow
'DUEL_END'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'DUEL_END'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3067,6 +3067,7 @@ ygopro.stoc_follow 'DUEL_END', false, (buffer, info, client, server, datas)->
...
@@ -3067,6 +3067,7 @@ ygopro.stoc_follow 'DUEL_END', false, (buffer, info, client, server, datas)->
CLIENT_send_replays
(
player
,
room
)
CLIENT_send_replays
(
player
,
room
)
for
player
in
room
.
watchers
when
player
for
player
in
room
.
watchers
when
player
CLIENT_send_replays
(
player
,
room
)
CLIENT_send_replays
(
player
,
room
)
await
return
wait_room_start
=
(
room
,
time
)
->
wait_room_start
=
(
room
,
time
)
->
if
room
and
room
.
duel_stage
==
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
and
room
.
ready_player_count_without_host
>=
room
.
max_player
-
1
if
room
and
room
.
duel_stage
==
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
and
room
.
ready_player_count_without_host
>=
room
.
max_player
-
1
...
@@ -3081,7 +3082,7 @@ wait_room_start = (room, time)->
...
@@ -3081,7 +3082,7 @@ wait_room_start = (room, time)->
ROOM_ban_player
(
player
.
name
,
player
.
ip
,
"${random_ban_reason_zombie}"
)
ROOM_ban_player
(
player
.
name
,
player
.
ip
,
"${random_ban_reason_zombie}"
)
ygopro
.
stoc_send_chat_to_room
(
room
,
"
#{
player
.
name
}
${kicked_by_system}"
,
ygopro
.
constants
.
COLORS
.
RED
)
ygopro
.
stoc_send_chat_to_room
(
room
,
"
#{
player
.
name
}
${kicked_by_system}"
,
ygopro
.
constants
.
COLORS
.
RED
)
CLIENT_kick
(
player
)
CLIENT_kick
(
player
)
return
await
return
wait_room_start_arena
=
(
room
)
->
wait_room_start_arena
=
(
room
)
->
if
room
and
room
.
duel_stage
==
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
and
room
.
waiting_for_player
if
room
and
room
.
duel_stage
==
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
and
room
.
waiting_for_player
...
@@ -3097,7 +3098,7 @@ wait_room_start_arena = (room)->
...
@@ -3097,7 +3098,7 @@ wait_room_start_arena = (room)->
if
room
.
waiting_for_player_interval
if
room
.
waiting_for_player_interval
clearInterval
room
.
waiting_for_player_interval
clearInterval
room
.
waiting_for_player_interval
room
.
waiting_for_player_interval
=
null
room
.
waiting_for_player_interval
=
null
return
await
return
#tip
#tip
ygopro
.
stoc_send_random_tip
=
(
client
)
->
ygopro
.
stoc_send_random_tip
=
(
client
)
->
...
@@ -3106,14 +3107,14 @@ ygopro.stoc_send_random_tip = (client)->
...
@@ -3106,14 +3107,14 @@ ygopro.stoc_send_random_tip = (client)->
tip_type
=
"tips_zh"
tip_type
=
"tips_zh"
if
settings
.
modules
.
tips
.
enabled
&&
tips
.
tips
.
length
&&
!
client
.
is_local
&&
!
client
.
closed
if
settings
.
modules
.
tips
.
enabled
&&
tips
.
tips
.
length
&&
!
client
.
is_local
&&
!
client
.
closed
ygopro
.
stoc_send_chat
(
client
,
"Tip: "
+
tips
[
tip_type
][
Math
.
floor
(
Math
.
random
()
*
tips
[
tip_type
].
length
)])
ygopro
.
stoc_send_chat
(
client
,
"Tip: "
+
tips
[
tip_type
][
Math
.
floor
(
Math
.
random
()
*
tips
[
tip_type
].
length
)])
return
await
return
ygopro
.
stoc_send_random_tip_to_room
=
(
room
)
->
ygopro
.
stoc_send_random_tip_to_room
=
(
room
)
->
if
settings
.
modules
.
tips
.
enabled
&&
tips
.
tips
.
length
if
settings
.
modules
.
tips
.
enabled
&&
tips
.
tips
.
length
for
player
in
room
.
players
when
player
and
!
player
.
is_local
and
!
player
.
closed
for
player
in
room
.
players
when
player
and
!
player
.
is_local
and
!
player
.
closed
ygopro
.
stoc_send_random_tip
(
player
)
ygopro
.
stoc_send_random_tip
(
player
)
for
player
in
room
.
watchers
when
player
and
!
player
.
is_local
and
!
player
.
closed
for
player
in
room
.
watchers
when
player
and
!
player
.
is_local
and
!
player
.
closed
ygopro
.
stoc_send_random_tip
(
player
)
ygopro
.
stoc_send_random_tip
(
player
)
return
await
return
load_tips
=
global
.
load_tips
=
(
callback
)
->
load_tips
=
global
.
load_tips
=
(
callback
)
->
request
request
...
@@ -3130,7 +3131,7 @@ load_tips = global.load_tips = (callback)->
...
@@ -3130,7 +3131,7 @@ load_tips = global.load_tips = (callback)->
if
callback
if
callback
callback
(
error
,
body
)
callback
(
error
,
body
)
return
return
return
await
return
load_tips_zh
=
global
.
load_tips_zh
=
(
callback
)
->
load_tips_zh
=
global
.
load_tips_zh
=
(
callback
)
->
request
request
...
@@ -3147,7 +3148,7 @@ load_tips_zh = global.load_tips_zh = (callback)->
...
@@ -3147,7 +3148,7 @@ load_tips_zh = global.load_tips_zh = (callback)->
if
callback
if
callback
callback
(
error
,
body
)
callback
(
error
,
body
)
return
return
return
await
return
if
settings
.
modules
.
tips
.
enabled
and
settings
.
modules
.
tips
.
get
if
settings
.
modules
.
tips
.
enabled
and
settings
.
modules
.
tips
.
get
load_tips
()
load_tips
()
...
@@ -3231,7 +3232,7 @@ ygopro.stoc_follow 'DUEL_START', false, (buffer, info, client, server, datas)->
...
@@ -3231,7 +3232,7 @@ ygopro.stoc_follow 'DUEL_START', false, (buffer, info, client, server, datas)->
#log.info 'DECK POST OK', response.statusCode, client.name, body
#log.info 'DECK POST OK', response.statusCode, client.name, body
return
return
client
.
deck_saved
=
true
client
.
deck_saved
=
true
return
await
return
ygopro
.
ctos_follow
'SURRENDER'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
ctos_follow
'SURRENDER'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3250,7 +3251,7 @@ ygopro.ctos_follow 'SURRENDER', true, (buffer, info, client, server, datas)->
...
@@ -3250,7 +3251,7 @@ ygopro.ctos_follow 'SURRENDER', true, (buffer, info, client, server, datas)->
ygopro
.
stoc_send_chat
(
client
,
"${surrender_confirm_sent}"
,
ygopro
.
constants
.
COLORS
.
BABYBLUE
)
ygopro
.
stoc_send_chat
(
client
,
"${surrender_confirm_sent}"
,
ygopro
.
constants
.
COLORS
.
BABYBLUE
)
sur_player
.
surrend_confirm
=
true
sur_player
.
surrend_confirm
=
true
return
true
return
true
return
false
await
return
false
report_to_big_brother
=
global
.
report_to_big_brother
=
(
roomname
,
sender
,
ip
,
level
,
content
,
match
)
->
report_to_big_brother
=
global
.
report_to_big_brother
=
(
roomname
,
sender
,
ip
,
level
,
content
,
match
)
->
return
unless
settings
.
modules
.
big_brother
.
enabled
return
unless
settings
.
modules
.
big_brother
.
enabled
...
@@ -3271,7 +3272,7 @@ report_to_big_brother = global.report_to_big_brother = (roomname, sender, ip, le
...
@@ -3271,7 +3272,7 @@ report_to_big_brother = global.report_to_big_brother = (roomname, sender, ip, le
#else
#else
#log.info 'BIG BROTHER OK', response.statusCode, roomname, body
#log.info 'BIG BROTHER OK', response.statusCode, roomname, body
return
return
return
await
return
ygopro
.
ctos_follow
'CHAT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
ctos_follow
'CHAT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3531,7 +3532,7 @@ ygopro.ctos_follow 'CHAT', true, (buffer, info, client, server, datas)->
...
@@ -3531,7 +3532,7 @@ ygopro.ctos_follow 'CHAT', true, (buffer, info, client, server, datas)->
if
client
.
abuse_count
>=
5
if
client
.
abuse_count
>=
5
ygopro
.
stoc_send_chat_to_room
(
room
,
"
#{
client
.
name
}
${chat_banned}"
,
ygopro
.
constants
.
COLORS
.
RED
)
ygopro
.
stoc_send_chat_to_room
(
room
,
"
#{
client
.
name
}
${chat_banned}"
,
ygopro
.
constants
.
COLORS
.
RED
)
ROOM_ban_player
(
client
.
name
,
client
.
ip
,
"${random_ban_reason_abuse}"
)
ROOM_ban_player
(
client
.
name
,
client
.
ip
,
"${random_ban_reason_abuse}"
)
return
cancel
await
return
cancel
ygopro
.
ctos_follow
'UPDATE_DECK'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
ctos_follow
'UPDATE_DECK'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
if
settings
.
modules
.
reconnect
.
enabled
and
client
.
pre_reconnecting
if
settings
.
modules
.
reconnect
.
enabled
and
client
.
pre_reconnecting
...
@@ -3632,13 +3633,13 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)->
...
@@ -3632,13 +3633,13 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)->
else
else
#log.info("player deck not found: " + client.name)
#log.info("player deck not found: " + client.name)
ygopro
.
stoc_send_chat
(
client
,
"
#{
client
.
name
}
${deck_not_found}"
,
ygopro
.
constants
.
COLORS
.
RED
)
ygopro
.
stoc_send_chat
(
client
,
"
#{
client
.
name
}
${deck_not_found}"
,
ygopro
.
constants
.
COLORS
.
RED
)
return
false
await
return
false
ygopro
.
ctos_follow
'RESPONSE'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
ctos_follow
'RESPONSE'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
return
unless
room
and
(
room
.
random_type
or
room
.
arena
)
return
unless
room
and
(
room
.
random_type
or
room
.
arena
)
room
.
last_active_time
=
moment
()
room
.
last_active_time
=
moment
()
return
await
return
ygopro
.
stoc_follow
'TIME_LIMIT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'TIME_LIMIT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3678,7 +3679,7 @@ ygopro.stoc_follow 'TIME_LIMIT', true, (buffer, info, client, server, datas)->
...
@@ -3678,7 +3679,7 @@ ygopro.stoc_follow 'TIME_LIMIT', true, (buffer, info, client, server, datas)->
return
unless
settings
.
modules
.
heartbeat_detection
.
enabled
and
room
.
duel_stage
==
ygopro
.
constants
.
DUEL_STAGE
.
DUELING
and
!
room
.
windbot
return
unless
settings
.
modules
.
heartbeat_detection
.
enabled
and
room
.
duel_stage
==
ygopro
.
constants
.
DUEL_STAGE
.
DUELING
and
!
room
.
windbot
if
check
if
check
CLIENT_heartbeat_register
(
client
,
false
)
CLIENT_heartbeat_register
(
client
,
false
)
return
false
await
return
false
ygopro
.
ctos_follow
'TIME_CONFIRM'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
ctos_follow
'TIME_CONFIRM'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3697,7 +3698,7 @@ ygopro.ctos_follow 'TIME_CONFIRM', false, (buffer, info, client, server, datas)-
...
@@ -3697,7 +3698,7 @@ ygopro.ctos_follow 'TIME_CONFIRM', false, (buffer, info, client, server, datas)-
client
.
heartbeat_protected
=
false
client
.
heartbeat_protected
=
false
client
.
heartbeat_responsed
=
true
client
.
heartbeat_responsed
=
true
CLIENT_heartbeat_unregister
(
client
)
CLIENT_heartbeat_unregister
(
client
)
return
await
return
ygopro
.
ctos_follow
'HAND_RESULT'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
ctos_follow
'HAND_RESULT'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3707,7 +3708,7 @@ ygopro.ctos_follow 'HAND_RESULT', false, (buffer, info, client, server, datas)->
...
@@ -3707,7 +3708,7 @@ ygopro.ctos_follow 'HAND_RESULT', false, (buffer, info, client, server, datas)->
if
client
.
pos
==
0
if
client
.
pos
==
0
room
.
waiting_for_player
=
room
.
waiting_for_player2
room
.
waiting_for_player
=
room
.
waiting_for_player2
room
.
last_active_time
=
moment
().
subtract
(
settings
.
modules
.
random_duel
.
hang_timeout
-
19
,
's'
)
room
.
last_active_time
=
moment
().
subtract
(
settings
.
modules
.
random_duel
.
hang_timeout
-
19
,
's'
)
return
await
return
ygopro
.
ctos_follow
'TP_RESULT'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
ctos_follow
'TP_RESULT'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3716,7 +3717,7 @@ ygopro.ctos_follow 'TP_RESULT', false, (buffer, info, client, server, datas)->
...
@@ -3716,7 +3717,7 @@ ygopro.ctos_follow 'TP_RESULT', false, (buffer, info, client, server, datas)->
# room.selecting_tp = false
# room.selecting_tp = false
return
unless
room
.
random_type
or
room
.
arena
return
unless
room
.
random_type
or
room
.
arena
room
.
last_active_time
=
moment
()
room
.
last_active_time
=
moment
()
return
await
return
ygopro
.
stoc_follow
'CHAT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'CHAT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3742,7 +3743,7 @@ ygopro.stoc_follow 'CHAT', true, (buffer, info, client, server, datas)->
...
@@ -3742,7 +3743,7 @@ ygopro.stoc_follow 'CHAT', true, (buffer, info, client, server, datas)->
msg
:
tplayer
.
name
+
": "
+
info
.
msg
msg
:
tplayer
.
name
+
": "
+
info
.
msg
}
}
return
true
return
true
return
await
return
ygopro
.
stoc_follow
'SELECT_HAND'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'SELECT_HAND'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3762,12 +3763,12 @@ ygopro.stoc_follow 'SELECT_HAND', true, (buffer, info, client, server, datas)->
...
@@ -3762,12 +3763,12 @@ ygopro.stoc_follow 'SELECT_HAND', true, (buffer, info, client, server, datas)->
return
true
return
true
else
else
client
.
selected_preduel
=
false
client
.
selected_preduel
=
false
return
false
await
return
false
ygopro
.
stoc_follow
'HAND_RESULT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'HAND_RESULT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
return
false
unless
room
return
false
unless
room
return
room
.
determine_firstgo
await
return
room
.
determine_firstgo
ygopro
.
stoc_follow
'SELECT_TP'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'SELECT_TP'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3784,7 +3785,7 @@ ygopro.stoc_follow 'SELECT_TP', true, (buffer, info, client, server, datas)->
...
@@ -3784,7 +3785,7 @@ ygopro.stoc_follow 'SELECT_TP', true, (buffer, info, client, server, datas)->
else
else
client
.
selected_preduel
=
false
client
.
selected_preduel
=
false
room
.
selecting_tp
=
client
room
.
selecting_tp
=
client
return
false
await
return
false
ygopro
.
stoc_follow
'CHANGE_SIDE'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'CHANGE_SIDE'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3832,7 +3833,7 @@ ygopro.stoc_follow 'CHANGE_SIDE', false, (buffer, info, client, server, datas)->
...
@@ -3832,7 +3833,7 @@ ygopro.stoc_follow 'CHANGE_SIDE', false, (buffer, info, client, server, datas)->
else
else
room
.
waiting_for_player2
=
client
room
.
waiting_for_player2
=
client
room
.
last_active_time
=
moment
()
room
.
last_active_time
=
moment
()
return
await
return
ygopro
.
stoc_follow
'REPLAY'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
ygopro
.
stoc_follow
'REPLAY'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
room
=
ROOM_all
[
client
.
rid
]
...
@@ -3881,9 +3882,9 @@ ygopro.stoc_follow 'REPLAY', true, (buffer, info, client, server, datas)->
...
@@ -3881,9 +3882,9 @@ ygopro.stoc_follow 'REPLAY', true, (buffer, info, client, server, datas)->
)
)
if
settings
.
modules
.
cloud_replay
.
enabled
and
settings
.
modules
.
tournament_mode
.
enabled
and
settings
.
modules
.
tournament_mode
.
replay_safe
if
settings
.
modules
.
cloud_replay
.
enabled
and
settings
.
modules
.
tournament_mode
.
enabled
and
settings
.
modules
.
tournament_mode
.
replay_safe
ygopro
.
stoc_send_chat
(
client
,
"${cloud_replay_delay_part1}R#
#{
room
.
cloud_replay_id
}
${cloud_replay_delay_part2}"
,
ygopro
.
constants
.
COLORS
.
BABYBLUE
)
ygopro
.
stoc_send_chat
(
client
,
"${cloud_replay_delay_part1}R#
#{
room
.
cloud_replay_id
}
${cloud_replay_delay_part2}"
,
ygopro
.
constants
.
COLORS
.
BABYBLUE
)
return
settings
.
modules
.
tournament_mode
.
enabled
and
settings
.
modules
.
tournament_mode
.
block_replay_to_player
or
settings
.
modules
.
replay_delay
and
room
.
hostinfo
.
mode
==
1
await
return
settings
.
modules
.
tournament_mode
.
enabled
and
settings
.
modules
.
tournament_mode
.
block_replay_to_player
or
settings
.
modules
.
replay_delay
and
room
.
hostinfo
.
mode
==
1
else
else
return
settings
.
modules
.
replay_delay
and
room
.
hostinfo
.
mode
==
1
await
return
settings
.
modules
.
replay_delay
and
room
.
hostinfo
.
mode
==
1
if
settings
.
modules
.
random_duel
.
enabled
if
settings
.
modules
.
random_duel
.
enabled
setInterval
()
->
setInterval
()
->
...
...
ygopro-server.js
View file @
9494c3c6
...
@@ -2614,7 +2614,7 @@
...
@@ -2614,7 +2614,7 @@
// 功能模块
// 功能模块
// return true to cancel a synchronous message
// return true to cancel a synchronous message
ygopro
.
ctos_follow
(
'
PLAYER_INFO
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
PLAYER_INFO
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
geo
,
lang
,
name
,
name_full
,
struct
,
vpass
;
var
geo
,
lang
,
name
,
name_full
,
struct
,
vpass
;
// checkmate use username$password, but here don't
// checkmate use username$password, but here don't
// so remove the password
// so remove the password
...
@@ -2685,7 +2685,7 @@
...
@@ -2685,7 +2685,7 @@
return
false
;
return
false
;
});
});
ygopro
.
ctos_follow
(
'
JOIN_GAME
'
,
false
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
JOIN_GAME
'
,
false
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
available_logs
,
check_buffer_indentity
,
create_room_with_action
,
len3
,
len4
,
len5
,
len6
,
line
,
n
,
name
,
o
,
p
,
pre_room
,
q
,
recover_match
,
ref4
,
ref5
,
ref6
,
ref7
,
replay_id
,
room
;
var
available_logs
,
check_buffer_indentity
,
create_room_with_action
,
len3
,
len4
,
len5
,
len6
,
line
,
n
,
name
,
o
,
p
,
pre_room
,
q
,
recover_match
,
ref4
,
ref5
,
ref6
,
ref7
,
replay_id
,
room
;
//log.info info
//log.info info
info
.
pass
=
info
.
pass
.
trim
();
info
.
pass
=
info
.
pass
.
trim
();
...
@@ -3283,7 +3283,7 @@
...
@@ -3283,7 +3283,7 @@
}
}
});
});
ygopro
.
stoc_follow
(
'
JOIN_GAME
'
,
false
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
JOIN_GAME
'
,
false
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
len3
,
len4
,
len5
,
line
,
n
,
o
,
p
,
player
,
recorder
,
ref4
,
ref5
,
ref6
,
room
,
watcher
;
var
len3
,
len4
,
len5
,
line
,
n
,
o
,
p
,
player
,
recorder
,
ref4
,
ref5
,
ref6
,
room
,
watcher
;
//欢迎信息
//欢迎信息
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
...
@@ -3419,7 +3419,7 @@
...
@@ -3419,7 +3419,7 @@
load_words
();
load_words
();
}
}
load_dialogues
=
global
.
load_dialogues
=
function
(
callback
)
{
load_dialogues
=
global
.
load_dialogues
=
async
function
(
callback
)
{
request
({
request
({
url
:
settings
.
modules
.
dialogues
.
get
,
url
:
settings
.
modules
.
dialogues
.
get
,
json
:
true
json
:
true
...
@@ -3465,7 +3465,7 @@
...
@@ -3465,7 +3465,7 @@
load_dialogues_custom
();
load_dialogues_custom
();
}
}
ygopro
.
stoc_follow
(
'
GAME_MSG
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
GAME_MSG
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
act_pos
,
card
,
chain
,
check
,
count
,
cpos
,
deck_found
,
found
,
hint_type
,
i
,
id
,
len10
,
len11
,
len3
,
len4
,
len5
,
len6
,
len7
,
len8
,
len9
,
limbo_found
,
line
,
loc
,
max_loop
,
msg
,
n
,
o
,
oppo_pos
,
p
,
phase
,
player
,
playertype
,
pos
,
ppos
,
q
,
r
,
r_player
,
reason
,
ref10
,
ref11
,
ref12
,
ref13
,
ref14
,
ref4
,
ref5
,
ref6
,
ref7
,
ref8
,
ref9
,
room
,
s
,
t
,
trigger_location
,
val
,
win_pos
,
x
,
y
,
z
;
var
act_pos
,
card
,
chain
,
check
,
count
,
cpos
,
deck_found
,
found
,
hint_type
,
i
,
id
,
len10
,
len11
,
len3
,
len4
,
len5
,
len6
,
len7
,
len8
,
len9
,
limbo_found
,
line
,
loc
,
max_loop
,
msg
,
n
,
o
,
oppo_pos
,
p
,
phase
,
player
,
playertype
,
pos
,
ppos
,
q
,
r
,
r_player
,
reason
,
ref10
,
ref11
,
ref12
,
ref13
,
ref14
,
ref4
,
ref5
,
ref6
,
ref7
,
ref8
,
ref9
,
room
,
s
,
t
,
trigger_location
,
val
,
win_pos
,
x
,
y
,
z
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
!
client
.
reconnecting
))
{
if
(
!
(
room
&&
!
client
.
reconnecting
))
{
...
@@ -3884,7 +3884,7 @@
...
@@ -3884,7 +3884,7 @@
});
});
//房间管理
//房间管理
ygopro
.
ctos_follow
(
'
HS_TOOBSERVER
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
HS_TOOBSERVER
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
len3
,
n
,
player
,
ref4
,
room
;
var
len3
,
n
,
player
,
ref4
,
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -3908,7 +3908,7 @@
...
@@ -3908,7 +3908,7 @@
return
false
;
return
false
;
});
});
ygopro
.
ctos_follow
(
'
HS_KICK
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
HS_KICK
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
len3
,
n
,
player
,
ref4
,
room
;
var
len3
,
n
,
player
,
ref4
,
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -3936,7 +3936,7 @@
...
@@ -3936,7 +3936,7 @@
return
false
;
return
false
;
});
});
ygopro
.
stoc_follow
(
'
TYPE_CHANGE
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
TYPE_CHANGE
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
is_host
,
selftype
;
var
is_host
,
selftype
;
selftype
=
info
.
type
&
0xf
;
selftype
=
info
.
type
&
0xf
;
is_host
=
((
info
.
type
>>
4
)
&
0xf
)
!==
0
;
is_host
=
((
info
.
type
>>
4
)
&
0xf
)
!==
0
;
...
@@ -3949,7 +3949,7 @@
...
@@ -3949,7 +3949,7 @@
return
false
;
return
false
;
});
});
ygopro
.
stoc_follow
(
'
HS_PLAYER_ENTER
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
HS_PLAYER_ENTER
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
pos
,
room
,
struct
;
var
pos
,
room
,
struct
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
settings
.
modules
.
hide_name
&&
room
.
duel_stage
===
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
))
{
if
(
!
(
room
&&
settings
.
modules
.
hide_name
&&
room
.
duel_stage
===
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
))
{
...
@@ -3965,7 +3965,7 @@
...
@@ -3965,7 +3965,7 @@
return
false
;
return
false
;
});
});
ygopro
.
stoc_follow
(
'
HS_PLAYER_CHANGE
'
,
false
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
HS_PLAYER_CHANGE
'
,
false
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
is_ready
,
len3
,
len4
,
n
,
o
,
p1
,
p2
,
player
,
pos
,
ref4
,
ref5
,
room
;
var
is_ready
,
len3
,
len4
,
n
,
o
,
p1
,
p2
,
player
,
pos
,
ref4
,
ref5
,
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
room
.
max_player
&&
client
.
is_host
))
{
if
(
!
(
room
&&
room
.
max_player
&&
client
.
is_host
))
{
...
@@ -4036,11 +4036,11 @@
...
@@ -4036,11 +4036,11 @@
}
}
});
});
ygopro
.
ctos_follow
(
'
REQUEST_FIELD
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
REQUEST_FIELD
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
return
true
;
return
true
;
});
});
ygopro
.
stoc_follow
(
'
FIELD_FINISH
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
FIELD_FINISH
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
room
;
var
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
settings
.
modules
.
reconnect
.
enabled
))
{
if
(
!
(
room
&&
settings
.
modules
.
reconnect
.
enabled
))
{
...
@@ -4058,8 +4058,8 @@
...
@@ -4058,8 +4058,8 @@
return
true
;
return
true
;
});
});
ygopro
.
stoc_follow
(
'
DUEL_END
'
,
false
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
DUEL_END
'
,
false
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
len3
,
len4
,
n
,
o
,
player
,
ref4
,
ref5
,
r
esults
,
r
oom
;
var
len3
,
len4
,
n
,
o
,
player
,
ref4
,
ref5
,
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
settings
.
modules
.
replay_delay
&&
room
.
hostinfo
.
mode
===
1
))
{
if
(
!
(
room
&&
settings
.
modules
.
replay_delay
&&
room
.
hostinfo
.
mode
===
1
))
{
return
;
return
;
...
@@ -4076,18 +4076,16 @@
...
@@ -4076,18 +4076,16 @@
}
}
}
}
ref5
=
room
.
watchers
;
ref5
=
room
.
watchers
;
results
=
[];
for
(
o
=
0
,
len4
=
ref5
.
length
;
o
<
len4
;
o
++
)
{
for
(
o
=
0
,
len4
=
ref5
.
length
;
o
<
len4
;
o
++
)
{
player
=
ref5
[
o
];
player
=
ref5
[
o
];
if
(
player
)
{
if
(
player
)
{
results
.
push
(
CLIENT_send_replays
(
player
,
room
)
);
CLIENT_send_replays
(
player
,
room
);
}
}
}
}
return
results
;
}
}
});
});
wait_room_start
=
function
(
room
,
time
)
{
wait_room_start
=
async
function
(
room
,
time
)
{
var
len3
,
n
,
player
,
ref4
;
var
len3
,
n
,
player
,
ref4
;
if
(
room
&&
room
.
duel_stage
===
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
&&
room
.
ready_player_count_without_host
>=
room
.
max_player
-
1
)
{
if
(
room
&&
room
.
duel_stage
===
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
&&
room
.
ready_player_count_without_host
>=
room
.
max_player
-
1
)
{
time
-=
1
;
time
-=
1
;
...
@@ -4112,7 +4110,7 @@
...
@@ -4112,7 +4110,7 @@
}
}
};
};
wait_room_start_arena
=
function
(
room
)
{
wait_room_start_arena
=
async
function
(
room
)
{
var
display_name
,
len3
,
n
,
player
,
ref4
;
var
display_name
,
len3
,
n
,
player
,
ref4
;
if
(
room
&&
room
.
duel_stage
===
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
&&
room
.
waiting_for_player
)
{
if
(
room
&&
room
.
duel_stage
===
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
&&
room
.
waiting_for_player
)
{
room
.
waiting_for_player_time
=
room
.
waiting_for_player_time
-
1
;
room
.
waiting_for_player_time
=
room
.
waiting_for_player_time
-
1
;
...
@@ -4140,7 +4138,7 @@
...
@@ -4140,7 +4138,7 @@
};
};
//tip
//tip
ygopro
.
stoc_send_random_tip
=
function
(
client
)
{
ygopro
.
stoc_send_random_tip
=
async
function
(
client
)
{
var
tip_type
;
var
tip_type
;
tip_type
=
"
tips
"
;
tip_type
=
"
tips
"
;
if
(
settings
.
modules
.
tips
.
split_zh
&&
tips
.
tips_zh
.
length
&&
client
.
lang
===
"
zh-cn
"
)
{
if
(
settings
.
modules
.
tips
.
split_zh
&&
tips
.
tips_zh
.
length
&&
client
.
lang
===
"
zh-cn
"
)
{
...
@@ -4151,7 +4149,7 @@
...
@@ -4151,7 +4149,7 @@
}
}
};
};
ygopro
.
stoc_send_random_tip_to_room
=
function
(
room
)
{
ygopro
.
stoc_send_random_tip_to_room
=
async
function
(
room
)
{
var
len3
,
len4
,
n
,
o
,
player
,
ref4
,
ref5
;
var
len3
,
len4
,
n
,
o
,
player
,
ref4
,
ref5
;
if
(
settings
.
modules
.
tips
.
enabled
&&
tips
.
tips
.
length
)
{
if
(
settings
.
modules
.
tips
.
enabled
&&
tips
.
tips
.
length
)
{
ref4
=
room
.
players
;
ref4
=
room
.
players
;
...
@@ -4171,7 +4169,7 @@
...
@@ -4171,7 +4169,7 @@
}
}
};
};
load_tips
=
global
.
load_tips
=
function
(
callback
)
{
load_tips
=
global
.
load_tips
=
async
function
(
callback
)
{
request
({
request
({
url
:
settings
.
modules
.
tips
.
get
,
url
:
settings
.
modules
.
tips
.
get
,
json
:
true
json
:
true
...
@@ -4190,7 +4188,7 @@
...
@@ -4190,7 +4188,7 @@
});
});
};
};
load_tips_zh
=
global
.
load_tips_zh
=
function
(
callback
)
{
load_tips_zh
=
global
.
load_tips_zh
=
async
function
(
callback
)
{
request
({
request
({
url
:
settings
.
modules
.
tips
.
get_zh
,
url
:
settings
.
modules
.
tips
.
get_zh
,
json
:
true
json
:
true
...
@@ -4231,7 +4229,7 @@
...
@@ -4231,7 +4229,7 @@
},
30000
);
},
30000
);
}
}
ygopro
.
stoc_follow
(
'
DUEL_START
'
,
false
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
DUEL_START
'
,
false
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
deck_arena
,
deck_name
,
deck_text
,
len3
,
len4
,
n
,
o
,
player
,
ref4
,
ref5
,
room
;
var
deck_arena
,
deck_name
,
deck_text
,
len3
,
len4
,
n
,
o
,
player
,
ref4
,
ref5
,
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
!
client
.
reconnecting
))
{
if
(
!
(
room
&&
!
client
.
reconnecting
))
{
...
@@ -4341,7 +4339,7 @@
...
@@ -4341,7 +4339,7 @@
}
}
});
});
ygopro
.
ctos_follow
(
'
SURRENDER
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
SURRENDER
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
room
,
sur_player
;
var
room
,
sur_player
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -4368,7 +4366,7 @@
...
@@ -4368,7 +4366,7 @@
return
false
;
return
false
;
});
});
report_to_big_brother
=
global
.
report_to_big_brother
=
function
(
roomname
,
sender
,
ip
,
level
,
content
,
match
)
{
report_to_big_brother
=
global
.
report_to_big_brother
=
async
function
(
roomname
,
sender
,
ip
,
level
,
content
,
match
)
{
if
(
!
settings
.
modules
.
big_brother
.
enabled
)
{
if
(
!
settings
.
modules
.
big_brother
.
enabled
)
{
return
;
return
;
}
}
...
@@ -4396,7 +4394,7 @@
...
@@ -4396,7 +4394,7 @@
//else
//else
//log.info 'BIG BROTHER OK', response.statusCode, roomname, body
//log.info 'BIG BROTHER OK', response.statusCode, roomname, body
ygopro
.
ctos_follow
(
'
CHAT
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
CHAT
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
buy_result
,
cancel
,
ccolor
,
cip
,
cmd
,
cmsg
,
cname
,
code
,
color
,
cvalue
,
key
,
msg
,
name
,
oldmsg
,
ref4
,
room
,
struct
,
sur_player
,
uname
,
windbot
,
word
;
var
buy_result
,
cancel
,
ccolor
,
cip
,
cmd
,
cmsg
,
cname
,
code
,
color
,
cvalue
,
key
,
msg
,
name
,
oldmsg
,
ref4
,
room
,
struct
,
sur_player
,
uname
,
windbot
,
word
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -4738,7 +4736,7 @@
...
@@ -4738,7 +4736,7 @@
return
cancel
;
return
cancel
;
});
});
ygopro
.
ctos_follow
(
'
UPDATE_DECK
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
UPDATE_DECK
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
buff_main
,
buff_side
,
card
,
current_deck
,
deck
,
deck_array
,
deck_main
,
deck_side
,
deck_text
,
deckbuf
,
decks
,
found_deck
,
i
,
len3
,
len4
,
line
,
n
,
o
,
oppo_pos
,
recover_player_data
,
room
,
struct
,
win_pos
;
var
buff_main
,
buff_side
,
card
,
current_deck
,
deck
,
deck_array
,
deck_main
,
deck_side
,
deck_text
,
deckbuf
,
decks
,
found_deck
,
i
,
len3
,
len4
,
line
,
n
,
o
,
oppo_pos
,
recover_player_data
,
room
,
struct
,
win_pos
;
if
(
settings
.
modules
.
reconnect
.
enabled
&&
client
.
pre_reconnecting
)
{
if
(
settings
.
modules
.
reconnect
.
enabled
&&
client
.
pre_reconnecting
)
{
if
(
!
CLIENT_is_able_to_reconnect
(
client
)
&&
!
CLIENT_is_able_to_kick_reconnect
(
client
))
{
if
(
!
CLIENT_is_able_to_reconnect
(
client
)
&&
!
CLIENT_is_able_to_kick_reconnect
(
client
))
{
...
@@ -4885,7 +4883,7 @@
...
@@ -4885,7 +4883,7 @@
return
false
;
return
false
;
});
});
ygopro
.
ctos_follow
(
'
RESPONSE
'
,
false
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
RESPONSE
'
,
false
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
room
;
var
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
(
room
.
random_type
||
room
.
arena
)))
{
if
(
!
(
room
&&
(
room
.
random_type
||
room
.
arena
)))
{
...
@@ -4894,7 +4892,7 @@
...
@@ -4894,7 +4892,7 @@
room
.
last_active_time
=
moment
();
room
.
last_active_time
=
moment
();
});
});
ygopro
.
stoc_follow
(
'
TIME_LIMIT
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
TIME_LIMIT
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
check
,
cur_players
,
room
;
var
check
,
cur_players
,
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -4951,7 +4949,7 @@
...
@@ -4951,7 +4949,7 @@
return
false
;
return
false
;
});
});
ygopro
.
ctos_follow
(
'
TIME_CONFIRM
'
,
false
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
TIME_CONFIRM
'
,
false
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
room
;
var
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -4979,7 +4977,7 @@
...
@@ -4979,7 +4977,7 @@
}
}
});
});
ygopro
.
ctos_follow
(
'
HAND_RESULT
'
,
false
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
HAND_RESULT
'
,
false
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
room
;
var
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -4994,7 +4992,7 @@
...
@@ -4994,7 +4992,7 @@
}
}
});
});
ygopro
.
ctos_follow
(
'
TP_RESULT
'
,
false
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
ctos_follow
(
'
TP_RESULT
'
,
false
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
room
;
var
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -5008,7 +5006,7 @@
...
@@ -5008,7 +5006,7 @@
room
.
last_active_time
=
moment
();
room
.
last_active_time
=
moment
();
});
});
ygopro
.
stoc_follow
(
'
CHAT
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
CHAT
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
len3
,
n
,
pid
,
player
,
ref4
,
room
,
tcolor
,
tplayer
;
var
len3
,
n
,
pid
,
player
,
ref4
,
room
,
tcolor
,
tplayer
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
pid
=
info
.
player
;
pid
=
info
.
player
;
...
@@ -5047,7 +5045,7 @@
...
@@ -5047,7 +5045,7 @@
}
}
});
});
ygopro
.
stoc_follow
(
'
SELECT_HAND
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
SELECT_HAND
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
room
;
var
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -5075,7 +5073,7 @@
...
@@ -5075,7 +5073,7 @@
return
false
;
return
false
;
});
});
ygopro
.
stoc_follow
(
'
HAND_RESULT
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
HAND_RESULT
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
room
;
var
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -5084,7 +5082,7 @@
...
@@ -5084,7 +5082,7 @@
return
room
.
determine_firstgo
;
return
room
.
determine_firstgo
;
});
});
ygopro
.
stoc_follow
(
'
SELECT_TP
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
SELECT_TP
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
room
;
var
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -5107,7 +5105,7 @@
...
@@ -5107,7 +5105,7 @@
return
false
;
return
false
;
});
});
ygopro
.
stoc_follow
(
'
CHANGE_SIDE
'
,
false
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
CHANGE_SIDE
'
,
false
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
room
,
room_name
,
sinterval
,
temp_log
;
var
room
,
room_name
,
sinterval
,
temp_log
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
@@ -5166,7 +5164,7 @@
...
@@ -5166,7 +5164,7 @@
}
}
});
});
ygopro
.
stoc_follow
(
'
REPLAY
'
,
true
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
ygopro
.
stoc_follow
(
'
REPLAY
'
,
true
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
duellog
,
dueltime
,
i
,
len3
,
len4
,
n
,
o
,
player
,
ref4
,
ref5
,
replay_filename
,
room
;
var
duellog
,
dueltime
,
i
,
len3
,
len4
,
n
,
o
,
player
,
ref4
,
ref5
,
replay_filename
,
room
;
room
=
ROOM_all
[
client
.
rid
];
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
if
(
!
room
)
{
...
...
ygopro.coffee
View file @
9494c3c6
...
@@ -18,7 +18,7 @@ YGOProMessageHelper = require("./YGOProMessages.js") # 为 SRVPro2 准备的库
...
@@ -18,7 +18,7 @@ YGOProMessageHelper = require("./YGOProMessages.js") # 为 SRVPro2 准备的库
translateHandler
=
(
handler
)
->
translateHandler
=
(
handler
)
->
return
(
buffer
,
info
,
datas
,
params
)
->
return
(
buffer
,
info
,
datas
,
params
)
->
await
return
handler
(
buffer
,
info
,
params
.
client
,
params
.
server
,
datas
)
await
return
await
handler
(
buffer
,
info
,
params
.
client
,
params
.
server
,
datas
)
@
stoc_follow
=
(
proto
,
synchronous
,
callback
)
->
@
stoc_follow
=
(
proto
,
synchronous
,
callback
)
->
@
helper
.
addHandler
(
"STOC_
#{
proto
}
"
,
translateHandler
(
callback
),
synchronous
,
1
)
@
helper
.
addHandler
(
"STOC_
#{
proto
}
"
,
translateHandler
(
callback
),
synchronous
,
1
)
...
...
ygopro.js
View file @
9494c3c6
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
translateHandler
=
function
(
handler
)
{
translateHandler
=
function
(
handler
)
{
return
async
function
(
buffer
,
info
,
datas
,
params
)
{
return
async
function
(
buffer
,
info
,
datas
,
params
)
{
return
handler
(
buffer
,
info
,
params
.
client
,
params
.
server
,
datas
);
return
(
await
handler
(
buffer
,
info
,
params
.
client
,
params
.
server
,
datas
)
);
};
};
};
};
...
...
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