Commit c03df9cd authored by nanahira's avatar nanahira

Merge branch 'mc'

parents b76a7639 c6056e21
Pipeline #552 passed with stages
in 10 minutes and 55 seconds
{ {
"file": "./config/config.json", "file": "./config/config.json",
"port": 7911, "port": 7911,
"version": 4930, "version": 4945,
"alternative_versions": [],
"hostinfo": { "hostinfo": {
"lflist": 0, "lflist": 0,
"rule": 0, "rule": 0,
......
...@@ -1642,7 +1642,7 @@ class Room ...@@ -1642,7 +1642,7 @@ class Room
else else
for player in @players when player.pos != 7 for player in @players when player.pos != 7
@scores[player.name_vpass] = -5 @scores[player.name_vpass] = -5
if @players.length == 2 if @players.length == 2 and !client.arena_quit_free
@scores[client.name_vpass] = -9 @scores[client.name_vpass] = -9
@arena_score_handled = true @arena_score_handled = true
index = _.indexOf(@players, client) index = _.indexOf(@players, client)
...@@ -2064,7 +2064,7 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2064,7 +2064,7 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
replay_id=Cloud_replay_ids[Math.floor(Math.random()*Cloud_replay_ids.length)] replay_id=Cloud_replay_ids[Math.floor(Math.random()*Cloud_replay_ids.length)]
redisdb.hgetall "replay:"+replay_id, client.open_cloud_replay redisdb.hgetall "replay:"+replay_id, client.open_cloud_replay
else if info.version != settings.version # and (info.version < 9020 or settings.version != 4927) #强行兼容23333版 else if info.version != settings.version and !settings.alternative_versions.includes(info.version)
ygopro.stoc_send_chat(client, settings.modules.update, ygopro.constants.COLORS.RED) ygopro.stoc_send_chat(client, settings.modules.update, ygopro.constants.COLORS.RED)
ygopro.stoc_send client, 'ERROR_MSG', { ygopro.stoc_send client, 'ERROR_MSG', {
msg: 4 msg: 4
...@@ -2081,12 +2081,12 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2081,12 +2081,12 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
ygopro.stoc_die(client, '${invalid_password_length}') ygopro.stoc_die(client, '${invalid_password_length}')
return return
#if info.version >= 9020 and settings.version == 4927 #强行兼容23333版 if info.version != settings.version and settings.alternative_versions.includes(info.version)
# info.version = settings.version info.version = settings.version
# struct = ygopro.structs.get("CTOS_JoinGame") struct = ygopro.structs.get("CTOS_JoinGame")
# struct._setBuff(buffer) struct._setBuff(buffer)
# struct.set("version", info.version) struct.set("version", info.version)
# buffer = struct.buffer buffer = struct.buffer
buffer = Buffer.from(info.pass[0...8], 'base64') buffer = Buffer.from(info.pass[0...8], 'base64')
...@@ -2312,6 +2312,12 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2312,6 +2312,12 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
else if settings.modules.challonge.enabled else if settings.modules.challonge.enabled
if info.version != settings.version and settings.alternative_versions.includes(info.version)
info.version = settings.version
struct = ygopro.structs.get("CTOS_JoinGame")
struct._setBuff(buffer)
struct.set("version", info.version)
buffer = struct.buffer
pre_room = ROOM_find_by_name(info.pass) pre_room = ROOM_find_by_name(info.pass)
if pre_room and pre_room.duel_stage != ygopro.constants.DUEL_STAGE.BEGIN and settings.modules.cloud_replay.enable_halfway_watch and !pre_room.hostinfo.no_watch if pre_room and pre_room.duel_stage != ygopro.constants.DUEL_STAGE.BEGIN and settings.modules.cloud_replay.enable_halfway_watch and !pre_room.hostinfo.no_watch
room = pre_room room = pre_room
...@@ -2454,13 +2460,12 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2454,13 +2460,12 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
ygopro.stoc_die(client, "${invalid_password_room}") ygopro.stoc_die(client, "${invalid_password_room}")
else else
#if info.version >= 9020 and settings.version == 4927 #强行兼容23333版 if info.version != settings.version and settings.alternative_versions.includes(info.version)
# info.version = settings.version info.version = settings.version
# struct = ygopro.structs.get("CTOS_JoinGame") struct = ygopro.structs.get("CTOS_JoinGame")
# struct._setBuff(buffer) struct._setBuff(buffer)
# struct.set("version", info.version) struct.set("version", info.version)
# buffer = struct.buffer buffer = struct.buffer
# #ygopro.stoc_send_chat(client, "看起来你是YGOMobile的用户,请记得更新先行卡补丁,否则会看到白卡", ygopro.constants.COLORS.GREEN)
#log.info 'join_game',info.pass, client.name #log.info 'join_game',info.pass, client.name
room = ROOM_find_or_create_by_name(info.pass, client.ip) room = ROOM_find_or_create_by_name(info.pass, client.ip)
...@@ -3936,7 +3941,7 @@ if settings.modules.mycard.enabled ...@@ -3936,7 +3941,7 @@ if settings.modules.mycard.enabled
return return
) )
if settings.modules.arena_mode.punish_quit_before_match if true # settings.modules.arena_mode.punish_quit_before_match
_async.each(ROOM_all, (room, done) -> _async.each(ROOM_all, (room, done) ->
if not (room and room.arena and room.duel_stage == ygopro.constants.DUEL_STAGE.BEGIN and room.get_playing_player().length < 2) if not (room and room.arena and room.duel_stage == ygopro.constants.DUEL_STAGE.BEGIN and room.get_playing_player().length < 2)
done() done()
......
...@@ -2222,7 +2222,7 @@ ...@@ -2222,7 +2222,7 @@
this.scores[player.name_vpass] = -5; this.scores[player.name_vpass] = -5;
} }
} }
if (this.players.length === 2) { if (this.players.length === 2 && !client.arena_quit_free) {
this.scores[client.name_vpass] = -9; this.scores[client.name_vpass] = -9;
} }
} }
...@@ -2689,7 +2689,7 @@ ...@@ -2689,7 +2689,7 @@
}); });
ygopro.ctos_follow('JOIN_GAME', true, async function(buffer, info, client, server, datas) { ygopro.ctos_follow('JOIN_GAME', true, 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, struct;
//log.info info //log.info info
info.pass = info.pass.trim(); info.pass = info.pass.trim();
client.pass = info.pass; client.pass = info.pass;
...@@ -2764,7 +2764,7 @@ ...@@ -2764,7 +2764,7 @@
} else if (info.pass.toUpperCase() === "W" && settings.modules.cloud_replay.enabled) { } else if (info.pass.toUpperCase() === "W" && settings.modules.cloud_replay.enabled) {
replay_id = Cloud_replay_ids[Math.floor(Math.random() * Cloud_replay_ids.length)]; replay_id = Cloud_replay_ids[Math.floor(Math.random() * Cloud_replay_ids.length)];
redisdb.hgetall("replay:" + replay_id, client.open_cloud_replay); redisdb.hgetall("replay:" + replay_id, client.open_cloud_replay);
} else if (info.version !== settings.version) { // and (info.version < 9020 or settings.version != 4927) #强行兼容23333版 } else if (info.version !== settings.version && !settings.alternative_versions.includes(info.version)) {
ygopro.stoc_send_chat(client, settings.modules.update, ygopro.constants.COLORS.RED); ygopro.stoc_send_chat(client, settings.modules.update, ygopro.constants.COLORS.RED);
ygopro.stoc_send(client, 'ERROR_MSG', { ygopro.stoc_send(client, 'ERROR_MSG', {
msg: 4, msg: 4,
...@@ -2779,12 +2779,13 @@ ...@@ -2779,12 +2779,13 @@
ygopro.stoc_die(client, '${invalid_password_length}'); ygopro.stoc_die(client, '${invalid_password_length}');
return; return;
} }
//if info.version >= 9020 and settings.version == 4927 #强行兼容23333版 if (info.version !== settings.version && settings.alternative_versions.includes(info.version)) {
// info.version = settings.version info.version = settings.version;
// struct = ygopro.structs.get("CTOS_JoinGame") struct = ygopro.structs.get("CTOS_JoinGame");
// struct._setBuff(buffer) struct._setBuff(buffer);
// struct.set("version", info.version) struct.set("version", info.version);
// buffer = struct.buffer buffer = struct.buffer;
}
buffer = Buffer.from(info.pass.slice(0, 8), 'base64'); buffer = Buffer.from(info.pass.slice(0, 8), 'base64');
if (buffer.length !== 6) { if (buffer.length !== 6) {
ygopro.stoc_die(client, '${invalid_password_payload}'); ygopro.stoc_die(client, '${invalid_password_payload}');
...@@ -3062,6 +3063,13 @@ ...@@ -3062,6 +3063,13 @@
return create_room_with_action(data.get_user.original, data.get_user.decrypted, data.match_permit); return create_room_with_action(data.get_user.original, data.get_user.decrypted, data.match_permit);
}); });
} else if (settings.modules.challonge.enabled) { } else if (settings.modules.challonge.enabled) {
if (info.version !== settings.version && settings.alternative_versions.includes(info.version)) {
info.version = settings.version;
struct = ygopro.structs.get("CTOS_JoinGame");
struct._setBuff(buffer);
struct.set("version", info.version);
buffer = struct.buffer;
}
pre_room = ROOM_find_by_name(info.pass); pre_room = ROOM_find_by_name(info.pass);
if (pre_room && pre_room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && settings.modules.cloud_replay.enable_halfway_watch && !pre_room.hostinfo.no_watch) { if (pre_room && pre_room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && settings.modules.cloud_replay.enable_halfway_watch && !pre_room.hostinfo.no_watch) {
room = pre_room; room = pre_room;
...@@ -3233,14 +3241,13 @@ ...@@ -3233,14 +3241,13 @@
} else if (info.pass.length && !ROOM_validate(info.pass)) { } else if (info.pass.length && !ROOM_validate(info.pass)) {
ygopro.stoc_die(client, "${invalid_password_room}"); ygopro.stoc_die(client, "${invalid_password_room}");
} else { } else {
//if info.version >= 9020 and settings.version == 4927 #强行兼容23333版 if (info.version !== settings.version && settings.alternative_versions.includes(info.version)) {
// info.version = settings.version info.version = settings.version;
// struct = ygopro.structs.get("CTOS_JoinGame") struct = ygopro.structs.get("CTOS_JoinGame");
// struct._setBuff(buffer) struct._setBuff(buffer);
// struct.set("version", info.version) struct.set("version", info.version);
// buffer = struct.buffer buffer = struct.buffer;
// #ygopro.stoc_send_chat(client, "看起来你是YGOMobile的用户,请记得更新先行卡补丁,否则会看到白卡", ygopro.constants.COLORS.GREEN) }
//log.info 'join_game',info.pass, client.name //log.info 'join_game',info.pass, client.name
room = ROOM_find_or_create_by_name(info.pass, client.ip); room = ROOM_find_or_create_by_name(info.pass, client.ip);
if (!room) { if (!room) {
...@@ -5302,7 +5309,7 @@ ...@@ -5302,7 +5309,7 @@
} }
done(); done();
}); });
if (settings.modules.arena_mode.punish_quit_before_match) { if (true) { // settings.modules.arena_mode.punish_quit_before_match
_async.each(ROOM_all, function(room, done) { _async.each(ROOM_all, function(room, done) {
var player, waited_time; var player, waited_time;
if (!(room && room.arena && room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN && room.get_playing_player().length < 2)) { if (!(room && room.arena && room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN && room.get_playing_player().length < 2)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment