Ezzz
Developer of Nostalrius and The Violet Project
How can I set music when the character is inside position range 1000x1000x6 >> 1300 x 1300x9?
Is there a mod?.
Is there a mod?.
MAP_SHADERS = {
{ name = 'Default', frag = '/shaders/default.frag' },
{ name = 'Bloom', frag = '/shaders/bloom.frag'},
{ name = 'Sepia', frag ='/shaders/sepia.frag' },
{ name = 'Grayscale', frag ='/shaders/grayscale.frag' },
{ name = 'Pulse', frag = '/shaders/pulse.frag' },
{ name = 'Old Tv', frag = '/shaders/oldtv.frag' },
{ name = 'Fog', frag = '/shaders/fog.frag', tex1 = '/shaders/clouds.png' },
{ name = 'Party', frag = '/shaders/party.frag' },
{ name = 'Radial Blur', frag ='/shaders/radialblur.frag' },
{ name = 'Zomg', frag ='/shaders/zomg.frag' },
{ name = 'Heat', frag ='/shaders/heat.frag' },
{ name = 'Noise', frag ='/shaders/noise.frag' },
}
local lastShader
local areas = {
{from = {x = 1191, y = 1028, z = 7}, to = {x = 1245, y = 1079, z = 7}, name = 'Fog'},
}
function isInRange(position, fromPosition, toPosition)
return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.z >= fromPosition.z and position.x <= toPosition.x and position.y <= toPosition.y and position.z <= toPosition.z)
end
function init()
if not g_graphics.canUseShaders() then return end
for _i,opts in pairs(MAP_SHADERS) do
local shader = g_shaders.createFragmentShader(opts.name, opts.frag)
if opts.tex1 then
shader:addMultiTexture(opts.tex1)
end
if opts.tex2 then
shader:addMultiTexture(opts.tex2)
end
end
connect(LocalPlayer, {
onPositionChange = updatePosition
})
local map = modules.game_interface.getMapPanel()
map:setMapShader(g_shaders.getShader('Default'))
end
function terminate()
end
function updatePosition()
local player = g_game.getLocalPlayer()
if not player then return end
local pos = player:getPosition()
if not pos then return end
local name = 'Default'
for _, TABLE in ipairs(areas) do
if isInRange(pos, TABLE.from, TABLE.to) then
name = TABLE.name
end
end
if lastShader and lastShader == name then return true end
lastShader = name
local map = modules.game_interface.getMapPanel()
map:setMapShader(g_shaders.getShader(name))
end
Code:MAP_SHADERS = { { name = 'Default', frag = '/shaders/default.frag' }, { name = 'Bloom', frag = '/shaders/bloom.frag'}, { name = 'Sepia', frag ='/shaders/sepia.frag' }, { name = 'Grayscale', frag ='/shaders/grayscale.frag' }, { name = 'Pulse', frag = '/shaders/pulse.frag' }, { name = 'Old Tv', frag = '/shaders/oldtv.frag' }, { name = 'Fog', frag = '/shaders/fog.frag', tex1 = '/shaders/clouds.png' }, { name = 'Party', frag = '/shaders/party.frag' }, { name = 'Radial Blur', frag ='/shaders/radialblur.frag' }, { name = 'Zomg', frag ='/shaders/zomg.frag' }, { name = 'Heat', frag ='/shaders/heat.frag' }, { name = 'Noise', frag ='/shaders/noise.frag' }, } local lastShader local areas = { {from = {x = 1191, y = 1028, z = 7}, to = {x = 1245, y = 1079, z = 7}, name = 'Fog'}, } function isInRange(position, fromPosition, toPosition) return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.z >= fromPosition.z and position.x <= toPosition.x and position.y <= toPosition.y and position.z <= toPosition.z) end function init() if not g_graphics.canUseShaders() then return end for _i,opts in pairs(MAP_SHADERS) do local shader = g_shaders.createFragmentShader(opts.name, opts.frag) if opts.tex1 then shader:addMultiTexture(opts.tex1) end if opts.tex2 then shader:addMultiTexture(opts.tex2) end end connect(LocalPlayer, { onPositionChange = updatePosition }) local map = modules.game_interface.getMapPanel() map:setMapShader(g_shaders.getShader('Default')) end function terminate() end function updatePosition() local player = g_game.getLocalPlayer() if not player then return end local pos = player:getPosition() if not pos then return end local name = 'Default' for _, TABLE in ipairs(areas) do if isInRange(pos, TABLE.from, TABLE.to) then name = TABLE.name end end if lastShader and lastShader == name then return true end lastShader = name local map = modules.game_interface.getMapPanel() map:setMapShader(g_shaders.getShader(name)) end
you can adapt for music... -but i recommend to use 'onMove' in serv-side for the table... ;x-