L2Tower Need Help With Enchant


Recommended Posts

  • 1 month later...

hello all, i have problem with L2Tower enchant. when i press start enhcant do +2, and no enchant more. what can i do? how to resolve problem?

Drop here the script .lua to tell u what is going on!!!

Share this post


Link to post
Share on other sites
-- SCRIPT CONFIGURATION!

 

item_name = "Vesper Cutter"

enchant_name = "Scroll: Enchant Weapon (S-Grade)"

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

max_enchant = 25

max_safe_enchant = 3

delay = 2100

 

-- 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, 20)

else

enchant = getItemByName(enchant_name, 20)

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(200)

end

 

if ( enchantResult() == Enchant.ENCHANT_SUCCESS ) then

Sleep ( 500 ) -- 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+1)

Sleep ( 500 ) -- sleep so item data is updated

registerFailure ( item.Enchanted + 1)

end

printStatistics()

end

ShowToClient("Enchant", "Enchant script finished")

printStatistics()

Share this post


Link to post
Share on other sites
  • 5 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.