Ir para conteúdo
  • Cadastre-se

(Resolvido)Sistema de Preço quando da Look no Item (0.3.6)


Ir para solução Resolvido por Snowsz,

Posts Recomendados

Salve pessoal, estou aqui pra pedir uma ajuda! Já pesquisei bastante e ate agora nada.

 

Preciso de um sistema que ao dar look no item ele mostre o preço do mesmo. Caso seja um item agrupável (comida por exemplo) ele mostre na descrição ao dar look o valor total:

 

00:20 You see ham. Price: $ 10,00 gp
It weighs 3.00 oz.

00:21 You see 99 hams. Price: $ 990,00 gp
They weigh 297.00 oz.

 

Inicialmente imaginei alterar nas sources para criar um novo atributo que seria lido no items.xml. Não consegui informação nenhuma sobre como fazer...

 

Sendo assim, acho que um creatureevent script, com a função onLook, e uma tabela com o nome do item (ou id) e o preço por unidade, e uma função para checar o item qnd der look, ver se está na tabela, mostrar o preço e caso seja mais de 1 (agrupável), mostrar o preço*quantidade.

 

Obrigado a todos que possam contribuir!

 

Uso o TFS 0.3.6 pl1

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

Eu acho que esse tópico poderá te ajudar: http://www.tibiaking.com/forum/topic/25387-sistema-de-price-nos-loots/

Pois é, ja tinha visto, tentei de tudo para adequar, mas nao fui capaz de usar esse script... Obrigado mesmo assim, fico na expectativa de alguma outra ajuda...

Link para o post
Compartilhar em outros sites

Qual a base do seu pokemon?

Mande em spoiler o seu Look.lua

Link para o post
Compartilhar em outros sites

Qual a base do seu pokemon?

Mande em spoiler o seu Look.lua

 

Salve Macacaue, minha base não é pokemon, é tibia normal. :(

Link para o post
Compartilhar em outros sites
  • Solução

Testado em TFS 0.4 Protocolo: 8.60

 

Vá em creaturescripts/creaturescripts.xml e adicione essa tag:
 

<event type="look" name="priceLook" event="script" value="priceLook.lua"/>

Agora, em creaturescripts/scripts copie qualquer arquivo com extensão ".lua" e renomeie para "priceLook", ficando "priceLook.lua"(sem aspas) apague tudo que tem dentro e ponha isso:
 

function onLook(cid, thing, position, lookDistance)  

local items = {
[7618] = 100,
}
local coin = "R$"

    if isCreature(thing.uid) or thing.itemid <= 0 then
        return true
    end
    
    if items[thing.itemid] then
        local desc = getItemAttribute(thing.uid, "description") or ""
        local str = "You see "..(thing.type > 1 and thing.type or getItemInfo(thing.itemid).article).." "
        str = str..(thing.type > 1 and getItemInfo(thing.itemid).plural:gsub("%a", string.upper, 1) or getItemInfo(thing.itemid).name:gsub("%a", string.upper, 1))..".\n"..(desc ~= "" and desc..'\n' or "")
        str = str.."Price: "..coin..(items[thing.itemid]*thing.type).."."
        if getPlayerAccess(cid) >= 3 then
            str = str.."\nItemID: ["..thing.itemid.."]."
            str = str.."\nPosition: [X: "..position.x.."] [Y: "..position.y.." [Z: "..position.z.."]."
        end
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)
        return false
    end
return true
end

Agora, no login.lua, antes do último "return true", adicione isso:
 

registerCreatureEvent(cid, "priceLook")

Script instalado, configuração:

Onde tem:

local items = {
[7618] = 100,
}

Você pode adicionar/remover items, na parte dos colchetes "[]" você coloca o id do item, e onde fica o "=" você coloca o preço por unidade, ou seja, se você tem 1 health potion, ele vai valer 100, se você tem 2, ele vai valer 200, só copie a linha inteira e cole só edite o que foi dito, nunca esqueça de deixar a vírgula no final "[7618] = 100,".

 

Onde tem:
 

local coin = "R$"

Seria a moeda do seu servidor, você pode mudar para qualquer simbolo.

 

 

 

Print:
hNwE6rV.png

Editado por Snowsz (veja o histórico de edições)
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Testado em TFS 0.4 Protocolo: 8.60

 

Vá em creaturescripts/creaturescripts.xml e adicione essa tag:

 

<event type="look" name="priceLook" event="script" value="priceLook.lua"/>

Agora, em creaturescripts/scripts copie qualquer arquivo com extensão ".lua" e renomeie para "priceLook", ficando "priceLook.lua"(sem aspas) apague tudo que tem dentro e ponha isso:

 

function onLook(cid, thing, position, lookDistance)  

local items = {
[7618] = 100,
}
local coin = "R$"

    if isCreature(thing.uid) or thing.itemid <= 0 then
        return true
    end
    
    if items[thing.itemid] then
        local desc = getItemAttribute(thing.uid, "description") or ""
        local str = "You see "..(thing.type > 1 and thing.type or getItemInfo(thing.itemid).article).." "
        str = str..(thing.type > 1 and getItemInfo(thing.itemid).plural:gsub("%a", string.upper, 1) or getItemInfo(thing.itemid).name:gsub("%a", string.upper, 1))..".\n"..(desc ~= "" and desc..'\n' or "")
        str = str.."Price: "..coin..(items[thing.itemid]*thing.type).."."
        if getPlayerAccess(cid) >= 3 then
            str = str.."\nItemID: ["..thing.itemid.."]."
            str = str.."\nPosition: [X: "..position.x.."] [Y: "..position.y.." [Z: "..position.z.."]."
        end
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)
        return false
    end
return true
end

Agora, no login.lua, antes do último "return true", adicione isso:

 

registerCreatureEvent(cid, "priceLook")

Script instalado, configuração:

Onde tem:

local items = {
[7618] = 100,
}

Você pode adicionar/remover items, na parte dos colchetes "[]" você coloca o id do item, e onde fica o "=" você coloca o preço por unidade, ou seja, se você tem 1 health potion, ele vai valer 100, se você tem 2, ele vai valer 200, só copie a linha inteira e cole só edite o que foi dito, nunca esqueça de deixar a vírgula no final "[7618] = 100,".

 

Onde tem:

 

local coin = "R$"

Seria a moeda do seu servidor, você pode mudar para qualquer simbolo.

 

 

 

Print:

hNwE6rV.png

Perfeito, funciona realmente bem, mas infelizmente ele acaba substituindo todos os outros atributos dos itens do servidor. Por exemplo, para mostrar o preço, temos que sacrificar as informações (attribute keys) do items.xml como description, sistmas de slot, forja, atk, def e todos os outros... 

 

Mesmo assim, muito obrigado pelo script, acho q no final das contas uma edição das sources seria realmente mais indicado, muito embora ainda esteja pesquisando e tentando como fazer, talvez criar um novo atribute key!

 

Forte abc e obrigado pelo script amigo!

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo