Commit 4179965b authored by nanahira's avatar nanahira

Merge branch 'mc'

parents 165c2f4b 39855b0e
...@@ -992,10 +992,12 @@ CLIENT_send_replays = (client, room) -> ...@@ -992,10 +992,12 @@ CLIENT_send_replays = (client, room) ->
return true return true
SOCKET_flush_data = (sk, datas) -> SOCKET_flush_data = (sk, datas) ->
if !sk or sk.closed
return false
for buffer in datas for buffer in datas
sk.write(buffer) sk.write(buffer)
datas.splice(0, datas.length) datas.splice(0, datas.length)
return return true
class Room class Room
constructor: (name, @hostinfo) -> constructor: (name, @hostinfo) ->
...@@ -2718,10 +2720,10 @@ ygopro.stoc_follow 'DUEL_END', false, (buffer, info, client, server, datas)-> ...@@ -2718,10 +2720,10 @@ ygopro.stoc_follow 'DUEL_END', false, (buffer, info, client, server, datas)->
return unless room and settings.modules.replay_delay and room.hostinfo.mode == 1 return unless room and settings.modules.replay_delay and room.hostinfo.mode == 1
SOCKET_flush_data(client, datas) SOCKET_flush_data(client, datas)
CLIENT_send_replays(client, room) CLIENT_send_replays(client, room)
if !room.replays_sent_to_watchers if !room.replays_sent_to_watchers and (client.pos == 0 or !room.dueling_players[0] or room.dueling_players[0].closed)
room.replays_sent_to_watchers = true room.replays_sent_to_watchers = true
# for player in room.players when player and player.pos > 3 for player in room.players when player and player.pos > 3
# 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)
......
...@@ -1294,11 +1294,15 @@ ...@@ -1294,11 +1294,15 @@
SOCKET_flush_data = function(sk, datas) { SOCKET_flush_data = function(sk, datas) {
var buffer, len2, m; var buffer, len2, m;
if (!sk || sk.closed) {
return false;
}
for (m = 0, len2 = datas.length; m < len2; m++) { for (m = 0, len2 = datas.length; m < len2; m++) {
buffer = datas[m]; buffer = datas[m];
sk.write(buffer); sk.write(buffer);
} }
datas.splice(0, datas.length); datas.splice(0, datas.length);
return true;
}; };
Room = (function() { Room = (function() {
...@@ -3421,19 +3425,26 @@ ...@@ -3421,19 +3425,26 @@
}); });
ygopro.stoc_follow('DUEL_END', false, function(buffer, info, client, server, datas) { ygopro.stoc_follow('DUEL_END', false, function(buffer, info, client, server, datas) {
var len2, m, player, ref3, results, room; var len2, len3, m, n, player, ref3, ref4, results, 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;
} }
SOCKET_flush_data(client, datas); SOCKET_flush_data(client, datas);
CLIENT_send_replays(client, room); CLIENT_send_replays(client, room);
if (!room.replays_sent_to_watchers) { if (!room.replays_sent_to_watchers && (client.pos === 0 || !room.dueling_players[0] || room.dueling_players[0].closed)) {
room.replays_sent_to_watchers = true; room.replays_sent_to_watchers = true;
ref3 = room.watchers; ref3 = room.players;
results = [];
for (m = 0, len2 = ref3.length; m < len2; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (player && player.pos > 3) {
CLIENT_send_replays(player, room);
}
}
ref4 = room.watchers;
results = [];
for (n = 0, len3 = ref4.length; n < len3; n++) {
player = ref4[n];
if (player) { if (player) {
results.push(CLIENT_send_replays(player, room)); results.push(CLIENT_send_replays(player, room));
} }
......
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