caotic 393 Postado Dezembro 9, 2012 Share Postado Dezembro 9, 2012 Ola galerinha do xtibiana. Vocês lembram do shopping system beta? Bem o shopping system beta foi um sistema criado por min a um tempinho. O link da versão beta é: http://www.xtibia.co...demo-by-caotic/ Os players podiam vender e comprar itens de forma rápida e pratica só que na versão demo ele tinha limitações então resolvi fazer a versão 1.0 com mais funções. Ele funciona da seguinte maneira: O player vende seu item no shopping depois outro player resolve ver o shopping e acaba comprando o item. Quando o player vendedor estiver online ele recebera a mensagem dizendo que o seu item foi vendido e ele recebera o money da compra. Na versão 1.0 do shopping system foi adicionado: Lista dos itens no shopping ordenada pelo preço dos itens totalmente funcional e sem bugs.(Colocado) Limitação que apenas pode ser colocado 1 item com o mesmo id(Limitação RETIRADA) Frases de efeito(Colocado) Varios bugs retirados(Retirado) Vamos a instalação. Primeiro execute estes comandos na sua database: CREATE TABLE "shop" ( "item" INT NOT NULL, "price" INT NOT NULL, "players" INT NOT NULL ); ALTER TABLE `players` ADD `shop` INT(15) NOT NULL DEFAULT 0 Agora va em lib e crie um arquivo lua chamado shop e coloque isto: function doPlayerAddItemInShop(cid, itemid, price) db.executeQuery("INSERT INTO `shop` VALUES (".. itemid ..", ".. price ..", ".. getPlayerGUID(cid) ..")") return true end function getItemPriceInShop(itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `item` = ".. itemid ..";") return shop:getDataInt("price") end function getItemPlayerInShop(itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `item` = ".. itemid ..";") return shop:getDataInt("players") end function getExistItemInShop(itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `item` = ".. itemid ..";") if shop:getID() ~= -1 then return true end return nil end function getExistItemPlayerInShop(player, itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `players` = ".. player .." and `item` = ".. itemid ..";") if shop:getID() ~= -1 then return true end return nil end function doPlayerBuyItemInShop(cid, itemid, player) doPlayerAddItem(cid, itemid) doPlayerRemoveMoney(cid, getItemPriceInShop(itemid)) db.executeQuery("UPDATE `players` SET `shop` = "..getItemPriceInShop(itemid).." WHERE `id` = "..getItemPlayerInShop(itemid)) db.executeQuery("DELETE FROM `shop` WHERE `players` = ".. player .." and `item` = ".. itemid ..";") end function getMoneyGainInShop(cid) local money = db.getResult("SELECT `shop` FROM `players` WHERE `id` = "..getPlayerGUID(cid)) return money:getDataInt("shop") end function setMoneyGainInShop(cid, money) db.executeQuery("UPDATE `players` SET `shop` = "..money.." WHERE `id` = "..getPlayerGUID(cid)) end function doShowListShop(cid) local item = db.getResult("SELECT * FROM `shop` WHERE `item` ORDER BY `price`") str = "Itens a venda no shopping:\n\n" if item:getID() == -1 then doShowTextDialog(cid, 1387, "Não ha itens disponiveis no shopping\n Não existe itens no shopping!") return true end while true do local list = item:getDataInt("item") local players = item:getDataInt("players") local price = item:getDataInt("price") local shops = "Itens em Shopping" local list = string.upper(getItemNameById(list)) local players = getPlayerNameByGUID(players) str = str .. list .. " -("..players..")- Preço ("..price..")]\n\n" if not item:next() then doShowTextDialog(cid, 1397, str) break end end end Agora vá em talkactions/script e crie um arquivo lua chamado list e coloque este codigo: function onSay(cid, words, param, channel) doShowListShop(cid) return true end Agora vá em talkactions denovo crie um arquivo lua chamado de shop e coloque isto: function onSay(cid, words, param, channel) if param == " " or param == "" or not param then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o id do item") end local t = string.explode(param, ",") if not t[1] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o id do item") end if not t[2] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o preço do item") end if(isNumeric(t[1])) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do item") end if not (isNumeric(t[2])) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque O PREÇO DO ITEM") end if not getItemIdByName(t[1], false) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este item "..t[1].." não existe") end local item = getItemIdByName(t[1]) local price = t[2] if getPlayerItemCount(cid, item) < 1 then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem "..t[1].."") end if getExistItemPlayerInShop(getPlayerGUID(cid), item) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já pos este item no shop") end doPlayerRemoveItem(cid, item, 1) doPlayerAddItemInShop(cid, item, price) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você colocou no shopping o seu item "..t[1].."") return true end Agora continue em talkactions e crie um arquivo lua chamado de comprar e coloque isto: function onSay(cid, words, param, channel) if param == " " or param == "" or not param or isNumeric(param) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do item dizendo /compra(nome do item,nome do player)") end local t = string.explode(param, ",") if not getItemIdByName(t[1], false) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este item "..t[1].." não existe") end local itemid = getItemIdByName(t[1]) local player = getPlayerGUIDByName(t[2]) if not getExistItemInShop(itemid) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este item não existe no shopping") end if t[2] == " " or t[2] == "" or isNumeric(t[2]) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do vendendor dizendo /compra(nome do item,nome do player)") end if not doPlayerRemoveMoney(cid, getItemPriceInShop(itemid)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem "..getItemPriceInShop(itemid).." para comprar "..t[1].." do shopping") end if not player then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Não existe nenhum item com o nome deste player.") end doPlayerBuyItemInShop(cid, itemid, player) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens você comprou "..t[1].."") return true end Agora coloque estas tags em talkactions.xml: <talkaction log="yes" words="/shop" event="script" value="shop.lua"/> <talkaction log="yes" words="/compra" event="script" value="comprar.lua"/> <talkaction log="yes" words="/list" event="script" value="list.lua"/> Agora vá em creaturescripts/scripts e crie um arquivo lua chamado de shop: function onThink(cid, interval) if getMoneyGainInShop(cid) > 0 then doPlayerAddMoney(cid, getMoneyGainInShop(cid)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Seu itens foi vendidos você recebeu "..getMoneyGainInShop(cid).." money") setMoneyGainInShop(cid, 0) return true end return true end Registre o evento colocando em login.lua de creaturescripts e coloque isto antes do ultimo return: registerCreatureEvent(cid, "shop") Agora vá em creaturescrips.xml e coloque esta tag: <event type="think" name="shop" event="script" value="shop.lua"/> E prontinho sistema instalado Comandos /shop(nome do item,preço) --- Coloque o item no shop/compra(nome do item,nome do vendendor) --- Compra um item do shop/list --- Monstra a lista dos itens ordenadas por preço a venda do shopping Link para o comentário https://xtibia.com/forum/topic/200941-shopping-system-by-caotic-10/ Compartilhar em outros sites More sharing options...
Yan Oliveira 214 Postado Dezembro 9, 2012 Share Postado Dezembro 9, 2012 Parabéns Caotic Gostei da Atualização, sempre inovando, Rep+ Link para o comentário https://xtibia.com/forum/topic/200941-shopping-system-by-caotic-10/#findComment-1407580 Compartilhar em outros sites More sharing options...
Roksas 846 Postado Dezembro 9, 2012 Share Postado Dezembro 9, 2012 Parabéns Fessor, usahsahysa. Tu é um exemplo, na moral! Parabéns, que deus te abençoe para que vs tenha mais e mais ideias ) Link para o comentário https://xtibia.com/forum/topic/200941-shopping-system-by-caotic-10/#findComment-1407588 Compartilhar em outros sites More sharing options...
DinoAdmin 57 Postado Dezembro 9, 2012 Share Postado Dezembro 9, 2012 Caotic Gostei Muito do seu sistema de Shop, pena que eu nao poderei testar ainda pq meu pc esta queimado, mais eu irei testar assim que poder Obrigado Por compartilhar conosco seu sistema de shop. em breve eu compartilharei o meu sistema de TM (assim que meu pc voltar) REP+ Caotic (Assim que desbloquear aki =D) Link para o comentário https://xtibia.com/forum/topic/200941-shopping-system-by-caotic-10/#findComment-1407624 Compartilhar em outros sites More sharing options...
caotic 393 Postado Dezembro 10, 2012 Autor Share Postado Dezembro 10, 2012 Obrigados a todos. Enfim Só para lembrar para executar os comandos da database e só ir no sql editor e colocar estes comandos do tópico. Link para o comentário https://xtibia.com/forum/topic/200941-shopping-system-by-caotic-10/#findComment-1408338 Compartilhar em outros sites More sharing options...
AlexandreKG 134 Postado Dezembro 10, 2012 Share Postado Dezembro 10, 2012 Ótimo sistema,otimo criador.Parabéns caotic,por mais um script excelente seu. Link para o comentário https://xtibia.com/forum/topic/200941-shopping-system-by-caotic-10/#findComment-1408344 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Dezembro 10, 2012 Share Postado Dezembro 10, 2012 quem está testando o sistema em 8.6? Link para o comentário https://xtibia.com/forum/topic/200941-shopping-system-by-caotic-10/#findComment-1408771 Compartilhar em outros sites More sharing options...
Yan Oliveira 214 Postado Dezembro 13, 2012 Share Postado Dezembro 13, 2012 quem está testando o sistema em 8.6? Pelo que Caotic me disse, ele pega a partir do 8.2. Link para o comentário https://xtibia.com/forum/topic/200941-shopping-system-by-caotic-10/#findComment-1411680 Compartilhar em outros sites More sharing options...
caotic 393 Postado Dezembro 14, 2012 Autor Share Postado Dezembro 14, 2012 quem está testando o sistema em 8.6? Pelo que Caotic me disse, ele pega a partir do 8.2. Pelo que eu disse? Bem eu testei em 9.1. Acredito eu que vai pegar em 8.6 Link para o comentário https://xtibia.com/forum/topic/200941-shopping-system-by-caotic-10/#findComment-1412884 Compartilhar em outros sites More sharing options...
jackless1 0 Postado Janeiro 23, 2023 Share Postado Janeiro 23, 2023 esta dando esse erro quando tento adicionar um item no shop [Error - TalkAction Interface] 2023-01-23 05:18:10 - data/talkactions/scripts/shop.lua:onSay 2023-01-23 05:18:10 - Description: 2023-01-23 05:18:10 - data/talkactions/scripts/shop.lua:2: attempt to call global 'isNumeric' (a nil value) 2023-01-23 05:18:10 - stack traceback: 2023-01-23 05:18:10 - data/talkactions/scripts/shop.lua:2: in function <data/talkactions/scripts/shop.lua:1> Link para o comentário https://xtibia.com/forum/topic/200941-shopping-system-by-caotic-10/#findComment-1771943 Compartilhar em outros sites More sharing options...
Posts Recomendados