Testei aqui e todos itens que eu coloco na lista fica como No description
[OTC] onHover, Mostrar descrição do item ao passar o mouse em cima
By Jedediasisme, 22 de jul. de 2019 in Clients
info
Group: Infante
Joined: 28/01/12
Posts: 1.6k
Reputation: +262
Gender: Masculino

Sabe que o mesmo id do spr no jogo pode ser diferente ne se quer pegar pelo id do jogo mude.
local data = itemsList[item:getServerId()]
info
Group: Campones
Joined: 27/06/19
Posts: 18
Reputation: +4

@FlamesAdmin Voce ta pondo server id ou cliente id? Tem 2 tipos de ID, o ID da sprite no Objectbuilder e o ID do item no ItemEditor...
Vc poderia fazer algo diferente, ao invés de passar 'No description' no else poderia ser o item:getName() esse 'No description' em tudo e feio.
Edited Julho 22 by nociam
info
Group: Campones
Joined: 27/06/19
Posts: 18
Reputation: +4

36 minutos atrás, nociam disse:Vc poderia fazer algo diferente, ao invés de passar 'No description' no else poderia ser o item:getName() esse 'No description' em tudo e feio.
Não funciona assim amigo. Pra pegar o nome do item, tem só um jeito, modificando a source pra mandar opcode. Eu ja testei isso, da muito lag e sobrecarrega o servidor, da pra nuckar o servidor só passando o mouse em cima do item sem parar... Ou a própria pessoa pode pegar o número do OPCODE e editar o otclient pra por em alguma função infinita para nuckar o servidor.
Esse itemGetName funciona melhor dessa maneira, pegando os itens manualmente.
Por padrão o TFS só manda o ID do item, não manda o nome pro cliente.
local item = self:getItem()
if item and not self:getTooltip() then
self:setTooltip('Description. ID: ' .. item:getId())
end
info
Group: Infante
Joined: 28/01/12
Posts: 1.6k
Reputation: +262
Gender: Masculino

2 horas atrás, Jedediasisme disse:@FlamesAdmin Voce ta pondo server id ou cliente id? Tem 2 tipos de ID, o ID da sprite no Objectbuilder e o ID do item no ItemEditor...
E qual devo colocar?
/game_interface/widgets/uiitem.lua:64: attempt to concatenate field 'raridade' (a nil value) stack traceback: [C]: ? /game_interface/widgets/uiitem.lua:64: in function </game_interface/widgets/uiitem.lua:53> ERROR: protected lua call failed: LUA ERROR: /game_interface/widgets/uiitem.lua:64: attempt to concatenate field 'raridade' (a nil value) stack traceback: [C]: ? /game_interface/widgets/uiitem.lua:64: in function </game_interface/widgets/uiitem.lua:53> ERROR: protected lua call failed: LUA ERROR: /game_interface/widgets/uiitem.lua:64: attempt to concatenate field 'raridade' (a nil value) stack traceback: [C]: ? /game_interface/widgets/uiitem.lua:64: in function </game_interface/widgets/uiitem.lua:53> ERROR: protected lua call failed: LUA ERROR: /game_interface/widgets/uiitem.lua:64: attempt to concatenate field 'raridade' (a nil value) stack traceback: [C]: ? /game_interface/widgets/uiitem.lua:64: in function </game_interface/widgets/uiitem.lua:53> ERROR: protected lua call failed: LUA ERROR: /game_interface/widgets/uiitem.lua:64: attempt to concatenate field 'raridade' (a nil value) stack traceback: [C]: ? /game_interface/widgets/uiitem.lua:64: in function </game_interface/widgets/uiitem.lua:53> ERROR: protected lua call failed: LUA ERROR: /game_interface/widgets/uiitem.lua:64: attempt to concatenate field 'raridade' (a nil value) stack traceback: [C]: ? /game_interface/widgets/uiitem.lua:64: in function </game_interface/widgets/uiitem.lua:53
Edited Julho 23 by FlamesAdmin
info
Group: Campones
Joined: 27/06/19
Posts: 18
Reputation: +4

@FlamesAdmin voce tem que usar o Server ID (aquele usado no ItemEditor)
Você deve ter feito algo errado ai cara, funcionou de boa aqui.
Baixa o meu uiitem.lua e substitui o seu
https://www.mediafire.com/file/6z9isgsfvjcjjd3/uiitem.lua/file
Se não conseguir fazer uma coisa simples dessa funcionar, você não tem inteligência...
Cola o seu uiitem.lua aqui se quiser pra eu ver o que você errou...
Edited Julho 23 by Jedediasisme
info
Group: Infante
Joined: 28/01/12
Posts: 1.6k
Reputation: +262
Gender: Masculino

