• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Store does not deliver Vocation purchased without website

Daniel Braga

New Member
Joined
Mar 17, 2018
Messages
53
Reaction score
1
-- ### 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.storeQuery("SELECT * FROM z_ots_comunication")
if(result_plr ~= false) then
repeat
local id = tonumber(result.getDataInt(result_plr, "id"))
local action = tostring(result.getDataString(result_plr, "action"))
local delete = tonumber(result.getDataInt(result_plr, "delete_it"))
local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name")))
if(cid) then
local itemtogive_id = tonumber(result.getDataInt(result_plr, "param1"))
local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2"))
local container_id = tonumber(result.getDataInt(result_plr, "param3"))
local container_count = tonumber(result.getDataInt(result_plr, "param4"))
local add_item_type = tostring(result.getDataString(result_plr, "param5"))
local add_item_name = tostring(result.getDataString(result_plr, "param6"))
local received_item = 0
local full_weight = 0
if(add_item_type == 'container') then
container_weight = getItemWeight(container_id, 1)
if(isItemRune(itemtogive_id)) then
items_weight = container_count * getItemWeight(itemtogive_id, 1)
else
items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)
end
full_weight = items_weight + container_weight
else
full_weight = getItemWeight(itemtogive_id, itemtogive_count)
if(isItemRune(itemtogive_id)) then
full_weight = getItemWeight(itemtogive_id, 1)
else
full_weight = getItemWeight(itemtogive_id, itemtogive_count)
end
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(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) then
doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')
db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
else
doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')
end
else
doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. 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 '.. SQL_interval ..' seconds to get it.')
end
end
until not result.next(result_plr)
result.free(result_plr)
end
return true
end
 
Can you provide us more info? What exactly doesn't work?

Do you have anything in the z_shop_communication table in the database? If so, show us what is inside.
 
Your script doesn't support mounts. You need to find another one, or try with items.

What distro/server are you using?
 
Kojack serv

I mean TFS? Or Otserv?


This also doesn't support mounts.

Try this one:
Code:
-- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 18
-- 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.storeQuery("SELECT * FROM z_ots_comunication")
   if(result_plr ~= false) then
       repeat
           local id = tonumber(result.getDataInt(result_plr, "id"))
           local action = tostring(result.getDataString(result_plr, "action"))
           local delete = tonumber(result.getDataInt(result_plr, "delete_it"))
           local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name")))
           if(cid) then
               local itemtogive_id = tonumber(result.getDataInt(result_plr, "param1"))
               local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2"))
               local container_id = tonumber(result.getDataInt(result_plr, "param3"))
               local container_count = tonumber(result.getDataInt(result_plr, "param4"))
               local add_item_type = tostring(result.getDataString(result_plr, "param5"))
               local add_item_name = tostring(result.getDataString(result_plr, "param6"))
               local received_item = 0
               local full_weight = 0
               
               -- Script para addons e montaria full pelo Gesior --
               if(add_item_type == 'mounts') then
               local player = Player(cid)
               if (getPlayerStorageValue(cid,itemtogive_id) == -1) then
               doPlayerAddMount(cid, itemtogive_id)
               setPlayerStorageValue(cid,itemtogive_id,1)
               doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYDAMAGE)
               doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received '.. add_item_name ..' from Th3 Insanity Shop.')
               db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
               db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
               else
               doPlayerSendTextMessage(cid,25,"You Already have this Mount.")
               end
               return TRUE
               
               end               
               -- fim do script --
               -- Script para addons e montaria full pelo Gesior --
               if(add_item_type == 'addons') then
               local player = Player(cid)
               if (getPlayerStorageValue(cid,itemtogive_id) == -1) then
               doPlayerAddOutfit(cid, itemtogive_id, 3)
               doPlayerAddOutfit(cid, container_id, 3)
               setPlayerStorageValue(cid,itemtogive_id,1)
               doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYDAMAGE)
               doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received '.. add_item_name ..' from Th3 Insanity Shop.')
               db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
               db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
               else
               doPlayerSendTextMessage(cid,25,"You Already have this Outfit.")
               end
               return TRUE
               end               
               -- fim do script --
               
               
               
               if(add_item_type == 'container') then
                   container_weight = getItemWeight(container_id, 1)
                   if(isItemRune(itemtogive_id)) then
                       items_weight = container_count * getItemWeight(itemtogive_id, 1)
                   else
                       items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)
                   end
                   full_weight = items_weight + container_weight
               else
                   full_weight = getItemWeight(itemtogive_id, itemtogive_count)
                   if(isItemRune(itemtogive_id)) then
                       full_weight = getItemWeight(itemtogive_id, 1)
                   else
                       full_weight = getItemWeight(itemtogive_id, itemtogive_count)
                   end
               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(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) then
                       doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received '.. add_item_name ..' from Th3 Insanity Shop.')
                       db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                       db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
                   else
                       doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, ' '.. add_item_name ..' from Th3 Insanity is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')
                   end
               else
                   doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, ' '.. add_item_name ..' Th3 Insanity 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 '.. SQL_interval ..' seconds to get it.')
               end
           end
       until not result.next(result_plr)
       result.free(result_plr)
   end
   return true
end
 
Help-me PLix >>>>>>>

14:31 Your item >> Vocation Kame << is waiting for voice. Please make the location for this item in your backpack and wait about 30 seconds to get it.
 

Attachments

Similar threads

Back
Top