CheatPropertyView = CheatPropertyView or BaseClass(BaseView) local CheatPropertyView = CheatPropertyView CheatPropertyView.Properties = { {1001, "fighting"}, {1, "att"}, {4, "def"}, {5, "hit"}, {6, "dodge"}, {7, "crit"}, {8, "ten"}, {9, "hurt_add_ratio"}, {10, "hurt_del_ratio"}, {11, "hit_ratio"}, {12, "dodge_ratio"}, {13, "crit_ratio"}, {14, "uncrit_ratio"}, {15, "abs_att"}, {16, "abs_def"}, {27, "skill_hurt_add_ratio"}, {28, "skill_hurt_del_ratio"}, {29, "final_hurt_add_ratio"}, {30, "final_hurt_del_ratio"}, {51, "pvp_hurt_add_ratio"}, {52, "crit_hurt_add_ratio"}, {53, "crit_hurt_del_ratio"}, {203, "boss_hurt_add_ratio"}, {19, "att_add_ratio"}, {20, "hp_add_ratio"}, {54, "heart_ratio"}, {56, "heart_resist_ratio"}, {58, "att_speed_add_ratio"}, {59, "speed_add_ratio"}, {201, "hp_resume"}, {77, "ice_hurt"}, {78, "ice_def"}, {79, "thunder_hurt"}, {80, "thunder_def"}, {81, "fire_hurt"}, {82, "fire_def"}, {83, "wind_hurt"}, {84, "wind_def"}, {21, "exp_add_ratio"}, {48, "parry_ratio"}, {49, "stab_ratio"}, {50, "pvp_hurt_del_ratio"}, {55, "heart_add_hurt"}, {57, "heart_del_hurt"}, } function CheatPropertyView:__init() self.base_file = "cheat" self.layout_file = "CheatPropertyView" self.layer_name = "Top" self.destroy_imm = true self.use_background = false self.change_scene_close = true self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) self:OpenSuccess() end self.destroy_callback = function ( ) self:DestroySuccess() end end function CheatPropertyView:Open( ) --self.data = data BaseView.Open(self) end function CheatPropertyView:LoadSuccess() self.nodes = { "bg/scroll_view","bg/close_btn:obj","bg/scroll_view/Viewport/Content", "bg/hp:txt", } self:GetChildren(self.nodes) SetAnchoredPosition(self.transform, 0, 0) end function CheatPropertyView:AddEvent() local function onBtnClickHandler( target ) self:Close() end AddClickEvent(self.close_btn_obj, onBtnClickHandler) local function on_hp_change( ) self:UpdateHp() end self.bind_hp_id = RoleManager.Instance.mainRoleInfo:BindOne("hp",on_hp_change) self.bind_maxHp_id = RoleManager.Instance.mainRoleInfo:BindOne("maxHp",on_hp_change) local function on_all_change( ) self:UpdateProperties() self:UpdateHp() end self.bind_property_id = RoleManager.Instance.mainRoleInfo:Bind(EventName.UPDATE_MAIN_ROLE_INFO_VIEW, on_all_change) self.bind_fighting_id = RoleManager.Instance.mainRoleInfo:BindOne("fighting", on_all_change) self.bind_level_id = RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, on_all_change) end function CheatPropertyView:OpenSuccess() self:UpdateProperties() self:UpdateHp() end function CheatPropertyView:UpdateProperties() local attr_list = CheatPropertyView.Properties self.attr_list_con = self.attr_list_con or self:AddUIComponent(UI.ItemListCreator) local info = { data_list = attr_list, item_con = self.Content, scroll_view = self.scroll_view, prefab_ab_name = "cheat", prefab_res_name = "CheatPropertyItem", item_height = 30, space_y = 2, child_names = {"text:txt",}, on_update_item = function(item, i, v) local index = tonumber(v[1]) if index > 1000 then --自定义属性 local str = "" if index == 1001 then str = string.format("等级:%d 战力:%d", RoleManager.Instance.mainRoleInfo.level, RoleManager.Instance.mainRoleInfo[v[2]] or 99999999) end item.text_txt.text = str else local name = WordManager:GetProperties(tonumber(v[1])) local role_value = RoleManager.Instance.mainRoleInfo[v[2]] or 99999999 local value = WordManager:GetPropertyValue(tonumber(v[1]), role_value) item.text_txt.text = "(" .. tonumber(v[1]) .. ")" .. name .. ": " .. value end end, } self.attr_list_con:UpdateItems(info) end function CheatPropertyView:UpdateHp( ) local hp_str = string.format("血量:%d/%d", RoleManager.Instance.mainRoleInfo.hp, RoleManager.Instance.mainRoleInfo.maxHp) self.hp_txt.text = hp_str end function CheatPropertyView:DestroySuccess( ) if self.bind_hp_id then RoleManager.Instance.mainRoleInfo:UnBind(self.bind_hp_id) self.bind_hp_id = nil end if self.bind_maxHp_id then RoleManager.Instance.mainRoleInfo:UnBind(self.bind_maxHp_id) self.bind_maxHp_id = nil end if self.bind_property_id then RoleManager.Instance.mainRoleInfo:UnBind(self.bind_property_id) self.bind_property_id = nil end if self.bind_fighting_id then RoleManager.Instance.mainRoleInfo:UnBind(self.bind_fighting_id) self.bind_fighting_id = nil end if self.bind_level_id then RoleManager.Instance.mainRoleInfo:UnBind(self.bind_level_id) self.bind_level_id = nil end end