Index: 残局文料/lua_lib/常用库.lua ================================================================== --- 残局文料/lua_lib/常用库.lua +++ 残局文料/lua_lib/常用库.lua @@ -182,6 +182,11 @@ --~ 左除数 --~ 右除数 function d.除法(o1, o2) return o1 / o2 end +--~ 左数 +--~ 右数 +function d.位和(o1, o2) + return bit.band(o1, o2) + end return d Index: 残局文料/残局改名.lua ================================================================== --- 残局文料/残局改名.lua +++ 残局文料/残局改名.lua @@ -67,10 +67,15 @@ end end --~ 卡编 function d.取卡数据(o1) for o1_4 in 数据库:nrows("select * from datas where id = " .. o1) do + if o1_4.setcode > 0xffffffff then + ffi = require("ffi") + print(bit.tohex(o1_4.setcode, 16), o1_4.setcode, o1_4.setcode == 36592129229979791, bit.tohex(bit.rshift(o1_4.setcode, 31)), bit.tohex(bit.band(o1_4.setcode, 0xf)), string.format("%x", 36592129229979791), bit.tohex(math.fmod(36592129229979791, 0xffff + 1)), math.fmod(36592129229979791, 0xffff + 1), ffi.new("uint64_t[1]", 36592129229979791)[0], tostring(36592129229979791) == tostring(o1_4.setcode), math.modf(36592129229979791 / (0xffff + 1)), bit.tohex(bit.band(o1_4.setcode - 4, ffi.new("uint64_t[1]", 0xffff)[0]))) + else + end return o1_4 end end --~ 文 function d.局筛卡编(o1) @@ -102,33 +107,39 @@ local k1, k2 local k1_0 --~ 字段对 k1_0 = {} for o1 = 1, #o1_0 do + --~ for o2 = 1, 11112222 do + --~ 大字段号 + --~ k1 = f.位和(o1_0[o1].setcode, 0xffff) + --~ k2 = + --~ end --~ 大字段号 - k1 = bit.band(o1_0[o1].setcode, 0xffff) - print(o1_0[o1].setcode) - if k1 > 0xfff then + --~ k1 = bit.band(o1_0[o1].setcode, 0xffff) + --~ print(o1_0[o1].setcode) + --~ print(f.位和(o1_0[o1].setcode, 0xffff)) + --~ if k1 > 0xfff then --~ 字段名 - k2 = 字段名对[k1] - print(k1, k2) - if k1_0[k2] then - k1_0[k2] = k1_0[k2] + 1 - else - k1_0[k2] = 1 - end - end + --~ k2 = 字段名对[k1] + --~ print(k1, k2) + --~ if k1_0[k2] then + --~ k1_0[k2] = k1_0[k2] + 1 + --~ else + --~ k1_0[k2] = 1 + --~ end + --~ end --~ 小字段号 - k1 = bit.band(o1_0[o1].setcode, 0xfff) + --~ k1 = bit.band(o1_0[o1].setcode, 0xfff) --~ 字段名 - k2 = 字段名对[k1] - if k1_0[k2] then - k1_0[k2] = k1_0[k2] + 1 - elseif k2 == nil then - else - k1_0[k2] = 1 - end + --~ k2 = 字段名对[k1] + --~ if k1_0[k2] then + --~ k1_0[k2] = k1_0[k2] + 1 + --~ elseif k2 == nil then + --~ else + --~ k1_0[k2] = 1 + --~ end end end --~ 目对 function d.残局改名(o1_0) local k1_0, k2_0, k3_0, k4_0, k5_0, k6_0