mirror of
https://github.com/pvpgn/pvpgn-server
synced 2026-08-24 18:23:04 -04:00
644 lines
23 KiB
Lua
644 lines
23 KiB
Lua
--[[
|
|
Copyright (C) 2014 HarpyWar (harpywar@gmail.com)
|
|
|
|
This file is a part of the PvPGN Project http://pvpgn.pro
|
|
Licensed under the same terms as Lua itself.
|
|
]]--
|
|
|
|
|
|
-- All attribute get/set actions must have a wrapper to avoid write a wrong type into database
|
|
|
|
--
|
|
-- Profile
|
|
--
|
|
|
|
function account_get_acct_email(username)
|
|
return api.account_get_attr(username, "BNET\\acct\\email", attr_type_str)
|
|
end
|
|
function account_set_acct_email(username, value)
|
|
return api.account_set_attr(username, "BNET\\acct\\email", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_auth_admin(username, channelname)
|
|
if channelname then
|
|
return api.account_get_attr(username, "BNET\\auth\\admin\\" .. channelname, attr_type_bool)
|
|
else
|
|
return api.account_get_attr(username, "BNET\\auth\\admin", attr_type_bool)
|
|
end
|
|
end
|
|
function account_set_auth_admin(username, channelname, value)
|
|
if channelname then
|
|
return api.account_set_attr(username, "BNET\\auth\\admin\\" .. channelname, attr_type_bool, value)
|
|
else
|
|
return api.account_set_attr(username, "BNET\\auth\\admin", attr_type_bool, value)
|
|
end
|
|
end
|
|
|
|
function account_get_auth_operator(username, channelname)
|
|
if channelname then
|
|
return api.account_get_attr(username, "BNET\\auth\\operator\\" .. channelname, attr_type_bool)
|
|
else
|
|
return api.account_get_attr(username, "BNET\\auth\\operator", attr_type_bool)
|
|
end
|
|
end
|
|
function account_set_auth_operator(username, channelname, value)
|
|
if channelname then
|
|
return api.account_set_attr(username, "BNET\\auth\\operator\\" .. channelname, attr_type_bool, value)
|
|
else
|
|
return api.account_set_attr(username, "BNET\\auth\\operator", attr_type_bool, value)
|
|
end
|
|
end
|
|
|
|
function account_get_auth_voice(username, channelname)
|
|
if channelname then
|
|
return api.account_get_attr(username, "BNET\\auth\\voice\\" .. channelname, attr_type_bool)
|
|
else
|
|
return api.account_get_attr(username, "BNET\\auth\\voice", attr_type_bool)
|
|
end
|
|
end
|
|
function account_set_auth_voice(username, channelname, value)
|
|
if channelname then
|
|
return api.account_set_attr(username, "BNET\\auth\\voice\\" .. channelname, attr_type_bool, value)
|
|
else
|
|
return api.account_set_attr(username, "BNET\\auth\\voice", attr_type_bool, value)
|
|
end
|
|
end
|
|
|
|
function account_is_operator_or_admin(username, channelname)
|
|
return account_get_auth_operator(username, channelname) or account_get_auth_admin(username, channelname) or account_get_auth_operator(username, nil) or account_get_auth_admin(username, nil)
|
|
end
|
|
|
|
|
|
function account_get_auth_announce(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\announce", attr_type_bool)
|
|
end
|
|
function account_set_auth_announce(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\announce", attr_type_bool, value)
|
|
end
|
|
|
|
function account_get_auth_botlogin(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\botlogin", attr_type_bool)
|
|
end
|
|
function account_set_auth_botlogin(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\botlogin", attr_type_bool, value)
|
|
end
|
|
|
|
function account_get_auth_lock(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\lock", attr_type_bool)
|
|
end
|
|
function account_set_auth_lock(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\lock", attr_type_bool, value)
|
|
end
|
|
|
|
function account_get_auth_locktime(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\locktime", attr_type_num)
|
|
end
|
|
function account_set_auth_locktime(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\locktime", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_auth_lockreason(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\lockreason", attr_type_str)
|
|
end
|
|
function account_set_auth_lockreason(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\lockreason", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_auth_lockby(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\lockby", attr_type_str)
|
|
end
|
|
function account_set_auth_lockby(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\lockby", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_auth_mute(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\mute", attr_type_bool)
|
|
end
|
|
function account_set_auth_mute(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\mute", attr_type_bool, value)
|
|
end
|
|
|
|
function account_get_auth_mutetime(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\mutetime", attr_type_num)
|
|
end
|
|
function account_set_auth_mutetime(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\mutetime", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_auth_mutereason(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\mutereason", attr_type_str)
|
|
end
|
|
function account_set_auth_mutereason(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\mutereason", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_auth_muteby(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\muteby", attr_type_str)
|
|
end
|
|
function account_set_auth_muteby(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\muteby", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_auth_command_groups(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\command_groups", attr_type_num)
|
|
end
|
|
function account_set_auth_command_groups(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\command_groups", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_acct_lastlogin_time(username)
|
|
return api.account_get_attr(username, "BNET\\acct\\lastlogin_time", attr_type_num)
|
|
end
|
|
function account_set_acct_lastlogin_time(username, value)
|
|
return api.account_set_attr(username, "BNET\\acct\\lastlogin_time", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_acct_lastlogin_owner(username)
|
|
return api.account_get_attr(username, "BNET\\acct\\lastlogin_owner", attr_type_str)
|
|
end
|
|
function account_set_acct_lastlogin_owner(username, value)
|
|
return api.account_set_attr(username, "BNET\\acct\\lastlogin_owner", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_acct_createtime(username)
|
|
return api.account_get_attr(username, "BNET\\acct\\ctime", attr_type_num)
|
|
end
|
|
function account_set_acct_createtime(username, value)
|
|
return api.account_set_attr(username, "BNET\\acct\\ctime", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_acct_lastlogin_clienttag(username)
|
|
return api.account_get_attr(username, "BNET\\acct\\lastlogin_clienttag", attr_type_str)
|
|
end
|
|
function account_set_acct_lastlogin_clienttag(username, value)
|
|
return api.account_set_attr(username, "BNET\\acct\\lastlogin_clienttag", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_acct_lastlogin_ip(username)
|
|
return api.account_get_attr(username, "BNET\\acct\\lastlogin_ip", attr_type_str)
|
|
end
|
|
function account_set_acct_lastlogin_ip(username, value)
|
|
return api.account_set_attr(username, "BNET\\acct\\lastlogin_ip", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_acct_passhash(username)
|
|
return api.account_get_attr(username, "BNET\\acct\\passhash1", attr_type_str)
|
|
end
|
|
function account_set_acct_passhash(username, value)
|
|
return api.account_set_attr(username, "BNET\\acct\\passhash1", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_acct_verifier(username)
|
|
return api.account_get_attr(username, "BNET\\acct\\verifier", attr_type_raw)
|
|
end
|
|
function account_set_acct_verifier(username, value)
|
|
return api.account_set_attr(username, "BNET\\acct\\verifier", attr_type_raw, value)
|
|
end
|
|
|
|
function account_get_acct_salt(username)
|
|
return api.account_get_attr(username, "BNET\\acct\\salt", attr_type_raw)
|
|
end
|
|
function account_set_acct_salt(username, value)
|
|
return api.account_set_attr(username, "BNET\\acct\\salt", attr_type_raw, value)
|
|
end
|
|
|
|
function account_get_userlang(username)
|
|
return api.account_get_attr(username, "BNET\\acct\\userlang", attr_type_str)
|
|
end
|
|
function account_set_userlang(username, value)
|
|
return api.account_set_attr(username, "BNET\\acct\\userlang", attr_type_str, value)
|
|
end
|
|
|
|
--
|
|
-- Profile
|
|
--
|
|
|
|
function account_get_auth_adminnormallogin(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\adminnormallogin", attr_type_bool)
|
|
end
|
|
function account_set_auth_adminnormallogin(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\adminnormallogin", attr_type_bool, value)
|
|
end
|
|
|
|
function account_get_auth_changepass(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\changepass", attr_type_bool)
|
|
end
|
|
function account_set_auth_changepass(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\changepass", attr_type_bool, value)
|
|
end
|
|
|
|
function account_get_auth_changeprofile(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\changeprofile", attr_type_bool)
|
|
end
|
|
function account_set_auth_changeprofile(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\changeprofile", attr_type_bool, value)
|
|
end
|
|
|
|
function account_get_auth_createnormalgame(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\createnormalgame", attr_type_bool)
|
|
end
|
|
function account_set_auth_createnormalgame(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\createnormalgame", attr_type_bool, value)
|
|
end
|
|
|
|
function account_get_auth_joinnormalgame(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\joinnormalgame", attr_type_bool)
|
|
end
|
|
function account_set_auth_joinnormalgame(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\joinnormalgame", attr_type_bool, value)
|
|
end
|
|
|
|
function account_get_auth_createladdergame(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\createladdergame", attr_type_bool)
|
|
end
|
|
function account_set_auth_createladdergame(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\createladdergame", attr_type_bool, value)
|
|
end
|
|
|
|
function account_get_auth_joinladdergame(username)
|
|
return api.account_get_attr(username, "BNET\\auth\\joinladdergame", attr_type_bool)
|
|
end
|
|
function account_set_auth_joinladdergame(username, value)
|
|
return api.account_set_attr(username, "BNET\\auth\\joinladdergame", attr_type_bool, value)
|
|
end
|
|
|
|
--
|
|
-- Profile
|
|
--
|
|
|
|
function account_get_sex(username)
|
|
return api.account_get_attr(username, "profile\\sex", attr_type_str)
|
|
end
|
|
function account_set_sex(username, value)
|
|
return api.account_set_attr(username, "profile\\sex", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_age(username)
|
|
return api.account_get_attr(username, "profile\\age", attr_type_str)
|
|
end
|
|
function account_set_age(username, value)
|
|
return api.account_set_attr(username, "profile\\age", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_location(username)
|
|
return api.account_get_attr(username, "profile\\location", attr_type_str)
|
|
end
|
|
function account_set_location(username, value)
|
|
return api.account_set_attr(username, "profile\\location", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_description(username)
|
|
return api.account_get_attr(username, "profile\\description", attr_type_str)
|
|
end
|
|
function account_set_description(username, value)
|
|
return api.account_set_attr(username, "profile\\description", attr_type_str, value)
|
|
end
|
|
|
|
|
|
|
|
--
|
|
-- Warcraft 3
|
|
--
|
|
|
|
function account_get_soloxp(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\solo_xp", attr_type_num)
|
|
end
|
|
function account_set_soloxp(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\solo_xp", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_sololevel(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\solo_level", attr_type_num)
|
|
end
|
|
function account_set_sololevel(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\solo_level", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_solowins(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\solo_wins", attr_type_num)
|
|
end
|
|
function account_set_solowins(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\solo_wins", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_sololosses(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\solo_losses", attr_type_num)
|
|
end
|
|
function account_set_sololosses(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\solo_losses", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_solorank(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\solo_rank", attr_type_num)
|
|
end
|
|
function account_set_solorank(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\solo_rank", attr_type_num, value)
|
|
end
|
|
|
|
|
|
--
|
|
-- Starcraft
|
|
--
|
|
|
|
function account_get_normal_wins(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\0\\wins", attr_type_num)
|
|
end
|
|
function account_set_normal_wins(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\0\\wins", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_normal_losses(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\0\\losses", attr_type_num)
|
|
end
|
|
function account_set_normal_losses(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\0\\losses", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_normal_draws(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\0\\draws", attr_type_num)
|
|
end
|
|
function account_set_normal_draws(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\0\\draws", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_normal_disconnects(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\0\\disconnects", attr_type_num)
|
|
end
|
|
function account_set_normal_disconnects(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\0\\disconnects", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_normal_last_time(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\0\\last game", attr_type_num)
|
|
end
|
|
function account_set_normal_last_time(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\0\\last game", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_normal_last_result(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\0\\last game result", attr_type_num)
|
|
end
|
|
function account_set_normal_last_result(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\0\\last game result", attr_type_num, value)
|
|
end
|
|
|
|
|
|
function account_get_ladder_wins(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\1\\wins", attr_type_num)
|
|
end
|
|
function account_set_ladder_wins(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\1\\wins", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_ladder_losses(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\1\\losses", attr_type_num)
|
|
end
|
|
function account_set_ladder_losses(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\1\\losses", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_ladder_draws(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\1\\draws", attr_type_num)
|
|
end
|
|
function account_set_ladder_draws(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\1\\draws", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_ladder_disconnects(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\1\\disconnects", attr_type_num)
|
|
end
|
|
function account_set_ladder_disconnects(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\1\\disconnects", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_ladder_last_time(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\1\\last game", attr_type_num)
|
|
end
|
|
function account_set_ladder_last_time(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\1\\last game", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_ladder_last_result(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\1\\last game result", attr_type_num)
|
|
end
|
|
function account_set_ladder_last_result(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\1\\last game result", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_ladder_rating(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\1\\rating", attr_type_num)
|
|
end
|
|
function account_set_ladder_rating(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\1\\rating", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_ladder_rank(username)
|
|
return api.account_get_attr(username, "Record\\SEXP\\1\\rank", attr_type_num)
|
|
end
|
|
function account_set_ladder_rank(username, value)
|
|
return api.account_set_attr(username, "Record\\SEXP\\1\\rank", attr_type_num, value)
|
|
end
|
|
|
|
-- TODO: wrappers for 2x2
|
|
|
|
|
|
--
|
|
-- Warcraft 2
|
|
--
|
|
|
|
--[[ Warcraft 2 has the same functions as Starcraft, but "W2BN" instead of "SEXP" in path. Replace it if you have a single 2 server. ]]--
|
|
|
|
|
|
|
|
--
|
|
-- Diablo
|
|
--
|
|
|
|
function account_get_normal_level(username)
|
|
return api.account_get_attr(username, "Record\\DRTL\\0\\level", attr_type_num)
|
|
end
|
|
function account_set_normal_level(username, value)
|
|
return api.account_set_attr(username, "Record\\DRTL\\0\\level", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_normal_class(username)
|
|
return api.account_get_attr(username, "Record\\DRTL\\0\\class", attr_type_num)
|
|
end
|
|
function account_set_normal_class(username, value)
|
|
return api.account_set_attr(username, "Record\\DRTL\\0\\class", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_normal_diablo_kills(username)
|
|
return api.account_get_attr(username, "Record\\DRTL\\0\\diablo kills", attr_type_num)
|
|
end
|
|
function account_set_normal_diablo_kills(username, value)
|
|
return api.account_set_attr(username, "Record\\DRTL\\0\\diablo kills", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_normal_strength(username)
|
|
return api.account_get_attr(username, "Record\\DRTL\\0\\strength", attr_type_num)
|
|
end
|
|
function account_set_normal_strength(username, value)
|
|
return api.account_set_attr(username, "Record\\DRTL\\0\\strength", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_normal_dexterity(username)
|
|
return api.account_get_attr(username, "Record\\DRTL\\0\\dexterity", attr_type_num)
|
|
end
|
|
function account_set_normal_dexterity(username, value)
|
|
return api.account_set_attr(username, "Record\\DRTL\\0\\dexterity", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_normal_vitality(username)
|
|
return api.account_get_attr(username, "Record\\DRTL\\0\\vitality", attr_type_num)
|
|
end
|
|
function account_set_normal_vitality(username, value)
|
|
return api.account_set_attr(username, "Record\\DRTL\\0\\vitality", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_normal_gold(username)
|
|
return api.account_get_attr(username, "Record\\DRTL\\0\\gold", attr_type_num)
|
|
end
|
|
function account_set_normal_gold(username, value)
|
|
return api.account_set_attr(username, "Record\\DRTL\\0\\gold", attr_type_num, value)
|
|
end
|
|
|
|
|
|
--
|
|
-- Westwood Online
|
|
--
|
|
|
|
function account_get_wol_apgar(username)
|
|
return api.account_get_attr(username, "Record\\WOL\\auth\\apgar", attr_type_str)
|
|
end
|
|
function account_set_wol_apgar(username, value)
|
|
return api.account_set_attr(username, "Record\\WOL\\auth\\apgar", attr_type_str, value)
|
|
end
|
|
|
|
function account_get_locale(username)
|
|
return api.account_get_attr(username, "Record\\WOL\\auth\\locale", attr_type_str)
|
|
end
|
|
function account_set_locale(username, value)
|
|
return api.account_set_attr(username, "Record\\WOL\\auth\\locale", attr_type_str, value)
|
|
end
|
|
|
|
|
|
|
|
--
|
|
-- Warcraft 3 (DotA)
|
|
--
|
|
|
|
function account_get_dotarating_3x3(username)
|
|
value = api.account_get_attr(username, "Record\\W3XP\\dota_3_rating", attr_type_num)
|
|
if (value == 0) then value = 1000 end
|
|
return value
|
|
end
|
|
function account_set_dotarating_3x3(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\dota_3_rating", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_dotawins_3x3(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\dota_3_wins", attr_type_num)
|
|
end
|
|
function account_set_dotawins_3x3(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\dota_3_wins", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_dotalosses_3x3(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\dota_3_losses", attr_type_num)
|
|
end
|
|
function account_set_dotalosses_3x3(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\dota_3_losses", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_dotastreaks_3x3(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\dota_3_streaks", attr_type_num)
|
|
end
|
|
function account_set_dotastreaks_3x3(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\dota_3_streaks", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_dotaleaves_3x3(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\dota_3_leaves", attr_type_num)
|
|
end
|
|
function account_set_dotaleaves_3x3(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\dota_3_leaves", attr_type_num, value)
|
|
end
|
|
|
|
|
|
function account_get_dotarating_5x5(username)
|
|
value = api.account_get_attr(username, "Record\\W3XP\\dota_5_rating", attr_type_num)
|
|
if (value == 0) then value = 1000 end
|
|
return value
|
|
end
|
|
function account_set_dotarating_5x5(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\dota_5_rating", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_dotawins_5x5(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\dota_5_wins", attr_type_num)
|
|
end
|
|
function account_set_dotawins_5x5(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\dota_5_wins", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_dotalosses_5x5(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\dota_5_losses", attr_type_num)
|
|
end
|
|
function account_set_dotalosses_5x5(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\dota_5_losses", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_dotastreaks_5x5(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\dota_5_streaks", attr_type_num)
|
|
end
|
|
function account_set_dotastreaks_5x5(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\dota_5_streaks", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_dotaleaves_5x5(username)
|
|
return api.account_get_attr(username, "Record\\W3XP\\dota_5_leaves", attr_type_num)
|
|
end
|
|
function account_set_dotaleaves_5x5(username, value)
|
|
return api.account_set_attr(username, "Record\\W3XP\\dota_5_leaves", attr_type_num, value)
|
|
end
|
|
|
|
function account_get_botping(username)
|
|
value = api.account_get_attr(username, "BNET\\acct\\botping", attr_type_str)
|
|
local pings = {}
|
|
-- if pings were not set yet then return empty table
|
|
if string.empty(value) then return pings end
|
|
|
|
-- deserialize and return table
|
|
-- data format: "unixtime,botname,ping;..."
|
|
for chunk in string.split(value,";") do
|
|
local item = {}
|
|
i = 1
|
|
for v in string.split(chunk,",") do
|
|
if (i == 1) then
|
|
item.date = v
|
|
elseif (i == 2) then
|
|
item.bot = v
|
|
elseif (i == 3) then
|
|
item.ping = v
|
|
end
|
|
i = i + 1
|
|
end
|
|
table.insert(pings, item)
|
|
end
|
|
-- sort by ping ascending
|
|
table.sort(pings, function(a,b) return tonumber(a.ping) < tonumber(b.ping) end)
|
|
return pings
|
|
end
|
|
-- pings is a table that received from account_get_botping()
|
|
function account_set_botping(username, pings)
|
|
local value = ""
|
|
-- serialize table
|
|
for k,v in pairs(pings) do
|
|
-- ignore expired pings
|
|
if (os.time() - tonumber(v.date)) < 60*60*24*config.ghost_ping_expire then
|
|
value = value .. string.format("%s,%s,%s;", v.date, v.bot, v.ping);
|
|
end
|
|
end
|
|
return api.account_set_attr(username, "BNET\\acct\\botping", attr_type_str, value)
|
|
end
|