Postado Maio 6, 2014 11 anos Este é um post popular. Por: BananaFight > DragonElement 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 Nome: Map Icon Descrição: Adiciona um icone no minimap Autor: Eduardo Vicente (Banana Fight) Versão 1.0 Features: Criar Icones no minimap Instalação dentro de modules/game_minimap/minimap.lua embaixo de : function toggle() if minimapButton:isOn() then minimapWindow:close() minimapButton:setOn(false) else minimapWindow:open() minimapButton:setOn(true) end end Você adiciona a função : 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 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() then online() setMonsterCave(32239, 32240, 7, "dragon", "hihi") removeMonsterCave(32239, 32240, 7, "dragon", "hihi") end end
Postado Maio 6, 2014 11 anos Muito bom, isso irá ajudar muitas pessoas com seus otservs :3 Bruno Carvalho / Ex-Administrador TibiaKing b.camara@live.com Em 26/12/2016 em 05:47, Spraypaint disse: A força da alienação vem dessa fragilidade dos indivíduos, quando apenas conseguem identificar o que os separa e não o que os une. -miltinho
Postado Maio 6, 2014 11 anos legal, da pra usar em servidor nao ats também, não? Ot Design: https://discord.gg/VgtVRNmCD7
Postado Junho 28, 2014 10 anos Que legal! Valeu pelo tuto! Só uma dúvida: ao invés de usar .png, posso usar um .gif animado? Editado: Acabei de testar com .png e não funcionou pra mim. Em OTClient/data/images/game/minimap adicionei um png 11x11 chamado flagteste. Assim está o meu minimap.lua: minimapWidget = nil minimapButton = nil minimapWindow = nil otmm = true preloaded = false fullmapView = false oldZoom = nil oldPos = nil function init() minimapButton = modules.client_topmenu.addCustomRightButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', '/images/ui/pxg/topMenu_icons/minimap_icon', toggle, false) minimapButton:setOn(true) minimapButton:setVisible(false) 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() then online() setMonsterCave(1523, 2102, 7, "teste", "hihi") removeMonsterCave(1523, 2102, 7, "teste", "hihi") end end function terminate() if g_game.isOnline() then saveMap() end disconnect(g_game, { onGameStart = online, onGameEnd = offline, }) disconnect(LocalPlayer, { onPositionChange = updateCameraPosition }) local gameRootPanel = modules.game_interface.getRootPanel() g_keyboard.unbindKeyPress('Alt+Left', gameRootPanel) g_keyboard.unbindKeyPress('Alt+Right', gameRootPanel) g_keyboard.unbindKeyPress('Alt+Up', gameRootPanel) g_keyboard.unbindKeyPress('Alt+Down', gameRootPanel) g_keyboard.unbindKeyDown('Ctrl+M') g_keyboard.unbindKeyDown('Ctrl+Shift+M') minimapWindow:destroy() minimapButton:destroy() end function toggle() if minimapButton:isOn() then minimapWindow:close() minimapButton:setOn(false) minimapButton:setIcon('/images/ui/pxg/topMenu_icons/minimap_icon_apagado') else minimapWindow:open() minimapButton:setOn(true) minimapButton:setIcon('/images/ui/pxg/topMenu_icons/minimap_icon') 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 onMiniWindowClose() minimapButton:setOn(false) end function preload() loadMap(false) preloaded = true end function online() loadMap(not preloaded) updateCameraPosition() minimapButton:setVisible(true) end function offline() saveMap() minimapButton:setVisible(false) end function loadMap(clean) local protocolVersion = g_game.getProtocolVersion() if clean then g_minimap.clean() end if otmm then local minimapFile = '/minimap.otmm' if g_resources.fileExists(minimapFile) then g_minimap.loadOtmm(minimapFile) end else local minimapFile = '/minimap_' .. protocolVersion .. '.otcm' if g_resources.fileExists(minimapFile) then g_map.loadOtcm(minimapFile) end end minimapWidget:load() end function saveMap() local protocolVersion = g_game.getProtocolVersion() if otmm then local minimapFile = '/minimap.otmm' g_minimap.saveOtmm(minimapFile) else local minimapFile = '/minimap_' .. protocolVersion .. '.otcm' g_map.saveOtcm(minimapFile) end minimapWidget:save() end function updateCameraPosition() local player = g_game.getLocalPlayer() if not player then return end local pos = player:getPosition() if not pos then return end if not minimapWidget:isDragging() then if not fullmapView then minimapWidget:setCameraPosition(player:getPosition()) end minimapWidget:setCrossPosition(player:getPosition()) end end function toggleFullMap() if not fullmapView then fullmapView = true minimapWindow:hide() minimapWidget:setParent(modules.game_interface.getRootPanel()) minimapWidget:fill('parent') minimapWidget:setAlternativeWidgetsVisible(true) else fullmapView = false minimapWidget:setParent(minimapWindow:getChildById('contentsPanel')) minimapWidget:fill('parent') minimapWindow:show() minimapWidget:setAlternativeWidgetsVisible(false) end local zoom = oldZoom or 0 local pos = oldPos or minimapWidget:getCameraPosition() oldZoom = minimapWidget:getZoom() oldPos = minimapWidget:getCameraPosition() minimapWidget:setZoom(zoom) minimapWidget:setCameraPosition(pos) end Editado Junho 28, 2014 10 anos por Draswor (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.