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

Gifts.php Modern Aac SHOP

Have you added the shop.lua to your globalevents that follows with Modern AAC's shop system?
 
Yes.

LUA:
function doPlayerAddDepotItems(cid, items, town)
    if (not isPlayer(cid)) then
        error("Player not found")
    end
    local town = town or getPlayerTown(cid)
 
    local parcel = doCreateItemEx(ITEM_PARCEL)
    for item, count in pairs(items) do
        if (type(item) == "number") then
            local attritemid = doAddContainerItem(parcel, item, count)
            doItemSetAttribute(attritemid, "description", "Este item pertence a ".. getPlayerName(cid) ..".")
            doItemSetAttribute(attritemid, "aid", getPlayerGUID(cid)+10000)
        elseif (type(item) == "string") then
            doAddContainerItem(parcel, getItemIdByName(item), count)
        else
            error("Undefinied type of item name")
        end
    end
 
    return doPlayerSendMailByName(getCreatureName(cid), parcel, town) 
end
 
function onThink(interval, lastExecution, thinkInterval)
 
    local result = db.getResult("SELECT * FROM shop_history WHERE `processed` = 0;")
 
        if(result:getID() ~= -1) then
            while(true) do
                cid = getCreatureByName(tostring(result:getDataString("player")))
                product = tonumber(result:getDataInt("product"))
                itemr = db.getResult("SELECT * FROM shop_offer WHERE `id` = "..product..";")
                    if isPlayer(cid) then
                        local id = tonumber(itemr:getDataInt("item"))
                        local tid = tonumber(result:getDataInt("id"))
                        local count = tonumber(itemr:getDataInt("count"))
                        local tipe = tonumber(itemr:getDataInt("type"))
                        local productn = tostring(itemr:getDataString("name"))
                            if isInArray({5,8},tipe) then
                                if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then
                                    if isPlayer(cid) then
                                        received = doPlayerAddDepotItems(cid, {[id]=count})
                                        if received then
                                            doPlayerSendTextMessage(cid,19, "Você recebeu "..productn.." para retirar seu Item va até algum banco da cidade DarkCity.")
                                            db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";")
                                            doPlayerSave(cid)
                                        else
                                            doPlayerSendTextMessage(cid,19, "Você precisa de espaço para receber "..productn..".")
                                        end
                                    else
                                        doPlayerSendTextMessage(cid,19, "Você precisa de espaço para receber "..productn..".")
                                    end
                                else
                                    doPlayerSendTextMessage(cid,19, "Você precisa de "..getItemWeightById(id, count).." espaço para receber "..productn..".")
                                end
                            elseif isInArray({6,7},tipe) then
                                    if tipe == 6 then
                                        bcap = 8
                                        bid = 1987
                                    elseif tipe == 7 then
                                        bcap = 20
                                        bid = 1988
                                    end
                                    if isItemRune(id) then
                                        count = 1
                                    end
                                    if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then
                                        local bag = doCreateItemEx(bid, 1)
                                            for i = 1,bcap do
                                                doAddContainerItem(bag, id, count)
                                            end
                                        received = doPlayerAddDepotItems(cid, bag)
                                        if received == RETURNVALUE_NOERROR then
                                            doPlayerSendTextMessage(cid,19, "Você recebeu "..productn.." , para retirar seu Item va até algum banco da cidade DarkCity.")
                                            db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";")
                                            doPlayerSave(cid)
                                        else
                                            doPlayerSendTextMessage(cid,19, "Você precisa de espaço para receber "..productn..".")
                                        end
                                    else
                                        doPlayerSendTextMessage(cid,19, "Você precisa de "..getItemWeightById(id, count).." espaço para receber "..productn..".")
                                    end
                            end
                    end
                itemr:free()
                if not(result:next()) then
                    break
                end
            end
            result:free()
        end
    return true
end

- - - Updated - - -

Bump
 
Back
Top