Ir para conteúdo
  • Cadastre-se

Sitema%2FMod Addon/Mount para Shopsystem por Storage


Posts Recomendados

  • Respostas 56
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

A pedido desse tópico eu fiz o sistema : http://www.tibiaking.com/forum/topic/49214-duvida-como-colocar-uma-mountaddon-especifica-a-venda/   Troque seu shopsystem.php por esse :   shopsystem.php :

Você está esquecendo de mudar o offer_type pra 'mount' ou 'addon' ...    Adicione a mount ou addon por comando via mysql no phpmyadmin : INSERT INTO `z_shop_offer` (`points`, `itemid1`, `count1`,

Whiterose   o meu fico perfeito mais falta uma if para checar se o play ja compro a mount /addon e não compra 2 vez  quando o play recebe a roupa ele fica com a storage da mesma value 0

Posted Images

Parabéns Summ, seu sistema/script está muito bom, irá ajudar à muitos!
Ele foi aprovado, movido para a seção correta e você ganhou 1 REP+ pela contribuição.
Esperamos mais conteúdos como este, até mais! :palmas:


O tópico foi movido para a área correta, preste mais atenção da próxima vez!
Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:
De: "OTServAprovação de Tópicos de Conteúdos"
Para: "OTServScriptingSistemas e MODs"
Link para o post
Compartilhar em outros sites

Parabéns eu estava precisando disso :P

 

Summ, você tirou o shopsistem.php :(

 

 

Desculpa minha ignorância mais serve para 10.53?

Editado por neykos (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Adicionado Shopsystem.php dnv ao tópico,o antigo tinha sido retirado pois o código de mount/addon era do luciano, então eu mesmo fui e fiz o meu  -.-

 

@neykos Na verdade eu já fiz visando o 10.53 e tfs 1.x .

Editado por Summ (veja o histórico de edições)

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

Adicionado Shopsystem.php dnv ao tópico,o antigo tinha sido retirado pois o código de mount/addon era do luciano, então eu mesmo fui e fiz o meu -.-

@neykos Na verdade eu já fiz visando o 10.53 e tfs 1.x .

Summ tem um bug no sistema de shopping.

Quando vou adicionar um addon ou mount não aparece a aba deles e consequentemente os itens também não aparece.

Além disso quando eu adiciono um addon ou mount fica dizendo que não tem capacidade.

e aparece erro no shop.lua

Lua Script Error: [GlobalEvent Interface] 
data/globalevents/scripts/others/shop.lua:onThink
luaDoCreateItemEx(). Item not found
stack traceback:
	[C]: in function 'doCreateItemEx'
	data/globalevents/scripts/others/shop.lua:87: in function <data/globalevents/scripts/others/shop.lua:7>

Lua Script Error: [GlobalEvent Interface] 
data/globalevents/scripts/others/shop.lua:onThink
luaPlayerAddItemEx(). Item not found
stack traceback:
	[C]: in function 'addItemEx'
	data/compat.lua:279: in function 'doPlayerAddItemEx'
	data/globalevents/scripts/others/shop.lua:88: in function <data/globalevents/scripts/others/shop.lua:7>
Editado por neykos (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

 

Summ tem um bug no sistema de shopping.

Quando vou adicionar um addon ou mount não aparece a aba deles e consequentemente os itens também não aparece.

Além disso quando eu adiciono um addon ou mount fica dizendo que não tem capacidade.

e aparece erro no shop.lua

Lua Script Error: [GlobalEvent Interface] 
data/globalevents/scripts/others/shop.lua:onThink
luaDoCreateItemEx(). Item not found
stack traceback:
	[C]: in function 'doCreateItemEx'
	data/globalevents/scripts/others/shop.lua:87: in function <data/globalevents/scripts/others/shop.lua:7>

Lua Script Error: [GlobalEvent Interface] 
data/globalevents/scripts/others/shop.lua:onThink
luaPlayerAddItemEx(). Item not found
stack traceback:
	[C]: in function 'addItemEx'
	data/compat.lua:279: in function 'doPlayerAddItemEx'
	data/globalevents/scripts/others/shop.lua:88: in function <data/globalevents/scripts/others/shop.lua:7>

 

Em relaçao a eles nao aparecerem no shop, va em phpmyadmin > z_shop_offer e procure pelas suas montarias, em seguida troque o offer_type de: mounts para : mount .

Link para o post
Compartilhar em outros sites

Em relaçao a eles nao aparecerem no shop, va em phpmyadmin > z_shop_offer e procure pelas suas montarias, em seguida troque o offer_type de: mounts para : mount .

 

 

E referente ao erro que aparece quando vou comprar uma mount ou addon dizendo que o personagem não tem capacidade para receber ambos.

já fiz o teste colocando 1000 de cap. e aparece da mesma forma esse erro abaixo no servidor.

Lua Script Error: [GlobalEvent Interface] 
data/globalevents/scripts/others/shop.lua:onThink
luaDoCreateItemEx(). Item not found
stack traceback:
	[C]: in function 'doCreateItemEx'
	data/globalevents/scripts/others/shop.lua:87: in function <data/globalevents/scripts/others/shop.lua:7>

Lua Script Error: [GlobalEvent Interface] 
data/globalevents/scripts/others/shop.lua:onThink
luaPlayerAddItemEx(). Item not found
stack traceback:
	[C]: in function 'addItemEx'
	data/compat.lua:279: in function 'doPlayerAddItemEx'
	data/globalevents/scripts/others/shop.lua:88: in function <data/globalevents/scripts/others/shop.lua:7>
Link para o post
Compartilhar em outros sites

Vou pegar o meu shop.lua. Perae.

 

shop.lua

-- ### 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

Editado por EnzzoCaaue (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Vou pegar o meu shop.lua. Perae.

 

shop.lua

-- ### 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

 

 

Já cheguei a colocar essa parte no script no shop. lua

mais não tive sucesso =\

-- 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 --
Link para o post
Compartilhar em outros sites

#Detalhe sou o SUMM.

 

Substitui esse seu shop.lua completamente por esse aqui :

-- ### 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 storage = tostring(result.getDataString(result_plr, "param7"))
                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 ArenaTibia Shop.')
						setPlayerStorageValue(cid,storage+555884621212,1)
                        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 ArenaTibia 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 ..' ArenaTibia 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
Editado por fywell (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

 

#Detalhe sou o SUMM.

 

Substitui esse seu shop.lua completamente por esse aqui :

-- ### 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 storage = tostring(result.getDataString(result_plr, "param7"))
                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 ArenaTibia Shop.')
						setPlayerStorageValue(cid,storage+555884621212,1)
                        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 ArenaTibia 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 ..' ArenaTibia 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

 

Esse é o mesmo que veio no servidor do mitsuig, que é o do meu servidor.

O problema é que quando adiciono o addon ou mount no site e compro ele

fica dando aquela mensagem que o char não tem capacidade ou slot na backpack.

 

Eu coloco o número da storage certinho no shop vamos supor quero adicionar o

addon  no item id eu coloco 28416 e na quantidade de itens é 1 correto?

 

mesmo se eu colocar para entregar o addon ou mount pela 

<event type="login" name="ShopMountAddon" script="addonmount.lua"/>

 

e ao tentar entregar o item  aparece o seguinte erro na distro referente ao shop.lua

Lua Script Error: [GlobalEvent Interface] 
data/globalevents/scripts/others/shop.lua:onThink
luaDoCreateItemEx(). Item not found
stack traceback:
	[C]: in function 'doCreateItemEx'
	data/globalevents/scripts/others/shop.lua:87: in function <data/globalevents/scripts/others/shop.lua:7>

Lua Script Error: [GlobalEvent Interface] 
data/globalevents/scripts/others/shop.lua:onThink
luaPlayerAddItemEx(). Item not found
stack traceback:
	[C]: in function 'addItemEx'
	data/compat.lua:279: in function 'doPlayerAddItemEx'
	data/globalevents/scripts/others/shop.lua:88: in function <data/globalevents/scripts/others/shop.lua:7>
Editado por neykos (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Você está esquecendo de mudar o offer_type pra 'mount' ou 'addon' ... 

 

Adicione a mount ou addon por comando via mysql no phpmyadmin :

INSERT INTO `z_shop_offer` (`points`, `itemid1`, `count1`, `offer_type`, `offer_description`, `offer_name`) VALUES (10 , 87654, 1, 'mount', 'teste', 'Mount teste')

points = pontos que vai custar;

itemid1 = storage do addon/mount;

count1 = 1 <-- deixe 1

offer_type = mount/addon <-- de acordo com que tu quer;

offer_description = descrição do addon/mount;

offer_name = nome da mount/addon;

 

Lembre-se de usar o shop.lua acima que eu postei...

Link para o post
Compartilhar em outros sites

Você está esquecendo de mudar o offer_type pra 'mount' ou 'addon' ... 

 

Adicione a mount ou addon por comando via mysql no phpmyadmin :

INSERT INTO `z_shop_offer` (`points`, `itemid1`, `count1`, `offer_type`, `offer_description`, `offer_name`) VALUES (10 , 87654, 1, 'mount', 'teste', 'Mount teste')

points = pontos que vai custar;

itemid1 = storage do addon/mount;

count1 = 1 <-- deixe 1

offer_type = mount/addon <-- de acordo com que tu quer;

offer_description = descrição do addon/mount;

offer_name = nome da mount/addon;

 

Lembre-se de usar o shop.lua acima que eu postei...

 

 

Summ nao esqueci de mudar, para mount ou addon o offer type, simplesmente o shopsystem.php que postou, quando eu altero de item pra addons ou mounts no offer type, ele não aparece aquela aba do shopping lá em cima de addons e mount, fica apenas aquela aba dos itens... e as mount ou addon que adicionei não aparecem, por conta do shopsystem.php não estar criando a aba das mount e nem dos addons, por isso to colocando como offer type como item.

 

 

 

Achei o problema mais não sei concerta, quando vou colocar tipo do item, aparece items, mounts, e addons

por conta desse "s" no final não esta aparecendo na aba do shop as mounts e nem os addons. mais vou tentar concertar achar o stogare no shopsystem que está mount apenas e trocar por mounts

Editado por neykos (veja o histórico de edições)
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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por RankerS
      Hoje estarei disponibilizando um outfit criado por mim para vocês do TK .
      sakuraskin_1915.obd
    • Por Sphynx1
      Olá comunidade.
      Eu criei um script a madrugada passada para tentar ajudar um amigo que usa 'OTX' porém dá um erro bizarro no 'lib/compat.lua' e a função 'doAddPlayerOutfit' retorna valor 'NIL'. Eu não sei como resolver, mas está funcionando perfeitamente no 'TFS 0.4'. Espero que alguém em algum lugar do tempoespaço possa se beneficiar desse script já que os que encontrei estão todos muito feios e confusos.

      1. Acesse a pasta 'data/talkactions/scripts' e crie um novo 'arquivo.lua' chamado 'addonpresent.lua', dentro adicione o conteúdo abaixo.
      function onSay(cid, words, param, channel) local maleOutfits = {["citizen"] = {128}, ["mage"] = {130}, ["knight"] = {131}, ["nobleman"] = {132}, ["summoner"] = {133}, ["warrior"] = {134} } local femaleOutfits = {["citizen"] = {136}, ["mage"] = {138}, ["knight"] = {139}, ["nobleman"] = {140}, ["summoner"] = {141}, ["warrior"] = {142} } local mensagens = {"Você recebeu o seu addon e consumiu o item bônus para isto.", "Verifique o que você digitou e tente novamente, parametros inválidos.", "Você não possui o item necessário para receber um addon.", "Certifique-se que você digitou o nome do addon corretamente e tente mais uma vez."} local efeitinga = {[1] = {name = CONST_ME_POFF}, [2] = {name = CONST_ME_CAKE}, [3] = {name = CONST_ME_HEARTS}, [4] = {name = CONST_ME_GIFT_WRAPS} -- efeitos que seram exibidos } local param = string.lower(param) if not isPremium(cid) then doCreatureSay(cid, "Você não possui Premium Account, portanto não poderá utilizar o item de addon.", TALKTYPE_ORANGE_1) -- MSG que será exibida p/ o nao premium return true end if getPlayerItemCount(cid, 6497) > 0 then -- 6497 é o ID do item que será usado por você, se for maior que 0 a quanidade na sua bag então if param ~= "" and maleOutfits[param] and femaleOutfits[param] then doPlayerRemoveItem(cid, 6497, 1) -- o item 6497 será consumido doCreatureSay(cid, mensagens[1], TALKTYPE_ORANGE_1) for k, v in pairs(efeitinga) do doSendMagicEffect(getCreaturePosition(cid), v.name) end if getPlayerSex(cid) == 0 then doPlayerAddOutfit(cid, femaleOutfits[param][1], 3) elseif getPlayerSex(cid) == 1 then doPlayerAddOutfit(cid, maleOutfits[param][1], 3) end else doCreatureSay(cid, mensagens[2], TALKTYPE_ORANGE_1) end else doCreatureSay(cid, mensagens[3], TALKTYPE_ORANGE_1) end return true end  
      2. Regresse até 'data/talkactions' e abra o arquivo 'talkactions.xml', dentro adicione o conteúdo abaixo.
      <talkaction words="!addon" event="script" value="addonpresent.lua"/>  
       
    • Por Bruxo Ots
      Fala queridos, estarei compartilhando o npc de addon que ja é bem antigo, porém não achei em local nenhum atualizado, esse esta lindo de bonito, acredito que seja destinado a servidores baiak ou qualquer outro tipo de server.
      Ambos os NPC'S estão por gold, e as storages são em sequencia pra facilitar a vida.
       
      Os codigos estão em spoiler pra não pesar, mas caso queiram se adiantar no fim do post tem o link do github.
      Imagem meramente Ilustrativa:
       
      Script Do addon:
       
      Montarias
       
       
       
      Sempre que atualizar os addons e mounts no global estarei adicionando aos NPC'S.
       
       
      GITHUB
       
       
           Creditos
      Comedinha (scripts das montarias) Zbizu (acredito que tenha atualizado para 1.1) E ao criador do npc Varkhal, realmente não faço ideia de quem seja.  
       
       
       
       
    • Por Digoshow
      Como eu faco o addon doll adicionar addons em free account, o meu addon doll ao ser usado por um free account diz, que so premium account pode usar, quero que fique free, para todos poderem usar addons.
      Obrigado, REP+ .



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo