pisquila
Member
- Joined
- Nov 14, 2023
- Messages
- 48
- Reaction score
- 5
tfs 0.4 / 8.60
ERROR:
SCRIPT
ERROR:
[20:7:42.474] [Error - Action Interface]
[20:7:42.474] data/actions/scripts/exp_potion.luanUse
[20:7:42.474] Description:
[20:7:42.474] data/lib/exp_potion.lua:27: attempt to index field '?' (a nil value)
[20:7:42.474] stack traceback:
[20:7:42.474] data/lib/exp_potion.lua:27: in function <data/lib/exp_potion.lua:14>
[20:7:42.490] (tail call): ?
SCRIPT
local potions = {
[6541] = {needLevel = 10, rate = 3.0, duration = 1800},
[6542] = {needLevel = 20, rate = 5.0, duration = 1800},
[6543] = {needLevel = 30, rate = 7.0, duration = 1800},
[6544] = {needLevel = 40, rate = 9.0, duration = 1800},
[6545] = {needLevel = 50, rate = 11.0, duration = 1800},
[2328] = {needLevel = 55, rate = 13.0, duration = 1800},
}
if not expPotions then
expPotions = {playerData = {}}
end
function expPotionsnUse(cid, item, fromPosition, itemEx, toPosition)
local itemId = item.itemid
local potion = potions[itemId]
if not potion then
return false
end
if getPlayerLevel(cid) < potion.needLevel then
doPlayerSendCancel(cid, ('Você precisa ser level %d+ para usar esta potion.'):format(potion.needLevel))
return true
end
local guid = getPlayerGUID(cid)
local expData = self.playerData[guid][itemId]
if not expData then
-- caso alguma nova exp potion seja adicionada às configurações em tempo real
-- alguns jogadores online que tentarem usar, precisarão relogar.
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'É necessário relogar para atualizar.')
return true
end
local now = os.time()
if expData.duration > now then
doCreatureSay(cid, 'Aguarde o bônus atual acabar para usar novamente.', TALKTYPE_ORANGE_1, false, cid)
return true
end
expData.rate = expData.rate + potion.rate
expData.duration = potion.duration + now
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_GREEN)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, ('Agora você tem +%d%% de experiência por %s.'):format(
potion.rate * 100, string.diff(potion.duration, true)
))
doRemoveItem(item.uid, 1)
return true
end
function expPotionsnLogin(cid)
local guid = getPlayerGUID(cid)
self.playerData[guid] = {}
for itemId in pairs(potions) do
self.playerData[guid][itemId] = {rate = 0, duration = 0}
end
return true
end
function expPotions:getCombo(cid)
local playerData = self.playerData[getPlayerGUID(cid)]
local potionsCombo = 1
if playerData then
for itemId, expData in pairs(playerData) do
potionsCombo = potionsCombo + expData.rate
end
end
return potionsCombo
end
function expPotionsnSay(cid, words, param)
local str = 'Experience Potion Combos:\n'
local playerData = self.playerData[getPlayerGUID(cid)]
if playerData then
for itemId, expData in pairs(playerData) do
str = str .. ('\n%s - %d%%'):format(getItemInfo(itemId).name, expData.rate * 100)
end
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)
return true
end
Attachments
-
sadsadsadsadsadsa.webp16.1 KB · Views: 9 · VirusTotal
Last edited: