• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[Request] Item information on mouse hover for OTC

zyzz7omg

Premium User
Premium User
Joined
Jun 21, 2016
Messages
52
Reaction score
28
As title says :). I know that there are some modifications in server side, if anyone can give any tip or some code modifications would be greatly appreciated.
Zyzz signing out ;)
 
Maybe try work with this:
Code:
modules/game_interface/widgets/uiitem.lua
in:
Code:
function UIItem:onHoverChange(hovered)
under:
Code:
UIWidget.onHoverChange(self, hovered)
add:
Code:
  local item = self:getItem()
  if item and not self:getTooltip() then
    self:setTooltip('Description. ID: ' .. item:getId())
  end
 
I tryed yesterday but nothing happends..
 
Maybe try work with this:
Code:
modules/game_interface/widgets/uiitem.lua
in:
Code:
function UIItem:onHoverChange(hovered)
under:
Code:
UIWidget.onHoverChange(self, hovered)
add:
Code:
  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.).
You as a client don't know much about items, like name, stats, weight and much more.
e.g. what you see using "Look" function is a string that the server sends to the client.

What you have to do is:
  1. Create a new module to show the tooltip.
  2. Extend Item class with more methods and properties (client-side).
  3. Create new packets that will be send by the server to the client with information about items (name, attack, def, armor etc.).
    • Cache items in the best way possible so there won't be packet flooding
    • Items data should be dynamic, that means if an item is edited in-game (upgrade system or something) then it will be updated on client-side
 
[QUOTE = "oen432, publicación: 2565525, miembro: 206904"]
Esto es apenas la punta del iceberg. El uso de este método es inútil en caso de que desee mostrar más datos de una mejor manera (visualmente, como ícono de elemento, colores de texto, etc.).
Usted, como cliente, no sabe mucho sobre artículos, como nombre, estadísticas, peso y mucho más.
por ejemplo, lo que ve usando la función "Mirar" es una cadena que el servidor envía al cliente.

Lo que tienes que hacer es:
  1. Cree un nuevo módulo para mostrar la información sobre herramientas.
  2. Extiende la clase Item con más métodos y propiedades (del lado del cliente).
  3. Cree nuevos paquetes que el servidor enviará al cliente con información sobre los elementos (nombre, ataque, def, armadura, etc.).
    • Guardar en caché los elementos de la mejor manera posible para que no haya inundaciones de paquetes
    • Los datos de los elementos deben ser dinámicos, eso significa que si un elemento se edita en el juego (sistema de actualización o algo así), se actualizará en el lado del cliente
[/CITAR]

how much for your system?
 
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 é:
  1. Crie um novo módulo para mostrar a dica de ferramenta.
  2. Estenda a classe Item com mais métodos e propriedades (lado do cliente).
  3. 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
Help with example? "
  • Cache itens da melhor maneira possível para que não haja inundação de pacotes"
 
Help with example? "
  • Cache itens da melhor maneira possível para que não haja inundação de pacotes"
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.
 
Back
Top