• 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!

Shop System

reborn624

New Member
Joined
Feb 7, 2010
Messages
50
Reaction score
0
Hello

I have shop system in gesior acc but I don't receive items on tibia.

How to fix?
 
PHP:
<globalevent name="shop" interval="3000" event="script" value="shop.lua"/>
PHP:
-- ### 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
				itmid = doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
                        while iter ~= container_count do
                            doItemSetAttribute(itmid, "aid", getPlayerGUID(cid)+100)
                            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 just got a >> '.. add_item_name ..' << from the Havoc-Online Shop Offert. Please logout so your character can save.')
                        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 .. ";")
                    else
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> The item '.. add_item_name ..' << that you just bought on the website couldnt be added. Han error has ocurred, please wait '.. SQL_interval ..' seconds.. Shop ID: '.. id ..'')
                    end
                else
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> The item '.. add_item_name ..' << that you just bought on the website couldnt be added. Han error has ocurred, please wait '.. SQL_interval ..' seconds.. Shop ID: '.. id ..'')
                end
            end
            if not(result_plr:next()) then
                break
            end
        end
        result_plr:free()
    end
    return TRUE
end

if not working replace your data /lib to another.

Same error :S

[19/07/2012 20:48:45] [Error - GlobalEvent Interface]
[19/07/2012 20:48:45] data/globalevents/scripts/shop.lua:eek:nThink
[19/07/2012 20:48:45] Description:
[19/07/2012 20:48:45] data/globalevents/scripts/shop.lua:44: attempt to call field 'executeQuery' (a nil value)
[19/07/2012 20:48:45] stack traceback:
[19/07/2012 20:48:45] data/globalevents/scripts/shop.lua:44: in function <data/globalevents/scripts/shop.lua:7>
[19/07/2012 20:48:45] [Error - GlobalEvents::think] Couldn't execute event: shop

Where I can find good lib?
 
do u use 0.3.6?

I think is 0.4

- - - Updated - - -

I think is 0.4

Changed Libs and worked! Now on website it shows that my character was recieved.

But now have more problems :S

Look:

19/07/2012 20:54:11] [Error - Npc interface]
[19/07/2012 20:54:11] data/npc/scripts/raymondstriker.lua
[19/07/2012 20:54:11] Description:
[19/07/2012 20:54:11] data/npc/scripts/raymondstriker.lua:6: attempt to index global 'tasks' (a nil value)
[19/07/2012 20:54:11] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/raymondstriker.lua


[19/07/2012 20:54:11] [Warning] NpcSystem:
[19/07/2012 20:54:11] Parameter(s) missing for item:
[19/07/2012 20:54:11]


[19/07/2012 20:54:00] [Error - TalkAction Interface]
[19/07/2012 20:54:00] data/talkactions/scripts/pvp.lua
[19/07/2012 20:54:00] Description:
[19/07/2012 20:54:00] data/talkactions/scripts/pvp.lua:2: table index is nil
[19/07/2012 20:54:00] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/pvp.lua)
 
I think is 0.4

- - - Updated - - -



Changed Libs and worked! Now on website it shows that my character was recieved.

But now have more problems :S

Look:

19/07/2012 20:54:11] [Error - Npc interface]
[19/07/2012 20:54:11] data/npc/scripts/raymondstriker.lua
[19/07/2012 20:54:11] Description:
[19/07/2012 20:54:11] data/npc/scripts/raymondstriker.lua:6: attempt to index global 'tasks' (a nil value)
[19/07/2012 20:54:11] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/raymondstriker.lua


[19/07/2012 20:54:11] [Warning] NpcSystem:
[19/07/2012 20:54:11] Parameter(s) missing for item:
[19/07/2012 20:54:11]


[19/07/2012 20:54:00] [Error - TalkAction Interface]
[19/07/2012 20:54:00] data/talkactions/scripts/pvp.lua
[19/07/2012 20:54:00] Description:
[19/07/2012 20:54:00] data/talkactions/scripts/pvp.lua:2: table index is nil
[19/07/2012 20:54:00] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/pvp.lua)
post the scripts
 
Hello im using tfs 1.0
Gesior acc for tfs 1.0

i Put this on globalevents.xml
Code:
<globalevent name="Shop" interval="60000" script="shop.lua" />

and this on shop.lua
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
  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

and i cant recive the item after purchase in the offer shop, and this show in the console and in the z_ots_comunication

Subido en subir imagenes

Who can help me?
 
Hello im using tfs 1.0
Gesior acc for tfs 1.0

i Put this on globalevents.xml
Code:
<globalevent name="Shop" interval="60000" script="shop.lua" />

and this on shop.lua
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
  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

and i cant recive the item after purchase in the offer shop, and this show in the console and in the z_ots_comunication

Subido en subir imagenes

Who can help me?

BRO I HAD A PROBLEM AND YOU FIXED IT WITH YOUR PROBLEM HAHAHAHAHAH THANKSSSSSSS
 
Back
Top