var PowerLabelModifier; var CritDamageLabelModifier; var CritChanceLabelModifier; var itemList = []; function CustomPowerPanelRefresh() { var mainSelected = Players.GetLocalPlayerPortraitUnit(); if(mainSelected != null && mainSelected != -1) { if (Entities.GetTeamNumber(mainSelected) == DOTATeam_t.DOTA_TEAM_GOODGUYS) { var basePower = Entities.GetDayTimeVisionRange(mainSelected) - 800; var percentage = Entities.GetNightTimeVisionRange(mainSelected) - 800; var bonusPower = Math.floor(basePower * percentage/100); if (!Entities.IsRooted(mainSelected)) { basePower = 0; bonusPower = 0; } if (bonusPower > 0) { PowerLabelModifier.text = basePower.toString() + "+" + bonusPower.toString() + ""; } else if (bonusPower == 0) { PowerLabelModifier.text = basePower.toString(); } else { PowerLabelModifier.text = basePower.toString() + "-" + Math.abs(bonusPower).toString() + ""; } var buffs = Entities.GetNumBuffs(mainSelected); var isCritZero = true; var isChanceZero = true; var isCritFind = false; var isChanceFind = false; for (var i = 0; i < buffs; i++) { var buff = Entities.GetBuff(mainSelected, i); var buffname = Buffs.GetName( mainSelected, buff); if (!isCritFind && buffname === "modifier_touhoutd_crit_damage") { CritDamageLabelModifier.text = "" + Buffs.GetStackCount(mainSelected, buff) + "%"; isCritZero = false; isCritFind = true; if (isChanceFind) break; } else if (!isChanceFind && buffname === "modifier_touhoutd_crit_chance") { CritChanceLabelModifier.text = "" + Buffs.GetStackCount(mainSelected, buff) + "%"; isChanceZero = false; isChanceFind = true; if (isCritFind) break; } } if (isCritZero) CritDamageLabelModifier.text = "0%"; if (isChanceZero) CritChanceLabelModifier.text = "0%"; } else { PowerLabelModifier.text = "0"; CritDamageLabelModifier.text = "0%"; CritChanceLabelModifier.text = "0%"; } } } function CustomStarPanelRefresh() { var mainSelected = Players.GetLocalPlayerPortraitUnit(); if(mainSelected != null && mainSelected != -1) { for (var i = 0; i <= 5; i++ ) { var ent = Entities.GetItemInSlot(mainSelected, i); if (ent != "-1" && ent != "32767") { var star = 0; var level = 0; var itemName = Abilities.GetAbilityName(ent); if (itemName.substr(0,6) === "item_0") { var itemLevel = Abilities.GetLevel(ent); star = Math.floor((itemLevel-1)/10) + 1; level = itemLevel - (star-1) * 10; } else { if (itemName == "item_1003" || itemName == "item_1011") { star = 1; level = 10; } else if (itemName == "item_1004" || itemName == "item_1012") { star = 2; level = 10; } else if (itemName == "item_1005" || itemName == "item_1013") { star = 3; level = 10; } else if (itemName == "item_1006" || itemName == "item_1014") { star = 4; level = 10; } } for (var j = 1; j <= 5; j++) { itemList[i][j].visible = j <= star; } itemList[i][6].visible = level > 0; itemList[i][6].text = level > 0 ? level.toString() : ""; } else { for ( var j = 1; j <= 6; j++ ) { itemList[i][j].visible = false; } } } } } function CustomPanelRefresh () { CustomPowerPanelRefresh(); CustomStarPanelRefresh(); return $.Schedule(0.15, CustomPanelRefresh); } ;(function(){ // 能量显示 var root = $.GetContextPanel().GetParent().GetParent().GetParent(); var stats = root.FindChild("HUDElements").FindChild("lower_hud").FindChild("center_with_stats").FindChild("center_block").FindChild("stats_container"); stats.FindChildTraverse("stats").style["height"] = "110px"; stats.FindChildTraverse("stragiint").visible = false; var statContainer = stats.FindChildTraverse("stats").FindChild("Aligner").FindChild("StatContainer"); if(statContainer.FindChildTraverse("power") == null) { var power = $.CreatePanel("Panel", statContainer, "power"); power.AddClass("StatIconLabel"); var column = $.CreatePanel("Panel", power, "column"); column.AddClass("LabelColumn"); var container = $.CreatePanel("Panel", column, "container"); container.AddClass("DamageLabelContainer"); var labelmodifier = $.CreatePanel("Label", container, "labelmodifier"); labelmodifier.AddClass("MonoNumbersFont"); labelmodifier.AddClass("StatRegionLabel"); labelmodifier.AddClass("StatModifier"); labelmodifier.style["margin-top"] = "1px"; labelmodifier.html = true; labelmodifier.text = "0"; PowerLabelModifier = labelmodifier; var icon = $.CreatePanel("Panel", power, "DamageIcon"); icon.AddClass("StatIcon"); } if(statContainer.FindChildTraverse("crit_damage") == null) { var power = $.CreatePanel("Panel", statContainer, "crit_damage"); power.AddClass("StatIconLabel"); var column = $.CreatePanel("Panel", power, "column"); column.AddClass("LabelColumn"); var container = $.CreatePanel("Panel", column, "container"); container.AddClass("DamageLabelContainer"); var labelmodifier = $.CreatePanel("Label", container, "labelmodifier"); labelmodifier.AddClass("MonoNumbersFont"); labelmodifier.AddClass("StatRegionLabel"); labelmodifier.AddClass("StatModifier"); // labelmodifier.style["margin-top"] = "1px"; labelmodifier.html = true; labelmodifier.text = "0%"; CritDamageLabelModifier = labelmodifier; var icon = $.CreatePanel("Panel", power, "DamageIcon"); icon.AddClass("StatIcon"); } if(statContainer.FindChildTraverse("crit_chance") == null) { var power = $.CreatePanel("Panel", statContainer, "crit_chance"); power.AddClass("StatIconLabel"); var column = $.CreatePanel("Panel", power, "column"); column.AddClass("LabelColumn"); var container = $.CreatePanel("Panel", column, "container"); container.AddClass("DamageLabelContainer"); var labelmodifier = $.CreatePanel("Label", container, "labelmodifier"); labelmodifier.AddClass("MonoNumbersFont"); labelmodifier.AddClass("StatRegionLabel"); labelmodifier.AddClass("StatModifier"); // labelmodifier.style["margin-top"] = "1px"; labelmodifier.html = true; labelmodifier.text = "0%"; CritChanceLabelModifier = labelmodifier; var icon = $.CreatePanel("Panel", power, "DamageIcon"); icon.AddClass("StatIcon"); } // 背包物品星级和等级 var centerBlock = root.FindChild("HUDElements").FindChild("lower_hud").FindChild("center_with_stats").FindChild("center_block"); var inventory = centerBlock.FindChild("inventory"); var list = inventory.FindChildTraverse("inventory_list"); for ( var i = 0; i <= 2; i++ ) { var slot = list.FindChildTraverse("inventory_slot_" + i.toString()); var item = slot.FindChildTraverse("AbilityButton"); itemList[i] = item; var labelmodifier = $.CreatePanel("Label", item, "labellevel"); itemList[i][6] = labelmodifier; labelmodifier.style.width = "16px"; labelmodifier.style.height = "16px"; labelmodifier.style.color = "#FFCC33"; labelmodifier.style["horizontal-align"] = "right"; labelmodifier.style["vertical-align"] = "top"; labelmodifier.style["font-size"] = "16px"; labelmodifier.style["text-shadow"] = "0px 0px 4px 4 #000000"; labelmodifier.style["letter-spacing"] = "0 px"; labelmodifier.text = ""; for ( var j = 1; j <= 5; j++ ) { var img = $.CreatePanel("Image", item, "Image_" + j.toString()); var imgNum = "Image_"+j.toString(); img.SetImage("s2r://panorama/images/custom_game/star_png.vtex"); img.style.width = "12px"; img.style.height = "12px"; img.style.x = (12* (j-1)).toString() + "px"; img.style["horizontal-align"] = "left"; img.style["vertical-align"] = "bottom"; itemList[i][j] = img; img.visible = false; } } list = inventory.FindChildTraverse("inventory_list2"); for ( var i = 3; i <= 5; i++ ) { var slot = list.FindChildTraverse("inventory_slot_" + i.toString()); var item = slot.FindChildTraverse("AbilityButton"); itemList[i] = item; var labelmodifier = $.CreatePanel("Label", item, "labellevel"); itemList[i][6] = labelmodifier; labelmodifier.style.width = "16px"; labelmodifier.style.height = "16px"; labelmodifier.style.color = "#FFCC33"; labelmodifier.style["horizontal-align"] = "right"; labelmodifier.style["vertical-align"] = "top"; labelmodifier.style["font-size"] = "16px"; labelmodifier.style["text-shadow"] = "0px 0px 4px 4 #000000"; labelmodifier.style["letter-spacing"] = "0 px"; labelmodifier.text = ""; for ( var j = 1; j <= 5; j++ ) { var img = $.CreatePanel("Image", item, "Image_" + j.toString()); var imgNum = "Image_"+j.toString(); img.SetImage("s2r://panorama/images/custom_game/star_png.vtex"); img.style.width = "12px"; img.style.height = "12px"; img.style.x = (12* (j-1)).toString() + "px"; img.style["horizontal-align"] = "left"; img.style["vertical-align"] = "bottom"; itemList[i][j] = img; img.visible = false; } } CustomPanelRefresh(); GameEvents.Subscribe("dota_inventory_changed", OnDotaInventoryChanged); GameEvents.Subscribe("dota_inventory_item_changed", OnDotaInventoryChanged); // GameEvents.Subscribe("dota_player_update_selected_unit", OnDotaPlayerUpdateSelectedUnit); // GameEvents.Subscribe("dota_player_update_query_unit", OnDotaPlayerUpdateSelectedUnit); //点击单位 // GameEvents.Subscribe("thtd_power_update", CustomPowerPanelRefresh); // GameEvents.Subscribe("dota_portrait_unit_modifiers_changed", OnDotaPortraitUnitModifiersChanged); })(); function OnDotaInventoryChanged(data) { // 背包有物品称动、入、出均可触发 CustomStarPanelRefresh(); } // function OnDotaPlayerUpdateSelectedUnit(data) { // CustomPowerPanelRefresh(); // CustomStarPanelRefresh(); // } // function OnDotaPortraitUnitModifiersChanged(data) { // CustomPowerPanelRefresh(); // }