Lineage 2 Tower Forum

Full Version: Augment script
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Help
When the script is run it opens augmentation window and crit game window General protection fault!

Script
Code:
local weaponName = "Wizad's Tear"
local lifestoneName = "Mid-Grade Life Stone: level 76"
local gemstoneName = "Gemstone D"
local gemstone_count = 30
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();
        ClickAndWait("npc_268457188_Chat 5", "Augment Item.");

                Sleep(750)                
                ClickAndWait("npc_268457188_Link common/augmentation_01.htm", "Augment.");

                Sleep(750)
                ClickAndWait("npc_268457188_Augment 1", "Augment.")
                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();
        ClickAndWait("npc_268457188_Chat 5", "Augment Item.");

                Sleep(750)                
                ClickAndWait("npc_268457188_Link common/augmentation_01.htm", "Augment.");

                Sleep(750)
                ClickAndWait("npc_268457188_Augment 1", "Augment.")
                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, 30)
            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

bump
up
did you check if this links are vaild for your server?

ClickAndWait("npc_268457188_Chat 5", "Augment Item.");

ClickAndWait("npc_268457188_Link common/augmentation_01.htm", "Augment.");
ClickAndWait("npc_268457188_Augment 1", "Augment.")
(07-24-2012 07:49 AM)wppw Wrote: [ -> ]did you check if this links are vaild for your server?

ClickAndWait("npc_268457188_Chat 5", "Augment Item.");

ClickAndWait("npc_268457188_Link common/augmentation_01.htm", "Augment.");
ClickAndWait("npc_268457188_Augment 1", "Augment.")

all dialogues right, script open aug window correctly.
Hello
I have a problem, I'll explain to you when I talk to Pushkin and the augment, that part is done but when I want to cancel the augment does not, could you help me with that?, Thanks.
Reference URL's