Hi
I have got small problem with my SMS Shop.
I bought few items by using points and after selecting a character I sent those items.
Concrete items from SMS Shop never come to my character but instead came a few garbage.
I saw several error messages from my server:
[Error - GlobalEvent Interface]
data/globalevents/scripts/shop.lua: onThink
Description:
<luaDoCreateItemEx> Item not found
Btw. in data/globalevents got:
In data/globalevents/scripts got:
I bought few items by using points and after selecting a character I sent those items.
Concrete items from SMS Shop never come to my character but instead came a few garbage.
I saw several error messages from my server:
[Error - GlobalEvent Interface]
data/globalevents/scripts/shop.lua: onThink
Description:
<luaDoCreateItemEx> Item not found
Btw. in data/globalevents got:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<globalevents>
<globalevent name="save" interval="1200000" event="script" value="save.lua"/>
<globalevent name="playersrecord" type="record" event="script" value="record.lua"/>
<globalevent name="ctf" interval="72000000" event="script" value="ctf.lua"/>
<globalevent name="LastMan" interval="24000000" event="script" value="lastmantp.lua"/>
<globalevent name="arena" interval="5000" event="script" value="lastman.lua"/>
<globalevent name="count" interval="10000" event="script" value="count.lua"/>
<!-- Race Event -->
<globalevent name="Race" interval="10000" event="script" value="race/race.lua"/>
<globalevent name="Racetp" interval="56000000" event="script" value="race/racetp.lua"/>
<!-- Zombie Event -->
<globalevent name="ZombieGlobalThink" interval="50000" event="script" value="zombie/onthink.lua"/>
<globalevent name="ZombieGlobalStartup" type="start" event="script" value="zombie/onstartup.lua"/>
<!-- EvoStorm -->
<globalevent name="shop" interval="300000" event="script" value="evostorm/shop.lua" />
<globalevent name="effects" interval="1000" event="script" value="effects.lua"/>
<globalevent name="website_shop_item_delivery" interval="30" event="script" value="shop.lua"/>
<!-- Events -->
</globalevents>
In data/globalevents/scripts got:
Code:
-- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 19
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
-- ### END OF CONFIG ###
function onThink(interval, lastExecution)
local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")
if(result_plr:getID() ~= -1) then
while(true) do
id = tonumber(result_plr:getDataInt("id"))
action = tostring(result_plr:getDataString("action"))
delete = tonumber(result_plr:getDataInt("delete_it"))
cid = getCreatureByName(tostring(result_plr:getDataString("name")))
if isPlayer(cid) == TRUE then
local itemtogive_id = tonumber(result_plr:getDataInt("param1"))
local itemtogive_count = tonumber(result_plr:getDataInt("param2"))
local container_id = tonumber(result_plr:getDataInt("param3"))
local container_count = tonumber(result_plr:getDataInt("param4"))
local add_item_type = tostring(result_plr:getDataString("param5"))
local add_item_name = tostring(result_plr:getDataString("param6"))
local received_item = 0
local full_weight = 0
if add_item_type == 'container' then
full_weight = getItemWeightById(itemtogive_id, 1)
end
local free_cap = getPlayerFreeCap(cid)
if full_weight <= free_cap then
if add_item_type == 'container' then
local new_container = doCreateItemEx(container_id, 1)
local iter = 0
while iter ~= container_count do
doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
iter = iter + 1
end
received_item = doPlayerAddItemEx(cid, new_container)
else
local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
received_item = doPlayerAddItemEx(cid, new_item)
end
if received_item == RETURNVALUE_NOERROR then
doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')
db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
doPlayerSave(cid)
end
end
end
if not(result_plr:next()) then
break
end
end
result_plr:free()
end
return TRUE
end