add game&rawdata

This commit is contained in:
Vasily Petrov 2026-06-17 23:06:51 +03:00
parent 0133cd976c
commit 49b34b5546
45731 changed files with 709831 additions and 0 deletions

View file

@ -0,0 +1,211 @@
--------------------------------------------------------------------------------
-- Created: 20.03.2009 ---------------------------------------------------------
-- Description: profile tab for multiplayer menu -------------------------------
-- Author: Sergey Pryshchepa ---------------------------------------------------
-- Mail: peacemaker@gsc-game.kiev.ua -------------------------------------------
-- (c)GSC Game World 2009 ------------------------------------------------------
--------------------------------------------------------------------------------
local ini = ini_file("mp\\rewarding.ltx")
local awards_xml = CScriptXmlInit()
class "mp_profile" (CUIWindow)
function mp_profile:__init() super()
awards_xml:ParseFile("ui_mp_awards.xml")
end
function mp_profile:__finalize()
end
function mp_profile:InitControls(x, y, xml, handler)
self.handler = handler
self.xml = xml
self:SetAutoDelete(true)
xml:InitWindow("tab_profile:main", 0, self)
xml:InitStatic("tab_profile:cap_unique_nick", self)
self.edit_unique_nick = xml:InitEditBox("tab_profile:edit_unique_nick", self)
handler:Register(self.edit_unique_nick, "edit_unique_nick")
handler:AddCallback("edit_unique_nick", ui_events.EDIT_TEXT_COMMIT, self.OnEditUniqueNickChanged, self)
self.btn_avail = xml:Init3tButton("tab_profile:button_avaliability", self)
handler:Register(self.btn_avail, "btn_avail")
handler:AddCallback("btn_avail", ui_events.BUTTON_CLICKED, self.OnEditUniqueNickChanged, self)
self.combo_aval_unique_nick = xml:InitComboBox("tab_profile:combo_aval_unique_nick", self)
handler:Register(self.combo_aval_unique_nick, "combo_aval_unique_nick")
handler:AddCallback("combo_aval_unique_nick", ui_events.LIST_ITEM_SELECT, self.OnUniqueNickSelect, self)
handler:AddCallback("combo_aval_unique_nick", ui_events.WINDOW_LBUTTON_DOWN, self.OnUniqueNickSelect, self)
self.combo_aval_unique_nick:Show(false)
self.awards_window = CUIWindow()
xml:InitWindow("tab_profile:awards_list", 0, self.awards_window)
self.awards_window:SetAutoDelete(true)
self:AttachChild(self.awards_window)
xml:InitFrameLine("tab_profile:awards_list:header", self.awards_window)
xml:InitFrame("tab_profile:awards_list:frame", self.awards_window)
self.awards_list = xml:InitScrollView("tab_profile:awards_list:list", self.awards_window)
self.awards = {}
-- self.hint_wnd = xml:InitHint("tab_profile:hint_wnd", self)
self.best_results_list = CUIWindow()
xml:InitWindow("tab_profile:best_results_list", 0, self.best_results_list)
self.best_results_list:SetAutoDelete(true)
self:AttachChild(self.best_results_list)
xml:InitFrameLine("tab_profile:best_results_list:header", self.best_results_list)
xml:InitFrame("tab_profile:best_results_list:frame", self.best_results_list)
self.player_results = {}
xml:InitStatic("tab_profile:best_results_list:cap_cscore_0", self.best_results_list)
xml:InitStatic("tab_profile:best_results_list:cap_cscore_1", self.best_results_list)
xml:InitStatic("tab_profile:best_results_list:cap_cscore_2", self.best_results_list)
xml:InitStatic("tab_profile:best_results_list:cap_cscore_3", self.best_results_list)
xml:InitStatic("tab_profile:best_results_list:cap_cscore_4", self.best_results_list)
xml:InitStatic("tab_profile:best_results_list:cap_cscore_5", self.best_results_list)
xml:InitStatic("tab_profile:best_results_list:cap_cscore_6", self.best_results_list)
self.gs_change_nick_mb_cancel = CUIMessageBoxEx()
handler:Register(self.gs_change_nick_mb_cancel, "gs_change_nick_mb_cancel")
handler:AddCallback("gs_change_nick_mb_cancel", ui_events.BUTTON_CLICKED, self.OnCancelChangeUnick, self)
self.gs_change_nick_mb_cancel:InitMessageBox("message_box_gs_info")
self.gs_change_nick_mb = CUIMessageBoxEx()
handler:Register(self.gs_change_nick_mb, "gs_change_nick_mb")
self.gs_change_nick_mb:InitMessageBox("message_box_ok")
end
function mp_profile:InitBestScores()
if(self.handler.owner.profile_store) then
for i in self.handler.owner.profile_store:get_best_scores() do
printf("----------> Player best score: id = " ..tostring(i.first) .. ", value = " .. tostring(i.second))
local score_wnd = self.xml:InitTextWnd("tab_profile:best_results_list:cap_score_"..tostring(i.first), self.best_results_list)
self.xml:InitTextWnd("tab_profile:best_results_list:cap_cscore_"..tostring(i.first), self.best_results_list)
-- assert(score_wnd)
score_wnd:SetText(tostring(i.second))
end
else
abort("Profile not loaded!")
end
end
function mp_profile:FillRewardsTable()
if(self.handler.owner.profile_store) then
local pos = vector2():set(0, 0)
local field = 1
local counter = 1
for i in self.handler.owner.profile_store:get_awards() do
printf("----------> Player award: id = "..tostring(i.first)..", count = "..tostring(i.second.m_count)..", last_reward_date = "..tostring(i.second.m_last_reward_date))
local k = math.mod(counter,3)
if(k==1) then
field = field + 1
self.awards[field] = {}
self.awards[field].field = self.xml:InitStatic("tab_profile:awards_list:field", nil)
self.awards[field].field = self.xml:InitStatic("tab_profile:awards_list:field", nil)
self.awards_list:AddWindow(self.awards[field].field, true)
end
local award_name = "award_"..k
local reward_name = "reward_"..i.first
local award_xml_name = ""
if (i.second.m_count > 0) then
award_xml_name = "award_"..i.first.."_active"
-- award_xml_name = "award_0_active"
self.awards[field][award_name] = awards_xml:InitStatic(award_xml_name, self.awards[field].field)
local rewards_count = awards_xml:InitTextWnd(award_xml_name..":cap_count", self.awards[field][award_name])
rewards_count:SetText(tostring(i.second.m_count))
else
award_xml_name = "award_"..i.first.."_inactive"
-- award_xml_name = "award_0_inactive"
self.awards[field][award_name] = awards_xml:InitStatic(award_xml_name, self.awards[field].field)
end
local tmp = 0
if(utils.is_widescreen()) then
tmp = 96+16
else
tmp = 121+21
end
if(k==0) then
pos.x = (tmp)*(3-1)
else
pos.x = (tmp)*(k-1)
end
self.awards[field][award_name]:SetWndPos(pos)
counter = counter + 1
end
else
abort("Profile not loaded!")
end
end
function mp_profile:OnEditUniqueNickChanged()
self.gs_change_nick_mb_cancel:SetText("ui_mp_gamespy_suggesting_unique_name")
self.gs_change_nick_mb_cancel:ShowDialog(true)
self.handler.owner.acc_mgr:suggest_unique_nicks(self.edit_unique_nick:GetText(), suggest_nicks_cb(self, self.OnNickSuggestionComplete))
self.combo_aval_unique_nick:Show(true);
self.combo_aval_unique_nick:ClearList()
end
function mp_profile:OnCancelChangeUnick()
self.handler.owner.acc_mgr:stop_suggest_unique_nicks()
self.gs_change_nick_mb_cancel:HideDialog()
self.edit_unique_nick:SetText(self.handler.owner.gs_profile:unique_nick())
end
function mp_profile:OnNickSuggestionComplete(tmp, descr)
self.gs_change_nick_mb_cancel:HideDialog()
local new_unique_nick = self.edit_unique_nick:GetText();
local num = 1
for i in (self.handler.owner.acc_mgr:get_suggested_unicks()) do
if(i==new_unique_nick) then
self.gs_change_nick_mb:InitMessageBox("message_box_gs_changing_unick")
self.gs_change_nick_mb:SetText("ui_mp_gamespy_changing_unique_nick");
self.gs_change_nick_mb:ShowDialog(true)
self.handler.owner.l_mgr:set_unique_nick(new_unique_nick, login_operation_cb(self, self.ChangeNickOperationResult))
return
end
self.combo_aval_unique_nick:AddItem(i, num)
num = num + 1
end
self.gs_change_nick_mb:InitMessageBox("message_box_ok")
local first_name = self.combo_aval_unique_nick:GetTextOf(0)
self.combo_aval_unique_nick:SetText(first_name)
if (tmp > 0) then
self.gs_change_nick_mb:SetText("ui_mp_gamespy_verify_nickname_error1")
else
self.gs_change_nick_mb:SetText(descr)
end
self.edit_unique_nick:SetText(self.handler.owner.gs_profile:unique_nick())
self.gs_change_nick_mb:ShowDialog(true)
end
function mp_profile:OnUniqueNickSelect()
self.edit_unique_nick:SetText(self.combo_aval_unique_nick:GetText())
end
function mp_profile:ChangeNickOperationResult(profile, descr)
self.gs_change_nick_mb:HideDialog()
self.combo_aval_unique_nick:Show(false)
self.gs_change_nick_mb:InitMessageBox("message_box_ok")
if(profile==nil) then
self.gs_change_nick_mb:SetText(descr)
else
self.gs_change_nick_mb:SetText(game.translate_string("ui_st_mp_unique_nickname_change").." "..profile:unique_nick()..".")
end
self.edit_unique_nick:SetText(self.handler.owner.gs_profile:unique_nick())
self.gs_change_nick_mb:ShowDialog(true)
end
function mp_profile:UpdateControls()
end
function mp_profile:OnDraw()
super():OnDraw()
self.hint_wnd:OnDraw()
end