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() Quote
snshd Posted January 14, 2014 Posted January 14, 2014 blessed_enchant_name = "Blessed Scroll: Enchant Weapon (Grade S)"max_enchant = 25max_safe_enchant = 25 .... Quote
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? Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.