Ir para conteúdo

[Talkaction] Shop System [ !sell - !buy ] Fácil Configuração!


Meunomeefeiozik

Posts Recomendados

Sim, tive a ideia ao ver o shop system do skyd, mas não peguei nada do script dele.

 

 

Instalando

 

talkactions/scripts/shop.lua

 

 

local config = {

["demon shield"] = {id = 2520, sell = 'yes 32000', buy = 'yes 70000' },

["magic plate armor"] = {id = 2472, sell = 'yes 120000', buy = 'no' },

["boots of haste"] = {id = 2195, sell = 'yes 30000', buy = 'no' }

}

 

function upperfirst(first, rest)

return first:upper()..rest:lower()

end

 

function onSay(cid, words, param, channel)

 

if (param == nil or param == '' or param == 'lista' or param == 'list') then

if (words == "!sell" or words == "/sell") then

str = "Showing items that you can sell:\n\n"

else

str = "Showing items that you can buy:\n\n"

end

for item, vars in pairs(config) do

if (words == "!sell" or words == "/sell") then

expl = string.explode(vars.sell, " ")

else

expl = string.explode(vars.buy, " ")

end

item = item:gsub("(%a)([%w_']*)", upperfirst)

if (expl[1] == 'no') then

str = str

else

str = str .. item.. " - " .. expl[2] .. " gps\n"

end

end

return doShowTextDialog(cid, 2160, str)

end

local item = config[param:lower()]

param = param:lower()

if (item) then

local sell = string.explode(item.sell, " ")

local buy = string.explode(item.buy, " ")

if (words == "!sell" or words == "/sell") then

if (sell[1] == "yes") then

if (doPlayerRemoveItem(cid, item.id, 1)) then

doPlayerAddMoney(cid, sell[2])

doSendMagicEffect(getPlayerPosition(cid), 30)

return doPlayerSendTextMessage(cid,29,"Here are, you sold "..param.." for "..sell[2].." gold coins.")

else

doSendMagicEffect(getPlayerPosition(cid), 2)

return doPlayerSendTextMessage(cid,29,"You don't have anything "..param.." to sell.")

end

else

doSendMagicEffect(getPlayerPosition(cid), 2)

return doPlayerSendTextMessage(cid,29,"Sorry, "..param.." cannot be sold.")

end

else

if (buy[1] == "yes") then

if (doPlayerRemoveMoney(cid, buy[2])) then

doPlayerAddItem(cid, item.id)

doSendMagicEffect(getPlayerPosition(cid), 28)

return doPlayerSendTextMessage(cid,29,"Here are, you bought "..param.." for "..buy[2].." gold coins.")

else

doSendMagicEffect(getPlayerPosition(cid), 2)

return doPlayerSendTextMessage(cid,29,"You don't have enough money.")

end

else

doSendMagicEffect(getPlayerPosition(cid), 2)

return doPlayerSendTextMessage(cid,29,"Sorry, "..param.." cannot be bought.")

end

end

 

else

doSendMagicEffect(getPlayerPosition(cid), 2)

if (words == "!sell") then

return doPlayerSendTextMessage(cid,29,"Sorry, this item cannot be sold or it does't exist.")

else

return doPlayerSendTextMessage(cid,29,"Sorry, this item cannot be bought or it does't exist.")

end

end

end

 

talkactions/talkactions.xml

 

<talkaction words="!sell;/sell;!buy;/buy" event="script" value="shop.lua"/>

 

 

Adicionando novos itens

 

 

 

♣ Config

Observem no começo do código estas linhas:

 

 

local config = {

["demon shield"] = {id = 2520, sell = 'yes 32000', buy = 'yes 70000' },

["magic plate armor"] = {id = 2472, sell = 'yes 120000', buy = 'yes 60000' },

["boots of haste"] = {id = 2195, sell = 'yes 30000', buy = 'no' }

}

 

Seguindo uma ordem óbvia, adicionem abaixo do boots of haste e antes do '}' que fecha o config.

assim para adicionar sigam o modelo ["nome do item"], repectivamente de suas variáveis.

 

♣ Variáveis

id - é onde você coloca o id do item

sell - você precisa colocar se o item pode ser vendido por "yes" ou "no", caso for yes de um espaço (se não der espaço não funciona) e bote o valor em gold coins (não é k)

buy - segue a ordem igual ao sell porem é se o item pode ser comprado pelo !buy ou não, e o preço que o player pagará.

 

♣ Exemplos

Assim, digamos que desejo acrescentar um mastermind shield onde o player pode vender por 60k e comprar por 120k, adicionarei:

["mastermind shield"] = {id = 2514, sell = 'yes 60000', buy = 'yes 120000' },

 

Em seguida quero adicionar uma soft boots que pode ser vendida por 300k, mas NÃO PODE ser comprada. Colocarei:

["soft boots"] = {id = 6132, sell = 'yes 300000, buy = 'no' },

 

Então, meu config ficará desta forma:

 

local config = {

["demon shield"] = {id = 2520, sell = 'yes 32000', buy = 'yes 70000' },

["magic plate armor"] = {id = 2472, sell = 'yes 120000', buy = 'no' },

["boots of haste"] = {id = 2195, sell = 'yes 30000', buy = 'yes 60000' },

["mastermind shield"] = {id = 2514, sell = 'yes 60000', buy = 'yes 120000' },

["soft boots"] = {id = 6132, sell = 'yes 300000', buy = 'no' }

}

 

Atenção!

Reparem que em todas as linhas finalizam-se com }, mas na última há ausência da vírgula, isto ocorre por que não pode ter vírgula no último, não sei ao certo se dará erro, não cheguei a testar, mas em muitas linguagens de programação ocorre um erro. Então é melhor ficar atento.

 

Creio que passei as devidas instruções corretamente, e não é nenhum bixo de sete cabeças... qualquer um que tenha uma mentalidade normal conseguirá configurar.

 

 

 

Explicando as talkactions

 

 

 

♣ Comprando

Bom, agora que já adicionou todos os items, vou explicar como funciona:

O player comprará uma boh (item sugestivo) item por: !buy boots of haste, caso não tenha grana, não vai conseguir, caso tenha comprará.

 

♣ Vendendo

O mesmo quando ele for vender, ele falará: !sell boots of haste, caso não tenha o item, o script negará, caso tenha o item some e o dinheiro aparece (:

 

 

 

 

 

 

♣ Lista de items

Ohh, não sei quais items pode ser comprados, e também não sei quanto custa, e agora?

Diga !buy, ou !buy list ou !buy lista para ver todos os items

 

 

O mesmo com os items que podem ser vendidos:

!sell, !sell list ou !sell lista

 

Creditos

 

 

Renato

Editado por Meunomeefeiozik
Link para o comentário
Compartilhar em outros sites

OOOOOPS:

Sem querer divulgar nada mais esse script foi Postado Por Renato No

#####

a mais de 1 mês.

 

http://#####.com/for...l-configuracao/

 

se não foi você quem fez o script favor por os créditos do devido autor ou terei que reportalo.

até.

Editado por Subwat
Link para o comentário
Compartilhar em outros sites

  • 2 months later...
×
×
  • Criar Novo...