Ótimo,
adorei. Vou ver se adiciono no meu Ot.
++REP
Por MatheusGlad, 27 de mai. de 2010 em Actions e Talkactions
info
Grupo: Artesão
Registrado: 13/05/10
Posts: 114
Reputação: +11

Ótimo,
adorei. Vou ver se adiciono no meu Ot.
++REP
info
Grupo: Visconde
Registrado: 03/02/09
Posts: 361
Reputação: +200
Char no Tibia: Fearless Man

Isso ae mano. Tabelas encurtam muito o script. Hoje vamo ve se da pra fazer a versão final né ( se eu tiver tempo ).
flw
info
Grupo: Visconde
Registrado: 20/08/06
Posts: 250
Reputação: +146

Você tinha me passado no msn, agora dei uma olhada no que poderia estar errado.
Precisa verificar se existe os parâmetros.
if param == "" or b[1] == "" or b[2] == "" then doPlayerSendCancel(cid,"Command param required. Use /buyitens item name, quantity") return TRUE end
Aconselho a usar variáveis.
local item = getItemIdByName(b[1], false) local qnt = tonumber(b[2])
Colocar um "false" (getItemIdByName(b[1], false)) pra não ficar mostrando o erro quando alguém digita um item que não existe.
Poderia usar um "else" caso o a[getItemIdByName(b[1])] não exista.
Impedir que o player compre caso não tenha cap ou slot também seria bom.
Uma sugestão seria criar um parâmetro pra exibir os items da lista.
Exemplo: /buyitens info
Iria aparecer algo como:
name price max
name price max
name price max
Editado Maio 28 por kydrai
Gostei do sistema, interessante.
Ajuda muito em servidores de jogo rápido, mas, na minha opinião, destrói o RPG do servidor.
Sobre a programação, bem limpa e bem desenvolvida.
Digno de um bom programador. ![]()
info
Grupo: Campones
Registrado: 29/04/07
Posts: 57
Reputação: +1
Char no Tibia: Careta Feia

Perfeito! testei e funciona muito bem para items menores, que são sempre pedidos, so não gosto de por MPA esse tipo...
info
Grupo: Campones
Registrado: 03/05/10
Posts: 19
Reputação: +1
Char no Tibia: Lord Tyz

Gostei muito, vou ver se ponho no meu ot.
Esse script e bom para aqueles items tipo, shovel, pick, rope etc.
Podemos tar num sitio em que precisamos de um desses items e nao tem nenhum NPC que venda por perto.
Abraço ;D
info
Grupo: Conde
Registrado: 09/09/09
Posts: 528
Reputação: +424
Char no Tibia: Emekalo Makalo
Creditos: Apocarai e MatheusMkalo
Bom o script funciona assim, des de que tenha um tal item no script voce pode compra-lo por um tal preço e se for agrupavel voce pode escolher a quantidade.
Como usar:
Onde esta 50 é a quantidade de gold nugget que voce ira comprar.
Bom, vá na pasta data/talkactions/scripts e crie um arquivo.lua chamado buyitens e bote este script dentro:
------Script by MatheusMkalo and apocarai------- ------Exclusivo para o Xtibia-------- function onSay(cid, words, param) local a = { [2472] = {price = 160000, countmax = 1}, [2157] = {price = 13000, countmax = 100}, [2466] = {price = 60000, countmax = 1}, [2494] = {price = 150000, countmax = 1} } local b = string.explode(param, ",") if a[getItemIdByName(b[1])] then if isNumber(b[2]) then if tonumber(b[2]) > 0 then if tonumber(b[2]) <= a[getItemIdByName(b[1])].countmax then if getPlayerMoney(cid) >= (a[getItemIdByName(b[1])].price*tonumber(b[2])) then doPlayerRemoveMoney(cid,(a[getItemIdByName(b[1])].price*tonumber(b[2]))) doPlayerAddItem(cid, getItemIdByName(b[1]),b[2]) doPlayerSendTextMessage(cid,25,"You have bought " .. tonumber(b[2]) .. " " .. getItemNameById(getItemIdByName(b[1])) .. " for " .. (a[getItemIdByName(b[1])].price*tonumber(b[2])) .. " gold pieces.") else doPlayerSendCancel(cid,"You have not enough money.") end else doPlayerSendCancel(cid,"You have informed a quantity higher than count max.") end else doPlayerSendCancel(cid,"You have informed a quantity lower than 0") end else doPlayerSendCancel(cid,"Quantity must be a number.") end end return TRUE endDepois salve-o e va em talkactions.xml e bote a seguinte tag:
Adicionando mais itens:
Para isso voce tera que botar mais uma linha nas tables. assim olha
Normal:
local a = { [2472] = {price = 160000, countmax = 1}, [2157] = {price = 13000, countmax = 100}, [2466] = {price = 60000, countmax = 1}, [2494] = {price = 150000, countmax = 1} }Item adicionado:
Legendas:
Vermelho: O id do item que ira poder comprar entre colchetes "[]"
Rosa: O preço por cada unidade de item que ira comprar
Azul: A quantidade maxima que voce podera comprar (nao pode ultrapassar de 100)
AVISO IMPORTANTE!
Se voce botar quantidade maior que 1 em um item nao agrupavel, ou seja, nao da para juntar em 100, a pessoa ira tentar comprar 2 itens, ira pagar por 2 itens mais so recebera 1 item.
BETA VERSION!
Sujeito a mudanças...
Achou bugs? Duvidas? Sugestoes? Aceitamos aqui ou por PM.
NAO POSTE EM OUTRO FORUM, POIS SERA CONSIDERADO RIPPING
Editado Maio 28 por MatheusMkalo