ME_D = {}
setmetatable(ME_D, {__index = _G})
local _ENV = ME_D
local me_rid
local me_agent
local request = nil
local _enter_game = false
function me_updated(agent, data)
local item_list = remove_get(data, "item_list") or {}
local equip_list = remove_get(data, "equip_list") or {}
local user = PLAYER_TDCLS.new(data.user)
for k, v in pairs(agent.data) do
user:set_temp(k, v)
end
user:accept_relay(agent)
for _,v in ipairs(item_list) do
local obj = PROPERTY_D.clone_object_from(v.class_id, v)
user:load_property(obj)
end
for _,v in ipairs(equip_list) do
local obj = PROPERTY_D.clone_object_from(v.class_id, v)
user:load_property(obj)
end
user:set_heartbeat_interval(HEARTBEAT_INTERVAL)
raise_issue(EVENT_LOGIN_OK, user)
me_rid = get_ob_rid(user)
me_agent = user
end
function get_rid()
return me_rid
end
function get_user()
return (find_object_by_rid(me_rid))
end
function get_agent()
if not is_object(me_agent) then
me_agent = nil
_enter_game = false
end
return me_agent
end
function close_agent()
if is_object(me_agent) then
me_agent:connection_lost()
me_agent = nil
end
end
function set_agent(agent)
if not START_STREE_TEST then
close_agent()
end
me_agent = agent
end
function clear_request_message()
request = nil
end
function try_request_message()
local agent = get_agent()
if request ~= nil and agent ~= nil then
agent:send_message(unpack(request))
request = nil
end
end
function request_message(...)
local agent = get_agent()
if agent ~= nil then
if is_enter_game() then
agent:send_message(...)
else
request = { ... }
end
else
request = { ... }
end
end
function is_enter_game()
return _enter_game and get_agent() ~= nil
end
function set_enter_game(value)
_enter_game = value
end
function create()
end
create()