PDA

View Full Version : Sprite hunter for empath caster (with skinning)



LilWizzy
09-01-2009, 07:11 PM
Sprite hunter for casting empaths. Some changes will be needed. Most are easy to change.
Note: this is a lich script


################################################## #######################
########## Sprite Hunting in TI start from Hanging Gardens
################################################## #######################

def rest
while ((checkmana != maxmana) || (checkfried))
pause 400
end
gohunting
end

################################################
###### Global Variables to set ###########
################################################

$GEMCONTAINER = "cloak"
$LOOTCONTAINER = "cloak"
$SKINCONTAINER = "cloak"
$ATTACKSTANCE = "guard"
$DEFENDSTANCE = "defensive"
$ATTACKRT = "2"
$LOOTHAND = "left"


################################################
########## Looting Definition ############
################################################

def loot
goodloot=["silver wand", "ring", "stickpin", "bracelet", "scroll", "vellum", "parchment", "diamond", "emerald", "onyx", "faenor-bloom", "star ruby", "wand", "aetherstone", "agate", "azurite", "beryl", "bloodjewel", "bloodstone", "bluerock", "caederine", "cordierite", "deathstone", "doomstone", "dreamstone", "eostone", "firestone", "galena", "geode", "hyacinth", "pyrite", "peridot", "rhimar", "riftshard", "riftstone", "rosepar", "wyrdshard", "spinel", "faenor", "blazestar", "despanal", "feystone", "ruby", "pearl", "sapphire", "opal", "jacinth", "garnet", "moonstone", "topaz", "gem", "coral", "sunstone", "starstone", "quartz", "heliodor", "glimaerstone", "carbuncle", "turquoise", "chalcedony", "tourmaline", "obsidian", "zircon", "amethyst", "lapis", "amber" , "sphene" , "shell", "stone", "lapis","gem","mother-of-pearl","lazuli", "jade", "ivory", "nugget"]
fput "loot"
badloot=[/heavy .*? orb/]
if RoomObj.loot and !(checkloot.to_a & goodloot).empty?
(0..RoomObj.loot.length).each do |x|
if goodloot.include?(RoomObj.loot[x].noun) and badloot.include?(RoomObj.loot[x].name)
elsif goodloot.include?(RoomObj.loot[x].noun)
fput "get ##{RoomObj.loot[x].id}"
fput "stow #{$LOOTHAND}"
end
end
end
pause 2
end

###############################################
######## Other Definitions ############
###############################################

def bank
start_script 'go2', [ '11', '_disable_confirm_' ]
waitfor "United Bank of City-States"
pause 2
end

def furrier
start_script 'go2', [ '4019', '_disable_confirm_' ]
waitfor "Stacks of furs and pelts are thickly layered "
pause 2
multifput("store weapon","remove my #{$GEMCONTAINER}","sell my #{$GEMCONTAINER}","wear my #{$GEMCONTAINER}","close my #{$GEMCONTAINER}")
end

def restplace
start_script 'go2', [ '188', '_disable_confirm_' ]
waitfor "Ta'Illistim, Hanging Gardens"
pause 1
fput "sit"
pause 2
end

def skinn
while RoomObj.npcs.find { |npc| npc.status == 'dead'}
multifput("stance def","stow left","get my knife")
fput "skin #{$name}"
skin = matchfind "yielding an ?.", "yielding a ?.", "You botched the job.", "You cannot skin", "You can only skin creatures", "already been skinned", "wait until after it is dead"
skin = skin.split(" ");
waitrt?
if !skin.empty?
fput "stow knife"
fput "get #{skin[skin.length-1]}"
waitfor "You"
fput "put my #{skin[skin.length-1]} in my cloak"
waitfor "You put"
fput "gird"
elsif
multifput("put knife in my cloak","gird")
end
loot
end
end

def stand
if !Char.standing?
fput "stand"
waitrt?
end
end

def huntinglocation
start_script 'go2', [ '4723', '_disable_confirm_' ]
waitfor "Gyldemar Forest, Decrepit Shack"
pause 2
end

def wander
bad_rooms = ['4721','14666']
pastfried=0
until pastfried >= 2 or dead? or checkmana <= 5
room = Room.current
begin
next_room = room.wayto.keys[rand(room.wayto.keys.length)]
end while bad_rooms.include?(next_room)
way = room.wayto[next_room]
if way.class == String
move(way)
else
way.call
end
if checkpcs or checkloot.include?("disk")
sleep 1
elsif checknpcs and RoomObj.npcs.find { |npc| npc.status != 'dead'}
if checkmind(7)
pastfried=pastfried+1

end
until !checknpcs or dead? or !RoomObj.npcs.find { |npc| npc.status != 'dead'}
attack
end
end
end
end

def attack
if (checkmana > 6)
stand
killroutine
fput "stance def"
if RoomObj.npcs.find { |npc| npc.status != 'dead'}
attack
end
skinn
loot
else
restroutine2
end
end

def restroutine2
furrier
bank
fput "deposit all"
restplace
rest
end

def killroutine
while target = RoomObj.npcs.find { |npc| npc.status != 'dead'} and (checkmana > 1)
stand
if (checkmana > 6) and (!checkfried)
if RoomObj.npcs.find { |npc| npc.status == 'dead'}
skinn
loot
elsif target = RoomObj.npcs.find { |npc| npc.status != 'dead'}
fput "stance #{$ATTACKSTANCE}"
fput "prep 1106"
fput "cast ##{target.id}"
pause $ATTACKRT
end
elsif (checkmana > 1) and (!checkfried)
if RoomObj.npcs.find { |npc| npc.status == 'dead'}
skinn
loot
elsif target = RoomObj.npcs.find { |npc| npc.status != 'dead'}
fput "stance #{$ATTACKSTANCE}"
fput "prep 1101"
fput "cast ##{target.id}"
pause $ATTACKRT
end
else
restroutine2
end
$name = matchfind "You gesture at a ?.", "Could not find a valid target."
$name = $name.split(' ')
$name = $name.last
waitrt?
end
end

def gohunting
stand
multifput("stand","stance def","open my cloak","ready weapon")
pause 1
huntinglocation
wander
if dead?
fput "quit"
end
furrier
bank
fput "deposit all"
restplace
rest
end

if checkroom "Ta'Illistim, Hanging Gardens"
rest
elsif (checkmana != maxmana)
restroutine2
else
gohunting
end

theblueorange
10-08-2009, 11:24 PM
anyone have something like this for the landing, not for lich?

theblueorange
10-14-2009, 03:56 PM
anyone?