Jump to content

Recommended Posts

Posted

Hey guys.
 
I`ve problem with L2 Tower and enchanting by this way. When i start the script, my item is enchanted once or twice, then it stopping, and I need to spam the ">" to enchant my item. Any solution what I have to change in this script?
 
Here is the script:

 

-- SCRIPT CONFIGURATION!
 
item_name = "Nightmarish Tattoo"
enchant_name = "Scroll: Enchant Armor (Grade A)"
blessed_enchant_name = "Blessed Scroll: Enchant Weapon (Grade S)"
max_enchant = 25
max_safe_enchant = 25
delay = 0
 
-- END OF SCRIPT CONFIGURATION
 
-- HELPER FUNCTIONS
function enchantResult()
  return GetEnchantManager():getLastResult()
end
 
function getItemByName(name, maxenchant)
    invList = GetInventory();
    for item in invList.list do
        if item.Name == name and item.Enchanted < maxenchant then
            return item
        end
    end
end
 
stats = {}
 
function registerSuccess(base)
    if stats[base] == nil then
        stats[base] = { success = 0, failure = 0 }
    end
    stats[base].success = stats[base].success + 1
end
 
function registerFailure(base)
    if stats[base] == nil then
        stats[base] = { success = 0, failure = 0 }
    end
    stats[base].failure = stats[base].failure + 1
end
 
function printStatistics()
    for i,v in ipairs(stats) do
        ShowToClient("Enchant", "[" ..     i - 1 .. "->" .. i .. "] Rate: success: " .. v.success .. " / fail: " .. v.failure .." (" .. ( v.success  * 100 )/ ( v.success + v.failure ) .. "%)")
    end
end
 
-- MAIN LOOP!
 
while true do
    -- find item for enchanting
    item = getItemByName(item_name, max_enchant)
    if ( item == nil ) then
        ShowToClient("Enchant", "Out of items" )
        break
    end
    -- find proper enchant scroll
    enchant = nil
    if ( item.Enchanted >= max_safe_enchant ) then
        enchant = getItemByName(blessed_enchant_name, 5)
    else
        enchant = getItemByName(enchant_name, 5)
    end
 
    if ( enchant == nil ) then
        ShowToClient("Enchant", "Out of enchants")
        break
    end
 
     GetEnchantManager():setDelay(delay)
    GetEnchantManager():setEnchantId(enchant.objectId)
    GetEnchantManager():setItemId(item.objectId)
    GetEnchantManager():Enchant()
 
    while ( enchantResult() == Enchant.ENCHANT_PENDING ) do
        Sleep(0)
    end
 
    if ( enchantResult() == Enchant.ENCHANT_SUCCESS ) then    
        Sleep ( 0 ) -- sleep so item data is updated
        item = GetInventory():FindById(item.objectId)
        ShowToClient("Enchant",  item.Name .. " is now +" .. item.Enchanted);
        registerSuccess ( item.Enchanted )
    elseif ( enchantResult() == Enchant.ENCHANT_FAILURE ) then
        ShowToClient("Enchant",  item.Name .. " failed on " .. item.Enchanted .. " -> " .. item.Enchanted +4)
        Sleep ( 0 ) -- sleep so item data is updated
        registerFailure ( item.Enchanted +4 )
    end
    printStatistics()
end
ShowToClient("Enchant", "Enchant script finished")
printStatistics()

Posted

blessed_enchant_name = "Blessed Scroll: Enchant Weapon (Grade S)"

max_enchant = 25

max_safe_enchant = 25

 

....

And what? I don`t use blessed scrolls there so It dont need to be correct. Anyone have suggestion how to fix it?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • First of all, its great to finally have something meaningful to discuss on this forum  and good job pushing this community forward, even if its mostly dead. I always wondered why, in the last 15 years, no one has properly documented any of the source code (acis mobius) or at least exposed common functionality through something like a rest api, which is straightforward enough for most people to understand and use.   I have some technical questions since im really interested   Regarding real time features like maps and enchanting  are you using technologies like grpc? And what happens when both a logged in player and panel try to enchant the same item at the same time? Do we run into a race condition how do you handle that ?   Regarding  fake player system  external models calls typically take 1-2 seconds to respond, while an local models might take around 200-300ms. During that time a lot can happen in game. So when the plan becomes stale you override it and wait for the new one  meaning the node handles everything in real time and the LLM simply sets the goal asynchronously. Is that the correct understanding ?   Regarding the security aspect a lot can go wrong when exposing crucial server logic to the open web (experimental is good). My real concern is  the mcp in the panel where  a lot can go wrong with bad user input.      Wasn't the game client always the limiting factor for l2j?
    • Migrating a legacy Interlude server to PostgreSQL while adding real observability is basically forcing 2006 MMO engineering to attend a 2026 infrastructure conference at gunpoint. PS: which revision of aCis? PS: 🧻what was broken during this whatever you call it.    AAC Guard beign asked to adapt to this be like: - Creating bugs since early 2018
    • OH MY LORDDDDDDDDDDDDDDDDDDDDD   FINALLY
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..