• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[8.54][TFS 0.3.6pl1] Soul Eater :d

margoh

{{ user.title }}
Joined
Apr 1, 2013
Messages
806
Solutions
18
Reaction score
350
Hello,
I need a script:

  • Tibia version: 8.54
  • Script about: After x second 1pts of soul is eaten.
  • Details: From 1-20 - 1pts of soul is eaten after 6sec, from 21-40 - 1pts of soul is eaten after 5sec, from 41-60 - 1pts of soul is eaten after 4sec, from 61-80 - 1pts of soul is eaten after 3sec, from 81-95 - 1pts of soul is eaten after 2sec, from 96-100 - 1pts of soul is eaten after 1sec.

Hope someone could help me,
Best regards,
margoh.
 
removesoul.lua
Lua:
function onThink(cid, item, fromPosition, toPosition)
	for _, name in ipairs(getOnlinePlayers()) do
		local player = getPlayerByName(name)
		local storage = getPlayerStorageValue(player, 60050)
		local level = getPlayerLevel(player)
                local soul = getPlayerSoul(player)
		
		if level <= 20 then
			if storage == 6 then
				doPlayerAddSoul(player, soul - 1)
			end
		elseif level >= 21 and level <= 40 then
			if storage == 5 then
				doPlayerAddSoul(player, soul - 1)
			end
			elseif level >= 41 and level <= 60 then
                        if storage == 4 then
				doPlayerAddSoul(player, soul - 1)
			end
			elseif level >= 61 and level <= 80 then
			if storage == 3 then
				doPlayerAddSoul(player, soul - 1)
			end
			elseif level >= 81 and level <= 95 then
			if storage == 2 then
				doPlayerAddSoul(player, soul - 1)
			end
			elseif level >= 96 and level <= 100 then
			if storage == 1 then
				doPlayerAddSoul(player, soul - 1)
			end
		end
	end
	return TRUE
end
count.lua
Lua:
function onThink(cid, interval, lastExecution)
	for _, name in ipairs(getOnlinePlayers()) do
		local player = getPlayerByName(name)
		setPlayerStorageValue(player, 60050,(getPlayerStorageValue(player, 60050) +1))
	if getPlayerStorageValue(player, 60050) > 6 then
	setPlayerStorageValue(player, 60050, 0)
	end
	end
	return TRUE
end
globalevents.xml
Code:
<globalevent name="RemoveSoul" interval="1" event="script" value="removesoul.lua"/>
<globalevent name="Count" interval="1" event="script" value="count.lua"/>
didnt test so post errors if doesnt work
 
Last edited:
No errors, but it doesn't work.

And i mean if we have 0-20 soul pts - 1 soul is eaten after 6sec, etc.
 
Last edited:
removesoul.lua
Lua:
function onThink(cid, interval, lastExecution)
	for _, name in ipairs(getOnlinePlayers()) do
		local player = getPlayerByName(name)
		local storage = getPlayerStorageValue(player, 60050)
		local level = getPlayerLevel(player)
        local soul = getPlayerSoul(player)
 
		if level <= 20 then
			if storage == 6 then
				doPlayerAddSoul(player, soul - 1)
			end
		elseif level >= 21 and level <= 40 then
			if storage == 5 then
				doPlayerAddSoul(player, soul - 1)
			end
		elseif level >= 41 and level <= 60 then
                        if storage == 4 then
				doPlayerAddSoul(player, soul - 1)
			end
		elseif level >= 61 and level <= 80 then
			if storage == 3 then
				doPlayerAddSoul(player, soul - 1)
			end
		elseif level >= 81 and level <= 95 then
			if storage == 2 then
				doPlayerAddSoul(player, soul - 1)
			end
		elseif level >= 96 and level <= 100 then
			if storage == 1 then
				doPlayerAddSoul(player, soul - 1)
			end
		end
	end
	return TRUE
end
count.lua
Lua:
function onThink(cid, interval, lastExecution)
	for _, name in ipairs(getOnlinePlayers()) do
		local player = getPlayerByName(name)
		if getPlayerStorageValue(player, 60050) <= 6 then
			setPlayerStorageValue(player, 60050,(getPlayerStorageValue(player, 60050) +1))
		else
			setPlayerStorageValue(player, 60050, 0)
		end
	end
	return TRUE
end
 

Similar threads

Back
Top