hello i have installed the latest gesior shop system from my-aac page but now when i click the PayPal button nothing happens, also the buttons on Gifts page doesnt respond
View attachment 89973
View attachment 89974
hello i have installed the latest gesior shop system from my-aac page but now when i click the PayPal button nothing happens, also the buttons on Gifts page doesnt respond
View attachment 89973
View attachment 89974
try_files $uri $uri/ /index.php?$query_string;
--[[
Gesior Shop System Revscript v3.0
Originally written by Gesior, modified by slawkens for MyAAC.
This script works with TFS 1.3+, otservbr-global and canary
]]--
local messageType = MESSAGE_EVENT_ADVANCE
-- don't edit anything below this line
if(not messageType) then
messageType = MESSAGE_STATUS_CONSOLE_ORANGE
if(not messageType) then
messageType = MESSAGE_EVENT_ADVANCE
end
end
function getResults()
local resultId = db.storeQuery("SELECT * FROM z_ots_comunication;")
if(resultId == false) then
return false
end
local results = {}
repeat
local tmp = {}
tmp.name = result.getString(resultId, "name")
-- better performance when no player found
tmp.exist = false
tmp.player = nil
local player = Player(tmp.name)
if(player) then
tmp.exist = true
tmp.player = player
tmp.id = result.getNumber(resultId, "id")
tmp.action = result.getString(resultId, "action")
tmp.delete_it = result.getNumber(resultId, "delete_it")
tmp.param1 = result.getNumber(resultId, "param1")
tmp.param2 = result.getNumber(resultId, "param2")
tmp.param3 = result.getNumber(resultId, "param3")
tmp.param4 = result.getNumber(resultId, "param4")
tmp.param5 = result.getString(resultId, "param5")
tmp.param6 = result.getString(resultId, "param6")
end
table.insert(results, tmp)
until not result.next(resultId)
result.free(resultId)
return results
end
local shopSystemGlobalEvent = GlobalEvent("myaac-gesior-shop-system")
function shopSystemGlobalEvent.onThink(interval)
interval = interval / 1000
local started = os.mtime and os.mtime() or os.time()
local addedItems, waitingItems = 0, 0
local added = false
local results = getResults()
if(not results) then
return true
end
for i, v in ipairs(results) do
added = false
local id = v.id
local action = v.action
local delete = v.delete_it
if(v.exist) then
local player = v.player
local param1, param2, param3, param4 = v.param1, v.param2, v.param3, v.param4
local add_item_type = v.param5
local add_item_name = v.param6
local received_item, full_weight, items_weight, item_weigth = 0, 0, 0, 0
local item_doesnt_exist = false
if(add_item_type == 'container' or add_item_type == 'item') then
local itemType = ItemType(param1)
if(not itemType) then -- item doesn't exist
print("[ERROR - gesior-shop-system] Invalid item id: " .. param1 .. ". Change/Fix `itemid1` in `z_shop_offers` then delete it from `z_ots_comunication`")
item_doesnt_exist = true
else
local item_weigth = itemType:getWeight()
if(add_item_type == 'container') then
local containerItemType = ItemType(param3)
if(not containerItemType) then -- container item doesn't exist
print("[ERROR - gesior-shop-system] Invalid container id: " .. param3 .. ". Change/Fix `itemid2` in `z_shop_offers` then delete it from `z_ots_comunication`")
item_doesnt_exist = true
else
local container_weight = containerItemType:getWeight()
if(itemType:isRune()) then
items_weight = param4 * item_weigth
else
items_weight = param4 * itemType:getWeight(param2)
end
full_weight = items_weight + container_weight
end
elseif(add_item_type == 'item') then
full_weight = itemType:getWeight(param2)
if(itemType:isRune()) then
full_weight = itemType:getWeight()
end
end
end
if(not item_doesnt_exist) then
local free_cap = player:getFreeCapacity()
if(full_weight <= free_cap) then
if(add_item_type == 'container') then
local new_container = Game.createItem(param3, 1)
for x = 1, param4 do
new_container:addItem(param1, param2)
end
received_item = player:addItemEx(new_container)
else
received_item = player:addItem(param1, param2)
end
if(received_item) then
player:sendTextMessage(messageType, "You received >> ".. add_item_name .." << from OTS shop.")
db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
db.query("UPDATE `z_shop_history` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE comunication_id = " .. id .. ";")
player:save()
added = true
else
player:sendTextMessage(messageType, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. interval ..' seconds to get it.')
end
else
player:sendTextMessage(messageType, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. (full_weight / 100) ..' oz., you have only '.. (free_cap / 100) ..' oz. free capacity. Put some items in depot and wait about '.. interval ..' seconds to get it.')
end
end
elseif(add_item_type == 'addon') then
player:sendTextMessage(messageType, "You received >> ".. add_item_name .." << from OTS shop.")
player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS)
player:addOutfitAddon(param1, param3)
player:addOutfitAddon(param2, param4)
db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
db.query("UPDATE `z_shop_history` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE comunication_id = " .. id .. ";")
player:save()
added = true
elseif(add_item_type == 'mount') then
player:addMount(param1)
player:sendTextMessage(messageType, "You received >> ".. add_item_name .." << from OTS shop.")
player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS)
db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
db.query("UPDATE `z_shop_history` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE comunication_id = " .. id .. ";")
player:save()
added = true
end
end
if(added) then
addedItems = addedItems + 1
else
waitingItems = waitingItems + 1
end
end
print(">> Shopsystem, added " .. addedItems .. " items. Still waiting with " .. waitingItems .. " items.")
return true
end
shopSystemGlobalEvent:interval(30000)
shopSystemGlobalEvent:register()
Hello, I have a problem when I wait for an item from the shop, an error appears in the console
View attachment 90262
2025-02-16 11:11:54 - >> Shopsystem, added 0 items. Still waiting with 11 items.
2025-02-16 11:11:54 - >> Shopsystem, added 0 items. Still waiting with 11 items.
2025-02-16 11:11:54 - >> Shopsystem, added 0 items. Still waiting with 11 items.
gesior-shop-system-revscript.lua
LUA:--[[ Gesior Shop System Revscript v3.0 Originally written by Gesior, modified by slawkens for MyAAC. This script works with TFS 1.3+, otservbr-global and canary ]]-- local messageType = MESSAGE_EVENT_ADVANCE -- don't edit anything below this line if(not messageType) then messageType = MESSAGE_STATUS_CONSOLE_ORANGE if(not messageType) then messageType = MESSAGE_EVENT_ADVANCE end end function getResults() local resultId = db.storeQuery("SELECT * FROM z_ots_comunication;") if(resultId == false) then return false end local results = {} repeat local tmp = {} tmp.name = result.getString(resultId, "name") -- better performance when no player found tmp.exist = false tmp.player = nil local player = Player(tmp.name) if(player) then tmp.exist = true tmp.player = player tmp.id = result.getNumber(resultId, "id") tmp.action = result.getString(resultId, "action") tmp.delete_it = result.getNumber(resultId, "delete_it") tmp.param1 = result.getNumber(resultId, "param1") tmp.param2 = result.getNumber(resultId, "param2") tmp.param3 = result.getNumber(resultId, "param3") tmp.param4 = result.getNumber(resultId, "param4") tmp.param5 = result.getString(resultId, "param5") tmp.param6 = result.getString(resultId, "param6") end table.insert(results, tmp) until not result.next(resultId) result.free(resultId) return results end local shopSystemGlobalEvent = GlobalEvent("myaac-gesior-shop-system") function shopSystemGlobalEvent.onThink(interval) interval = interval / 1000 local started = os.mtime and os.mtime() or os.time() local addedItems, waitingItems = 0, 0 local added = false local results = getResults() if(not results) then return true end for i, v in ipairs(results) do added = false local id = v.id local action = v.action local delete = v.delete_it if(v.exist) then local player = v.player local param1, param2, param3, param4 = v.param1, v.param2, v.param3, v.param4 local add_item_type = v.param5 local add_item_name = v.param6 local received_item, full_weight, items_weight, item_weigth = 0, 0, 0, 0 local item_doesnt_exist = false if(add_item_type == 'container' or add_item_type == 'item') then local itemType = ItemType(param1) if(not itemType) then -- item doesn't exist print("[ERROR - gesior-shop-system] Invalid item id: " .. param1 .. ". Change/Fix `itemid1` in `z_shop_offers` then delete it from `z_ots_comunication`") item_doesnt_exist = true else local item_weigth = itemType:getWeight() if(add_item_type == 'container') then local containerItemType = ItemType(param3) if(not containerItemType) then -- container item doesn't exist print("[ERROR - gesior-shop-system] Invalid container id: " .. param3 .. ". Change/Fix `itemid2` in `z_shop_offers` then delete it from `z_ots_comunication`") item_doesnt_exist = true else local container_weight = containerItemType:getWeight() if(itemType:isRune()) then items_weight = param4 * item_weigth else items_weight = param4 * itemType:getWeight(param2) end full_weight = items_weight + container_weight end elseif(add_item_type == 'item') then full_weight = itemType:getWeight(param2) if(itemType:isRune()) then full_weight = itemType:getWeight() end end end if(not item_doesnt_exist) then local free_cap = player:getFreeCapacity() if(full_weight <= free_cap) then if(add_item_type == 'container') then local new_container = Game.createItem(param3, 1) for x = 1, param4 do new_container:addItem(param1, param2) end received_item = player:addItemEx(new_container) else received_item = player:addItem(param1, param2) end if(received_item) then player:sendTextMessage(messageType, "You received >> ".. add_item_name .." << from OTS shop.") db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") db.query("UPDATE `z_shop_history` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE comunication_id = " .. id .. ";") player:save() added = true else player:sendTextMessage(messageType, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. interval ..' seconds to get it.') end else player:sendTextMessage(messageType, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. (full_weight / 100) ..' oz., you have only '.. (free_cap / 100) ..' oz. free capacity. Put some items in depot and wait about '.. interval ..' seconds to get it.') end end elseif(add_item_type == 'addon') then player:sendTextMessage(messageType, "You received >> ".. add_item_name .." << from OTS shop.") player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:addOutfitAddon(param1, param3) player:addOutfitAddon(param2, param4) db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") db.query("UPDATE `z_shop_history` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE comunication_id = " .. id .. ";") player:save() added = true elseif(add_item_type == 'mount') then player:addMount(param1) player:sendTextMessage(messageType, "You received >> ".. add_item_name .." << from OTS shop.") player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") db.query("UPDATE `z_shop_history` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE comunication_id = " .. id .. ";") player:save() added = true end end if(added) then addedItems = addedItems + 1 else waitingItems = waitingItems + 1 end end print(">> Shopsystem, added " .. addedItems .. " items. Still waiting with " .. waitingItems .. " items.") return true end shopSystemGlobalEvent:interval(30000) shopSystemGlobalEvent:register()
2025-02-16 09:14:45 - [2025-16-02 09:14:45.697] [warning] Deprecation Warning: The function 'isPlayer(cid)' is outdated. Please use the new format 'Player(cid)'. Update needed at: Line 72, Source: /home/ubuntu/canary/data/scripts/globalevents/gesior-shop-system.lua.
Ubuntu Server 24.04 "Noble Numbat" LTS
This happens every time I log in to my character and try to add a new transaction from the store, but it happens all the time. The same error appears in the console every few seconds
There was another error like this before
LUA:2025-02-16 09:14:45 - [2025-16-02 09:14:45.697] [warning] Deprecation Warning: The function 'isPlayer(cid)' is outdated. Please use the new format 'Player(cid)'. Update needed at: Line 72, Source: /home/ubuntu/canary/data/scripts/globalevents/gesior-shop-system.lua.
I changed it to the function 'Player(cid)' and there is only this error
maybe the distribution is actually wrong, because I also have a problem with charbazar, there are no errors and the characters are not added to the auction, I'm doing everything right
--[[
Gesior Shop System Revscript v3.0
Originally written by Gesior, modified by slawkens for MyAAC.
This script works with TFS 1.3+, otservbr-global and canary
]]--
local messageType = MESSAGE_EVENT_ADVANCE
-- don't edit anything below this line
if(not messageType) then
messageType = MESSAGE_STATUS_CONSOLE_ORANGE
if(not messageType) then
messageType = MESSAGE_EVENT_ADVANCE
end
end
function getResults()
local resultId = db.storeQuery("SELECT * FROM z_ots_comunication;")
if(resultId == false) then
return false
end
local results = {}
repeat
local tmp = {}
tmp.name = result.getString(resultId, "name")
-- better performance when no player found
tmp.exist = false
tmp.player = nil
local player = Player(tmp.name)
if(player) then
tmp.exist = true
tmp.player = player
tmp.id = result.getNumber(resultId, "id")
tmp.action = result.getString(resultId, "action")
tmp.delete_it = result.getNumber(resultId, "delete_it")
tmp.param1 = result.getNumber(resultId, "param1")
tmp.param2 = result.getNumber(resultId, "param2")
tmp.param3 = result.getNumber(resultId, "param3")
tmp.param4 = result.getNumber(resultId, "param4")
tmp.param5 = result.getString(resultId, "param5")
tmp.param6 = result.getString(resultId, "param6")
end
table.insert(results, tmp)
until not result.next(resultId)
result.free(resultId)
return results
end
local shopSystemGlobalEvent = GlobalEvent("myaac-gesior-shop-system")
function shopSystemGlobalEvent.onThink(interval)
interval = interval / 1000
local started = os.mtime and os.mtime() or os.time()
local addedItems, waitingItems = 0, 0
local added = false
local results = getResults()
if(not results) then
return true
end
for i, v in ipairs(results) do
added = false
local id = v.id
local action = v.action
local delete = v.delete_it
if(v.exist) then
local player = v.player
local param1, param2, param3, param4 = v.param1, v.param2, v.param3, v.param4
local add_item_type = v.param5
local add_item_name = v.param6
local received_item, full_weight, items_weight, item_weigth = 0, 0, 0, 0
local item_doesnt_exist = false
if(add_item_type == 'container' or add_item_type == 'item') then
local itemType = ItemType(param1)
if(not itemType) then -- item doesn't exist
print("[ERROR - gesior-shop-system] Invalid item id: " .. param1 .. ". Change/Fixitemid1
inz_shop_offers
then delete it fromz_ots_comunication
")
item_doesnt_exist = true
else
local item_weigth = itemType:getWeight()
if(add_item_type == 'container') then
local containerItemType = ItemType(param3)
if(not containerItemType) then -- container item doesn't exist
print("[ERROR - gesior-shop-system] Invalid container id: " .. param3 .. ". Change/Fixitemid2
inz_shop_offers
then delete it fromz_ots_comunication
")
item_doesnt_exist = true
else
local container_weight = containerItemType:getWeight()
if(itemType:isRune()) then
items_weight = param4 * item_weigth
else
items_weight = param4 * itemType:getWeight(param2)
end
full_weight = items_weight + container_weight
end
elseif(add_item_type == 'item') then
full_weight = itemType:getWeight(param2)
if(itemType:isRune()) then
full_weight = itemType:getWeight()
end
end
end
if(not item_doesnt_exist) then
local free_cap = player:getFreeCapacity()
if(full_weight <= free_cap) then
if(add_item_type == 'container') then
local new_container = Game.createItem(param3, 1)
for x = 1, param4 do
new_container:addItem(param1, param2)
end
received_item = player:addItemEx(new_container)
else
received_item = player:addItem(param1, param2)
end
if(received_item) then
player:sendTextMessage(messageType, "You received >> ".. add_item_name .." << from OTS shop.")
db.query("DELETE FROMz_ots_comunication
WHEREid
= " .. id .. ";")
db.query("UPDATEz_shop_history
SETtrans_state
='realized',trans_real
=" .. os.time() .. " WHERE comunication_id = " .. id .. ";")
player:save()
added = true
else
player:sendTextMessage(messageType, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. interval ..' seconds to get it.')
end
else
player:sendTextMessage(messageType, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. (full_weight / 100) ..' oz., you have only '.. (free_cap / 100) ..' oz. free capacity. Put some items in depot and wait about '.. interval ..' seconds to get it.')
end
end
elseif(add_item_type == 'addon') then
player:sendTextMessage(messageType, "You received >> ".. add_item_name .." << from OTS shop.")
player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS)
player:addOutfitAddon(param1, param3)
player:addOutfitAddon(param2, param4)
db.query("DELETE FROMz_ots_comunication
WHEREid
= " .. id .. ";")
db.query("UPDATEz_shop_history
SETtrans_state
='realized',trans_real
=" .. os.time() .. " WHERE comunication_id = " .. id .. ";")
player:save()
added = true
elseif(add_item_type == 'mount') then
player:addMount(param1)
player:sendTextMessage(messageType, "You received >> ".. add_item_name .." << from OTS shop.")
player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS)
db.query("DELETE FROMz_ots_comunication
WHEREid
= " .. id .. ";")
db.query("UPDATEz_shop_history
SETtrans_state
='realized',trans_real
=" .. os.time() .. " WHERE comunication_id = " .. id .. ";")
player:save()
added = true
end
end
if(added) then
addedItems = addedItems + 1
else
waitingItems = waitingItems + 1
end
end
print(">> Shopsystem, added " .. addedItems .. " items. Still waiting with " .. waitingItems .. " items.")
return true
end
shopSystemGlobalEvent:interval(30000)
shopSystemGlobalEvent:register()
--[[
Gesior Shop System v2.0
Originally written by Gesior, modified by slawkens for MyAAC.
This script should work with ANY distro.
don't forget to paste this into globalevents.xml:
<globalevent name="gesior-shop-system" interval="30000" script="gesior-shop-system.lua" />
change 30000 to 30 if other values in this file are low
]]--
local messageType = MESSAGE_EVENT_ORANGE
local displayExecutionTime = true -- how time script took in console (true/false)
-- don't edit anything below this line
if(displayExecutionTime) then
function doSecondsFormat(i)
local str, found = string.gsub(i, "(%d)(%d%d%d)$", "%1.%2", 1), 0
repeat
str, found = string.gsub(str, "(%d)(%d%d%d),", "%1.%2,", 1)
until found == 0
return str
end
end
if(not messageType) then
messageType = MESSAGE_STATUS_CONSOLE_ORANGE
if(not messageType) then
messageType = MESSAGE_INFO_DESCR
end
end
if(not getPlayerByName) then
function getPlayerByName(name) local p = Player(name) return p ~= nil and p:getId() or false end
end
if(not isPlayer) then
function isPlayer(cid) return Player(cid) ~= nil end
end
if(not doPlayerSave) then
function doPlayerSave(cid)
if(Player and type(Player) == "table" and Player.save and type(Player.save) == "function") then
local player = Player(cid)
if(player) then
player:save()
end
end
return true
end
end
function getResults()
if(db.storeQuery ~= nil and result.free ~= nil) then -- TFS 1.0+
local resultId = db.storeQuery("SELECT * FROM z_ots_comunication;")
if(resultId == false) then
return false
end
local results = {}
repeat
local tmp = {}
tmp.name = result.getDataString(resultId, "name")
-- better performance when no player found
tmp.exist = false
tmp.cid = getPlayerByName(tmp.name)
if(tmp.cid and Player(tmp.cid)) then
tmp.exist = true
tmp.id = result.getDataInt(resultId, "id")
tmp.action = result.getDataString(resultId, "action")
tmp.delete_it = result.getDataInt(resultId, "delete_it")
tmp.param1 = result.getDataInt(resultId, "param1")
tmp.param2 = result.getDataInt(resultId, "param2")
tmp.param3 = result.getDataInt(resultId, "param3")
tmp.param4 = result.getDataInt(resultId, "param4")
tmp.param5 = result.getDataString(resultId, "param5")
tmp.param6 = result.getDataString(resultId, "param6")
end
table.insert(results, tmp)
until not result.next(resultId)
result.free(resultId)
return results
else -- TFS 0.3
if(db.getResult ~= nil) then
local result_plr = db.getResult("SELECT * FROM z_ots_comunication;")
if(result_plr:getID() == -1) then
return false
end
local results = {}
repeat
local tmp = {}
tmp.name = tostring(result_plr:getDataString("name"))
-- better performance when no player found
tmp.exist = false
tmp.cid = getPlayerByName(tmp.name)
if(tmp.cid and isPlayer(tmp.cid)) then
tmp.exist = true
tmp.id = tonumber(result_plr:getDataInt("id"))
tmp.action = tostring(result_plr:getDataString("action"))
tmp.delete_it = tonumber(result_plr:getDataInt("delete_it"))
tmp.param1 = tonumber(result_plr:getDataInt("param1"))
tmp.param2 = tonumber(result_plr:getDataInt("param2"))
tmp.param3 = tonumber(result_plr:getDataInt("param3"))
tmp.param4 = tonumber(result_plr:getDataInt("param4"))
tmp.param5 = tostring(result_plr:getDataString("param5"))
tmp.param6 = tostring(result_plr:getDataString("param6"))
end
table.insert(results, tmp)
until not(result_plr:next())
result_plr:free()
return results
else
print('[ERROR - gesior-shop-system.lua] Your distribution is not supported')
end
end
return false
end
function doQuery(query)
if(db.asyncQuery ~= nil) then
db.asyncQuery(query)
elseif(db.query ~= nil) then
db.query(query)
elseif(db.executeQuery ~= nil) then
db.executeQuery(query)
else
return false
end
return true
end
if(not getItemWeightById) then
getItemWeightById = getItemWeight
end
if(not doCreateItemEx) then
function doCreateItemEx(itemid, count)
if(Game and type(Game) == "table" and Game.createItem and type(Game.createItem) == "function") then
local item = Game.createItem(itemid, count)
if item then
return item:getUniqueId()
end
return false
else
print("[ERROR - gesior-shop-system] Error code: 1. Please contact slawkens at www.otland.net")
end
end
end
function onThink(interval)
if(interval > 1000) then
interval = interval / 1000
end
local started = os.mtime and os.mtime() or os.time()
local addedItems, waitingItems = 0, 0
local added = false
local results = getResults()
if(not results) then
return true
end
for i, v in ipairs(results) do
added = false
local id = v.id
local action = v.action
local delete = v.delete_it
if(v.exist) then
local cid = v.cid
local param1, param2, param3, param4 = v.param1, v.param2, v.param3, v.param4
local add_item_type = v.param5
local add_item_name = v.param6
local received_item, full_weight, items_weight, item_weigth = 0, 0, 0, 0
local item_doesnt_exist = false
if(add_item_type == 'container' or add_item_type == 'item') then
local item_weigth = getItemWeightById(param1, 1)
if(type(item_weigth) == 'boolean') then -- item doesn't exist
print("[ERROR - gesior-shop-system] Invalid item id: " .. param1 .. ". Change/Fixitemid1
inz_shop_offers
then delete it fromz_ots_comunication
")
item_doesnt_exist = true
else
if(add_item_type == 'container') then
container_weight = getItemWeightById(param3, 1)
if(type(container_weight) == 'boolean') then -- container item doesn't exist
print("[ERROR - gesior-shop-system] Invalid container id: " .. param3 .. ". Change/Fixitemid2
inz_shop_offers
then delete it fromz_ots_comunication
")
item_doesnt_exist = true
else
if(isItemRune(param1)) then
items_weight = param4 * item_weigth
else
items_weight = param4 * getItemWeightById(param1, param2)
end
full_weight = items_weight + container_weight
end
elseif(add_item_type == 'item') then
full_weight = getItemWeightById(param1, param2)
if(isItemRune(param1)) then
full_weight = getItemWeightById(param1, 1)
end
end
end
if(not item_doesnt_exist) then
local free_cap = getPlayerFreeCap(cid)
if(full_weight <= free_cap) then
if(add_item_type == 'container') then
local new_container = doCreateItemEx(param3, 1)
for x = 1, param4 do
doAddContainerItem(new_container, param1, param2)
end
received_item = doPlayerAddItemEx(cid, new_container)
else
local new_item = doCreateItemEx(param1, param2)
received_item = doPlayerAddItemEx(cid, new_item)
end
if(received_item == RETURNVALUE_NOERROR) then
doPlayerSendTextMessage(cid, messageType, "You received >> ".. add_item_name .." << from OTS shop.")
doQuery("DELETE FROMz_ots_comunication
WHEREid
= " .. id .. ";")
doQuery("UPDATEz_shop_history
SETtrans_state
='realized',trans_real
=" .. os.time() .. " WHERE comunication_id = " .. id .. ";")
doPlayerSave(cid)
added = true
else
doPlayerSendTextMessage(cid, messageType, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. interval ..' seconds to get it.')
end
else
doPlayerSendTextMessage(cid, messageType, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. interval ..' seconds to get it.')
end
end
elseif(add_item_type == 'addon') then
doPlayerSendTextMessage(cid, messageType, "You received >> ".. add_item_name .." << from OTS shop.")
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
doPlayerAddOutfit(cid, param1, param3)
doPlayerAddOutfit(cid, param2, param4)
doQuery("DELETE FROMz_ots_comunication
WHEREid
= " .. id .. ";")
doQuery("UPDATEz_shop_history
SETtrans_state
='realized',trans_real
=" .. os.time() .. " WHERE comunication_id = " .. id .. ";")
doPlayerSave(cid)
added = true
elseif(add_item_type == 'mount') then
if(not doPlayerAddMount) then
print("[ERROR - gesior-shop-system] Your server doesn't support mounts. Remove all items in database from yourz_shop_offers
table whereoffer_type
= mount and also inz_ots_comunication
whereparam5
= mount.")
else
doPlayerAddMount(cid, param1)
doPlayerSendTextMessage(cid, messageType, "You received >> ".. add_item_name .." << from OTS shop.")
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
doQuery("DELETE FROMz_ots_comunication
WHEREid
= " .. id .. ";")
doQuery("UPDATEz_shop_history
SETtrans_state
='realized',trans_real
=" .. os.time() .. " WHERE comunication_id = " .. id .. ";")
doPlayerSave(cid)
added = true
end
end
end
if(added) then
addedItems = addedItems + 1
else
waitingItems = waitingItems + 1
end
end
local message = ">> Shopsystem, added " .. addedItems .. " items. Still waiting with " .. waitingItems .. " items."
if(displayExecutionTime) then
local done, str = os.time() - started, ""
if(os.mtime) then
done = os.mtime() - started
if(done < 100) then
str = "0.0" .. done
elseif(done < 1000) then
str = "0." .. done
else
str = doSecondsFormat(done)
if(str:len() == 0) then str = "0.0" end
end
end
message = message .. " Done in: " .. str .. "s."
end
print(message)
return true
end
I forgot to add that this isPlayer related bug was located in shopsystem.lua.
Here are my scripts
gesior-shop-system-revscript.lua
gesior-shop-system.lua
i use data-otservbr-global
![]()
GitHub - opentibiabr/canary: Canary Server 13.x for OpenTibia community.
Canary Server 13.x for OpenTibia community. . Contribute to opentibiabr/canary development by creating an account on GitHub.github.com
Are the player online ingame?The payment is processed and completed, but the transaction status remains "Repeating" and the points are not being delivered to the player.
Here are the details:
config['donation_type'] = 'points';
$config['paypal'] = array(
'enabled' => true,
'email' => '[email protected]',
'contact_email' => '', // if empty, email is used
'item_name' => 'jaca-otserver.com.br donations',
'payment_type' => '_xclick', // '_xclick' (Buy Now) or '_donations'
'currency_code' => 'BRL', // Currency codes (https://developer.paypal.com/docs/integration/direct/rest/currency-codes/)
'use_sandbox' => false, // set to true if you want to test IPN in sandbox mode
'terms' => true, // display terms?
'options' => array( // cost in EUR => points
'5.00' => 30,
'10.00' => 60,
'20.00' => 130
)
);
paypal log erros
[Mon, 17 Mar 2025 11:29:38 -0300] Missing POST Data.
[Mon, 17 Mar 2025 11:31:18 -0300] Missing POST Data.
[Mon, 17 Mar 2025 11:47:01 -0300] Missing POST Data.
[Mon, 17 Mar 2025 12:15:02 -0300] Missing POST Data.
- Notification URL: https://www.jaca-otserver.com.br/payments-notify/paypal
- HTTP Response Code: (not provided)
- Delivery Status: Repeating
- Number of Attempts: 8
Has anyone encountered this issue or have any suggestions on what might be causing this problem? Any help would be greatly appreciated!
Hola, después de leer el foro y todo, no veo cómo instalar correctamente las fotos de los atuendos. ¿Alguien podría decirme, al igual que con los artículos, si tengo que guardar las imágenes específicas con un nombre? ¿O algo así?
/latest
and /latest_walk
https://outfit-images.ots.me/latest/outfit.php
https://outfit-images.ots.me/latest/animoutfit.php
https://outfit-images.ots.me/latest_walk/outfit.php...
ye i see but i wanna add manual on myacc where can i see that in which document[INCLUIR contenido="thread-285804"]https://otland.net/threads/últimas-imágenes-de-atuendos-13-20-para-sitio-web.285804/[/INCLUIR]