modules/game_interface/widgets/uiitem.lua
function UIItem:onHoverChange(hovered)
UIWidget.onHoverChange(self, hovered)
local item = self:getItem()
if item and not self:getTooltip() then
self:setTooltip('Description. ID: ' .. item:getId())
end
This is hardly tip of the iceberg. Using this method is useless in case if you want to show more data in a better way (visually, like item icon, text colors etc.).Maybe try work with this:
in:Code:modules/game_interface/widgets/uiitem.lua
under:Code:function UIItem:onHoverChange(hovered)
add:Code:UIWidget.onHoverChange(self, hovered)
Code:local item = self:getItem() if item and not self:getTooltip() then self:setTooltip('Description. ID: ' .. item:getId()) end
Help with example? "Isso dificilmente é a ponta do iceberg. Usar este método é inútil caso você queira mostrar mais dados de uma maneira melhor (visualmente, como ícone de item, cores de texto etc.).
Você, como cliente, não sabe muito sobre itens, como nome, estatísticas, peso e muito mais.
por exemplo, o que você vê usando a função "Look" é uma string que o servidor envia ao cliente.
O que você precisa fazer é:
- Crie um novo módulo para mostrar a dica de ferramenta.
- Estenda a classe Item com mais métodos e propriedades (lado do cliente).
- Crie novos pacotes que serão enviados pelo servidor ao cliente com informações sobre os itens (nome, ataque, def, armadura etc.).
- Cache itens da melhor maneira possível para que não haja inundação de pacotes
- Os dados dos itens devem ser dinâmicos, o que significa que se um item for editado no jogo (sistema de atualização ou algo assim), ele será atualizado no lado do cliente
Global table, save item data using item unique id (not THE unique id, you have to create new way to generate real unique id). In case something changes in this item, just send new data with unique id, check table by that id and update data.Help with example? "
- Cache itens da melhor maneira possível para que não haja inundação de pacotes"