Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Ibot 2.3.6


krzysiek1434

Rekomendowane odpowiedzi

Opublikowano

Witam mam problem z ibotem nie liczy mi golda ani loowanych itemów mój skrypt hud jaki uzywam


    MONITOR_MY_HUNTING = MONITOR_MY_HUNTING or {
        SCRIPT_NAME = "Monitor My Hunting",
        SCRIPT_VERSION = "1.0",
        
        CLEARED_STATS = false,
        INITIALIZED = false,
    }

    MONITOR_MY_HUNTING.SHOW_ALL_ITEMS = true
    MONITOR_MY_HUNTING.ITEMS_LIST = {
        {NAME = "gold coin", VALUE = 1},
        {NAME = "platinum coin", VALUE = 100},
        {NAME = "cultish robe", VALUE = 150},
        {NAME = "rope belt", VALUE = 66},
        {NAME = "cultish symbol", VALUE = 500},
        {NAME = "life ring", VALUE = 500},
        {NAME = "small emerald", VALUE = 250},
        {NAME = "pirate voodoo doll", VALUE = 500},
        {NAME = "terra rod", VALUE = 2000},
        {NAME = "broken key ring", VALUE = 8000},
        {NAME = "time ring", VALUE = 100},
        {NAME = "small ruby", VALUE = 250},
        {NAME = "hailstorm rod", VALUE = 3000},
        {NAME = "red robe", VALUE = 15000},
        {NAME = "lunar staff", VALUE = 5000},
        {NAME = "amber staff", VALUE = 8000},
        {NAME = "cultish mask", VALUE = 280},
        {NAME = "strong mana potion", VALUE = 80},
        {NAME = "small sapphire", VALUE = 250},
        {NAME = "skull staff", VALUE = 6000},
        {NAME = "platinum amulet", VALUE = 2500},
        {NAME = "wand of inferno", VALUE = 3000},
        {NAME = "mysterious voodoo skull", VALUE = 4000},
        {NAME = "blue robe", VALUE = 10000},
        {NAME = "piggy bank", VALUE = 2000},
        {NAME = "jewelled backpack", VALUE = 5000},
        {NAME = "dwarven ring", VALUE = 1000},
        {NAME = "small diamond", VALUE = 300},
        {NAME = "frosty heart", VALUE = 280},
        {NAME = "black pearl", VALUE = 280},
        {NAME = "ice rapier", VALUE = 1000},
        {NAME = "shard", VALUE = 2000},
        {NAME = "strong health potion", VALUE = 100},
        {NAME = "glacier mask", VALUE = 2500},
        {NAME = "spider silk", VALUE = 10000},
        {NAME = "knight legs", VALUE = 5000},
        {NAME = "knight armor", VALUE = 5000},
        {NAME = "sapphire hammer", VALUE = 7000},
    }
 
    MONITOR_MY_HUNTING.SHOW_ALL_SUPPLIES = true
    MONITOR_MY_HUNTING.SUPPLIES_LIST = {
        {NAME = "Mana Potion", PRICE = 50},
        {NAME = "strong mana potion", PRICE = 80},
        {NAME = "great mana potion", PRICE = 120},
        {NAME = "health potion", PRICE = 45},
        {NAME = "strong health potion", PRICE = 100},
        {NAME = "great health potion", PRICE = 190},
        {NAME = "ultimate health potion", PRICE = 310},
        {NAME = "assassin star", PRICE = 100},
        {NAME = "prismatic bolt", PRICE = 20},
        {NAME = "crystalline arrow", PRICE = 20},
        {NAME = "great fireball rune", PRICE = 45},
        {NAME = "sudden death rune", PRICE = 108},
        {NAME = "avalanche rune", PRICE = 45},
        {NAME = "icicle rune", PRICE = 30},
        {NAME = "fireball rune", PRICE = 30},
        {NAME = "thunderstorm rune", PRICE = 37},
    }
    
    -- [[ DO NOT CHANGE ANYTHING BELOW THIS LINE. ]] --
    
    MONITOR_MY_HUNTING.TEMP_ITEMS_LIST = MONITOR_MY_HUNTING.TEMP_ITEMS_LIST or {}
    MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST = MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST or {}
    MONITOR_MY_HUNTING.COLORS = MONITOR_MY_HUNTING.COLORS or {
        BLACK = rgbcolor(1, 1, 1),
        ORANGE = rgbcolor(255, 165, 0),
        BLUE = rgbcolor(30, 144, 255),
        CORNSILK = rgbcolor(205, 200, 177),
        WHITE = rgbcolor(255, 255, 255),
        GREEN = rgbcolor(107, 142, 35),
        RED = rgbcolor(178, 34, 34),
    }
    
    local function CreateMessageObject(MESSAGE_DATA)
        if (type(MESSAGE_DATA) ~= "userdata") then
            return setmetatable({__data = {TYPE = -1, TIME_STAMP = -1, SENDER_NAME = "", SENDER_LEVEL = -1, CONTENT = ""}}, MessageMetaTable)
        else
            return setmetatable({__data = {TYPE = MESSAGE_DATA.type, TIME_STAMP = Misc.ConvertToSeconds(string.sub(MESSAGE_DATA.text, 1, 5)), SENDER_NAME = MESSAGE_DATA.sender, SENDER_LEVEL = tonumber((tostring(string.match(MESSAGE_DATA.text, ".+ (%b[]): .+")):gsub("[^%d]", ""))) or 0, CONTENT = string.sub(MESSAGE_DATA.text, 7)}}, MessageMetaTable)
        end
    end
    
    local function addtextshadow(DISPLAY_TEXT, X_OFFSET, Y_OFFSET, FONT_COLOR)
        setfontcolor(MONITOR_MY_HUNTING.COLORS.BLACK)
        addtext(DISPLAY_TEXT, X_OFFSET + 1, Y_OFFSET + 1)
        setfontcolor(FONT_COLOR)
        addtext(DISPLAY_TEXT, X_OFFSET, Y_OFFSET)
    end
