Hello,
I've this error when my character loggin in after created ur character. (Loggout and loggin in again after created).
here my scrpit login.lua:
I've this error when my character loggin in after created ur character. (Loggout and loggin in again after created).
Code:
Kodsk has logged in.
[Error - CreatureScript Interface]
data/creaturescripts/scripts/login.lua:onLogin
Description:
data/creaturescripts/scripts/login.lua:69: attempt to call global 'isContainer' (a nil value)
stack traceback:
data/creaturescripts/scripts/login.lua:69: in function 'scanItem'
data/creaturescripts/scripts/login.lua:62: in function <data/creaturescripts/scripts/login.lua:6>
Kodsk has logged out.
here my scrpit login.lua:
Code:
local config = {
loginMessage = getConfigValue('loginMessage'),
useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}
function onLogin(cid)
local loss = getConfigValue('deathLostPercent')
if(loss ~= nil) then
doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
doPlayerAddBlessing(cid, 1)
doPlayerAddBlessing(cid, 2)
doPlayerAddBlessing(cid, 3)
doPlayerAddBlessing(cid, 4)
doPlayerAddBlessing(cid, 5)
doPlayerAddPremiumDays(cid, 2)
doPlayerSetPromotionLevel(cid, 1)
end
local accountManager = getPlayerAccountManager(cid)
if(accountManager == MANAGER_NONE) then
local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
if(lastLogin > 0) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
else
str = str .. " Please choose your outfit."
doPlayerSendOutfitWindow(cid)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
elseif(accountManager == MANAGER_NAMELOCK) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
elseif(accountManager == MANAGER_ACCOUNT) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
end
if(not isPlayerGhost(cid)) then
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
end
registerCreatureEvent(cid, "kill")
registerCreatureEvent(cid, "firstitems")
registerCreatureEvent(cid, "onPrepareDeath")
registerCreatureEvent(cid, "PlayerLogout")
registerCreatureEvent(cid, "onPrepareDeath")
registerCreatureEvent(cid, "deathBroadcast")
registerCreatureEvent(cid, "DeathBroadcast")
registerCreatureEvent(cid, "Idle")
if(config.useFragHandler) then
registerCreatureEvent(cid, "SkullCheck")
end
registerCreatureEvent(cid, "ReportBug")
--code for item that expires
for slot = CONST_SLOT_FIRST, CONST_SLOT_LAST do
local item = getPlayerSlotItem(cid, slot)
if item and item.uid > 0 then
scanItem(cid, item.uid)
end
end
return true
end
function scanItem(cid, uid) --By Darkhaos.
if isContainer(uid) then
for k = (getContainerSize(uid) - 1), 0, -1 do
local tmp = getContainerItem(uid, k)
if not isContainer(tmp.uid) then
if getItemAttribute(tmp.uid, "boughtdate") and os.time() >= getItemAttribute(tmp.uid, "boughtdate") then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getItemNameById(tmp.itemid) .. " expirou os 30 dias.")
doRemoveItem(tmp.uid)
end
elseif isContainer(tmp.uid) then
scanItem(cid, tmp.uid)
end
end
else
if getItemAttribute(uid, "boughtdate") and os.time() >= getItemAttribute(uid, "boughtdate") then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getItemNameById(getThing(uid).itemid) .. " expirou os 30 dias.")
doRemoveItem(uid)
end
end
return true
end