darkmu
Well-Known Member
I tried it the first time and it worked, however, when I deactivate and activate it again, I simply try to make a query in the table
MY EVENTS player.lua
MY FUNCTION global.lua
MY TALKACTION
player_storage
does not return anything else.MY EVENTS player.lua
Lua:
local tilePosition = Tile(toPosition)
if tilePosition then
local housePosition = tilePosition:getHouse()
if housePosition then
local OwnerHouse = housePosition:getOwnerGuid()
local StorageValuePosition = getPlayerHouseTrash(OwnerHouse)
if StorageValuePosition > 0 then
if housePosition then
if (housePosition ~= self:getHouse() and not string.find(housePosition:getAccessList(SUBOWNER_LIST):lower(), "%f[%a]" .. self:getName():lower() .. "%f[%A]")) then
self:sendTextMessage(MESSAGE_STATUS_SMALL, "You cannot throw items into players houses, which you are not invited to.")
return false
end
end
end
end
end
local tileFromPosition = Tile(fromPosition)
if tileFromPosition then
local houseFromPosition = tileFromPosition:getHouse()
if houseFromPosition then
local OwnerHouse = houseFromPosition:getOwnerGuid()
local StorageValueFromPosition = getPlayerHouseTheft(OwnerHouse)
print(StorageValueFromPosition)
if StorageValueFromPosition > 0 then
if houseFromPosition then
if (houseFromPosition ~= self:getHouse() and not string.find(houseFromPosition:getAccessList(SUBOWNER_LIST):lower(), "%f[%a]" .. self:getName():lower() .. "%f[%A]")) then
self:sendTextMessage(MESSAGE_STATUS_SMALL, "You cannot move items from house, which you are only guest to.")
return false
end
end
end
end
end
MY FUNCTION global.lua
Lua:
function getPlayerHouseTrash(id)
local resultQuery = db.storeQuery("SELECT `value` FROM `player_storage` WHERE `player_id` = " .. db.escapeString(id) .. " AND `key` = 15766 ")
if resultQuery ~= false then
local ret = result.getDataInt(resultQuery, "value")
result.free(resultQuery)
return ret
end
return -1
end
function getPlayerHouseTheft(id)
local resultQuery = db.storeQuery("SELECT `value` FROM `player_storage` WHERE `player_id` = " .. db.escapeString(id) .. " AND `key` = 15767 ")
if resultQuery ~= false then
local ret = result.getDataInt(resultQuery, "value")
result.free(resultQuery)
return ret
end
return -1
end
MY TALKACTION
Lua:
function onSay(player, words, param)
openModalList(player)
end
Features = {
features = {
[1] = {
storages = { [1] = {storage = 15766, StorageAtivo = 1, StorageDesativado = -1} },
text = "Proibir Player Roubar Item",
},
[2] = {
storages = { [1] = {storage = 15767, StorageAtivo = 1, StorageDesativado = -1} },
text = "Proibir Player de Jogar Item",
},
[3] = {
storages = { [1] = {storage = 15768, StorageAtivo = 1, StorageDesativado = -1} },
text = "Bless Automatico ao morrer",
},
}
}
function Player:getProgress(achievement)
local completed = true
for i = 1, #achievement.storages do
local info = achievement.storages[i]
local strvalue = self:getStorageValue(info.storage)
if strvalue <= info.StorageDesativado then
completed = false
end
end
return completed
end
function Player:AtivaDesativaFeatures(featureId, enable)
local achievement = Features.features[featureId]
for i = 1, #achievement.storages do
local info = achievement.storages[i]
if self:getStorageValue(info.storage) > 0 then
self:setStorageValue(info.storage, info.StorageDesativado)
self:sendTextMessage(MESSAGE_INFO_DESCR, "Voce desativou " .. achievement.text .. ".")
else
self:setStorageValue(info.storage, info.StorageAtivo)
self:sendTextMessage(MESSAGE_INFO_DESCR, "Voce ativou " .. achievement.text .. ".")
end
end
end
function ListaModalidades(window, player)
for i = 1, #Features.features do
local achievement = Features.features[i]
local enable = player:getProgress(achievement)
local name = ("%s - %s"):format(achievement.text, (enable == true and "Ativo" or "Desativado"))
local choice = window:addChoice(name)
choice.featureId = i
end
buttonText = "OK"
window:addButton(buttonText,
function(button, choice)
if player and choice then
player:AtivaDesativaFeatures(choice.featureId, enable)
end
end
)
window:setDefaultEnterButton(buttonText)
end
function openModalList(playerId)
local player = Player(playerId)
if not player then
return false
end
local window = ModalWindow {
title = "Features Disponiveis para VIP",
message = 'TESTE!',
}
ListaModalidades(window, player)
window:addButton("Sair")
window:setDefaultEscapeButton("Sair")
window:sendToPlayer(player)
end