-- [[ INIT END ]] --

if (not Stats.Update()) then
    local SERVER_LOG_MESSAGES = getnewmessages("Server Log")
    local SERVER_LOG_MESSAGES_COUNT = SERVER_LOG_MESSAGES.count - 1
    
    for INDEX = 0, SERVER_LOG_MESSAGES_COUNT do
        local MESSAGE_OBJECT = CreateMessageObject(SERVER_LOG_MESSAGES[SERVER_LOG_MESSAGES_COUNT - INDEX])
        
        if (MESSAGE_OBJECT:Type() == 19 and MESSAGE_OBJECT:Content():lower():match("^loot of")) then
            local LOOT_INFO = Message.ParseLootMessage(MESSAGE_OBJECT, true)

            if (#LOOT_INFO.NAME > 0) then
                Stats.__data.MONSTERS_KILLED[LOOT_INFO.NAME] = (Stats.__data.MONSTERS_KILLED[LOOT_INFO.NAME] or 0) + 1
                
                for _, LOOT_ITEM in ipairs(LOOT_INFO.ITEMS) do
                    if (Stats.__data.ITEMS_LOOTED[LOOT_ITEM.ID]) then
                        Stats.__data.ITEMS_LOOTED[LOOT_ITEM.ID].QUANTITY = Stats.__data.ITEMS_LOOTED[LOOT_ITEM.ID].QUANTITY + LOOT_ITEM.QUANTITY
                    else
                        Stats.__data.ITEMS_LOOTED[LOOT_ITEM.ID] = {ID = LOOT_ITEM.ID, NAME = LOOT_ITEM.NAME, QUANTITY = LOOT_ITEM.QUANTITY, VALUE = Item.GetValue(LOOT_ITEM.ID)}
                    end
                end
            end
        end
    end
end

local RESET_ITEMS_AND_SUPPLIES = #MONITOR_MY_HUNTING.ITEMS_LIST ~= #MONITOR_MY_HUNTING.TEMP_ITEMS_LIST or #MONITOR_MY_HUNTING.SUPPLIES_LIST ~= #MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST

if (not RESET_ITEMS_AND_SUPPLIES) then
    for INDEX, LOOT_ITEM in ipairs(MONITOR_MY_HUNTING.ITEMS_LIST) do
        if (LOOT_ITEM.NAME ~= MONITOR_MY_HUNTING.TEMP_ITEMS_LIST[INDEX].NAME or LOOT_ITEM.VALUE ~= MONITOR_MY_HUNTING.TEMP_ITEMS_LIST[INDEX].VALUE) then
            RESET_ITEMS_AND_SUPPLIES = true
            break
        end
    end
end

if (not RESET_ITEMS_AND_SUPPLIES) then
    for INDEX, SUPPLY_ITEM in ipairs(MONITOR_MY_HUNTING.SUPPLIES_LIST) do
        if (SUPPLY_ITEM.NAME ~= MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST[INDEX].NAME or SUPPLY_ITEM.PRICE ~= MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST[INDEX].PRICE) then
            RESET_ITEMS_AND_SUPPLIES = true
            break
        end
    end
end

if (not MONITOR_MY_HUNTING.INITIALIZED or RESET_ITEMS_AND_SUPPLIES) then
    if (not MONITOR_MY_HUNTING.CLEARED_STATS) then
        Stats.Clear(CLEAR_STATS_ALL)
        Stats.Update()
        
        MONITOR_MY_HUNTING.CLEARED_STATS = true
    end
    
    MONITOR_MY_HUNTING.TEMP_ITEMS_LIST, MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST = {}, {}
        
    for _, LOOT_ITEM in ipairs(MONITOR_MY_HUNTING.ITEMS_LIST) do
        local LOOT_ITEM_ID = Item.GetID(type(LOOT_ITEM.NAME) ~= "table" and LOOT_ITEM.NAME or unpack(LOOT_ITEM.NAME))
        
        Stats.AddItemsLooted(LOOT_ITEM_ID, 0, LOOT_ITEM.VALUE)
        table.insert(MONITOR_MY_HUNTING.TEMP_ITEMS_LIST, {ID = LOOT_ITEM_ID, NAME = LOOT_ITEM.NAME, VALUE = LOOT_ITEM.VALUE})
    end
     
    for _, SUPPLY_ITEM in ipairs(MONITOR_MY_HUNTING.SUPPLIES_LIST) do
        local SUPPLY_ITEM_ID = Item.GetID(type(SUPPLY_ITEM.NAME) ~= "table" and SUPPLY_ITEM.NAME or unpack(SUPPLY_ITEM.NAME))
        
        Stats.AddSuppliesUsed(SUPPLY_ITEM_ID, 0, SUPPLY_ITEM.PRICE)
        table.insert(MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST, {ID = SUPPLY_ITEM_ID, NAME = SUPPLY_ITEM.NAME, PRICE = SUPPLY_ITEM.PRICE})
    end
    
    MONITOR_MY_HUNTING.INITIALIZED = true
end

setposition(Client.ClientWindow().right - 434, Client.WorldWindow().top + 5)

local Y_POSITION, INDEX, ITEMS_LOOTED_WORTH, SUPPLIES_USED_WORTH = 30, 0, 0, 0

addtextshadow(sprintf("%s v%s", MONITOR_MY_HUNTING.SCRIPT_NAME:upper(), MONITOR_MY_HUNTING.SCRIPT_VERSION), 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.ORANGE)

Y_POSITION = Y_POSITION + 20

addtextshadow("ITEMS LOOTED", 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.BLUE)

Y_POSITION = Y_POSITION + 20

for _, LOOT_ITEM in pairs(Stats.GetItemsLooted()) do
    if ((MONITOR_MY_HUNTING.SHOW_ALL_ITEMS or table.find(MONITOR_MY_HUNTING.TEMP_ITEMS_LIST, LOOT_ITEM.ID, "ID")) and LOOT_ITEM.QUANTITY > 0) then
    addtextshadow(((#LOOT_ITEM.NAME > 17 and sprintf("%s...", string.match(string.sub(LOOT_ITEM.NAME, 1, 17), "(.-)%s?$"))) or LOOT_ITEM.NAME):ucwords(), 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.CORNSILK)
    addtextshadow(sprintf("%s (%sK)", Misc.FormatNumber(LOOT_ITEM.QUANTITY), tostring(math.floor(LOOT_ITEM.VALUE * LOOT_ITEM.QUANTITY / 100) / 10)), 140, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.WHITE)

    INDEX, ITEMS_LOOTED_WORTH = INDEX + 1, ITEMS_LOOTED_WORTH + (LOOT_ITEM.VALUE * LOOT_ITEM.QUANTITY)
    end
end

addtextshadow("Total:", 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.WHITE)
addtextshadow(sprintf("%s GPs", Misc.FormatNumber(ITEMS_LOOTED_WORTH)), 10 + 35, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.ORANGE)

Y_POSITION = Y_POSITION + 20

addtextshadow("SUPPLIES USED", 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.BLUE)

Y_POSITION = Y_POSITION + 20

for _, SUPPLY_ITEM in pairs(Stats.GetSuppliesUsed()) do
    if ((MONITOR_MY_HUNTING.SHOW_ALL_SUPPLIES or table.find(MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST, SUPPLY_ITEM.ID, "ID")) and SUPPLY_ITEM.QUANTITY > 0) then
        addtextshadow(((#SUPPLY_ITEM.NAME > 17 and sprintf("%s...", string.match(string.sub(SUPPLY_ITEM.NAME, 1, 17), "(.-)%s?$"))) or SUPPLY_ITEM.NAME):ucwords(), 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.CORNSILK)
        addtextshadow(sprintf("%s (%sK)", Misc.FormatNumber(SUPPLY_ITEM.QUANTITY), tostring(math.floor(SUPPLY_ITEM.PRICE * SUPPLY_ITEM.QUANTITY / 100) / 10)), 140, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.WHITE)

        INDEX, SUPPLIES_USED_WORTH = INDEX + 1, SUPPLIES_USED_WORTH + (SUPPLY_ITEM.PRICE * SUPPLY_ITEM.QUANTITY)
    end
end

addtextshadow("Total:", 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.WHITE)
addtextshadow(sprintf("%s GPs", Misc.FormatNumber(SUPPLIES_USED_WORTH)), 10 + 35, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.ORANGE)

Y_POSITION = Y_POSITION + 20

addtextshadow(sprintf("%s: %s GPs (%s K/H)", ((ITEMS_LOOTED_WORTH >= SUPPLIES_USED_WORTH and ("PROFIT")) or ("WASTE")), Misc.FormatNumber(ITEMS_LOOTED_WORTH - SUPPLIES_USED_WORTH), tostring(math.floor(((ITEMS_LOOTED_WORTH - SUPPLIES_USED_WORTH) * 3600) / (System.HuntingTime() / 1000) / 100) / 10)), 10, Y_POSITION + (INDEX * 16), ITEMS_LOOTED_WORTH >= SUPPLIES_USED_WORTH and MONITOR_MY_HUNTING.COLORS.GREEN or MONITOR_MY_HUNTING.COLORS.RED)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...