koronzon1 Posted January 14, 2014 Posted January 14, 2014 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 = 25max_safe_enchant = 25delay = 0 -- END OF SCRIPT CONFIGURATION -- HELPER FUNCTIONSfunction 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 endend stats = {} function registerSuccess(base) if stats[base] == nil then stats[base] = { success = 0, failure = 0 } end stats[base].success = stats[base].success + 1end function registerFailure(base) if stats[base] == nil then stats[base] = { success = 0, failure = 0 } end stats[base].failure = stats[base].failure + 1end 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 ) .. "%)") endend -- 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()endShowToClient("Enchant", "Enchant script finished")printStatistics()
snshd Posted January 14, 2014 Posted January 14, 2014 blessed_enchant_name = "Blessed Scroll: Enchant Weapon (Grade S)"max_enchant = 25max_safe_enchant = 25 ....
koronzon1 Posted January 17, 2014 Author Posted January 17, 2014 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?
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now