I've been having trouble with a couple of scripts. It might be cause they are older and I've altered them to suit my needs, but they'll work....whenever they please instead of when I'm wanting them too. Neither code was mine to begin with, and kudos to the ones that made them in the beginning, I've been playing Tibia off and on for nearly 20 years (give or take). I'm not sure when I got them nor whom actually first made the scripts, but I'm giving them their due for making them to begin with.

That being said any help would be most grateful, and of course if anybody can get them to work properly, enjoy them.

Oh and the OT server I play on is Pandorum.eu, if you need to use the same server to help me figure out what I've done wrong.

Thanks to all.
KennethFlynn

Code Script 1 ~ All coins Pick up.

(The OT Server I play on sometimes will suddenly drop coins in different areas after the server safe at 2am EST. Now this will work sometimes and not at others. Any help would be nice.)

Code:
init start
local itemsID = {'3031', '3035', '3043'}
local CollectingBackpack = 'Backpack of Holding' -- bp to collect items to
local capMin = 0 ------ min cap to pick up any item u set

table.id(itemsID)
init end


auto(1000)
for j = -7, 7 do
for i = -5, 5 do
for _, v in ipairs(itemsID) do
local top = topitem($posx+j, $posy+i, $posz).id
if windowcount(moveOnBp) == 1 and $cap >= capMin and itemproperty(top, ITEM_PICKUPABLE) and $attacked.id == 0 then
moveitems(v, moveOnBp, ground($posx+j, $posy+i, $posz), 100) waitping()
end
end
end
end
Code 2 Script ~ OT Training Monk Spells
(Again OT server I play on has spells for Level 300+ Vocations. Each Voc has a different spell and I've tried to use them during Training to gain Magic Levels a little faster. And if I can get them to work properly, I'd love to add them into my hunting areas as well.

Voc spells are as follows:
Paladins = divine
Knights = berserk
Druids = morta

Code:
init start
 
	local Monsters = {"Training Monk"}
 
	local Players = {
		Consider = true,
		Distance = 10,
		FloorDifference = 1,
		SafeList = {"Bubble", "Eternal Oblivion"},
	}
 
	local Spells = {
		{Name = "divine", Mppc = 160},
	}
 
	local SpecialAreas = {
--		{min x, max x, min y, max y, z}
	}
 
	local UseTargetState = true
	
	-- DO NOT CHANGE ANYTHING BELOW THIS LINE
 
	local i, LastFloor, Exhaust = 1, $posz, $timems
 
	while Spells[i] ~= nil do
		Spells[i].Info = spellinfo(Spells[i].Name)
 
		if Spells[i].Info.words == 0 then
			table.remove(Spells, i)
		else
			Spells[i].Monsters = Spells[i].Monsters or Monsters
			Spells[i].NeedDirection = table.find({"WaveSmall", "WaveMedium", "WaveVerySmall", "WaveBig", "BeamSmall", "BeamBig", "Front", "Strike"}, Spells[i].Info.castarea) ~= nil
			Spells[i].AttackSupport = Spells[i].Info.group:match("Support") ~= nil
 
			table.lower(Spells[i].Monsters)
			i = i + 1
		end
	end
 
init end
 
auto(200, 400)
 
if $posz ~= LastFloor then
	LastFloor, Exhaust = $posz, $timems + 2000
	return
end
 
if $timems >= Exhaust and ($targeting or not UseTargetState) then
	for _, Spell in ipairs(Spells) do
		if cancast(Spell.Info) and not isinsidearea(SpecialAreas) then
			if Spell.Amount and (not Players.Consider or paroundfloorignore(Players.Distance, Players.FloorDifference, unpack(Players.SafeList)) == 0) then
				local BestAmount, BestDir = 0, $self.dir
 
				if Spell.NeedDirection then
					for Dir, Amount in pairs({n = 0, e = 0, s = 0, w = 0}) do
						Amount = maroundspell(Spell.Name, Dir, unpack(Spell.Monsters))
						
						if Amount > BestAmount or (Amount >= BestAmount and Dir == $self.dir) then
							BestAmount, BestDir = Amount, Dir
						end
					end
				else
					BestAmount = not Spell.AttackSupport and maroundspell(Spell.Name, BestDir, unpack(Spell.Monsters)) or maround(1, false, unpack(Spell.Monsters))
				end
				
				if BestAmount >= math.max(Spell.Amount, 1) then
					while $self.dir ~= BestDir do
						turn(BestDir) waitping()
					end
					cast(Spell.Name) waitping()
				end
			elseif Spell.Hppc and $attacked.hppc >= math.max(Spell.Hppc, 1) and table.find(Spell.Monsters, $attacked.name:lower()) and cancast(Spell.Info, $attacked) then
				cast(Spell.Name) waitping()
			end
		end
	end
end