-- Znote Shop v1.0 for Znote AAC on TFS 1.1 function onSay(player, words, param) local storage = 54073 -- Make sure to select non-used storage. This is used to prevent SQL load attacks. local cooldown = 15 -- in seconds. if player:getStorageValue(storage) <= os.time() then player:setStorageValue(storage, os.time() + cooldown) -- Create the query local orderQuery = db.storeQuery("SELECT `id`, `type`, `itemid`, `count` FROM `znote_shop_orders` WHERE `account_id` = " .. player:getAccountId() .. " LIMIT 1;") -- Detect if we got any results if orderQuery ~= false then -- Fetch order values local q_id = result.getNumber(orderQuery, "id") local q_type = result.getNumber(orderQuery, "type") local q_itemid = result.getNumber(orderQuery, "itemid") local q_count = result.getNumber(orderQuery, "count") result.free(orderQuery) -- ORDER TYPE 1 (Regular item shop products) if q_type == 1 then -- Get wheight if player:getFreeCapacity() >= ItemType(q_itemid):getWeight(q_count) then db.query("DELETE FROM `znote_shop_orders` WHERE `id` = " .. q_id .. ";") player:addItem(q_itemid, q_count) player:sendTextMessage(MESSAGE_INFO_DESCR, "Congratulations! You have received " .. q_count .. " x " .. ItemType(q_itemid):getName() .. "!") else player:sendTextMessage(MESSAGE_STATUS_WARNING, "Need more CAP!") end end -- Add custom order types here -- Type 2 is reserved for premium days and is handled on website, not needed here. -- Type 3 is reserved for character gender(sex) change and is handled on website as well. -- So use type 4+ for custom stuff, like etc packages. -- if q_type == 4 then -- end else player:sendTextMessage(MESSAGE_STATUS_WARNING, "You have no orders.") end else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Can only be executed once every " .. cooldown .. " seconds. Remaining cooldown: " .. player:getStorageValue(storage) - os.time()) end return false end