mirror of
https://github.com/edubart/otclient.git
synced 2025-10-14 03:24:55 +02:00
Fixed an issue with the battle list filter.
More work on the minimap, interface changes, fixed direction controls, fixed reseting, fixed some draw things (needs some more work to finish). Fixed a bug in the battle list causing Battle.onFollow(creature) to execute when there was no follow.
This commit is contained in:
@@ -130,13 +130,13 @@ function Battle.doCreatureFitFilters(creature)
|
||||
local hideSkulls = hideSkullsButton:isChecked()
|
||||
local hideParty = hidePartyButton:isChecked()
|
||||
|
||||
if hidePlayers and not creature:asMonster() and not creature:asNpc() then
|
||||
if hidePlayers and creature:asPlayer() then
|
||||
return false
|
||||
elseif hideNPCs and creature:asNpc() then
|
||||
return false
|
||||
elseif hideMonsters and creature:asMonster() then
|
||||
return false
|
||||
elseif hideSkulls and creature:getSkull() == SkullNone then
|
||||
elseif hideSkulls and creature:asPlayer() and creature:getSkull() == SkullNone then
|
||||
return false
|
||||
elseif hideParty and creature:getShield() > ShieldWhiteBlue then
|
||||
return false
|
||||
@@ -359,6 +359,7 @@ function Battle.checkBattleButton(battleButton)
|
||||
end
|
||||
|
||||
if battleButton.isTarget or battleButton.isFollowed then
|
||||
-- set new last battle button switched
|
||||
if lastBattleButtonSwitched and lastBattleButtonSwitched ~= battleButton then
|
||||
lastBattleButtonSwitched.isTarget = false
|
||||
lastBattleButtonSwitched.isFollowed = false
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 6.6 KiB |
BIN
modules/game_minimap/floor_down.png
Normal file
BIN
modules/game_minimap/floor_down.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
BIN
modules/game_minimap/floor_up.png
Normal file
BIN
modules/game_minimap/floor_up.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
@@ -30,9 +30,16 @@ function onMinimapMouseWheel(self, mousePos, direction)
|
||||
end
|
||||
end
|
||||
|
||||
--[[
|
||||
Known Issue (TODO):
|
||||
If you move the minimap compass directions and
|
||||
you change floor it will not update the minimap.
|
||||
]]
|
||||
-- public functions
|
||||
function Minimap.init()
|
||||
connect(g_game, { onGameStart = Minimap.reset })
|
||||
connect(g_game, { onGameStart = Minimap.reset,
|
||||
onForceWalk = Minimap.center } )
|
||||
|
||||
g_keyboard.bindKeyDown('Ctrl+M', Minimap.toggle)
|
||||
|
||||
minimapButton = TopMenu.addGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', 'minimap.png', Minimap.toggle)
|
||||
@@ -70,7 +77,9 @@ function Minimap.init()
|
||||
end
|
||||
|
||||
function Minimap.terminate()
|
||||
disconnect(g_game, { onGameStart = Minimap.reset })
|
||||
disconnect(g_game, { onGameStart = Minimap.reset,
|
||||
onForceWalk = Minimap.center } )
|
||||
|
||||
g_keyboard.unbindKeyDown('Ctrl+M')
|
||||
|
||||
minimapButton:destroy()
|
||||
@@ -102,6 +111,12 @@ function Minimap.reset()
|
||||
minimapWidget:setZoom(DEFAULT_ZOOM)
|
||||
end
|
||||
|
||||
function Minimap.center()
|
||||
local player = g_game.getLocalPlayer()
|
||||
if not player then return end
|
||||
minimapWidget:followCreature(player)
|
||||
end
|
||||
|
||||
function Minimap.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
|
||||
@@ -111,32 +126,23 @@ compassZones.west = {x = 0, y = 30, posx = -1, posy = 0}
|
||||
compassZones.north = {x = 30, y = 0, posx = 0, posy = -1}
|
||||
compassZones.south = {x = 30, y = 57, posx = 0, posy = 1}
|
||||
compassZones.east = {x = 57, y = 30, posx = 1, posy = 0}
|
||||
compassZones.center = {x = 30, y = 30, posx = 0, posy = 0, center = true}
|
||||
function Minimap.compassClick(self, mousePos)
|
||||
local compassPos = self:getRect()
|
||||
local pos = {x = mousePos.x-compassPos.x, y = mousePos.y-compassPos.y}
|
||||
local move = {x = 0, y = 0}
|
||||
local center = false
|
||||
for i,v in pairs(compassZones) do
|
||||
local lowPos = {x = v.x-15, y = v.y-15}
|
||||
local highPos = {x = v.x+15, y = v.y+15}
|
||||
if Minimap.isClickInRange(pos, lowPos, highPos) then
|
||||
move.x = move.x + v.posx * minimapWidget:getZoom()/10
|
||||
move.y = move.y + v.posy * minimapWidget:getZoom()/10
|
||||
if v.center then center = true end
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if center then
|
||||
local player = g_game.getLocalPlayer()
|
||||
if not player then return end
|
||||
minimapWidget:followCreature(player)
|
||||
else
|
||||
local cameraPos = minimapWidget:getCameraPosition()
|
||||
local pos = {x = cameraPos.x + move.x, y = cameraPos.y + move.y, z = cameraPos.z}
|
||||
minimapWidget:setCameraPosition(pos)
|
||||
end
|
||||
local cameraPos = minimapWidget:getCameraPosition()
|
||||
local pos = {x = cameraPos.x + move.x, y = cameraPos.y + move.y, z = cameraPos.z}
|
||||
minimapWidget:setCameraPosition(pos)
|
||||
end
|
||||
|
||||
function Minimap.onButtonClick(id)
|
||||
|
@@ -1,3 +1,30 @@
|
||||
MapControl < Button
|
||||
size: 16 16
|
||||
|
||||
$pressed:
|
||||
image-clip: 0 0 16 16
|
||||
|
||||
$hover !pressed:
|
||||
image-clip: 0 16 16 16
|
||||
|
||||
$!pressed !hover:
|
||||
image-clip: 0 32 16 16
|
||||
|
||||
$disabled:
|
||||
image-color: #ffffff88
|
||||
|
||||
FloorUpControl < MapControl
|
||||
image-source: /game_minimap/floor_up.png
|
||||
|
||||
FloorDownControl < MapControl
|
||||
image-source: /game_minimap/floor_down.png
|
||||
|
||||
//ZoomOutControl < MapControl
|
||||
//image-source: /game_minimap/zoom_out.png
|
||||
|
||||
//ZoomInControl < MapControl
|
||||
//image-source: /game_minimap/zoom_in.png
|
||||
|
||||
MiniWindow
|
||||
id: minimapWindow
|
||||
!text: tr('Minimap')
|
||||
@@ -17,46 +44,74 @@ MiniWindow
|
||||
UIButton
|
||||
id: compass
|
||||
image-source: /game_minimap/compass.png
|
||||
color: #ffffff
|
||||
anchors.left: minimap.right
|
||||
anchors.top: minimap.top
|
||||
size: 60 60
|
||||
margin-top: 3
|
||||
margin-left: 5
|
||||
@onClick: function(...) Minimap.compassClick(...) end
|
||||
|
||||
UIButton
|
||||
id: compassReset
|
||||
text: Reset
|
||||
font: verdana-11px-rounded
|
||||
anchors.left: compass.left
|
||||
anchors.top: compass.top
|
||||
margin-top: 25
|
||||
margin-left: 14
|
||||
@onClick: function(...) Minimap.center(...) end
|
||||
$pressed:
|
||||
color: #eb9f4f88
|
||||
margin-top: 26
|
||||
margin-left: 15
|
||||
|
||||
$hover !pressed:
|
||||
color: #eb9f4f
|
||||
|
||||
$!pressed !hover:
|
||||
color: #ffffff
|
||||
margin-top: 25
|
||||
margin-left: 14
|
||||
|
||||
$disabled:
|
||||
image-color: #ffffff88
|
||||
|
||||
Button
|
||||
id: zoomOut
|
||||
text: -
|
||||
size: 20 20
|
||||
font: terminus-14px-bold
|
||||
size: 16 16
|
||||
anchors.left: minimap.right
|
||||
anchors.top: compass.bottom
|
||||
margin-top: 5
|
||||
margin-left: 15
|
||||
margin-top: 10
|
||||
margin-left: 10
|
||||
enabled: true
|
||||
@onClick: Minimap.onButtonClick(self:getId())
|
||||
|
||||
Button
|
||||
id: zoomIn
|
||||
text: +
|
||||
size: 20 20
|
||||
size: 16 16
|
||||
anchors.left: zoomOut.left
|
||||
anchors.top: zoomOut.bottom
|
||||
margin-top: 2
|
||||
margin-top: 4
|
||||
enabled: true
|
||||
@onClick: Minimap.onButtonClick(self:getId())
|
||||
|
||||
Button
|
||||
FloorUpControl
|
||||
id: levelUp
|
||||
text: /\
|
||||
size: 20 20
|
||||
anchors.left: zoomOut.right
|
||||
anchors.top: zoomOut.top
|
||||
margin-left: 2
|
||||
margin-left: 15
|
||||
enabled: true
|
||||
@onClick: Minimap.onButtonClick(self:getId())
|
||||
|
||||
Button
|
||||
FloorDownControl
|
||||
id: levelDown
|
||||
text: \/
|
||||
size: 20 20
|
||||
anchors.left: zoomIn.right
|
||||
anchors.top: zoomIn.top
|
||||
margin-left: 2
|
||||
margin-left: 15
|
||||
enabled: true
|
||||
@onClick: Minimap.onButtonClick(self:getId())
|
||||
|
||||
|
BIN
modules/game_minimap/zoom_in.png
Normal file
BIN
modules/game_minimap/zoom_in.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
BIN
modules/game_minimap/zoom_out.png
Normal file
BIN
modules/game_minimap/zoom_out.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
Reference in New Issue
Block a user