Commit 386ddaeb authored by nanahira's avatar nanahira

Revert "compat pre release cards with koishipro official code data"

This reverts commit ee285a5a.
parent daa781c4
...@@ -80,11 +80,6 @@ ...@@ -80,11 +80,6 @@
"enabled": false, "enabled": false,
"generate_count": 500 "generate_count": 500
}, },
"pre_release_compat": {
"enabled": false,
"official_database": "./ygopro/cards.cdb",
"pre_release_database": "./../ygopro-pre-data/expansions/pre-release.cdb"
},
"random_duel": { "random_duel": {
"enabled": true, "enabled": true,
"no_rematch_check": false, "no_rematch_check": false,
......
...@@ -186,7 +186,6 @@ ...@@ -186,7 +186,6 @@
"vip_set_victory": "Your victory word have been set.", "vip_set_victory": "Your victory word have been set.",
"vip_password_changed": "Password changed.", "vip_password_changed": "Password changed.",
"vip_player_name_too_long": "Your username or password is too long to log in. Please change your username and try again.", "vip_player_name_too_long": "Your username or password is too long to log in. Please change your username and try again.",
"pre_release_compat_hint": "It seems like you're a duelist with pre-release cards. The pre-release compat mode is turned on.",
"replay_hint_part1": "Sending the replay of the duel number ", "replay_hint_part1": "Sending the replay of the duel number ",
"replay_hint_part2": ".", "replay_hint_part2": ".",
"invalid_side_rule": "Illegal cards are contained in your side deck.", "invalid_side_rule": "Illegal cards are contained in your side deck.",
...@@ -528,7 +527,6 @@ ...@@ -528,7 +527,6 @@
"vip_set_victory": "已设置胜利台词。", "vip_set_victory": "已设置胜利台词。",
"vip_password_changed": "密码修改成功。", "vip_password_changed": "密码修改成功。",
"vip_player_name_too_long": "你的用户名或设置的密码太长,使用此用户名可能会无法登陆。请更换用户名重试。", "vip_player_name_too_long": "你的用户名或设置的密码太长,使用此用户名可能会无法登陆。请更换用户名重试。",
"pre_release_compat_hint": "看起来你是使用先行卡数据的用户,已开启先行卡兼容模式。",
"replay_hint_part1": "正在发送第", "replay_hint_part1": "正在发送第",
"replay_hint_part2": "局决斗的录像。", "replay_hint_part2": "局决斗的录像。",
"invalid_side_rule": "副卡组中包含不允许换入副卡组的卡。", "invalid_side_rule": "副卡组中包含不允许换入副卡组的卡。",
......
...@@ -44,7 +44,6 @@ import_datas = global.import_datas = [ ...@@ -44,7 +44,6 @@ import_datas = global.import_datas = [
"abuse_count", "abuse_count",
"ban_mc", "ban_mc",
"vip", "vip",
"is_using_pre_release",
"vpass", "vpass",
"rag", "rag",
"rid", "rid",
...@@ -403,9 +402,6 @@ if settings.modules.windbot.enabled ...@@ -403,9 +402,6 @@ if settings.modules.windbot.enabled
if settings.modules.heartbeat_detection.enabled if settings.modules.heartbeat_detection.enabled
long_resolve_cards = global.long_resolve_cards = loadJSON('./data/long_resolve_cards.json') long_resolve_cards = global.long_resolve_cards = loadJSON('./data/long_resolve_cards.json')
if settings.modules.pre_release_compat.enabled
sqlite3 = require('sqlite3').verbose()
# 组件 # 组件
ygopro = global.ygopro = require './ygopro.js' ygopro = global.ygopro = require './ygopro.js'
roomlist = global.roomlist = require './roomlist.js' if settings.modules.http.websocket_roomlist roomlist = global.roomlist = require './roomlist.js' if settings.modules.http.websocket_roomlist
...@@ -1102,22 +1098,6 @@ SOCKET_flush_data = global.SOCKET_flush_data = (sk, datas) -> ...@@ -1102,22 +1098,6 @@ SOCKET_flush_data = global.SOCKET_flush_data = (sk, datas) ->
datas.splice(0, datas.length) datas.splice(0, datas.length)
return true return true
replace_buffer = global.replace_buffer = (buffer, list, start_pos) ->
found = 0
len = buffer.length
if len < 4 + start_pos
return 0
for i in [start_pos...len - 3]
code = buffer.readInt32LE(i)
if list[code]
code = list[code]
buffer.writeInt32LE(code, i)
found++
i += 3
if i >= len - 4
break
return found
class Room class Room
constructor: (name, @hostinfo) -> constructor: (name, @hostinfo) ->
@name = name @name = name
...@@ -1142,44 +1122,6 @@ class Room ...@@ -1142,44 +1122,6 @@ class Room
@replays = [] @replays = []
ROOM_all.push this ROOM_all.push this
if settings.modules.pre_release_compat.enabled
list_official_to_pre = {}
list_pre_to_official = {}
@list_official_to_pre = list_official_to_pre
@list_pre_to_official = list_pre_to_official
temp_list = {}
try
official_database = new sqlite3.Database(settings.modules.pre_release_compat.official_database)
pre_release_database = new sqlite3.Database(settings.modules.pre_release_compat.pre_release_database)
pre_release_database.each("select id,name from texts", (err, result) ->
if err
log.warn("Error loading pre-release database.", err)
else
temp_list[result.name] = result.id
return
, (err) ->
if err
log.warn("Error loaded pre-release database.", err)
else
official_database.each("select id,name from texts", (err, result) ->
if err
log.warn("Error loading official database.", err)
else if temp_list[result.name] and temp_list[result.name] != result.id
official_code = result.id
pre_release_code = temp_list[result.name]
list_official_to_pre[official_code] = pre_release_code
list_pre_to_official[pre_release_code] = official_code
return
, (err) ->
if err
log.warn("Error loaded official database.", err)
return
)
return
)
catch error
log.warn("Error loading databases", error)
@hostinfo ||= JSON.parse(JSON.stringify(settings.hostinfo)) @hostinfo ||= JSON.parse(JSON.stringify(settings.hostinfo))
delete @hostinfo.comment delete @hostinfo.comment
if lflists.length if lflists.length
...@@ -1965,8 +1907,6 @@ ygopro.ctos_follow 'PLAYER_INFO', true, (buffer, info, client, server, datas)-> ...@@ -1965,8 +1907,6 @@ ygopro.ctos_follow 'PLAYER_INFO', true, (buffer, info, client, server, datas)->
client.name = name client.name = name
client.vpass = vpass client.vpass = vpass
client.name_vpass = if vpass then name + "$" + vpass else name client.name_vpass = if vpass then name + "$" + vpass else name
if settings.modules.pre_release_compat.enabled
client.is_using_pre_release = client.name_vpass == "COMPAT"
#console.log client.name, client.vpass #console.log client.name, client.vpass
if settings.modules.vip.enabled and CLIENT_check_vip(client) if settings.modules.vip.enabled and CLIENT_check_vip(client)
client.vip = true client.vip = true
...@@ -2621,10 +2561,7 @@ if settings.modules.dialogues.get_custom ...@@ -2621,10 +2561,7 @@ if settings.modules.dialogues.get_custom
ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
return false unless room return unless room and !client.reconnecting
if settings.modules.pre_release_compat.enabled and client.is_using_pre_release
replace_buffer(buffer, room.list_official_to_pre, 1)
return false if client.reconnecting
msg = buffer.readInt8(0) msg = buffer.readInt8(0)
if settings.modules.retry_handle.enabled if settings.modules.retry_handle.enabled
if ygopro.constants.MSG[msg] == 'RETRY' if ygopro.constants.MSG[msg] == 'RETRY'
...@@ -3529,7 +3466,7 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)-> ...@@ -3529,7 +3466,7 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)->
return true return true
if settings.modules.side_restrict.enabled and room.duel_stage != ygopro.constants.DUEL_STAGE.BEGIN if settings.modules.side_restrict.enabled and room.duel_stage != ygopro.constants.DUEL_STAGE.BEGIN
for code in settings.modules.side_restrict.restrict_cards for code in settings.modules.side_restrict.restrict_cards
if _.indexOf(buff_side, code) > -1 or (settings.modules.pre_release_compat.enabled and _.indexOf(buff_side, room.list_pre_to_official[code]) > -1) if _.indexOf(buff_side, code) > -1
ygopro.stoc_send_chat_to_room(room, "${invalid_side_rule}", ygopro.constants.COLORS.RED) ygopro.stoc_send_chat_to_room(room, "${invalid_side_rule}", ygopro.constants.COLORS.RED)
ygopro.stoc_send client, 'ERROR_MSG', { ygopro.stoc_send client, 'ERROR_MSG', {
msg: 3 msg: 3
...@@ -3576,49 +3513,14 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)-> ...@@ -3576,49 +3513,14 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)->
else else
#log.info("bad deck: " + client.name + " / " + buff_main + " / " + buff_side) #log.info("bad deck: " + client.name + " / " + buff_main + " / " + buff_side)
ygopro.stoc_send_chat(client, "${deck_incorrect_part1} #{found_deck} ${deck_incorrect_part2}", ygopro.constants.COLORS.RED) ygopro.stoc_send_chat(client, "${deck_incorrect_part1} #{found_deck} ${deck_incorrect_part2}", ygopro.constants.COLORS.RED)
return false
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
if settings.modules.pre_release_compat.enabled
found = false
buff_main_new = []
buff_side_new = []
for code in buff_main
code_ = code
if room.list_pre_to_official[code]
code_ = room.list_pre_to_official[code]
found = true
buff_main_new.push(code_)
for code in buff_side
code_ = code
if room.list_pre_to_official[code]
code_ = room.list_pre_to_official[code]
found = true
buff_side_new.push(code_)
if found
compat_deckbuf = buff_main_new.concat(buff_side_new)
struct.set("mainc", buff_main_new.length)
struct.set("sidec", buff_side_new.length)
struct.set("deckbuf", compat_deckbuf)
buffer = struct.buffer
client.main = buff_main_new
client.side = buff_side_new
if room.duel_stage == ygopro.constants.DUEL_STAGE.BEGIN
client.is_using_pre_release = found or client.vpass == "COMPAT"
if client.is_using_pre_release
ygopro.stoc_send_chat(client, "${pre_release_compat_hint}", ygopro.constants.COLORS.BABYBLUE)
return false 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 return unless room and (room.random_type or room.arena)
if settings.modules.pre_release_compat.enabled and client.is_using_pre_release
replace_buffer(buffer, room.list_pre_to_official, 0)
return unless room.random_type or room.arena
room.last_active_time = moment() room.last_active_time = moment()
return return
......
This diff is collapsed.
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