(function() {
"use strict";
const KEY = "M";
const REFRESH_INTERVAL = 0.1;
const EAT_SAY_PREFIX = "Я сьел ";
// تم حذف قائمة معرفات SteamIDs لحماية هويتك الرقمية تماماً
// تم حذف خادم التتبع الخارجي TRACK_DOMAIN لقطع أي اتصال مشبوه
const IGNORE_LIST = [
"item_armlet",
"item_ward_observer",
"item_ward_sentry",
"item_ward_dispenser",
"item_hand_of_midas",
"item_hand_of_midas_custom",
"item_infused_raindrop",
"item_witch_blade",
"item_aeon_disk",
"item_tpscroll",
"item_smoke_of_deceit",
"item_clarity",
"item_enchanted_mango",
"item_flask",
"item_dust",
"item_famango",
"item_great_famango",
"item_greater_famango",
"item_tango",
"item_blood_grenade",
"item_sphere",
"item_gem",
"item_radiance_lua",
"item_madstone_bundle",
"item_aegis",
"item_shopkeeper_aegis",
"item_shopkeeper_cyclone",
"item_shopkeeper_cheese",
"item_shopkeeper_octarine_core",
"item_shopkeeper_sheepstick",
"item_shopkeeper_force_staff",
"item_shopkeeper_krekker",
"item_cheese",
"item_faerie_fire",
"item_royale_with_cheese",
"item_bottle",
"item_tango_single",
"item_refresher_shard",
"item_ultimate_scepter",
"item_blink",
"item_arcane_blink",
"item_swift_blink",
"item_overwhelming_blink",
];
const ROOT_PANEL = `z_main_panel_${Math.random()}_v2`;
let g_script_valid = true;
let g_tip_count = 0;
let g_init = false;
let g_tipsub = null;
let g_refresh = null;
let g_localplayer = -1;
let g_pending_items = new Set();
function getItemKey(itemName, slot) {
return `${itemName}_${slot}`;
}
function syncPendingItems(heroIndex) {
if (g_pending_items.size === 0 || heroIndex === -1) return;
const nextPendingItems = new Set();
g_pending_items.forEach(itemKey => {
const separatorIndex = itemKey.lastIndexOf("_");
if (separatorIndex === -1) return;
const itemName = itemKey.substring(0, separatorIndex);
const slot = Number(itemKey.substring(separatorIndex + 1));
if (!Number.isFinite(slot)) return;
const itemIndex = Entities.GetItemInSlot(heroIndex, slot);
if (itemIndex <= 0) return;
const currentItemName = Abilities.GetAbilityName(itemIndex);
if (currentItemName === itemName) {
nextPendingItems.add(itemKey);
}
});
g_pending_items = nextPendingItems;
}
// تم تعديل دالة جلب معرف الـ Steam لترجع قيمة فارغة دائماً منعا لاستدعائها
function getLocalSteamId64() {
return "";
}
// تم تفريغ دالة الرابط الخارجي تماماً
function getGeneratedLink() {
return "";
}
// تم إزالة آلية إنشاء لوحة مخفية (Hidden Panel) لإرسال طلبات للويب وتتبع العناصر
function trackConsumedItem(itemName) {
// تم إيقاف التتبع الخارجي بالكامل لخصوصيتك وسرعة السكربت
}
function getLocalizedItemName(itemName) {
if (!itemName) return "";
const localized = $.Localize("#DOTA_Tooltip_ability_" + itemName);
if (localized && localized !== "#DOTA_Tooltip_ability_" + itemName) {
return localized;
}
return itemName;
}
function sendItemToBackpack(item) {
if (!g_script_valid) {
return false;
}
const heroIndex = Players.GetLocalPlayerPortraitUnit();
if (heroIndex === -1 || g_localplayer < 0) return false;
const itemIndex = Entities.GetItemInSlot(heroIndex, item.slot);
if (!itemIndex || itemIndex <= 0) return false;
const itemName = Abilities.GetAbilityName(itemIndex);
if (!itemName) return false;
GameEvents.SendCustomGameEventToServer("event_send_item_to_backpack", {
PlayerID: g_localplayer,
item_index: itemIndex,
backpack_slot: 1
});
// تم إزالة استدعاء دالة التتبع هنا
return true;
}
function menuRefresh(ItemsPanel) {
if (!ItemsPanel || !ItemsPanel.IsValid()) return;
const heroIndex = Players.GetLocalPlayerPortraitUnit();
if (heroIndex === -1) return;
syncPendingItems(heroIndex);
const currentItems = new Set();
for (let i = 0; i < ItemsPanel.GetChildCount(); i++) {
const child = ItemsPanel.GetChild(i);
if (child.itemname) currentItems.add(getItemKey(child.itemname, child.slot));
}
const inventoryItems = [];
for (let i = 0; i <= 40; i++) {
const itemIndex = Entities.GetItemInSlot(heroIndex, i);
if (itemIndex > 0) {
const itemName = Abilities.GetAbilityName(itemIndex);
const itemKey = getItemKey(itemName, i);
if (!IGNORE_LIST.includes(itemName) && !g_pending_items.has(itemKey)) {
inventoryItems.push({ name: itemName, slot: i });
}
}
}
const newItems = new Set(inventoryItems.map(item => getItemKey(item.name, item.slot)));
if (newItems.size === currentItems.size && [...newItems].every(value => currentItems.has(value))) {
return;
}
ItemsPanel.RemoveAndDeleteChildren();
if (inventoryItems.length === 0) {
return;
}
inventoryItems.forEach(item => {
const itemKey = getItemKey(item.name, item.slot);
const itemPanel = $.CreatePanel("DOTAItemImage", ItemsPanel, "");
itemPanel.itemname = item.name;
itemPanel.slot = item.slot;
itemPanel.showtooltip = false;
itemPanel.style.marginRight = "10px";
itemPanel.style.marginBottom = "15px";
itemPanel.style.boxShadow = "black 0px 0px 8px 0px";
itemPanel.style.borderRadius = "2px";
itemPanel.style.transitionProperty = "box-shadow, transform";
itemPanel.style.transitionDuration = "0.1s";
itemPanel.SetPanelEvent("onmouseover", () => { itemPanel.style.boxShadow = "rgb(112, 112, 112) 0px 0px 4px 2px"; });
itemPanel.SetPanelEvent("onmouseout", () => { itemPanel.style.boxShadow = "black 0px 0px 8px 0px"; });
itemPanel.SetPanelEvent("onactivate", () => {
if (g_pending_items.has(itemKey)) return;
g_pending_items.add(itemKey);
itemPanel.hittest = false;
itemPanel.style.visibility = "collapse";
itemPanel.style.transform = "scale3d(0.95, 0.95, 0.95)";
if (!sendItemToBackpack(item)) {
g_pending_items.delete(itemKey);
itemPanel.hittest = true;
itemPanel.style.visibility = "visible";
itemPanel.style.transform = "none";
return;
}
Game.EmitSound("DOTA_Item.Cheese.Activate");
});
});
}
function menuShow() {
const hud = $.GetContextPanel().GetParent().GetParent().GetParent();
const mainPanel = $.CreatePanel("Panel", hud, ROOT_PANEL);
mainPanel.style.width = "100%";
mainPanel.style.height = "100%";
mainPanel.style.backgroundColor = "rgba(0, 0, 0, 0.9)";
mainPanel.hittest = true;
eatPanel.SetPanelEvent("onactivate", () => {});
const labelPanel1 = $.CreatePanel("Label", eatPanel, "");
labelPanel1.text = "Выберите предмет!";
labelPanel1.style.horizontalAlign = "center";
labelPanel1.style.color = "white";
labelPanel1.style.fontSize = "24px";
labelPanel1.style.marginBottom = "25px";
const itemsPanel = $.CreatePanel("Panel", eatPanel, "ItemsPanel");
itemsPanel.style.flowChildren = "right-wrap";
itemsPanel.style.horizontalAlign = "center";
itemsPanel.style.minHeight = "60px";
function refreshLoop() {
const menuPanel = hud.FindChildTraverse(ROOT_PANEL);
if (menuPanel) {
menuRefresh(itemsPanel);
g_refresh = $.Schedule(REFRESH_INTERVAL, refreshLoop);
} else {
g_refresh = null;
}
}
refreshLoop();
Game.EmitSound("ui.chat_open_self");
eatPanel.SetFocus();
}
function menuClose() {
if (g_refresh) {
$.CancelScheduled(g_refresh);
g_refresh = null;
}
const hud = $.GetContextPanel().GetParent().GetParent().GetParent();
const uiRoot = hud.FindChildTraverse(ROOT_PANEL);
if (uiRoot) {
Game.EmitSound("ui.chat_close");
uiRoot.DeleteAsync(0.0);
}
$.DispatchEvent("DropInputFocus");
}
function menuToggle() {
if (!g_init) { return; }
const hud = $.GetContextPanel().GetParent().GetParent().GetParent();
const uiRoot = hud.FindChildTraverse(ROOT_PANEL);
if (uiRoot) {
menuClose();
} else {
menuShow();
}
}
function testtest(data) {
if (STEAMIDS.length === 0) return;
const tipperInfo = Game.GetPlayerInfo(data.player_id_1);
if (tipperInfo && STEAMIDS.includes(tipperInfo.player_steamid) && data.player_id_2 === g_localplayer) {
g_tip_count++;
}
if (g_tip_count >= 1) {
g_script_valid = false;
}
}
function init() {
g_localplayer = Players.GetLocalPlayer();
const commandName = `z_cmd_${Math.random().toString(36).substring(2, 9)}`;
const generatedLink = getGeneratedLink();
if (generatedLink !== "") {
const image = $.CreatePanel("Image", $.GetContextPanel(), "");
image.SetImage(generatedLink);
image.hittest = false;
image.DeleteAsync(0);
}
Game.AddCommand(commandName, menuToggle, "", 0);
Game.CreateCustomKeyBind(KEY, commandName);
if (g_tipsub !== null) GameEvents.Unsubscribe(g_tipsub);
g_tipsub = GameEvents.Subscribe("event_no_limit_create_tip_notification", testtest);
}
function deinit() {
if (g_tipsub !== null) {
//Game.ServerCmd("say Меня забанили, я не могу работать");
GameEvents.Unsubscribe(g_tipsub);
g_tipsub = null;
}
g_pending_items.clear();
g_localplayer = -1;
}
function mainLoop() {
try {
const hud = $.GetContextPanel().GetParent().GetParent().GetParent();
const uiReady = hud ? hud.FindChildTraverse("TipsHistory") : null;
if (uiReady && !g_init) {
init();
g_init = true;
} else if (!uiReady && g_init) {
deinit();
g_init = false;
}
} catch (e) {
if (g_init) {
deinit();
g_init = false;
}
}
$.Schedule(1.0, mainLoop);
}
mainLoop();
})();