Jump to content

Mostrando suas Hunts


BananaFight

Recommended Posts

 

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

 

Edited by Bennyyw
Link to comment
Share on other sites

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

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

Edited by Slicer
Link to comment
Share on other sites

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

Edited by BananaFight
Link to comment
Share on other sites

  • 3 weeks later...

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...
  • 1 year later...
  • 10 months later...
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

Link to comment
Share on other sites

×
×
  • Create New...