diff --git a/README.md b/README.md index 07235e0..b1bc5b7 100644 --- a/README.md +++ b/README.md @@ -3,4 +3,10 @@ This is an WIP lua host for rds spy, a plugin Compile this under MINGW32, not 64, RDS Spy lives in the past where men who couldn't count to 4294967295 still walked the planet -Project stared 1st of January, 2026 (or 7 [haha](data:image/jpeg;base64,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)) \ No newline at end of file +Project stared 1st of January, 2026 (or 7 haha) + +Aside from all that, this it loads and executes the script at "%LOCALAPPDATA%\RDS Spy\script.lua", with the api in the `plugin.lua` meta-file + +## Why? + +Ask Jan Kolar why his funny little rds decoder doesn't have Enchanced RT (excluding the 0x6552 to ERT mapping of course) \ No newline at end of file diff --git a/examples/ert.lua b/examples/ert.lua new file mode 100644 index 0000000..5a47631 --- /dev/null +++ b/examples/ert.lua @@ -0,0 +1,45 @@ +ert_group = -1 +ert_string = string.rep(" ", 128) + +function command(cmd, param) + if cmd:lower() == "request" then + local cr_pos = ert_string:find("\r", 1, true) -- true means "plain search" (faster) + local display_text + + if cr_pos then + display_text = ert_string:sub(1, cr_pos - 1) + else + -- No CR found yet, show the whole 128 bytes (trimmed of trailing spaces) + display_text = ert_string:gsub("%s+$", "") + end + db.add_value("ERT", display_text) + end +end + +function group(stream, b_corr, a, b, c, d) + if stream ~= 0 and a ~= 0 then return + elseif stream ~= 0 and not db.load_boolean("rdsspy.ini", "General", "Tunnelling", false) then return end + + if b_corr then return end + + local group = (b & 0xf000) >> 12 + local group_version = (b & 0x800) >> 11 + + if group == 3 and group_version == 0 then + local oda_group = (b & 0x1f) >> 1 + local oda_group_version = b & 1 + if d == 0x6552 and oda_group_version == 0 then + -- ERT + ert_group = oda_group + elseif oda_group == ert_group then ert_group = -1 end + elseif group == ert_group and group_version == 0 then + local ert_state = b & 0x1f + local char1 = string.char((c >> 8) & 0xff) + local char2 = string.char(c & 0xff) + local char3 = string.char((d >> 8) & 0xff) + local char4 = string.char(d & 0xff) + local new_chars = char1..char2..char3..char4 + local start_pos = (ert_state * 4) + 1 + ert_string = ert_string:sub(1, start_pos - 1) .. new_chars .. ert_string:sub(start_pos + 4) + end +end \ No newline at end of file diff --git a/plugin.lua b/plugin.lua index 3a28625..7df5f7d 100644 --- a/plugin.lua +++ b/plugin.lua @@ -34,8 +34,8 @@ function db.read_value(key) end ---@return string|nil function db.read_record(index) end ----@param key integer ----@param value integer +---@param key string +---@param value string function db.add_value(key, value) end function db.reset_values(key, value) end