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
Por Jedediasisme, 22 de jul. de 2019 em Clients
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: 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
Grupo: Campones
Registrado: 27/06/19
Posts: 18
Reputação: +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.
Editado Julho 22 por nociam
info
Grupo: Campones
Registrado: 27/06/19
Posts: 18
Reputação: +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
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: 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
Editado Julho 23 por FlamesAdmin
info
Grupo: Campones
Registrado: 27/06/19
Posts: 18
Reputação: +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...
Editado Julho 23 por Jedediasisme
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: 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
Grupo: Campones
Registrado: 27/06/19
Posts: 18
Reputação: +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
Grupo: Cavaleiro
Registrado: 10/03/13
Posts: 177
Reputação: +202
Gênero: Masculino
Char no Tibia: 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
Grupo: Campones
Registrado: 27/06/19
Posts: 18
Reputação: +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...
Editado Julho 24 por Jedediasisme
info
Grupo: Campones
Registrado: 22/03/18
Posts: 13
Reputação: +2
Gênero: 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
Grupo: Campones
Registrado: 27/06/19
Posts: 18
Reputação: +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