instructions 

replace the addexp function in functions.lua with this 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function init0arr32()
	local ret={}
	for i=1,32 do
		ret[i]=0
	end
	return ret
end
dblPtnTm=init0arr32()
trpplPtnTm=init0arr32()
function addexp(id, exp)
	if trpplPtnTm[id]>0 then
		PLAYERS[id].Experience = PLAYERS[id].Experience + exp*3
	elseif dblPtnTm[id]>0 then
		PLAYERS[id].Experience = PLAYERS[id].Experience + exp*2
	else
		PLAYERS[id].Experience = PLAYERS[id].Experience + exp
	end
	local prevlevel = PLAYERS[id].Level
	while PLAYERS[id].Experience >= EXPTABLE[PLAYERS[id].Level+1] do
		PLAYERS[id].Level = PLAYERS[id].Level + 1
	end
	if prevlevel ~= PLAYERS[id].Level then
		parse('effect "colorsmoke" ' .. player(id, 'x') .. ' ' .. player(id, 'y') .. ' 0 64 0 128 255')
		message(id, "You have leveled up to level " .. PLAYERS[id].Level .. "!")
		parse("sv_sound2 " .. id .. " fun/Victory_Fanfare.ogg")
	end
	updateHUD(id)
	return true
end
addhook("leave","ptnLv")
function ptnLv(id)
	dblPtnTm[id]=0
	trpplPtnTm[id]=0
end
addhook("second","ptnScnd")
function ptnScnd()
	for i=1,32 do
		dblPtnTm[i]=dblPtnTm[i]-1
		trpplPtnTm[i]=trpplPtnTm[i]-1
	end
end
items 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[110] = {
		name = "double exp potion",
		desc = "Doubes the amount of exp you get temporary.",
		r = 255, g = 255, b = 0,
		action = {"drink"},
		fimage = "gfx/weiwen/rune.png", --edit --image when dropped
		func = {function(id,itemslot,itemid,equip)
			radiusmsg(player(id,"name") .. " drinks a exp potion.", player(id,"x"), player(id,"y"))
			dblPtnTm[id]=500 --edit --duration in seconds
			destroyitem(id, itemslot, equip)
		end},
	},
	[111] = {
		name = "tripple exp potion",
		desc = "Tripples the amount of exp you get temporary.",
		r = 255, g = 255, b = 0,
		action = {"drink"},
		fimage = "gfx/weiwen/rune.png", --edit --image when dropped
		func = {function(id,itemslot,itemid,equip)
			radiusmsg(player(id,"name") .. " drinks a exp potion.", player(id,"x"), player(id,"y"))
			trpplPtnTm[id]=500 --edit --duration in seconds
			destroyitem(id, itemslot, equip)
		end},
	},
This should work, the effects expire after the durations run off or the player leaves.
It's not stackable. Drinking another potion will reset the duration.
Only one potion type can be active. That means:
If you drink a double exp potion and a tripple exp potion only the tripple exp potion has an effect
Tibia level+money


Offline
and command !text to enable and to disable