Ir para conteúdo
  • Cadastre-se

(Resolvido)alguém da uma força globalEvents ShopSystem


Ir para solução Resolvido por FiNub,

Posts Recomendados

The Forgotten Server 0.4

 

quando alguém fizer uma compra no site depois de 30 segundos o item comprado aparece na Backpack...

 

é que ele funcione com os Outfits addon 1 é addon 2 já completo....

Link para o post
Compartilhar em outros sites
  • Solução

@ADM Mayk on BaiakME tenta usar esse aqui

vai na pasta globalevents e cria ou substitua o arquivo shop.lua por esse

Spoiler

local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGE
local SQL_interval = 30
--- ### Outfits List ###
local femaleOutfits = { 
    ["citizen"]={136}, 
    ["hunter"]={137}, 
    ["mage"]={138}, 
    ["knight"]={139}, 
    ["noblewoman"]={140}, 
    ["summoner"]={141}, 
    ["warrior"]={142}, 
    ["barbarian"]={147}, 
    ["druid"]={148}, 
    ["wizard"]={149}, 
    ["oriental"]={150}, 
    ["pirate"]={155}, 
    ["assassin"]={156}, 
    ["beggar"]={157}, 
    ["shaman"]={158}, 
    ["norsewoman"]={252}, 
    ["nightmare"]={269}, 
    ["jester"]={270}, 
    ["brotherhood"]={279}, 
    ["demonhunter"]={288}, 
    ["yalaharian"]={324}, 
    ["warmaster"]={336},
    ["wayfarer"]={366}, 
    ["afflicted"]={431}, 
    ["elementalist"]={433}, 
    ["deepling"]={464}, 
    ["insectoid"]={466}, 
    ["red baron"]={471}, 
    ["crystal warlord"]={513},
    ["soil guardian"]={514}, 
    ["demon"]={542} 
}
local maleOutfits = { 
    ["citizen"]={128}, 
    ["hunter"]={129}, 
    ["mage"]={130}, 
    ["knight"]={131}, 
    ["noblewoman"]={132},
    ["summoner"]={133}, 
    ["warrior"]={134}, 
    ["barbarian"]={143}, 
    ["druid"]={144}, 
    ["wizard"]={145}, 
    ["oriental"]={146}, 
    ["pirate"]={151}, 
    ["assassin"]={152}, 
    ["beggar"]={153}, 
    ["shaman"]={154}, 
    ["norsewoman"]={251}, 
    ["nightmare"]={268}, 
    ["jester"]={273}, 
    ["brotherhood"]={278}, 
    ["demonhunter"]={289}, 
    ["yalaharian"]={325}, 
    ["warmaster"]={335}, 
    ["wayfarer"]={367}, 
    ["afflicted"]={430},
    ["elementalist"]={432}, 
    ["deepling"]={463}, 
    ["insectoid"]={465}, 
    ["red baron"]={472}, 
    ["crystal warlord"]={512}, 
    ["soil guardian"]={516},
    ["demon"]={541} 
}

