Jump to content

LF Script for L2 Tower


DastiK

Recommended Posts

local weaponName = "Bound Mysterious Sword"
local lifestoneName = "Mid-Grade Life Stone -  Level 80"
local gemstoneName = "Gemstone D"
local gemstone_count = 20
local npcName = "Pushkin"

function getItemByName(name)
invList = GetInventory();
for item in invList.list do
	if item.Name == name then
		-- ShowToClient("ITEM", item.Name .. " (ID: " .. item.displayId  .. ")");
		return item
	end
end
end

function openAugmentWindow(name)
target = GetTarget()
if ( target ~= nil ) then
	if ( target:GetName() ~= name ) then
		CancelTarget(true)
		Sleep(500)
		TargetNpc(name, 0)
		Sleep(500)
	end
else
	TargetNpc(name, 0)
	Sleep(500)
end

target = GetTarget()
if ( target ~= nil and target:GetName() == name ) then
	Talk()
	Sleep(750)
	ClickLinkAndWait("blacksmith_pushkin005.htm");
	Sleep(750)
	ClickLinkAndWait("smelting_start.htm");
	Sleep(750)
	ClickAndWait("menu_select?ask=-503&reply=100", "Start augmenting.");
	Sleep(750)
	return true
end
return false
end

function getItemByName(name)
invList = GetInventory();
for item in invList.list do
	if item.Name == name then
		-- ShowToClient("ITEM", item.Name .. " (ID: " .. item.displayId  .. ")");
		return item
	end
end
end

function openAugmentCancelWindow(name)
target = GetTarget()
if ( target ~= nil ) then
	if ( target:GetName() ~= name ) then
		CancelTarget(true)
		Sleep(500)
		TargetNpc(name, 0)
		Sleep(500)
	end
else
	TargetNpc(name, 0)
	Sleep(500)
end

target = GetTarget()
if ( target ~= nil and target:GetName() == name ) then
	Talk();
	ClickLinkAndWait("blacksmith_pushkin005.htm");
	Sleep(750)
	ClickLinkAndWait("smelting_break.htm");
	Sleep(750)
	ClickAndWait("menu_select?ask=-503&reply=200", "Remove the refined Life Stone.");
	Sleep(750)
	return true
end
return false
end

weapon = getItemByName(weaponName)
if ( weapon == nil ) then
ShowToClient("AUGMENT", "Could not find weapon " .. weaponName)
else
weaponId = weapon.objectId
GetAugmentManager():setItemId(weaponId)
repeat
	if ( weapon.RefineryOp2 == 0 ) then
		lifestone = getItemByName(lifestoneName)	
		gemstone = getItemByName(gemstoneName)
		if ( lifestone == nil or gemstone == nil ) then
			ShowToClient("AUGMENT:", "Out of gemstones or life stones")
			break
		end

		GetAugmentManager():setItemId(weaponId)
		GetAugmentManager():setLifeStoneId(lifestone.objectId)
		GetAugmentManager():setGemstoneId(gemstone.objectId, 20)
		GetAugmentManager():Augment()

		if ( openAugmentWindow(npcName) == false ) then
			break
		end

		while ( GetAugmentManager():getAugmentResult() == Augment.AUGMENT_PENDING ) do
			Sleep(200)
		end
		if ( GetAugmentManager():getAugmentResult() == Augment.AUGMENT_FINISHED ) then	
			Sleep ( 100 ) -- sleep so item data is updated
			weapon = GetInventory():FindById(weaponId)
		end

		if ( GetAugmentManager():KeepAugment ( weapon.RefineryOp2 ) == true ) then
			ShowToClient("AUGMENT:", "You have achieved desired augment! " .. weapon.RefineryOp2)
			break
		end
	else
		if ( GetAugmentManager():KeepAugment ( weapon.RefineryOp2 ) == true ) then
			ShowToClient("AUGMENT:", "You have achieved desired augment! " .. weapon.RefineryOp2)
			break
		end

		GetAugmentManager():setItemId(weaponId)
		GetAugmentManager():AugmentCancel()

		if ( openAugmentCancelWindow(npcName) == false ) then
			break
		end

		while ( GetAugmentManager():getAugmentCancelResult() == Augment.AUGMENT_CANCEL_PENDING ) do
			Sleep(200)
		end
		if ( GetAugmentManager():getAugmentCancelResult() == Augment.AUGMENT_FINISHED ) then	
			Sleep ( 100 ) -- sleep so item data is updated
		end
		weapon = GetInventory():FindById(weaponId)
	end
until false
end

 

Madafaka L2tower lover :D

Link to comment
Share on other sites

local weaponName = "Bound Mysterious Sword"
local lifestoneName = "Mid-Grade Life Stone -  Level 80"
local gemstoneName = "Gemstone D"
local gemstone_count = 20
local npcName = "Pushkin"

function getItemByName(name)
invList = GetInventory();
for item in invList.list do
	if item.Name == name then
		-- ShowToClient("ITEM", item.Name .. " (ID: " .. item.displayId  .. ")");
		return item
	end
end
end

function openAugmentWindow(name)
target = GetTarget()
if ( target ~= nil ) then
	if ( target:GetName() ~= name ) then
		CancelTarget(true)
		Sleep(500)
		TargetNpc(name, 0)
		Sleep(500)
	end
else
	TargetNpc(name, 0)
	Sleep(500)
end

target = GetTarget()
if ( target ~= nil and target:GetName() == name ) then
	Talk()
	Sleep(750)
	ClickLinkAndWait("blacksmith_pushkin005.htm");
	Sleep(750)
	ClickLinkAndWait("smelting_start.htm");
	Sleep(750)
	ClickAndWait("menu_select?ask=-503&reply=100", "Start augmenting.");
	Sleep(750)
	return true
end
return false
end

function getItemByName(name)
invList = GetInventory();
for item in invList.list do
	if item.Name == name then
		-- ShowToClient("ITEM", item.Name .. " (ID: " .. item.displayId  .. ")");
		return item
	end
end
end

function openAugmentCancelWindow(name)
target = GetTarget()
if ( target ~= nil ) then
	if ( target:GetName() ~= name ) then
		CancelTarget(true)
		Sleep(500)
		TargetNpc(name, 0)
		Sleep(500)
	end
else
	TargetNpc(name, 0)
	Sleep(500)
end

target = GetTarget()
if ( target ~= nil and target:GetName() == name ) then
	Talk();
	ClickLinkAndWait("blacksmith_pushkin005.htm");
	Sleep(750)
	ClickLinkAndWait("smelting_break.htm");
	Sleep(750)
	ClickAndWait("menu_select?ask=-503&reply=200", "Remove the refined Life Stone.");
	Sleep(750)
	return true
end
return false
end

weapon = getItemByName(weaponName)
if ( weapon == nil ) then
ShowToClient("AUGMENT", "Could not find weapon " .. weaponName)
else
weaponId = weapon.objectId
GetAugmentManager():setItemId(weaponId)
repeat
	if ( weapon.RefineryOp2 == 0 ) then
		lifestone = getItemByName(lifestoneName)	
		gemstone = getItemByName(gemstoneName)
		if ( lifestone == nil or gemstone == nil ) then
			ShowToClient("AUGMENT:", "Out of gemstones or life stones")
			break
		end

		GetAugmentManager():setItemId(weaponId)
		GetAugmentManager():setLifeStoneId(lifestone.objectId)
		GetAugmentManager():setGemstoneId(gemstone.objectId, 20)
		GetAugmentManager():Augment()

		if ( openAugmentWindow(npcName) == false ) then
			break
		end

		while ( GetAugmentManager():getAugmentResult() == Augment.AUGMENT_PENDING ) do
			Sleep(200)
		end
		if ( GetAugmentManager():getAugmentResult() == Augment.AUGMENT_FINISHED ) then	
			Sleep ( 100 ) -- sleep so item data is updated
			weapon = GetInventory():FindById(weaponId)
		end

		if ( GetAugmentManager():KeepAugment ( weapon.RefineryOp2 ) == true ) then
			ShowToClient("AUGMENT:", "You have achieved desired augment! " .. weapon.RefineryOp2)
			break
		end
	else
		if ( GetAugmentManager():KeepAugment ( weapon.RefineryOp2 ) == true ) then
			ShowToClient("AUGMENT:", "You have achieved desired augment! " .. weapon.RefineryOp2)
			break
		end

		GetAugmentManager():setItemId(weaponId)
		GetAugmentManager():AugmentCancel()

		if ( openAugmentCancelWindow(npcName) == false ) then
			break
		end

		while ( GetAugmentManager():getAugmentCancelResult() == Augment.AUGMENT_CANCEL_PENDING ) do
			Sleep(200)
		end
		if ( GetAugmentManager():getAugmentCancelResult() == Augment.AUGMENT_FINISHED ) then	
			Sleep ( 100 ) -- sleep so item data is updated
		end
		weapon = GetInventory():FindById(weaponId)
	end
until false
end

 

Madafaka L2tower lover :D

 

 

thnx my cool frand! love you  O0

Link to comment
Share on other sites

  • 2 years later...
  • 1 year later...
  • 2 months later...

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.

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.



×
×
  • Create New...