My edits for two scripts. Both set up to NOT mute anthing that has been Attuned. These were edited from Amadeus' posted script.
First called TranmuteTreasured.iss
function main(int FromLevel, int ToLevel)
{
variable int i = 1
if ${FromLevel} <= 0 || ${ToLevel} <= 0
{
echo "BAD SYNTAX"
return
}
Me:CreateCustomInventoryArray[nonbankonly]
wait 40
do
{
if !${Me.CustomInventory[${i}](exists)}
continue
if !${Me.CustomInventory[${i}].Tier.Equal[TREASURED]}
continue
if ${Me.CustomInventory[${i}].Attuned}
continue
if ${Me.CustomInventory[${i}].NoValue}
continue
if ${Me.CustomInventory[${i}].Crafter(exists)} && ${Me.CustomInventory[${i}].Crafter.Length} > 0
continue
if ${Me.CustomInventory[${i}].IsContainer}
continue
if ${Me.CustomInventory[${i}].Level} < ${FromLevel} || ${Me.CustomInventory[${i}].Level} > ${ToLevel}
continue
echo "DEBUG:: Transmuting ${Me.CustomInventory[${i}]}."
Me.CustomInventory[${i}]:Transmute
wait 5
do
{
waitframe
}
while ${Me.CastingSpell}
wait 200 ${RewardWindow(exists)}
RewardWindow:Receive
wait 5
}
while ${i:Inc}<=${Me.CustomInventoryArraySize}
press ESC
echo "Script Ended."
}
Sencond named TransmuteLegendary.iss
function main(int FromLevel, int ToLevel)
{
variable int i = 1
if ${FromLevel} <= 0 || ${ToLevel} <= 0
{
echo "BAD SYNTAX"
return
}
Me:CreateCustomInventoryArray[nonbankonly]
wait 5
do
{
if !${Me.CustomInventory[${i}](exists)}
continue
if !${Me.CustomInventory[${i}].Tier.Equal[LEGENDARY]}
continue
if ${Me.CustomInventory[${i}].NoValue}
continue
if ${Me.CustomInventory[${i}].Crafter(exists)} && ${Me.CustomInventory[${i}].Crafter.Length} > 0
continue
if ${Me.CustomInventory[${i}].IsContainer}
continue
if ${Me.CustomInventory[${i}].Attuned}
continue
if ${Me.CustomInventory[${i}].Level} < ${FromLevel} || ${Me.CustomInventory[${i}].Level} > ${ToLevel}
continue
echo "DEBUG:: Transmuting ${Me.CustomInventory[${i}]}."
Me.CustomInventory[${i}]:Transmute
wait 5
do
{
waitframe
}
while ${Me.CastingSpell}
wait 200 ${RewardWindow(exists)}
RewardWindow:Receive
wait 5
}
while ${i:Inc}<=${Me.CustomInventoryArraySize}
press ESC
echo "Script Ended."
}
My new suggestion is to use Eq2Ogretransmute.iss written by Kannkor which is an Awesome Muting script.
However, mine has been edited so it NEVER mutes anthing thats ATTUNED and it defaults to making the user choose what they want muted IE, treasured, legendary, fabled, Etc.
Here is my edit to the Eq2ogreTransmute.iss
/**
EQ2OgreTransmute Version 1.00 - Kannkor
Use the interface to selection options.
Usage: "Run ogre transmute"
**/
#include "${LavishScript.HomeDirectory}/Scripts/eq2ogrecommon/EQ2OgreBagManager.inc"
variable int VarCopy
variable bool Transmuted=FALSE
function main()
{
Event[EQ2_onRewardWindowAppeared]:AttachAtom[EQ2_onRewardWindowAppeared]
variable int ContainerCounter=0
variable int x=0
;When this script is ran initially, it creates the inventory, some of which are NULL. Wait 1 second and get an update.
wait 10
OgreBagInfoOb:Update
wait 10
OgreBagInfoOb:Update
while ${ContainerCounter:Inc}<=6
{
if !${UIElement[${EQ2OgreTransmuteBox${ContainerCounter}ID}].Checked}
{
echo Skipping Container #${ContainerCounter} since it is not checked.
continue
}
x:Set[0]
while ${x:Inc}<=${OgreBagInfoOb.BagSize[${ContainerCounter}]}
{
VarCopy:Set[${OgreBagInfoOb.BagContents[${ContainerCounter},${x}]}]
;Lets eliminate items that can't be transmuted period.
if ${Me.Inventory[id,${VarCopy}].NoValue} || ${Me.Inventory[id,${VarCopy}].Level}<=0 || ${Me.Inventory[id,${VarCopy}].IsReserved} || ${Me.Inventory[id,${VarCopy}].Ornate} || ${Me.Inventory[id,${VarCopy}].Attuned}
continue
if !${Me.Inventory[id,${VarCopy}].Tier.Equal[TREASURED]} && !${Me.Inventory[id,${VarCopy}].Tier.Equal[Legendary]} && !${Me.Inventory[id,${VarCopy}].Tier.Equal[Fabled]} && !${Me.Inventory[id,${VarCopy}].Tier.Equal[mastercrafted]}
continue
;Lets eliminate items that can't be transmuted based on the UI selection
if ${Me.Inventory[id,${VarCopy}].Tier.Equal[TREASURED]} && !${UIElement[${EQ2OgreTransmuteTreasuredID}].Checked}
continue
if ${Me.Inventory[id,${VarCopy}].Tier.Equal[Legendary]} && !${UIElement[${EQ2OgreTransmuteLegendaryID}].Checked}
continue
if ${Me.Inventory[id,${VarCopy}].Tier.Equal[Fabled]} && !${UIElement[${EQ2OgreTransmuteFabledID}].Checked}
continue
if ${Me.Inventory[id,${VarCopy}].Tier.Equal[mastercrafted]} && !${UIElement[${EQ2OgreTransmuteMasterCraftedID}].Checked}
continue
if ${Me.Inventory[id,${VarCopy}].Level} < ${Int[${UIElement[${TEBoxEQ2OgreTransmuteMinLevelID}].Text}]} || ${Me.Inventory[id,${VarCopy}].Level} > ${Int[${UIElement[${TEBoxEQ2OgreTransmuteMaxLevelID}].Text}]}
continue
if ${Me.Inventory[id,${VarCopy}](exists)}
{
call TransmuteIt ${VarCopy}
}
else
echo Report this: {Me.Inventory[id,${VarCopy}](exists)} failed ( ${Me.Inventory[id,${VarCopy}](exists)} ). This shouldn't be possible unless you moved/sold/deleted items.
}
}
if !${Transmuted}
echo You either have no items to transmute in the selected cointainers, or your inventory items were not detected. Try re-running the script to detect.
}
function TransmuteIt(int ItemID)
{
Transmuted:Set[TRUE]
echo Transmuting.. ${Me.Inventory[id,${ItemID}].Name}.
Me.Inventory[id,${ItemID}]:Transmute
wait 20 ${Me.CastingSpell}
while ${Me.CastingSpell}
wait 5
wait 5
}
atom EQ2_onRewardWindowAppeared()
{
RewardWindow:Receive
}
atom atexit()
{
UIElement[${CmdEQ2OgreTransmuteStopID}]:Hide
UIElement[${CmdEQ2OgreTransmuteStartID}]:Show
echo EQ2Ogre Transmute completed.
}
and here is my edit to the EQ2OgreTransmuteXMK.xml
<?xml version="1.0" encoding="UTF-8"?>
<ISUI>
<Template Name='chkbox' template='checkbox'><Width>30</Width><Height>23</Height></Template>
<!-- Main UI Window -->
<Window Name='EQ2OgreTransmuteXML' Template='Window'>
<X>20</X>
<Y>20</Y>
<Width>300</Width>
<Height>400</Height>
<Client Template="Window.Client" />
<StorePosition>1</StorePosition>
<Title>EQ2Ogre Transmute - UI Ver: 1.00</Title>
<TitleBar Template="Window.TitleBar">
<X>0</X>
<Y>0</Y>
<Width>99%</Width>
<Height>5%</Height>
<Children>
<Text Name="Title" Template="Window.TitleBar.Title">
<Alignment>Center</Alignment>
</Text>
<Button Name="Minimize" Template="Window.TitleBar.Minimize">
<X>85%</X>
<Width>16</Width>
<Height>16</Height>
</Button>
<CommandButton Name="Custom Quit Button" Template="Window.TitleBar.Close">
<X>92%</X>
<Width>16</Width>
<Height>16</Height>
<OnLeftClick>
if ${Script[EQ2OgreTransmute]}
endscript EQ2OgreTransmute
ui -unload scripts\\EQ2OgreCommon\\OgreTransmute\\eq2OgreTransmuteXML.xml
</OnLeftClick>
</CommandButton>
</Children>
</TitleBar>
<Children>
<Text name='TextEQ2OgreTransmuteBot' template='Text'>
<X>75</X>
<Y>10</Y>
<Width>350</Width>
<Height>20</Height>
<Alignment>Left</Alignment>
<Font>
<Color>FFBE5522</Color>
<Size>20</Size>
</Font>
<Text>Ogre Transmute Bot</Text>
</Text>
<Text name='TextEQ2OgreTypeText' template='Text'>
<X>10</X>
<Y>35</Y>
<Width>350</Width>
<Height>20</Height>
<Alignment>Left</Alignment>
<Text>Transmute selection</Text>
</Text>
<checkbox name='ChkBoxTransmuteTreasuredID' template='chkbox'>
<X>10</X>
<Y>50</Y>
<Font>
<Color>FF00FF00</Color>
</Font>
<Text>Treasured</Text>
<OnLoad>
declarevariable EQ2OgreTransmuteTreasuredID int global
EQ2OgreTransmuteTreasuredID:Set[${This.ID}]
</OnLoad>
<OnUnLoad>
deletevariable EQ2OgreTransmuteTreasuredID
</OnUnLoad>
</checkbox>
<checkbox name='ChkBoxTransmuteLegendaryID' template='chkbox'>
<X>10</X>
<Y>70</Y>
<Font>
<Color>FF00FF00</Color>
</Font>
<Text>Legendary</Text>
<OnLoad>
declarevariable EQ2OgreTransmuteLegendaryID int global
EQ2OgreTransmuteLegendaryID:Set[${This.ID}]
</OnLoad>
<OnUnLoad>
deletevariable EQ2OgreTransmuteLegendaryID
</OnUnLoad>
</checkbox>
<checkbox name='ChkBoxTransmuteFabledID' template='chkbox'>
<X>10</X>
<Y>90</Y>
<Font>
<Color>FF00FF00</Color>
</Font>
<Text>Fabled</Text>
<OnLoad>
declarevariable EQ2OgreTransmuteFabledID int global
EQ2OgreTransmuteFabledID:Set[${This.ID}]
</OnLoad>
<OnUnLoad>
deletevariable EQ2OgreTransmuteFabledID
</OnUnLoad>
</checkbox>
<checkbox name='ChkBoxTransmuteMasterCraftedID' template='chkbox'>
<X>10</X>
<Y>110</Y>
<Font>
<Color>FF00FF00</Color>
</Font>
<Text>Master Crafted</Text>
<OnLoad>
declarevariable EQ2OgreTransmuteMasterCraftedID int global
EQ2OgreTransmuteMasterCraftedID:Set[${This.ID}]
</OnLoad>
<OnUnLoad>
deletevariable EQ2OgreTransmuteMasterCraftedID
</OnUnLoad>
</checkbox>
<Text name='TextEQ2OgreBoxText' template='Text'>
<X>150</X>
<Y>35</Y>
<Width>350</Width>
<Height>20</Height>
<Alignment>Left</Alignment>
<Text>Box selection</Text>
</Text>
<checkbox name='ChkBoxTransmuteBox1ID' template='chkbox'>
<X>150</X>
<Y>50</Y>
<Font>
<Color>FF00FF00</Color>
</Font>
<Text>Box 1</Text>
<OnLoad>
declarevariable EQ2OgreTransmuteBox1ID int global
EQ2OgreTransmuteBox1ID:Set[${This.ID}]
This:SetChecked
</OnLoad>
<OnUnLoad>
deletevariable EQ2OgreTransmuteBox1ID
</OnUnLoad>
</checkbox>
<checkbox name='ChkBoxTransmuteBox2ID' template='chkbox'>
<X>150</X>
<Y>70</Y>
<Font>
<Color>FF00FF00</Color>
</Font>
<Text>Box 2</Text>
<OnLoad>
declarevariable EQ2OgreTransmuteBox2ID int global
EQ2OgreTransmuteBox2ID:Set[${This.ID}]
This:SetChecked
</OnLoad>
<OnUnLoad>
deletevariable EQ2OgreTransmuteBox2ID
</OnUnLoad>
</checkbox>
<checkbox name='ChkBoxTransmuteBox3ID' template='chkbox'>
<X>150</X>
<Y>90</Y>
<Font>
<Color>FF00FF00</Color>
</Font>
<Text>Box 3</Text>
<OnLoad>
declarevariable EQ2OgreTransmuteBox3ID int global
EQ2OgreTransmuteBox3ID:Set[${This.ID}]
This:SetChecked
</OnLoad>
<OnUnLoad>
deletevariable EQ2OgreTransmuteBox3ID
</OnUnLoad>
</checkbox>
<checkbox name='ChkBoxTransmuteBox4ID' template='chkbox'>
<X>215</X>
<Y>50</Y>
<Font>
<Color>FF00FF00</Color>
</Font>
<Text>Box 4</Text>
<OnLoad>
declarevariable EQ2OgreTransmuteBox4ID int global
EQ2OgreTransmuteBox4ID:Set[${This.ID}]
</OnLoad>
<OnUnLoad>
deletevariable EQ2OgreTransmuteBox4ID
</OnUnLoad>
</checkbox>
<checkbox name='ChkBoxTransmuteBox5ID' template='chkbox'>
<X>215</X>
<Y>70</Y>
<Font>
<Color>FF00FF00</Color>
</Font>
<Text>Box 5</Text>
<OnLoad>
declarevariable EQ2OgreTransmuteBox5ID int global
EQ2OgreTransmuteBox5ID:Set[${This.ID}]
</OnLoad>
<OnUnLoad>
deletevariable EQ2OgreTransmuteBox5ID
</OnUnLoad>
</checkbox>
<checkbox name='ChkBoxTransmuteBox6ID' template='chkbox'>
<X>215</X>
<Y>90</Y>
<Font>
<Color>FF00FF00</Color>
</Font>
<Text>Box 6</Text>
<OnLoad>
declarevariable EQ2OgreTransmuteBox6ID int global
EQ2OgreTransmuteBox6ID:Set[${This.ID}]
</OnLoad>
<OnUnLoad>
deletevariable EQ2OgreTransmuteBox6ID
</OnUnLoad>
</checkbox>
<Text name='TextEQ2OgreLevelText' template='Text'>
<X>15</X>
<Y>150</Y>
<Width>350</Width>
<Height>20</Height>
<Alignment>Left</Alignment>
<Text>Level selection</Text>
</Text>
<Text name='TextEQ2OgreMinLevelText' template='Text'>
<X>15</X>
<Y>170</Y>
<Width>350</Width>
<Height>20</Height>
<Font>
<Color>FF00FF00</Color>
</Font>
<Alignment>Left</Alignment>
<Text>Min level:</Text>
</Text>
<TextEntry Name='TextEntryMinLevel'>
<X>75</X>
<Y>168</Y>
<Width>30</Width>
<Height>15</Height>
<MaxLength>4</MaxLength>
<OnLoad>
declarevariable TEBoxEQ2OgreTransmuteMinLevelID int global
TEBoxEQ2OgreTransmuteMinLevelID:Set[${This.ID}]
This:SetText[1]
</OnLoad>
<OnUnLoad>
deletevariable TEBoxEQ2OgreTransmuteMinLevelID
</OnUnLoad>
</TextEntry>
<Text name='TextEQ2OgreMaxLevelText' template='Text'>
<X>15</X>
<Y>190</Y>
<Width>350</Width>
<Height>20</Height>
<Font>
<Color>FF00FF00</Color>
</Font>
<Alignment>Left</Alignment>
<Text>Max level:</Text>
</Text>
<TextEntry Name='TextEntryMaxLevel'>
<X>75</X>
<Y>188</Y>
<Width>30</Width>
<Height>15</Height>
<MaxLength>4</MaxLength>
<OnLoad>
declarevariable TEBoxEQ2OgreTransmuteMaxLevelID int global
TEBoxEQ2OgreTransmuteMaxLevelID:Set[${This.ID}]
This:SetText[80]
</OnLoad>
<OnUnLoad>
deletevariable TEBoxEQ2OgreTransmuteMaxLevelID
</OnUnLoad>
</TextEntry>
<CommandButton Name="Clear" template='Button'>
<X>15</X>
<Y>350</Y>
<Width>110</Width>
<Height>20</Height>
<Text>Clear</Text>
<Alignment>Center</Alignment>
<OnLeftClick>
ui -reload -skin eq2 "${LavishScript.HomeDirectory}/Scripts/eq2ogrecommon/OgreTransmute/eq2OgreTransmuteXML.xml"
</OnLeftClick>
</CommandButton>
<CommandButton Name="StartTransmute" template='Button'>
<X>150</X>
<Y>350</Y>
<Width>110</Width>
<Height>20</Height>
<Text>Start Transmuting</Text>
<Alignment>Center</Alignment>
<OnLeftClick>
runscript "${LavishScript.HomeDirectory}/Scripts/eq2ogrecommon/OgreTransmute/eq2OgreTransmute"
This.Parent.FindChild[StopTransmute]:Show
This:Hide
</OnLeftClick>
<OnLoad>
declarevariable CmdEQ2OgreTransmuteStartID int global
CmdEQ2OgreTransmuteStartID:Set[${This.ID}]
</OnLoad>
<OnUnLoad>
deletevariable CmdEQ2OgreTransmuteStartID
</OnUnLoad>
</CommandButton>
<CommandButton Name="StopTransmute" template='Button'>
<X>150</X>
<Y>350</Y>
<Width>110</Width>
<Height>20</Height>
<Text>Stop Transmuting</Text>
<Alignment>Center</Alignment>
<visible>0</visible>
<OnLeftClick>
if ${Script[eq2ogretransmute](exists)}
endscript eq2ogretransmute
This.Parent.FindChild[StartTransmute]:Show
This:Hide
</OnLeftClick>
<OnLoad>
declarevariable CmdEQ2OgreTransmuteStopID int global
CmdEQ2OgreTransmuteStopID:Set[${This.ID}]
</OnLoad>
<OnUnLoad>
deletevariable CmdEQ2OgreTransmuteStopID
</OnUnLoad>
</CommandButton>
</Children>
</Window>
</ISUI>
Enjoy,