Mostrando suas Hunts

BananaFight
em Clients
  • 1
  • 2

BananaFight

Allahu Akbar
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 14/02/13Posts: 702Gênero: Masculino

 

Bom, como acho que todos ja viram o map do servidor de poketibia (Pxg) ele mostra icones, nomes etc no minimap, e hoje vim trazer isso para vocês :D




Nome: Map IconDescrição: Adiciona um icone no minimapAutor: Eduardo Vicente (Banana Fight)Website: www.xtibia.com



Versão 1.0


 

Features: Criar Icones no minimap

 



imagedac.png


Instalação


dentro de modules/game_minimap/minimap.lua



embaixo de :


function toggle()if minimapButton:isOn() thenminimapWindow:close()minimapButton:setOn(false)elseminimapWindow:open()minimapButton:setOn(true)endend



Você adiciona a função :



function setMonsterCave(posx, posy, posz, icon, description)local pos = {}pos.x = posxpos.y = posypos.z = poszminimapWidget:addFlag(pos, icon, description)endfunction removeMonsterCave(posx, posy, posz, icon, description)local pos = {}pos.x = posxpos.y = posypos.z = poszminimapWidget:removeFlag(pos, icon, description)end




Como usar



setMonsterCave(Posição X do map, Posição Y do map,Posição Z do map, "Nome da Imagem", "Descrição que vai aparecer")



Obs: como eu usei uma função que já existe você vai te que seguir um padrão na hora de adicionar o nome da sua imagem.


Exemplo: O nome da minha imagem é "dragonicon.png", para que eu possa usar ela no script eu tenho que adicionar essa imagem dentro da pasta "data/images/game/minimap/", e vou ter que renomear essa imagem para "flagdragonicon.png", Ai depois de ter feito isso dentro do meu script quando eu for fazer o script adicionar essa imagem eu vou fazer da seguinte maneira :



setMonsterCave(32238, 32240, 7, "dragonicon", "Dragon Cave")



Se você ainda não entendeu é da seguinte forma, você tem uma imagem com nome "test.png", você vai adiciona a imagem no lugar certo, com o nome "flagtest.png", ai dentro do script você só usa "test", pois o script já sabe que vai ter que juntar flag+nome da imagem que você adicionou+.png.



Obs 2: Sua imagem tem que ter o fundo transparente


Obs 3: quando mais transparente for a imagem, mais do map aparece e causa o efeito igual ao do PXG, do map se abrindo.



Exemplo de uso :


arquivo : minimap.lua



function init()minimapButton = modules.client_topmenu.addRightGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', '/images/topbuttons/minimap', toggle)minimapButton:setOn(true)minimapWindow = g_ui.loadUI('minimap', modules.game_interface.getRightPanel())minimapWindow:setContentMinimumHeight(64)minimapWidget = minimapWindow:recursiveGetChildById('minimap')local gameRootPanel = modules.game_interface.getRootPanel()g_keyboard.bindKeyPress('Alt+Left', function() minimapWidget:move(1,0) end, gameRootPanel)g_keyboard.bindKeyPress('Alt+Right', function() minimapWidget:move(-1,0) end, gameRootPanel)g_keyboard.bindKeyPress('Alt+Up', function() minimapWidget:move(0,1) end, gameRootPanel)g_keyboard.bindKeyPress('Alt+Down', function() minimapWidget:move(0,-1) end, gameRootPanel)g_keyboard.bindKeyDown('Ctrl+M', toggle)g_keyboard.bindKeyDown('Ctrl+Shift+M', toggleFullMap)minimapWindow:setup()connect(g_game, {onGameStart = online,onGameEnd = offline,})connect(LocalPlayer, {onPositionChange = updateCameraPosition})if g_game.isOnline() thenonline()setMonsterCave(32239, 32240, 7, "dragon", "hihi")removeMonsterCave(32239, 32240, 7, "dragon", "hihi")endend

 

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

kk muito bom ms banana... ja tinha pensado q isso seria uma flag mas... xD

-ps: o deles eh gif heim... uahuahauh-

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

BananaFight

Allahu Akbar
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 14/02/13Posts: 702Gênero: Masculino

Mais isso não é culpa minha, se alguém quiser fazer uma função em c++ para ler gif, fique a vontade xD.

 

E também podemos fazer um loop infinito:

 

 

  setMonsterCave(32239, 32240, 7, "dragon", "hihi")
  scheduleEvent(function()
	removeMonsterCave(32239, 32240, 7, "dragon", "hihi")
	setMonsterCave(32239, 32240, 7, "dragon2", "hihi")
	scheduleEvent(function()
	removeMonsterCave(32239, 32240, 7, "dragon2", "hihi")
	setMonsterCave(32239, 32240, 7, "dragon", "hihi")
	end, 2000)
  end, 5000)

 

agora só por um think na função e pronto, zoa '-'

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

/\ auhauhauh bem pensado, bem pensado... kkk zoa²

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

Administrador

xTibia 2017
avatar
Administrador
Administrador

INFOS

Grupo: AdministradorRegistrado: 09/07/05Posts: 5780Gênero: Outro

Muito interessante, essa seção aqui vai ser legal de ver as coisas prontas de otclient.

DICA

Utilize botão @UP, no início de seu tópico, para atualizar o destaque de seu tópico em "Tópicos Recentes" na index, fará com que mais pessoas o vejam.

 

 

nociam

avatar
Conde
Conde

INFOS

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

Tentei fazer como vc disse mais nao foi aqui nao.

KaboFlow29

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 22/11/12Posts: 267Gênero: MasculinoChar no Tibia: ADM Kabo

Error Minimap Nao Mostra...

DEFAULT_ZOOM = 60

MAX_FLOOR_UP = 0

MAX_FLOOR_DOWN = 15

 

navigating = false

minimapWidget = nil

minimapButton = nil

minimapWindow = nil

 

--[[

Known Issue (TODO):

If you move the minimap compass directions and

you change floor it will not update the minimap.

]]

function init()

connect(g_game, {

onGameStart = online,

onGameEnd = offline,

})

connect(LocalPlayer, { onPositionChange = center })

 

g_keyboard.bindKeyDown('Ctrl+M', toggle)

 

minimapButton = TopMenu.addRightGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', 'minimap.png', toggle)

minimapButton:setOn(true)

 

minimapWindow = g_ui.loadUI('minimap.otui', modules.game_interface.getRightPanel())

minimapWindow:setContentMinimumHeight(64)

minimapWindow:setContentMaximumHeight(256)

 

minimapWidget = minimapWindow:recursiveGetChildById('minimap')

g_mouse.bindAutoPress(minimapWidget, compassClick, nil, MouseRightButton)

g_mouse.bindAutoPress(minimapWidget, compassClick, nil, MouseLeftButton)

minimapWidget:setAutoViewMode(false)

minimapWidget:setViewMode(1) -- mid view

minimapWidget:setDrawMinimapColors(true)

minimapWidget:setMultifloor(false)

minimapWidget:setKeepAspectRatio(false)

minimapWidget.onMouseRelease = onMinimapMouseRelease

minimapWidget.onMouseWheel = onMinimapMouseWheel

 

reset()

minimapWindow:setup()

end

 

function terminate()

disconnect(g_game, {

onGameStart = online,

onGameEnd = offline,

})

disconnect(LocalPlayer, { onPositionChange = center })

 

if g_game.isOnline() then

online()

setMonsterCave(1061, 907, 7, "CPicon", "Centro Pokemon")

removeMonsterCave(1061, 907, 7, "CPicon", "Centro Pokemon")

end

end

 

g_keyboard.unbindKeyDown('Ctrl+M')

 

minimapButton:destroy()

minimapWindow:destroy()

end

 

function online()

reset()

loadMap()

end

 

function offline()

saveMap()

end

 

function loadMap()

local clientVersion = g_game.getClientVersion()

local minimapFile = '/minimap_' .. clientVersion .. '.otcm'

if g_resources.fileExists(minimapFile) then

g_map.clean()

g_map.loadOtcm(minimapFile)

end

end

 

function saveMap()

local clientVersion = g_game.getClientVersion()

local minimapFile = '/minimap_' .. clientVersion .. '.otcm'

g_map.saveOtcm(minimapFile)

end

 

function toggle()

if minimapButton:isOn() then

minimapWindow:close()

minimapButton:setOn(false)

else

minimapWindow:open()

minimapButton:setOn(true)

end

end

 

function setMonsterCave(posx, posy, posz, icon, description)

 

local pos = {}

pos.x = posx

pos.y = posy

pos.z = posz

 

minimapWidget:addFlag(pos, icon, description)

end

 

 

function removeMonsterCave(posx, posy, posz, icon, description)

 

local pos = {}

pos.x = posx

pos.y = posy

pos.z = posz

 

minimapWidget:removeFlag(pos, icon, description)

end

 

function isClickInRange(position, fromPosition, toPosition)

return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.x <= toPosition.x and position.y <= toPosition.y)

end

 

function reset()

local player = g_game.getLocalPlayer()

if not player then return end

minimapWidget:followCreature(player)

minimapWidget:setZoom(DEFAULT_ZOOM)

end

 

function center()

local player = g_game.getLocalPlayer()

if not player then return end

minimapWidget:followCreature(player)

end

 

function compassClick(self, mousePos, mouseButton, elapsed)

if elapsed < 300 then return end

 

navigating = true

local px = mousePos.x - self:getX()

local py = mousePos.y - self:getY()

local dx = px - self:getWidth()/2

local dy = -(py - self:getHeight()/2)

local radius = math.sqrt(dx*dx+dy*dy)

local movex = 0

local movey = 0

dx = dx/radius

dy = dy/radius

 

if dx > 0.5 then movex = 1 end

if dx < -0.5 then movex = -1 end

if dy > 0.5 then movey = -1 end

if dy < -0.5 then movey = 1 end

 

local cameraPos = minimapWidget:getCameraPosition()

local pos = {x = cameraPos.x + movex, y = cameraPos.y + movey, z = cameraPos.z}

minimapWidget:setCameraPosition(pos)

end

 

function onButtonClick(id)

if id == "zoomIn" then

minimapWidget:setZoom(math.max(minimapWidget:getMaxZoomIn(), minimapWidget:getZoom()-15))

elseif id == "zoomOut" then

minimapWidget:setZoom(math.min(minimapWidget:getMaxZoomOut(), minimapWidget:getZoom()+15))

elseif id == "floorUp" then

local pos = minimapWidget:getCameraPosition()

pos.z = pos.z - 1

if pos.z > MAX_FLOOR_UP then

minimapWidget:setCameraPosition(pos)

end

elseif id == "floorDown" then

local pos = minimapWidget:getCameraPosition()

pos.z = pos.z + 1

if pos.z < MAX_FLOOR_DOWN then

minimapWidget:setCameraPosition(pos)

end

end

end

 

function onMinimapMouseRelease(self, mousePosition, mouseButton)

if navigating then

navigating = false

return

end

local pos = self:getPosition(mousePosition)

if pos and mouseButton == MouseLeftButton and self:isPressed() then

local dirs = g_map.findPath(g_game.getLocalPlayer():getPosition(), pos, 127, PathFindFlags.AllowNullTiles)

if #dirs == 0 then

modules.game_textmessage.displayStatusMessage(tr('There is no way.'))

return true

end

g_game.autoWalk(dirs)

return true

end

return false

end

 

function onMinimapMouseWheel(self, mousePos, direction)

if direction == MouseWheelUp then

self:zoomIn()

else

self:zoomOut()

end

end

 

function onMiniWindowClose()

minimapButton:setOn(false)

end

13662475_1132536336789432_1129366659_o.png

BananaFight

Allahu Akbar
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 14/02/13Posts: 702Gênero: Masculino

Acabei de testar e funcionou 100%

 

Você deixou no diretório correto ?

 

otclient-master\data\images\game\minimap

 

E no nome da imagem você adicionou o flag antes ?, Deixando flagNomeDaImagem.png

UltimatePlayerx

Draconic aqui :)
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 07/01/13Posts: 36Char no Tibia: Ryous Costa

Funcionou perfeitamente aqui! Obrigado! :D

Att:

Draconic

UltimatePlayerx

AlexandreGiacobo

Estudando Scripting
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/04/13Posts: 92

Interessante,obrigado por disponibilizar,pretendo adicionar isto no meu OTClient!

Seagull

Groow???
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 20/09/12Posts: 114

Fiz tudo certo, mas não funcionou. Não aparece no mapa

HalefLiu

Aprendendo a CODAR ='(
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/05/13Posts: 43Char no Tibia: Liu King

tem q ser a versão q ele esplico no topico se n da errado msm

Aberos

A dor é inevitável e o sofrimento é opcional
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 23/02/13Posts: 437Gênero: Masculino

 

BananaFight como faz para o mapa fikar aberto igual a pxg?

 

"Cê quer a resposta do porquê de ainda tá vivo?
Respondo com a própria vida, pois viver já é um bom motivo!"

                              ― Gigante - Atentado Napalm

Henrique Amicci

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/06/18Posts: 8Gênero: Masculino

Amigo o ícone do minimapa some quando eu coloco essa função 
O que eu faço ?

KaboFlow

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 04/07/17Posts: 434
Em 06/04/2013 em 02:53, BananaFight disse:

 

Bom, como acho que todos ja viram o map do servidor de poketibia (Pxg) ele mostra icones, nomes etc no minimap, e hoje vim trazer isso para vocês :D



 

Nome: Map IconDescrição: Adiciona um icone no minimapAutor: Eduardo Vicente (Banana Fight)Website: www.xtibia.com


 

Versão 1.0

 

 

Features: Criar Icones no minimap

 


 

imagedac.png

 

Instalação

 

dentro de modules/game_minimap/minimap.lua


 

embaixo de :

 

function toggle()if minimapButton:isOn() thenminimapWindow:close()minimapButton:setOn(false)elseminimapWindow:open()minimapButton:setOn(true)endend


 

Você adiciona a função :


 

function setMonsterCave(posx, posy, posz, icon, description)local pos = {}pos.x = posxpos.y = posypos.z = poszminimapWidget:addFlag(pos, icon, description)endfunction removeMonsterCave(posx, posy, posz, icon, description)local pos = {}pos.x = posxpos.y = posypos.z = poszminimapWidget:removeFlag(pos, icon, description)end



 

Como usar


 

setMonsterCave(Posição X do map, Posição Y do map,Posição Z do map, "Nome da Imagem", "Descrição que vai aparecer")


 

Obs: como eu usei uma função que já existe você vai te que seguir um padrão na hora de adicionar o nome da sua imagem.

 

Exemplo: O nome da minha imagem é "dragonicon.png", para que eu possa usar ela no script eu tenho que adicionar essa imagem dentro da pasta "data/images/game/minimap/", e vou ter que renomear essa imagem para "flagdragonicon.png", Ai depois de ter feito isso dentro do meu script quando eu for fazer o script adicionar essa imagem eu vou fazer da seguinte maneira :


 

setMonsterCave(32238, 32240, 7, "dragonicon", "Dragon Cave")


 

Se você ainda não entendeu é da seguinte forma, você tem uma imagem com nome "test.png", você vai adiciona a imagem no lugar certo, com o nome "flagtest.png", ai dentro do script você só usa "test", pois o script já sabe que vai ter que juntar flag+nome da imagem que você adicionou+.png.


 

Obs 2: Sua imagem tem que ter o fundo transparente

 

Obs 3: quando mais transparente for a imagem, mais do map aparece e causa o efeito igual ao do PXG, do map se abrindo.


 

Exemplo de uso :

 

arquivo : minimap.lua


 

function init()minimapButton = modules.client_topmenu.addRightGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', '/images/topbuttons/minimap', toggle)minimapButton:setOn(true)minimapWindow = g_ui.loadUI('minimap', modules.game_interface.getRightPanel())minimapWindow:setContentMinimumHeight(64)minimapWidget = minimapWindow:recursiveGetChildById('minimap')local gameRootPanel = modules.game_interface.getRootPanel()g_keyboard.bindKeyPress('Alt+Left', function() minimapWidget:move(1,0) end, gameRootPanel)g_keyboard.bindKeyPress('Alt+Right', function() minimapWidget:move(-1,0) end, gameRootPanel)g_keyboard.bindKeyPress('Alt+Up', function() minimapWidget:move(0,1) end, gameRootPanel)g_keyboard.bindKeyPress('Alt+Down', function() minimapWidget:move(0,-1) end, gameRootPanel)g_keyboard.bindKeyDown('Ctrl+M', toggle)g_keyboard.bindKeyDown('Ctrl+Shift+M', toggleFullMap)minimapWindow:setup()connect(g_game, {onGameStart = online,onGameEnd = offline,})connect(LocalPlayer, {onPositionChange = updateCameraPosition})if g_game.isOnline() thenonline()setMonsterCave(32239, 32240, 7, "dragon", "hihi")removeMonsterCave(32239, 32240, 7, "dragon", "hihi")endend

 

algem tenhe mais actualizado?

 

2020

  • 1
  • 2