13 minutos atrás, Jedediasisme disse:você não tem inteligência
e precisa esculachar no bagulho? A pergunta que fiz não pode só ser dúvida minha mas tbm de outros membros já que no tópico não tem a explicação de qual ID deve colocar
fé
info
Group: Campones
Joined: 27/06/19
Posts: 18
Reputation: +4

Antes de editar essas coisas avançadas, tem que saber pelo menos o básico.
E eu acho ainda que não precisa ter 1 cerebro pra saber que só precisa editar isso
[3577] = {name = "Meat", raridade = Normal},
[3270] = {name = "Porrete", raridade = 10, attack = 20, defense = 0},
21 horas atrás, Jedediasisme disse:ão funciona assim amigo. Pra pegar o nome do item, tem só um jeito, modificando a source pra mandar opcode. Eu ja testei isso, da muito lag e sobrecarrega o servidor, da pra nuckar o servidor só passando o mouse em cima do item sem parar... Ou a própria pessoa pode pegar o número do OPCODE e editar o otclient pra por em alguma função infinita para nuckar o servidor.
Não concordo que derruba o servidor, o que pode acontecer e o próprio jogar foder seu próprio cliente, ou então me mostre como derrubou o serve.
g_lua.bindClassMemberFunction<Item>("getName", &Item::getName);
info
Group: Cavaleiro
Joined: 10/03/13
Posts: 177
Reputation: +202
Gender: Masculino
Tibia Character: stor akia

Quer retornar o getName e o id do servidor do item é simples e pratico.
1º Na pasta do seu otClient/data/ crie uma pasta chamada items e coloque o seus arquivos items.otb e items.xml.
2º Vai até a pasta do seu otClient/modules/game_things abre o arquivo things.lua e procure a função load() e coloque o seguinte:
g_things.loadOtb ('/items/items.otb') g_things.loadXml('/items/items.xml')
info
Group: Campones
Joined: 27/06/19
Posts: 18
Reputation: +4

@Gengo ja testei assim tb, da uma lagadinha em alguns pcs quando abre o cliente, se ele carregar os items.
Porém é uma alternativa funcional, ao contrário do que disse o amigo acima, que somente traduziu palavra pra inglês querendo achar defeito onde não tem...
Edited Julho 24 by Jedediasisme
info
Group: Campones
Joined: 22/03/18
Posts: 13
Reputation: +2
Gender: Masculino

Aqui funcionou certinho, obrigado pela contribuição! EU no momento estou tentando setar outras informações como a imagem dos itens, mas ate o momento sem sucesso. Se poder dar uma luz ficaria grato.
Em 24/07/2019 em 00:56, Jedediasisme disse:
Porém é uma alternativa funcional, ao contrário do que disse o amigo acima, que somente traduziu palavra pra inglês querendo achar defeito onde não tem...
A sua arrogância me enoja, ninguém pôs defeito no seu sistema e se realmente é seu sistema não perderei meu tempo com um arrogante que provavelmente e outro que sabe pouco e diminui os outros pelo pouco que sabe, nesses 6,7 anos +- de xtibia aprendendo, errando e muitas duvidas nunca vi alguém tão arrogante e olha que já passou muitos caras foda aqui.





info
Group: Campones
Joined: 27/06/19
Posts: 18
Reputation: +4
Essa modificação permite que ao passar o mouse sobre um item, apareça uma descrição do item. Não tem como causar lag no servidor nem no cliente, pois carrega as informações dentro do arquivo na TAG itemsList
Vai em otclient/modules/game_interface/widgets e abra o arquivo uiitem.lua
Procure por
function UIItem:onHoverChange(hovered)
UIWidget.onHoverChange(self, hovered)
Salte uma linha e coloque o código abaixo
local item = self:getItem()
if item and not self:getTooltip() then
local itemsList = {
[3577] = {name = "Meat", raridade = Normal},
[3270] = {name = "Porrete", raridade = 10, attack = 20, defense = 0},
}
local data = itemsList[item:getId()]
if data then
local description = 'This is ' .. item:getCount() .. 'x ' .. data.name .. ', Raridade ' .. data.raridade
if data.attack then
description = description .. ' Attack: ' .. data.attack .. '.'
end
if data.defense then
description = description .. ' Defense: ' .. data.defense .. '.'
end
self:setTooltip('Description: ' .. description)
else
self:setTooltip('No description')
end
end