Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

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
[/code] [b]talkactions/talkactions.xml[/b]
[code]<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' }
}[/code] 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. [b]♣ Variáveis[/b] [color=#800080][b]id[/b][/color] - é onde você coloca o id do item [color=#800080][b]sell [/b][/color]- 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) [color=#800080][b]buy [/b][/color]- 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á. [b]♣ Exemplos[/b] Assim, digamos que desejo acrescentar um mastermind shield onde o player pode vender por 60k e comprar por 120k, adicionarei:
[code]["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' },
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' }
}[/code]

[color=#ff0000][size=5][b]Atenção![/b][/size][/color]

[color=#ff0000]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.[/color]

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.

[size=5][b]

[size=6][color=#006400]Explicando as talkactions[/color][/size]

[/b][/size]

[b]♣ Comprando[/b]

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

O player comprará uma boh (item sugestivo) item por: [color=#800080][b]!buy boots of haste[/b][/color], caso não tenha grana, não vai conseguir, caso tenha comprará.

[b]♣ Vendendo[/b]

O mesmo quando ele for vender, ele falará: [color=#800080][b]!sell boots of haste[/b][/color], caso não tenha o item, o script negará, caso tenha o item some e o dinheiro aparece (:

[center]9Uq46.jpg[/center]

[center]z0tIO.jpg[/center]

[b]♣ Lista de items[/b]

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

Diga [b][color=#800080]!buy[/color][/b], ou [b][color=#800080]!buy[/color] [color=#800080]list [/color][/b]ou [b][color=#800080]!buy[/color] [color=#800080]lista[/color][/b] para ver todos os items

[center]IVxaI.jpg[/center]

[i]O mesmo com os items que podem ser vendidos:[/i]

[b][color=#800080]!sell[/color][/b], [b][color=#800080]!sell list[/color][/b] ou [b][color=#800080]!sell lista[/color][/b]

[center]DSDG8.jpg[/center]

[size=7][color=#006400]Versão 2[/color][/size]

Deixo aberto sugestões para a versão 2

E claro, caso haja, correção de bugs.

__________________

[b]♣ Créditos[/b]

Renato - Desenvolvimento

skydangerous - Ideia

lzE5D.jpg
Então, meu config ficará desta forma:
  • Respostas 23
  • Visualizações 5.4k
  • Created
  • Última resposta

Top Posters In This Topic

Postado
  • Autor

thanks por humilhar meu shop system viu :mellow:.

muito bom o shop system, bem inovador.

Parabénss, Reputado + !

Sem recentimentos, ahsueaheaushesu

Só que quando vi seu script, achei muito boa a ideia e tava com vontade de programar...

Valeu (:

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo