Lineage 2 Tower Forum

Full Version: НЕ хочет точить!
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
ПОМОГИТЕ! не хочет точить при запуске пише Hi... lest start enchanting
Out of enchants или просто финишь! Это на интерлюде! если есть у кого рабочий скинте в тему!
    LUA Programming
-- SCRIPT CONFIGURATION!
 
item_name = "Arcana Mace Acumen"
enchant_name = "Blessed Scroll: Enchant Weapon (S-Grade)"
blessed_enchant_name = "Blessed Scroll: Enchant Weapon (S-Grade)"
max_enchant = 16
max_safe_enchant = 16
delay = 300
 
-- 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()

Reference URL's