DarkstaR
02-03-2012, 05:23 PM
This update fixes many bugs and adds many features. Among the new functionality you will find is an Alarm system and a system to refill your ammunition for you. Furthermore, the Scripter now exports functionality for making scripts that can deposit looted items to depot and restock potions and other supplies strait from depot or any other containers where you store such supplies. Lastly, you can now see information about your equipment, inventory and use/move items as you please.
Changelog
v2.2.0
Fixed a bug which didn't show damage done to other players on Most Dealt Damage HUD item
Fixed Eat Food to wait until the character is still before eating food
Fixed Anti-Idle to wait until the character is still before spinning
Fixed a bug which caused the Scripter to kill the wrong scripts and, very rarely, crash upon killing a script
Fixed Walker Labels to delay longer before moving to the next waypoint iteration to allow scripts more time to execute
Fixed itemID boxes to draw stackable items with 100 count instead of 1, since it looks nicer
Added "Equipment Manager" to "Support" which currently supports functionality for refilling ammo to hand and arrow slot
Added "Alarms" dialog window which will allow the user to enable alerts which can warm them when certain actions take place. Current Alarms:
Disconnected
Damaged
Low Health
Private Message
Creature Detected
Player Attack
Player Detected
Player Detected extends functionality to logout upon detection. Furthermore, alarms which are triggered by other players will ignore partied players if enabled by the user.
Added new functionality to the Scripter. The functions are as follows:
Global functions:
wait(min, max)
wait(time)
setWalkerEnabled(enabled)
setLooterEnabled(enabled)
setTargetingEnabled(enabled)
Self class functions:
Self.UseItem(id)
Self.UseItemFromGround(x, y, z) --Returns the id of the item it found and used
Self.UseItemWithGround(id, x, y, z)
Self.UseItemWithCreature(itemid, creatureid)
Self.UseItemFromMyPosition() --Returns the id of the item it found and used
Self.UseItemWithMyPosition(id)
Self.UseItemWithMe(id)
Self.UseItemWithTarget(id)
Self.UseItemWithFollow(id)
Self.Head()
Self.Armor()
Self.Legs()
Self.Feet()
Self.Amulet()
Self.Weapon()
Self.Ring()
Self.Backpack()
Self.Shield()
Self.Ammo()
Container class functions
Container.GetFirst()
Container.GetByName(name)
Container.GetFromIndex(index)
Container:GetNext()
Container:Index()
Container:ID()
Container:Name()
Container:ItemCount()
Container:ItemCapacity()
Container:isOpen()
Container:GetItemData(spot)
Container:UseItem(spot)
Container:UseItemWithGround(spot, x, y, z)
Container:UseItemWithCreature(spot, id)
Container:MoveItemToEquipment(spot, slotName)
Container:MoveItemToGround(spot, x, y, z)
Container:MoveItemToContainer(spotFrom, containerTo, spotTo)
Sadly, though, I have still not managed to locate and fix the bug which is causing the client to crash upon inject. For this reason, and I cannot stress this enough, only inject in safe places - preferably when logged out. Below, you will find some scripting examples using some of the new functions:
LoadStars.lua - Loads Assassin Stars from Depot to weapon hand
local depot = Container.GetByName("Depot Chest")
for spot = 0, depot:ItemCount() do
local item = depot:GetItemData(spot)
if (item.id == 7368) then --assassin stars
depot:MoveItemToEquipment(spot, "weapon")
break
end
end
DropItems.lua - Drops all Gold to the floor
function dropItem(id)
local cont = Container.GetFirst()
while (cont:isOpen()) do
for spot = 0, cont:ItemCount() do
local item = cont:GetItemData(spot)
if (item.id == id) then
cont:MoveItemToGround(spot, Self.Position().x, Self.Position().y, Self.Position().z)
return true
end
end
cont = cont:GetNext()
end
return false
end
while (true) do
dropItem(3031)
wait(700, 1200)
end
DepotRestock.lua - When the Walker hits the label "AtDepot," opens Depot and moves all Assassin Stars to the first open Dragon Backpack
function onWalkerSelectLabel(labelName)
if (labelName == "AtDepot") then
setWalkerEnabled(false)
setLooterEnabled(false)
setTargetingEnabled(false)
Self.UseItemFromGround(Self.Position().x, Self.Position().y - 1, Self.Position().z) --open the Locker (north of us)
wait(1500) --Wait for 1.5 seconds
local locker = Container.GetByName("Locker")
if (locker:isOpen() == false) then
--handle the error~
else
locker:UseItem(0) --open the Depot Chest (first item in the container)
wait(1500) --Wait for 1.5 seconds
local depot = Container.GetByName("Depot Chest")
if (depot:isOpen() == false) then
--handle the error~
else
local backpack = Container.GetByName("Dragon Backpack") --should be open by the user, our ammo backpack
if (backpack:isOpen() == false) then
--handle the error
else
while (depot:CountItemsOfID(7368) > 0) do
for spot = 0, depot:ItemCount() do
local item = depot:GetItemData(spot)
if (item.id == 7368) then --assassin stars
depot:MoveItemToContainer(spot, backpack:Index(), 0)
wait(500, 1500)
break
end
end
end
end
end
end
setWalkerEnabled(true)
setLooterEnabled(true)
setTargetingEnabled(true)
gotoLabel("GoToHunt")
end
end
For download and operation instructions, refer back to this thread:
http://forums.xenobot.net/showthread.php?19
Changelog
v2.2.0
Fixed a bug which didn't show damage done to other players on Most Dealt Damage HUD item
Fixed Eat Food to wait until the character is still before eating food
Fixed Anti-Idle to wait until the character is still before spinning
Fixed a bug which caused the Scripter to kill the wrong scripts and, very rarely, crash upon killing a script
Fixed Walker Labels to delay longer before moving to the next waypoint iteration to allow scripts more time to execute
Fixed itemID boxes to draw stackable items with 100 count instead of 1, since it looks nicer
Added "Equipment Manager" to "Support" which currently supports functionality for refilling ammo to hand and arrow slot
Added "Alarms" dialog window which will allow the user to enable alerts which can warm them when certain actions take place. Current Alarms:
Disconnected
Damaged
Low Health
Private Message
Creature Detected
Player Attack
Player Detected
Player Detected extends functionality to logout upon detection. Furthermore, alarms which are triggered by other players will ignore partied players if enabled by the user.
Added new functionality to the Scripter. The functions are as follows:
Global functions:
wait(min, max)
wait(time)
setWalkerEnabled(enabled)
setLooterEnabled(enabled)
setTargetingEnabled(enabled)
Self class functions:
Self.UseItem(id)
Self.UseItemFromGround(x, y, z) --Returns the id of the item it found and used
Self.UseItemWithGround(id, x, y, z)
Self.UseItemWithCreature(itemid, creatureid)
Self.UseItemFromMyPosition() --Returns the id of the item it found and used
Self.UseItemWithMyPosition(id)
Self.UseItemWithMe(id)
Self.UseItemWithTarget(id)
Self.UseItemWithFollow(id)
Self.Head()
Self.Armor()
Self.Legs()
Self.Feet()
Self.Amulet()
Self.Weapon()
Self.Ring()
Self.Backpack()
Self.Shield()
Self.Ammo()
Container class functions
Container.GetFirst()
Container.GetByName(name)
Container.GetFromIndex(index)
Container:GetNext()
Container:Index()
Container:ID()
Container:Name()
Container:ItemCount()
Container:ItemCapacity()
Container:isOpen()
Container:GetItemData(spot)
Container:UseItem(spot)
Container:UseItemWithGround(spot, x, y, z)
Container:UseItemWithCreature(spot, id)
Container:MoveItemToEquipment(spot, slotName)
Container:MoveItemToGround(spot, x, y, z)
Container:MoveItemToContainer(spotFrom, containerTo, spotTo)
Sadly, though, I have still not managed to locate and fix the bug which is causing the client to crash upon inject. For this reason, and I cannot stress this enough, only inject in safe places - preferably when logged out. Below, you will find some scripting examples using some of the new functions:
LoadStars.lua - Loads Assassin Stars from Depot to weapon hand
local depot = Container.GetByName("Depot Chest")
for spot = 0, depot:ItemCount() do
local item = depot:GetItemData(spot)
if (item.id == 7368) then --assassin stars
depot:MoveItemToEquipment(spot, "weapon")
break
end
end
DropItems.lua - Drops all Gold to the floor
function dropItem(id)
local cont = Container.GetFirst()
while (cont:isOpen()) do
for spot = 0, cont:ItemCount() do
local item = cont:GetItemData(spot)
if (item.id == id) then
cont:MoveItemToGround(spot, Self.Position().x, Self.Position().y, Self.Position().z)
return true
end
end
cont = cont:GetNext()
end
return false
end
while (true) do
dropItem(3031)
wait(700, 1200)
end
DepotRestock.lua - When the Walker hits the label "AtDepot," opens Depot and moves all Assassin Stars to the first open Dragon Backpack
function onWalkerSelectLabel(labelName)
if (labelName == "AtDepot") then
setWalkerEnabled(false)
setLooterEnabled(false)
setTargetingEnabled(false)
Self.UseItemFromGround(Self.Position().x, Self.Position().y - 1, Self.Position().z) --open the Locker (north of us)
wait(1500) --Wait for 1.5 seconds
local locker = Container.GetByName("Locker")
if (locker:isOpen() == false) then
--handle the error~
else
locker:UseItem(0) --open the Depot Chest (first item in the container)
wait(1500) --Wait for 1.5 seconds
local depot = Container.GetByName("Depot Chest")
if (depot:isOpen() == false) then
--handle the error~
else
local backpack = Container.GetByName("Dragon Backpack") --should be open by the user, our ammo backpack
if (backpack:isOpen() == false) then
--handle the error
else
while (depot:CountItemsOfID(7368) > 0) do
for spot = 0, depot:ItemCount() do
local item = depot:GetItemData(spot)
if (item.id == 7368) then --assassin stars
depot:MoveItemToContainer(spot, backpack:Index(), 0)
wait(500, 1500)
break
end
end
end
end
end
end
setWalkerEnabled(true)
setLooterEnabled(true)
setTargetingEnabled(true)
gotoLabel("GoToHunt")
end
end
For download and operation instructions, refer back to this thread:
http://forums.xenobot.net/showthread.php?19