Erro ao receber addon no TFS, ele só não entrega o addon, o item chega normal!
TFS 1.3
GlobalEvents/scripts/shop.lua
Spoiler
-- ### CONFIG ###
-- message to player "type", if delivery of item debugs client, it can be because of undefinied type (type that does not exist in your server LUA)
SHOP_MSG_TYPE = MESSAGE_EVENT_ADVANCE
-- ### END OF CONFIG ###
MESSAGE_ERROR_CONTACT = "[ERRO] Shop Donate. Contate o Administrador! Erro disponível no Console."
local AddonsShop = {
[28452] = {f = 130, m = 138},
[28453] = {f = 144, m = 148},
[28454] = {f = 636, m = 637},
[28455] = {f = 664, m = 665},
[28457] = {f = 683, m = 684},
[28458] = {f = 694, m = 695},
[28456] = {f = 666, m = 667},
[28461] = {f = 724, m = 725},
[28462] = {f = 732, m = 733},
[28464] = {f = 749, m = 750},
[28465] = {f = 759, m = 760}
}
function onThink(interval)
local resultId = db.storeQuery("SELECT * FROM z_ots_comunication")
if resultId ~= false then
repeat
local transactionId = tonumber(result.getDataInt(resultId, "id"))
local player = Player(result.getDataString(resultId, "name"))
if player then
local itemId = result.getDataInt(resultId, "param1")
local itemCount = result.getDataInt(resultId, "param2")
local containerId = result.getDataInt(resultId, "param3")
local containerItemsInsideCount = result.getDataInt(resultId, "param4")
local shopOfferType = result.getDataString(resultId, "param5")
local shopOfferName = result.getDataString(resultId, "param6")
-- DELIVER ITEM
if shopOfferType == 'item' then
local newItemUID = doCreateItemEx(itemId, itemCount)
-- item does not exist, wrong id OR count
if not newItemUID then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot create item - invalid item ID OR count - ITEM ID: ' .. itemId .. ', ITEM COUNT: ' .. itemCount)
return true
end
-- change item UniqueID to object of class Item
local newItem = Item(newItemUID)
-- get player BACKPACK as container, so we can add item to it
local playerStoreInbox = player:getSlotItem(CONST_SLOT_BACKPACK)
-- cannot open BACKPACK, report problem
if not playerStoreInbox then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot open player "BACKPACK" - it is not supported in your server OR variable "CONST_SLOT_BACKPACK" is not definied in LUA')
return true
end
-- add container with items to BACKPACK
receivedItemStatus = playerStoreInbox:addItemEx(newItem)
if type(receivedItemStatus) == "number" and receivedItemStatus == RETURNVALUE_NOERROR then
player:sendTextMessage(SHOP_MSG_TYPE, 'You received ' .. shopOfferName .. ' from Website Shop. You can find your item in BACKPACK (under EQ).')
db.asyncQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. transactionId)
db.asyncQuery("UPDATE `z_shop_history_item` SET `trans_state`= 'realized', `trans_real`=" .. os.time() .. " WHERE `id` = " .. transactionId)
else
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot add item to BACKPACK - unknown reason, is it\'s size limited and it is full? - ITEM ID: ' .. itemId .. ', ITEM COUNT: ' .. itemCount)
end
-- DELIVER CONTAINER
elseif shopOfferType == 'container' then
-- create empty container
local newContainerUID = doCreateItemEx(containerId, 1)
-- container item does not exist OR item is not Container
if not newContainerUID or not Container(newContainerUID) then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot create container - invalid container ID - CONTAINER ID:' .. containerId)
return true
end
-- change container UniqueID to object of class Container
local newContainer = Container(newContainerUID)
-- add items to container
for i = 1, containerItemsInsideCount do
-- create new item
local newItemUID = doCreateItemEx(itemId, itemCount)
-- item does not exist, wrong id OR count
if not newItemUID then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot create item - invalid item ID OR count - ITEM ID: ' .. itemId .. ', ITEM COUNT: ' .. itemCount)
return true
end
-- change item UniqueID to object of class Item
local newItem = Item(newItemUID)
-- add item to container
local addItemToContainerResult = newContainer:addItemEx(newItem)
-- report error if it's not possible to add item to container
if type(addItemToContainerResult) ~= "number" or addItemToContainerResult ~= RETURNVALUE_NOERROR then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot add item to container - item is not pickable OR variable "RETURNVALUE_NOERROR" is not definied in LUA - ITEM ID: ' .. itemId .. ', ITEM COUNT: ' .. itemCount)
return true
end
end
-- get player BACKPACK as container, so we can add item to it
local playerStoreInbox = player:getSlotItem(CONST_SLOT_BACKPACK)
-- cannot open BACKPACK, report problem
if not playerStoreInbox then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot open player "BACKPACK" - it is not supported in your server OR variable "CONST_SLOT_BACKPACK" is not definied in LUA')
return true
end
-- add container with items to BACKPACK
receivedItemStatus = playerStoreInbox:addItemEx(newContainer)
if type(receivedItemStatus) == "number" and receivedItemStatus == RETURNVALUE_NOERROR then
player:sendTextMessage(SHOP_MSG_TYPE, 'You received ' .. shopOfferName .. ' from Website Shop. You can find your item in BACKPACK (under EQ).')
db.asyncQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. transactionId)
db.asyncQuery("UPDATE `z_shop_history_item` SET `trans_state`= 'realized', `trans_real`=" .. os.time() .. " WHERE `id` = " .. transactionId)
else
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot add container with items to BACKPACK - unknown reason, is it\'s size limited and it is full? - ITEM ID: ' .. itemId .. ', ITEM COUNT: ' .. itemCount .. ', CONTAINER ID:' .. containerId .. ', ITEMS IN CONTAINER COUNT:' .. containerItemsInsideCount)
end
-- DELIVER YOUR CUSTOM THINGS
elseif shopOfferType == 'mount' then -- addon, mount etc.
player:addMount(itemId)
player:setStorageValue(itemId,1)
player:getPosition():sendMagicEffect(CONST_ME_HOLYDAMAGE)
player:sendTextMessage(SHOP_MSG_TYPE, 'You received ' .. shopOfferName .. ' from Website Shop.')
db.asyncQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. transactionId)
db.asyncQuery("UPDATE `z_shop_history_item` SET `trans_state`= 'realized', `trans_real`=" .. os.time() .. " WHERE `id` = " .. transactionId)
elseif shopOfferType == 'addon' then
player:addOutfit(AddonsShop[itemId].m, 3)
player:addOutfitAddon(AddonsShop[itemId].m, 3)
if (AddonsShop[itemId].f ~= 141) then
player:addOutfit(AddonsShop[itemId].f, 3)
player:addOutfitAddon(AddonsShop[itemId].f, 3)
end
player:setStorageValue(itemId,1)
player:getPosition():sendMagicEffect(CONST_ME_HOLYDAMAGE)
player:sendTextMessage(SHOP_MSG_TYPE, 'You received ' .. shopOfferName .. ' from Website Shop.')
db.asyncQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. transactionId .. ";")
db.asyncQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. transactionId .. ";")
end
end
until not result.next(resultId)
result.free(resultId)
end
Erro ao receber addon no TFS, ele só não entrega o addon, o item chega normal!
TFS 1.3
GlobalEvents/scripts/shop.lua
-- ### CONFIG ###
-- message to player "type", if delivery of item debugs client, it can be because of undefinied type (type that does not exist in your server LUA)
SHOP_MSG_TYPE = MESSAGE_EVENT_ADVANCE
-- ### END OF CONFIG ###
MESSAGE_ERROR_CONTACT = "[ERRO] Shop Donate. Contate o Administrador! Erro disponível no Console."
local MountsShop = {
-- VIP Mounts
[80099] = 104,
-- Normal Mounts
[80032] = 33,
[80040] = 41,
[80022] = 23,
[80008] = 9,
[80030] = 37,
[80033] = 34,
[80035] = 36,
[80043] = 45,
[80044] = 46,
[80045] = 47,
[80046] = 48,
[80047] = 49,
[80048] = 50,
[80049] = 51,
[80050] = 52,
[80051] = 53,
[80052] = 54,
[80053] = 55,
[80054] = 56,
[80055] = 57,
[80056] = 58,
[80057] = 59,
[80058] = 60,
[80060] = 62,
[80062] = 64,
[80063] = 65,
[80064] = 66,
[80065] = 67,
[80067] = 69,
[80068] = 70,
[80069] = 71,
[80071] = 73,
[80072] = 74,
[80073] = 75,
[80080] = 82,
[80081] = 83,
[80082] = 84,
[80087] = 89,
[80088] = 90,
[80089] = 91
}
local AddonsShop = {
[28452] = {f = 130, m = 138},
[28453] = {f = 144, m = 148},
[28454] = {f = 636, m = 637},
[28455] = {f = 664, m = 665},
[28457] = {f = 683, m = 684},
[28458] = {f = 694, m = 695},
[28456] = {f = 666, m = 667},
[28461] = {f = 724, m = 725},
[28462] = {f = 732, m = 733},
[28464] = {f = 749, m = 750},
[28465] = {f = 759, m = 760}
}
function onThink(interval)
local resultId = db.storeQuery("SELECT * FROM z_ots_comunication")
if resultId ~= false then
repeat
local transactionId = tonumber(result.getDataInt(resultId, "id"))
local player = Player(result.getDataString(resultId, "name"))
if player then
local itemId = result.getDataInt(resultId, "param1")
local itemCount = result.getDataInt(resultId, "param2")
local containerId = result.getDataInt(resultId, "param3")
local containerItemsInsideCount = result.getDataInt(resultId, "param4")
local shopOfferType = result.getDataString(resultId, "param5")
local shopOfferName = result.getDataString(resultId, "param6")
-- DELIVER ITEM
if shopOfferType == 'item' then
local newItemUID = doCreateItemEx(itemId, itemCount)
-- item does not exist, wrong id OR count
if not newItemUID then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot create item - invalid item ID OR count - ITEM ID: ' .. itemId .. ', ITEM COUNT: ' .. itemCount)
return true
end
-- change item UniqueID to object of class Item
local newItem = Item(newItemUID)
-- get player BACKPACK as container, so we can add item to it
local playerStoreInbox = player:getSlotItem(CONST_SLOT_BACKPACK)
-- cannot open BACKPACK, report problem
if not playerStoreInbox then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot open player "BACKPACK" - it is not supported in your server OR variable "CONST_SLOT_BACKPACK" is not definied in LUA')
return true
end
-- add container with items to BACKPACK
receivedItemStatus = playerStoreInbox:addItemEx(newItem)
if type(receivedItemStatus) == "number" and receivedItemStatus == RETURNVALUE_NOERROR then
player:sendTextMessage(SHOP_MSG_TYPE, 'You received ' .. shopOfferName .. ' from Website Shop. You can find your item in BACKPACK (under EQ).')
db.asyncQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. transactionId)
db.asyncQuery("UPDATE `z_shop_history_item` SET `trans_state`= 'realized', `trans_real`=" .. os.time() .. " WHERE `id` = " .. transactionId)
else
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot add item to BACKPACK - unknown reason, is it\'s size limited and it is full? - ITEM ID: ' .. itemId .. ', ITEM COUNT: ' .. itemCount)
end
-- DELIVER CONTAINER
elseif shopOfferType == 'container' then
-- create empty container
local newContainerUID = doCreateItemEx(containerId, 1)
-- container item does not exist OR item is not Container
if not newContainerUID or not Container(newContainerUID) then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot create container - invalid container ID - CONTAINER ID:' .. containerId)
return true
end
-- change container UniqueID to object of class Container
local newContainer = Container(newContainerUID)
-- add items to container
for i = 1, containerItemsInsideCount do
-- create new item
local newItemUID = doCreateItemEx(itemId, itemCount)
-- item does not exist, wrong id OR count
if not newItemUID then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot create item - invalid item ID OR count - ITEM ID: ' .. itemId .. ', ITEM COUNT: ' .. itemCount)
return true
end
-- change item UniqueID to object of class Item
local newItem = Item(newItemUID)
-- add item to container
local addItemToContainerResult = newContainer:addItemEx(newItem)
-- report error if it's not possible to add item to container
if type(addItemToContainerResult) ~= "number" or addItemToContainerResult ~= RETURNVALUE_NOERROR then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot add item to container - item is not pickable OR variable "RETURNVALUE_NOERROR" is not definied in LUA - ITEM ID: ' .. itemId .. ', ITEM COUNT: ' .. itemCount)
return true
end
end
-- get player BACKPACK as container, so we can add item to it
local playerStoreInbox = player:getSlotItem(CONST_SLOT_BACKPACK)
-- cannot open BACKPACK, report problem
if not playerStoreInbox then
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot open player "BACKPACK" - it is not supported in your server OR variable "CONST_SLOT_BACKPACK" is not definied in LUA')
return true
end
-- add container with items to BACKPACK
receivedItemStatus = playerStoreInbox:addItemEx(newContainer)
if type(receivedItemStatus) == "number" and receivedItemStatus == RETURNVALUE_NOERROR then
player:sendTextMessage(SHOP_MSG_TYPE, 'You received ' .. shopOfferName .. ' from Website Shop. You can find your item in BACKPACK (under EQ).')
db.asyncQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. transactionId)
db.asyncQuery("UPDATE `z_shop_history_item` SET `trans_state`= 'realized', `trans_real`=" .. os.time() .. " WHERE `id` = " .. transactionId)
else
player:sendTextMessage(SHOP_MSG_TYPE, 'Website Shop bugged. Contact with administrator! Error is visible in server console.')
print('ERROR! Website Shop (' .. player:getName() .. ') - cannot add container with items to BACKPACK - unknown reason, is it\'s size limited and it is full? - ITEM ID: ' .. itemId .. ', ITEM COUNT: ' .. itemCount .. ', CONTAINER ID:' .. containerId .. ', ITEMS IN CONTAINER COUNT:' .. containerItemsInsideCount)
end
-- DELIVER YOUR CUSTOM THINGS
elseif shopOfferType == 'mount' then -- addon, mount etc.
player:addMount(itemId)
player:setStorageValue(itemId,1)
player:getPosition():sendMagicEffect(CONST_ME_HOLYDAMAGE)
player:sendTextMessage(SHOP_MSG_TYPE, 'You received ' .. shopOfferName .. ' from Website Shop.')
db.asyncQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. transactionId)
db.asyncQuery("UPDATE `z_shop_history_item` SET `trans_state`= 'realized', `trans_real`=" .. os.time() .. " WHERE `id` = " .. transactionId)
elseif shopOfferType == 'addon' then
player:addOutfit(AddonsShop[itemId].m, 3)
player:addOutfitAddon(AddonsShop[itemId].m, 3)
if (AddonsShop[itemId].f ~= 141) then
player:addOutfit(AddonsShop[itemId].f, 3)
player:addOutfitAddon(AddonsShop[itemId].f, 3)
end
player:setStorageValue(itemId,1)
player:getPosition():sendMagicEffect(CONST_ME_HOLYDAMAGE)
player:sendTextMessage(SHOP_MSG_TYPE, 'You received ' .. shopOfferName .. ' from Website Shop.')
db.asyncQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. transactionId .. ";")
db.asyncQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. transactionId .. ";")
end
end
until not result.next(resultId)
result.free(resultId)
end
return true
end
Database
global1100.sql
Edited by damatioShare this post
Link to post