function onThink(interval, lastExecution)
    local result_plr = db.getResult("SELECT * FROM z_ots_comunication")
    if(result_plr:getID() ~= -1) then
        while(true) do
        
            id = tonumber(result_plr:getDataInt("id"))
            local action = tostring(result_plr:getDataString("action"))
            local delete = tonumber(result_plr:getDataInt("delete_it"))
            local cid = getPlayerByName(tostring(result_plr:getDataString("name")))
            
            if isPlayer(cid) then
            
                local itemtogive_id = tonumber(result_plr:getDataInt("param1"))
                local itemtogive_count = tonumber(result_plr:getDataInt("param2"))
                local outfit_name = string.lower(tostring(result_plr:getDataString("param3")))
                local itemvip = tonumber(result_plr:getDataInt("param4"))
                local add_item_type = tostring(result_plr:getDataString("param5"))
                local add_item_name = tostring(result_plr:getDataString("param6"))
                local points = tonumber(result_plr:getDataInt("param7"))
                local received_item = 0
                local full_weight = 0
                
                if(action == 'give_item') then
                    full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                    if isItemRune(itemtogive_id) == TRUE then
                        full_weight = getItemWeightById(itemtogive_id, 1)
                    else
                        full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                    end
                    
                    local free_cap = getPlayerFreeCap(cid)

                    local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
                    
                    if full_weight <= free_cap then
                        received_item = doPlayerAddItemEx(cid, new_item)
                        if received_item == RETURNVALUE_NOERROR then
                            doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'Voce Recebeu >> '.. add_item_name ..' << Da Nossa Loja, Relogue Para Salvar A Compra.')
                            db.executeQuery("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
                
                if(action == 'give_outfit') then
                    if outfit_name ~= "" and maleOutfits[outfit_name] and femaleOutfits[outfit_name] then
                        local add_outfit = getPlayerSex(cid) == 0 and femaleOutfits[outfit_name][1] or maleOutfits[outfit_name][1]
                        if not canPlayerWearOutfit(cid, add_outfit, 3) then
                            db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
                            doPlayerAddOutfit(cid, add_outfit, 3)
                            doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, "Voca Recebeu A Roupa " .. add_item_name .. " Da Nossa Loja.")
                        else
                            doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, "Voce Ja Tem Essa Roupa. Seus Pontos Foram Devolvidos, Obrigado.")
                            db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                            db.query("UPDATE `accounts` SET `premium_points` = `premium_points` + " .. points .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
                        end
                    end
                end
                
            end
            if not(result_plr:next()) then
                break
            end
        end
        result_plr:free()
    end
    
    return true
end

 

e em globalevents.xml use essa tag

Spoiler

<globalevent name="shop" interval="1" script="shop.lua"/>

 

Link para o post
Compartilhar em outros sites
50 minutos atrás, Emanueldk disse:

@ADM Mayk on BaiakME tenta usar esse aqui

vai na pasta globalevents e cria ou substitua o arquivo shop.lua por esse

  Ocultar conteúdo

local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGE
local SQL_interval = 30
--- ### Outfits List ###
local femaleOutfits = { 
    ["citizen"]={136}, 
    ["hunter"]={137}, 
    ["mage"]={138}, 
    ["knight"]={139}, 
    ["noblewoman"]={140}, 
    ["summoner"]={141}, 
    ["warrior"]={142}, 
    ["barbarian"]={147}, 
    ["druid"]={148}, 
    ["wizard"]={149}, 
    ["oriental"]={150}, 
    ["pirate"]={155}, 
    ["assassin"]={156}, 
    ["beggar"]={157}, 
    ["shaman"]={158}, 
    ["norsewoman"]={252}, 
    ["nightmare"]={269}, 
    ["jester"]={270}, 
    ["brotherhood"]={279}, 
    ["demonhunter"]={288}, 
    ["yalaharian"]={324}, 
    ["warmaster"]={336},
    ["wayfarer"]={366}, 
    ["afflicted"]={431}, 
    ["elementalist"]={433}, 
    ["deepling"]={464}, 
    ["insectoid"]={466}, 
    ["red baron"]={471}, 
    ["crystal warlord"]={513},
    ["soil guardian"]={514}, 
    ["demon"]={542} 
}
local maleOutfits = { 
    ["citizen"]={128}, 
    ["hunter"]={129}, 
    ["mage"]={130}, 
    ["knight"]={131}, 
    ["noblewoman"]={132},
    ["summoner"]={133}, 
    ["warrior"]={134}, 
    ["barbarian"]={143}, 
    ["druid"]={144}, 
    ["wizard"]={145}, 
    ["oriental"]={146}, 
    ["pirate"]={151}, 
    ["assassin"]={152}, 
    ["beggar"]={153}, 
    ["shaman"]={154}, 
    ["norsewoman"]={251}, 
    ["nightmare"]={268}, 
    ["jester"]={273}, 
    ["brotherhood"]={278}, 
    ["demonhunter"]={289}, 
    ["yalaharian"]={325}, 
    ["warmaster"]={335}, 
    ["wayfarer"]={367}, 
    ["afflicted"]={430},
    ["elementalist"]={432}, 
    ["deepling"]={463}, 
    ["insectoid"]={465}, 
    ["red baron"]={472}, 
    ["crystal warlord"]={512}, 
    ["soil guardian"]={516},
    ["demon"]={541} 
}

function onThink(interval, lastExecution)
    local result_plr = db.getResult("SELECT * FROM z_ots_comunication")
    if(result_plr:getID() ~= -1) then
        while(true) do
        
            id = tonumber(result_plr:getDataInt("id"))
            local action = tostring(result_plr:getDataString("action"))
            local delete = tonumber(result_plr:getDataInt("delete_it"))
            local cid = getPlayerByName(tostring(result_plr:getDataString("name")))
            
            if isPlayer(cid) then
            
                local itemtogive_id = tonumber(result_plr:getDataInt("param1"))
                local itemtogive_count = tonumber(result_plr:getDataInt("param2"))
                local outfit_name = string.lower(tostring(result_plr:getDataString("param3")))
                local itemvip = tonumber(result_plr:getDataInt("param4"))
                local add_item_type = tostring(result_plr:getDataString("param5"))
                local add_item_name = tostring(result_plr:getDataString("param6"))
                local points = tonumber(result_plr:getDataInt("param7"))
                local received_item = 0
                local full_weight = 0
                
                if(action == 'give_item') then
                    full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                    if isItemRune(itemtogive_id) == TRUE then
                        full_weight = getItemWeightById(itemtogive_id, 1)
                    else
                        full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                    end
                    
                    local free_cap = getPlayerFreeCap(cid)

                    local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
                    
                    if full_weight <= free_cap then
                        received_item = doPlayerAddItemEx(cid, new_item)
                        if received_item == RETURNVALUE_NOERROR then
                            doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'Voce Recebeu >> '.. add_item_name ..' << Da Nossa Loja, Relogue Para Salvar A Compra.')
                            db.executeQuery("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
                
                if(action == 'give_outfit') then
                    if outfit_name ~= "" and maleOutfits[outfit_name] and femaleOutfits[outfit_name] then
                        local add_outfit = getPlayerSex(cid) == 0 and femaleOutfits[outfit_name][1] or maleOutfits[outfit_name][1]
                        if not canPlayerWearOutfit(cid, add_outfit, 3) then
                            db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
                            doPlayerAddOutfit(cid, add_outfit, 3)
                            doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, "Voca Recebeu A Roupa " .. add_item_name .. " Da Nossa Loja.")
                        else
                            doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, "Voce Ja Tem Essa Roupa. Seus Pontos Foram Devolvidos, Obrigado.")
                            db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                            db.query("UPDATE `accounts` SET `premium_points` = `premium_points` + " .. points .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
                        end
                    end
                end
                
            end
            if not(result_plr:next()) then
                break
            end
        end
        result_plr:free()
    end
    
    return true
end

 

e em globalevents.xml use essa tag

  Ocultar conteúdo

<globalevent name="shop" interval="1" script="shop.lua"/>

 

vlw funcionou agora só falta eu retirar os outfits exemplo deixar exclusivo apenas pra quem comprar no site ? 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo