Ótimo conteúdo, Rep ++.
não teria como fazer ele enviar portrait do pokémon ?
info
Grupo: Barão
Registrado: 16/11/16
Posts: 215
Reputação: +52
Gênero: Masculino

Ótimo conteúdo, Rep ++.
não teria como fazer ele enviar portrait do pokémon ?
Editado Julho 23 por Poke X Ice
14 minutos atrás, Poke X Ice disse:Ótimo conteúdo, Rep ++.
não teria como fazer ele enviar portrait do pokémon ?
Tem como fazer sim, você poderia me dizer como pega a portrait do seu servidor?
No servidor do DarkXPoke eu sei que é getPortraitClientID, porem eu não sei como é no seu.
info
Grupo: Barão
Registrado: 16/11/16
Posts: 215
Reputação: +52
Gênero: Masculino

só encontrei isso aqui sobre a portrait
servidor/data/movements/script/portrait.lua
function onEquip (cid, item, slot)
if not cid then return true end
if item.uid <= 0 then return true end
if not getItemAttribute(item.uid, "poke") then
return true
end
onPokeHealthChange(cid)
for i, x in pairs(fotos) do
if string.lower(getItemAttribute(item.uid, "poke")) == string.lower(i) then
doTransformItem(getPlayerSlotItem(cid, 7).uid, fotos)
return true
end
end
end
function onDeEquip(cid, item, slot)
if not cid then return true end
if item.uid <= 0 then return true end
onPokeHealthChange(cid)
if not getItemAttribute(item.uid, "poke") then
return true
end
onPokeHealthChange(cid)
doTransformItem(getPlayerSlotItem(cid, CONST_SLOT_LEGS).uid, 2395)
end
Vamos lá então!
No arquivo trainercard.lua mude a estrutura que envia o nome do pokemon por esse trecho de código:
for indice, ball in pairs(getPlayerPokeballs(cid)) do value = getItemInfo(fotos[getItemAttribute(ball.uid, "poke")]).clientId..','..value end
No módulo game_card abra o arquivo card.otui e procure por BoxPokemon e substitua o trecho por esse:
BoxPokemon < UIItem image-source: ui/box image-offset: -4 0 icon-size: 46 46 icon-offset: 0 2
No mesmo módulo abra o arquivo card.lua e procure por box:setIcon e substitua o trecho por esse:
box:setItemId(tonumber(pokemon[i]))
Só isso mesmo, espero que entenda.
info
Grupo: Barão
Registrado: 16/11/16
Posts: 215
Reputação: +52
Gênero: Masculino

45 minutos atrás, Poke X Ice disse:

Eu ainda deixei um comentário:
Para abrir o módulo pressione a tecla Ctrl+Shift+Q
Mas vou quebrar o seu galho kkk
-- Coloque dentro da função init modules.client_topmenu.addRightGameToggleButton('cardButton', tr('Trainer Card'), 'nome_da_imagem_do_icone', toggle) -- Coloque o nome da imagem do icone antes do toggle
Editado Julho 23 por BlazerX
info
Grupo: Barão
Registrado: 16/11/16
Posts: 215
Reputação: +52
Gênero: Masculino

desculpa acabei nem lendo tudo , estou muito estressado com problemas pessoais acabei nem percebendo.
acabou de da um erro
WARNING: attempt to add a null child into a UIWidget
stack traceback:
[C]: in function 'createWidget'
/game_card/card.lua:67: in function 'refreshPokeAndInsignias'
/game_card/card.lua:16: in function 'callback'
/gamelib/protocolgame.lua:17: in function </gamelib/protocolgame.lua:14>
at:
[C++]: UIWidget::addChild
ERROR: failed to create widget from style 'BoxPokemon': unable to create widget of type 'UIItem'
ERROR: protected lua call failed: LUA ERROR:
/game_card/card.lua:69: attempt to index local 'box' (a nil value)
stack traceback:
[C]: ?
/game_card/card.lua:69: in function 'refreshPokeAndInsignias'
/game_card/card.lua:16: in function 'callback'
/gamelib/protocolgame.lua:17: in function </gamelib/protocolgame.lua:14>
card.lua
local opcodeCard = 71
local insignias = { 'Boulder Badge', 'Cascade Badge', 'Thunder Badge', 'Rainbow Badge', 'Marsh Badge', 'Soul Badge', 'Volcano Badge', 'Earth Badge' }
local winCard
local lblTreinador
local lblLevel
local outfit
local boxPokemons
local boxInsignias
function init()
connect(g_game, { onGameEnd = onGameEnd })
ProtocolGame.registerExtendedOpcode(opcodeCard, function(protocol, opcode, buffer)
refreshPokeAndInsignias(buffer)
end)
winCard = g_ui.displayUI('card')
winCard:move(70, 80)
winCard:hide()
g_keyboard.bindKeyPress('Ctrl+Shift+Q', toggle)
lblTreinador = winCard:getChildById('lblTreinador')
lblLevel = winCard:getChildById('lblLevel')
outfit = winCard:getChildById('outfit')
boxPokemons = winCard:getChildById('boxPokemons')
boxInsignias = winCard:getChildById('boxInsignias')
end
function terminate()
disconnect(g_game, { onGameEnd = onGameEnd })
ProtocolGame.unregisterExtendedOpcode(opcodeCard)
winCard:destroy()
g_keyboard.unbindKeyPress('Ctrl+Shift+Q')
end
function refresh()
local player = g_game.getLocalPlayer()
lblTreinador:setText(player:getName())
outfit:setOutfit(player:getOutfit())
end
function onGameEnd()
winCard:hide()
end
function toggle()
if ( winCard:isVisible() ) then
addEvent(function() g_effects.fadeOut(winCard, 200) end)
scheduleEvent(function() winCard:hide() end, 220)
else
refresh()
addEvent(function() winCard:show() g_effects.fadeIn(winCard, 200) end)
g_game.getProtocolGame():sendExtendedOpcode(opcodeCard, "poke")
g_game.getProtocolGame():sendExtendedOpcode(opcodeCard, "badges")
end
end
function refreshPokeAndInsignias(value)
local action = value:explode('-')
if ( action[1] == 'poke' ) then
local pokemon = action[2]:explode(',')
boxPokemons:destroyChildren()
for i = 1, 6 do
local box = g_ui.createWidget('BoxPokemon', boxPokemons)
if ( i <= #pokemon ) then
box:setItemId(tonumber(pokemon))
box:setTooltip(pokemon)
end
end
elseif ( action[1] == 'badges' ) then
local badges = action[2]:explode(',')
boxInsignias:destroyChildren()
for i = 1, #insignias do
local uiInsignias = g_ui.createWidget('Insignias', boxInsignias)
if ( tonumber(badges) == 1 ) then
uiInsignias:setImageSource('insignias/'..insignias..'_on')
else
uiInsignias:setImageSource('insignias/'..insignias..'_off')
end
uiInsignias:setTooltip(insignias)
end
end
end
Editado Julho 23 por Poke X Ice
30 minutos atrás, Poke X Ice disse:desculpa acabei nem lendo tudo , estou muito estressado com problemas pessoais acabei nem percebendo.
acabou de da um erro
WARNING: attempt to add a null child into a UIWidget
stack traceback:
[C]: in function 'createWidget'
/game_card/card.lua:67: in function 'refreshPokeAndInsignias'
/game_card/card.lua:16: in function 'callback'
/gamelib/protocolgame.lua:17: in function </gamelib/protocolgame.lua:14>
at:
[C++]: UIWidget::addChild
ERROR: failed to create widget from style 'BoxPokemon': unable to create widget of type 'UIItem'
ERROR: protected lua call failed: LUA ERROR:
/game_card/card.lua:69: attempt to index local 'box' (a nil value)
stack traceback:
[C]: ?
/game_card/card.lua:69: in function 'refreshPokeAndInsignias'
/game_card/card.lua:16: in function 'callback'
/gamelib/protocolgame.lua:17: in function </gamelib/protocolgame.lua:14>card.lua
local opcodeCard = 71
local insignias = { 'Boulder Badge', 'Cascade Badge', 'Thunder Badge', 'Rainbow Badge', 'Marsh Badge', 'Soul Badge', 'Volcano Badge', 'Earth Badge' }
local winCard
local lblTreinador
local lblLevel
local outfit
local boxPokemons
local boxInsigniasfunction init()
connect(g_game, { onGameEnd = onGameEnd })
ProtocolGame.registerExtendedOpcode(opcodeCard, function(protocol, opcode, buffer)
refreshPokeAndInsignias(buffer)
end)
winCard = g_ui.displayUI('card')
winCard:move(70, 80)
winCard:hide()
g_keyboard.bindKeyPress('Ctrl+Shift+Q', toggle)
lblTreinador = winCard:getChildById('lblTreinador')
lblLevel = winCard:getChildById('lblLevel')
outfit = winCard:getChildById('outfit')
boxPokemons = winCard:getChildById('boxPokemons')
boxInsignias = winCard:getChildById('boxInsignias')
endfunction terminate()
disconnect(g_game, { onGameEnd = onGameEnd })
ProtocolGame.unregisterExtendedOpcode(opcodeCard)
winCard:destroy()
g_keyboard.unbindKeyPress('Ctrl+Shift+Q')
endfunction refresh()
local player = g_game.getLocalPlayer()
lblTreinador:setText(player:getName())
outfit:setOutfit(player:getOutfit())
endfunction onGameEnd()
winCard:hide()
endfunction toggle()
if ( winCard:isVisible() ) then
addEvent(function() g_effects.fadeOut(winCard, 200) end)
scheduleEvent(function() winCard:hide() end, 220)
else
refresh()
addEvent(function() winCard:show() g_effects.fadeIn(winCard, 200) end)
g_game.getProtocolGame():sendExtendedOpcode(opcodeCard, "poke")
g_game.getProtocolGame():sendExtendedOpcode(opcodeCard, "badges")
end
endfunction refreshPokeAndInsignias(value)
local action = value:explode('-')
if ( action[1] == 'poke' ) then
local pokemon = action[2]:explode(',')
boxPokemons:destroyChildren()
for i = 1, 6 do
local box = g_ui.createWidget('BoxPokemon', boxPokemons)
if ( i <= #pokemon ) then
box:setItemId(tonumber(pokemon))
box:setTooltip(pokemon)
end
end
elseif ( action[1] == 'badges' ) then
local badges = action[2]:explode(',')
boxInsignias:destroyChildren()
for i = 1, #insignias do
local uiInsignias = g_ui.createWidget('Insignias', boxInsignias)
if ( tonumber(badges) == 1 ) then
uiInsignias:setImageSource('insignias/'..insignias..'_on')
else
uiInsignias:setImageSource('insignias/'..insignias..'_off')
end
uiInsignias:setTooltip(insignias)
end
end
end

Por favor leia atentamente o que eu escrevi e quando for cópiar codigo daqui do fórum atente-se para os caracteres especiai,
eu percebi o erro que você teve, porem como você está estressado não atentou-se oq eu expliquei, refaça novamente.
info
Grupo: Barão
Registrado: 16/11/16
Posts: 215
Reputação: +52
Gênero: Masculino

Ok
info
Grupo: Visconde
Registrado: 16/08/13
Posts: 286
Reputação: +30
Gênero: Masculino

não testei mas ficou top rep+
info
Grupo: Campones
Registrado: 22/03/18
Posts: 13
Reputação: +2
Gênero: Masculino

Otimo modulo, usarei com toda certeza! Obrigado.
Em 23/07/2019 em 10:40, BlazerX disse:Trainer Card
Fala galera do Xtibia, vim trazer mais uma contribuição para a comunidade, é um módulo para otclient básico porém legal.
![]()
Como funciona?
O Trainer Card vai mostrar digamos algumas informações do seu personagem,
você pode adicionar mais informações a esse card, vai da criatividade de cada um deixar bem funcional.
![]()
Script do servidor:
Crique um arquivo na pasta do seu servidor em data/creaturescript/ e coloque o nome de trainercard.lualocal opcodeCard = 71 function onExtendedOpcode(cid, opcode, buffer) if opcode == opcodeCard then local value = '' if ( buffer == 'poke' ) then for indice, ball in pairs(getPlayerPokeballs(cid)) do value = getItemAttribute(ball.uid, "poke")..','..value end elseif ( buffer == 'badges' ) then local leaderGym = {"Brock", "Misty", "Surge", "Erika", "Sabrina", "Koga", "Blaine", "Giovanni"} for i = 1, #leaderGym do value = getPlayerBadgeOfLeader(cid, leaderGym[i])..','..value end end doSendPlayerExtendedOpcode(cid, 71, buffer..'-'..value) end end
Coloque a seguinte tag no arquivo do creaturescripts.xml:
<event type="extendedopcode" name="TrainerCard" event="script" value="trainercard.lua"/>Registre o evento no arquivo onLogin.lua onde se encontra na mesma pasta:
registerCreatureEvent(cid, "TrainerCard")
![]()
Módulo otClient:
Coloque o módulo na pasta do seu otClient em modules/
Para abrir o módulo pressione a tecla Ctrl+Shift+Q
![]()
Imagem do módulo:
![]()
![]()
A base que foi utilizada do servidor foi a DarkXPoke.
O meu módulo tem mais informações do que o da imagem, porém eu dei uma mexida,o módulo que o Gengo me passou do Trainer Card que eu utilizo está em um nivel totalmente
diferente do apresentado nesse tutorial, eu só modifiquei para compartilhar com a galera.
Espero que tenham gostado e faça um bom proveito do módulo, use sua criatividade para fazer de um belo sistema funcional.
![]()
Créditos:
Créditos vai ao Gengo que fez a um tempo atras para mim e com a permissão dele estou postando.
tenhe como abrir o modulo sim C.S. Q?
qe te n client ? n part d arriba
info
Grupo: Campones
Registrado: 27/08/18
Posts: 90
Reputação: +51
Gênero: Masculino
Trainer Card
Fala galera do Xtibia, vim trazer mais uma contribuição para a comunidade, é um módulo para otclient básico porém legal.
Como funciona?
O Trainer Card vai mostrar digamos algumas informações do seu personagem,
você pode adicionar mais informações a esse card, vai da criatividade de cada um deixar bem funcional.
Script do servidor:
Crique um arquivo na pasta do seu servidor em data/creaturescript/ e coloque o nome de trainercard.lua
Coloque a seguinte tag no arquivo do creaturescripts.xml:
Registre o evento no arquivo onLogin.lua onde se encontra na mesma pasta:
Módulo otClient:
Coloque o módulo na pasta do seu otClient em modules/
Para abrir o módulo pressione a tecla Ctrl+Shift+Q
→ Link: https://mega.nz/#!5ehFTIzJ!OtXQ_bDzvr4ypw25Nod0p6dFBqtnTZ-0kZ0RLdZrasM
→ Scan: https://www.virustotal.com/gui/file/bd461bd4cb0b8ff5cbec867fbd5b4f956fdc9c4700a9d292689d79a899de499e/detection
Imagem do módulo:

A base que foi utilizada do servidor foi a DarkXPoke.
O meu módulo tem mais informações do que o da imagem, porém eu dei uma mexida,
o módulo que o Gengo me passou do Trainer Card que eu utilizo está em um nivel totalmente
diferente do apresentado nesse tutorial, eu só modifiquei para compartilhar com a galera.
Espero que tenham gostado e faça um bom proveito do módulo, use sua criatividade para fazer de um belo sistema funcional.
Créditos:
Créditos vai ao Gengo que fez a um tempo atras para mim e com a permissão dele estou postando.
Editado Julho 23 por BlazerX