Commit 6a67ab4c authored by nanahira's avatar nanahira

restrict siding for some tournaments

parent 3a5e237a
......@@ -156,6 +156,10 @@
"password": "123456",
"port": 7933
},
"side_restrict": {
"enabled": false,
"restrict_cards": []
},
"test_mode": {
"watch_public_hand": false,
"no_connect_count_limit": false,
......
......@@ -155,6 +155,7 @@
"challonge_player_already_in": "Please do not enter the room you are already in.",
"replay_hint_part1": "Sending the replay of the duel number ",
"replay_hint_part2": ".",
"invalid_side_rule": "Illegal cards are contained in your side deck.",
"athletic_arena_tip": "During an athletic match, a game quit behavior is regarded as a surrender."
},
"es-es": {
......@@ -457,6 +458,7 @@
"challonge_player_already_in": "请不要重复加入比赛房间。",
"replay_hint_part1": "正在发送第",
"replay_hint_part2": "局决斗的录像。",
"invalid_side_rule": "副卡组中包含不允许换入副卡组的卡。",
"athletic_arena_tip": "在竞技匹配中,比赛开始前退出游戏也会视为投降。"
},
"ko-kr": {
......
......@@ -2832,6 +2832,15 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)->
CLIENT_kick(room.dueling_players[oppo_pos - win_pos])
CLIENT_kick(room.dueling_players[oppo_pos - win_pos + 1]) if room.hostinfo.mode == 2
return true
if settings.modules.side_restrict.enabled and room.started
for code in settings.modules.side_restrict.restrict_cards
if _.indexOf(buff_side, code) > -1
ygopro.stoc_send_chat_to_room(room, "${invalid_side_rule}", ygopro.constants.COLORS.RED)
ygopro.stoc_send client, 'ERROR_MSG', {
msg: 3
code: 0
}
return true
if room.random_type or room.arena
if client.pos == 0
room.waiting_for_player = room.waiting_for_player2
......
......@@ -3512,7 +3512,7 @@
});
ygopro.ctos_follow('UPDATE_DECK', true, 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, len2, len3, line, m, n, oppo_pos, room, struct, win_pos;
var buff_main, buff_side, card, code, current_deck, deck, deck_array, deck_main, deck_side, deck_text, deckbuf, decks, found_deck, i, len2, len3, len4, line, m, n, o, oppo_pos, ref2, room, struct, win_pos;
if (settings.modules.reconnect.enabled && client.pre_reconnecting) {
if (!CLIENT_is_able_to_reconnect(client) && !CLIENT_is_able_to_kick_reconnect(client)) {
ygopro.stoc_send_chat(client, "${reconnect_failed}", ygopro.constants.COLORS.RED);
......@@ -3588,6 +3588,20 @@
}
return true;
}
if (settings.modules.side_restrict.enabled && room.started) {
ref2 = settings.modules.side_restrict.restrict_cards;
for (m = 0, len2 = ref2.length; m < len2; m++) {
code = ref2[m];
if (_.indexOf(buff_side, code) > -1) {
ygopro.stoc_send_chat_to_room(room, "${invalid_side_rule}", ygopro.constants.COLORS.RED);
ygopro.stoc_send(client, 'ERROR_MSG', {
msg: 3,
code: 0
});
return true;
}
}
}
if (room.random_type || room.arena) {
if (client.pos === 0) {
room.waiting_for_player = room.waiting_for_player2;
......@@ -3602,8 +3616,8 @@
buffer = struct.buffer;
found_deck = false;
decks = fs.readdirSync(settings.modules.tournament_mode.deck_path);
for (m = 0, len2 = decks.length; m < len2; m++) {
deck = decks[m];
for (n = 0, len3 = decks.length; n < len3; n++) {
deck = decks[n];
if (_.endsWith(deck, client.name + ".ydk")) {
found_deck = deck;
}
......@@ -3619,8 +3633,8 @@
deck_main = [];
deck_side = [];
current_deck = deck_main;
for (n = 0, len3 = deck_array.length; n < len3; n++) {
line = deck_array[n];
for (o = 0, len4 = deck_array.length; o < len4; o++) {
line = deck_array[o];
if (line.indexOf("!side") >= 0) {
current_deck = deck_side;
}
......
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