[OTC] onHover, Mostrar descrição do item ao passar o mouse em cima

Jedediasisme
em Clients
  • 1
  • 2

Jedediasisme

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/06/19Posts: 18

Sem-t-tulo.png

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

Spoiler

  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

 

FlamesAdmin

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 28/01/12Posts: 1550Gênero: Masculino

Testei aqui e todos itens que eu coloco na lista fica como No description

[Show off] Mapping Pokémon (OLD)

[PDA] Pokeball Icon System

 

 

[Mapping] Mapinha Johto = Para conferir, clique Aqui
[Mapping] Outland RockPara conferir, clique Aqui
[Mapping] Centro Pokémon de Cinnabar e cidade de Hamlin(PxG) Para conferir, clique Aqui
[Mapping] Antigo Trade Center(PvP) do PxG Para conferir, clique Aqui
[PDA] Reformulação do level das magias e level dos Pokemons Para conferir, clique Aqui
[PDA] Comando de Clan sem task = Para conferir, clique Aqui
[Utilitário] OT Restarter by: Gabrielbsales(Featzen) Para conferir, clique Aqui
[Database] Descriptografia MD5 & SHA1 = Para conferir, clique Aqui
[Scripting] Level Máximo = Para conferir, clique Aqui

 

nociam

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/02/13Posts: 541Gê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()]

Jedediasisme

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/06/19Posts: 18

@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...

nociam

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/02/13Posts: 541Gênero: Masculino

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.

Jedediasisme

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/06/19Posts: 18
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

 

FlamesAdmin

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 28/01/12Posts: 1550Gê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

 

[Show off] Mapping Pokémon (OLD)

[PDA] Pokeball Icon System

 

 

[Mapping] Mapinha Johto = Para conferir, clique Aqui
[Mapping] Outland RockPara conferir, clique Aqui
[Mapping] Centro Pokémon de Cinnabar e cidade de Hamlin(PxG) Para conferir, clique Aqui
[Mapping] Antigo Trade Center(PvP) do PxG Para conferir, clique Aqui
[PDA] Reformulação do level das magias e level dos Pokemons Para conferir, clique Aqui
[PDA] Comando de Clan sem task = Para conferir, clique Aqui
[Utilitário] OT Restarter by: Gabrielbsales(Featzen) Para conferir, clique Aqui
[Database] Descriptografia MD5 & SHA1 = Para conferir, clique Aqui
[Scripting] Level Máximo = Para conferir, clique Aqui

 

Jedediasisme

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/06/19Posts: 18

 

@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...

FlamesAdmin

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 28/01/12Posts: 1550Gê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

[Show off] Mapping Pokémon (OLD)

[PDA] Pokeball Icon System

 

 

[Mapping] Mapinha Johto = Para conferir, clique Aqui
[Mapping] Outland RockPara conferir, clique Aqui
[Mapping] Centro Pokémon de Cinnabar e cidade de Hamlin(PxG) Para conferir, clique Aqui
[Mapping] Antigo Trade Center(PvP) do PxG Para conferir, clique Aqui
[PDA] Reformulação do level das magias e level dos Pokemons Para conferir, clique Aqui
[PDA] Comando de Clan sem task = Para conferir, clique Aqui
[Utilitário] OT Restarter by: Gabrielbsales(Featzen) Para conferir, clique Aqui
[Database] Descriptografia MD5 & SHA1 = Para conferir, clique Aqui
[Scripting] Level Máximo = Para conferir, clique Aqui

 

Jedediasisme

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/06/19Posts: 18

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},

nociam

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/02/13Posts: 541Gênero: Masculino
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);

Gengo

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 10/03/13Posts: 177Gênero: MasculinoChar no Tibia: stor akia

Quer retornar o getName e o id do servidor do item é simples e pratico.

 

 Na pasta do seu otClient/data/ crie uma pasta chamada items e coloque o seus arquivos items.otb e items.xml.

 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')

 

Jedediasisme

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/06/19Posts: 18

@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...

Bagastalgia22

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/03/18Posts: 13Gê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.

nociam

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/02/13Posts: 541Gênero: Masculino
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.

  • 1
  • 2