Vou te dar umas dicas para melhorar ainda mais seus scripts.
1. Procure isolar as variáveis locais fora da função, principalmente em uma tabela.
local config = {
doorPosition = {x = 100, y = 100, z = 7},
doorID = 1000,
minAccess = 6,
message = {
doorOpen = "The door has been opened!"
doorClose = "The door has been closed!"
}
}
2. Se você acha que vai usar uma condição duas vezes, isole ela, não use elseif, repetindo-a.
if getPlayerAccess(cid) >= config.minAccess then
local item = getTileItemById(config.doorPosition, config.doorID)
if item.uid > 0 then
doRemoveItem(item.uid, 1)
doPlayerSnedTextMessage(cid, 22, config.message.doorOpen)
else
doCreateItem(config.doorID, 1, config.doorPosition)
doPlayerSendTextMessage(cid, 22, config.message.doorClose)
end
end
Assim seu script vai ficar bem melhor e mais organizado.
local config = {
doorPosition = {x = 100, y = 100, z = 7},
doorID = 1000,
minAccess = 6,
message = {
doorOpen = "The door has been opened!"
doorClose = "The door has been closed!"
}
}
function onSay(cid, words, param)
if getPlayerAccess(cid) >= config.minAccess then
local item = getTileItemById(config.doorPosition, config.doorID)
if item.uid > 0 then
doRemoveItem(item.uid, 1)
doPlayerSnedTextMessage(cid, 22, config.message.doorOpen)
else
doCreateItem(config.doorID, 1, config.doorPosition)
doPlayerSendTextMessage(cid, 22, config.message.doorClose)
end
end
return true
end