otclient-redemption/modules/client_options/data_options.lua
2025-04-04 13:41:31 -03:00

474 lines
19 KiB
Lua

return {
vsync = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
g_window.setVerticalSync(value)
end
},
showFps = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
modules.client_topmenu.setFpsVisible(value)
end
},
showPing = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
modules.client_topmenu.setPingVisible(value)
end
},
fullscreen = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
g_window.setFullscreen(value)
end
},
classicControl = g_platform.isMobile() and true or false,
smartWalk = false,
autoChaseOverride = true,
moveStack = false,
showStatusMessagesInConsole = true,
showEventMessagesInConsole = true,
showInfoMessagesInConsole = true,
showTimestampsInConsole = true,
showLevelsInConsole = true,
showPrivateMessagesInConsole = true,
showOthersStatusMessagesInConsole = false,
showPrivateMessagesOnScreen = true,
showLootMessagesOnScreen = true,
showOutfitsOnList = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
CharacterList.updateCharactersAppearances(value)
end
},
openMaximized = false,
backgroundFrameRate = {
value = 201,
action = function(value, options, controller, panels, extraWidgets)
local text, v = value, value
if value <= 0 or value >= 201 then
text = 'max'
v = 0
end
panels.graphicsPanel:recursiveGetChildById('backgroundFrameRate'):setText(tr('Game framerate limit: %s', text))
g_app.setMaxFps(v)
end
},
enableAudio = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
if g_sounds then
g_sounds.setAudioEnabled(value)
end
if value then
extraWidgets.audioButton:setIcon('/images/topbuttons/button_mute_up')
else
extraWidgets.audioButton:setIcon('/images/topbuttons/button_mute_pressed')
end
end
},
enableMusicSound = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
if g_sounds then
g_sounds.getChannel(SoundChannels.Music):setEnabled(value)
end
end
},
musicSoundVolume = {
value = 100,
action = function(value, options, controller, panels, extraWidgets)
if g_sounds then
g_sounds.getChannel(SoundChannels.Music):setGain(value / 100)
end
panels.soundPanel:recursiveGetChildById('musicSoundVolume'):setText(tr('Music volume: %d', value))
end
},
enableLights = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
panels.gameMapPanel:setDrawLights(value and options.ambientLight.value < 100)
panels.graphicsEffectsPanel:recursiveGetChildById('ambientLight'):setEnabled(value)
end
},
limitVisibleDimension = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
panels.gameMapPanel:setLimitVisibleDimension(value)
end
},
floatingEffect = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
g_map.setFloatingEffect(value)
end
},
ambientLight = {
value = 0,
action = function(value, options, controller, panels, extraWidgets)
panels.graphicsEffectsPanel:recursiveGetChildById('ambientLight'):setText(string.format(
'Ambient light: %s%%', value))
panels.gameMapPanel:setMinimumAmbientLight(value / 100)
panels.gameMapPanel:setDrawLights(options.enableLights.value)
end
},
displayNames = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
panels.gameMapPanel:setDrawNames(value)
if g_gameConfig.isDrawingInformationByWidget() then
modules.game_creatureinformation.toggleInformation()
end
end
},
displayHealth = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
panels.gameMapPanel:setDrawHealthBars(value)
if g_gameConfig.isDrawingInformationByWidget() then
modules.game_creatureinformation.toggleInformation()
end
end
},
displayMana = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
panels.gameMapPanel:setDrawManaBar(value)
if g_gameConfig.isDrawingInformationByWidget() then
modules.game_creatureinformation.toggleInformation()
end
end
},
displayText = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
g_app.setDrawTexts(value)
end
},
walkTurnDelay = {
value = 100,
action = function(value, options, controller, panels, extraWidgets)
panels.generalPanel:recursiveGetChildById('walkTurnDelay'):setText(string.format(
'Walk delay after turn: %sms',
value))
end
},
walkTeleportDelay = {
value = 50,
action = function(value, options, controller, panels, extraWidgets)
panels.generalPanel:recursiveGetChildById('walkTeleportDelay'):setText(string.format(
'Walk delay after teleport: %sms',
value))
end
},
walkStairsDelay = {
value = 50,
action = function(value, options, controller, panels, extraWidgets)
panels.generalPanel:recursiveGetChildById('walkStairsDelay'):setText(string.format(
'Walk delay after floor change: %sms',
value))
end
},
hotkeyDelay = {
value = 70,
action = function(value, options, controller, panels, extraWidgets)
panels.generalPanel:recursiveGetChildById('hotkeyDelay'):setText(string.format('Hotkey delay: %sms', value))
end
},
crosshair = {
value = 'default',
action = function(value, options, controller, panels, extraWidgets)
local crossPath = '/images/game/crosshair/'
local newValue = value
if newValue == 'disabled' then
newValue = nil
end
panels.gameMapPanel:setCrosshairTexture(newValue and crossPath .. newValue or nil)
panels.interface:recursiveGetChildById('crosshair'):setCurrentOptionByData(newValue, true)
end
},
enableHighlightMouseTarget = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
panels.gameMapPanel:setDrawHighlightTarget(value)
end
},
antialiasingMode = {
value = 1,
action = function(value, options, controller, panels, extraWidgets)
panels.gameMapPanel:setAntiAliasingMode(value)
panels.graphicsPanel:recursiveGetChildById('antialiasingMode'):setCurrentOptionByData(value, true)
end
},
shadowFloorIntensity = {
value = 30,
action = function(value, options, controller, panels, extraWidgets)
panels.graphicsEffectsPanel:recursiveGetChildById('shadowFloorIntensity'):setText(string.format(
'Shadow floor Intensity: %s%%', value))
panels.gameMapPanel:setShadowFloorIntensity(1 - (value / 100))
end
},
optimizeFps = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
g_app.optimize(value)
end
},
forceEffectOptimization = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
g_app.forceEffectOptimization(value)
end
},
drawEffectOnTop = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
g_app.setDrawEffectOnTop(value)
end
},
floorViewMode = {
value = 1,
action = function(value, options, controller, panels, extraWidgets)
panels.gameMapPanel:setFloorViewMode(value)
panels.graphicsEffectsPanel:recursiveGetChildById('floorViewMode'):setCurrentOptionByData(value, true)
local fadeMode = value == 1
panels.graphicsEffectsPanel:recursiveGetChildById('floorFading'):setEnabled(fadeMode)
end
},
floorFading = {
value = 500,
action = function(value, options, controller, panels, extraWidgets)
panels.graphicsEffectsPanel:recursiveGetChildById('floorFading'):setText(string.format('Floor Fading: %s ms',
value))
panels.gameMapPanel:setFloorFading(tonumber(value))
end
},
asyncTxtLoading = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
if g_game.isUsingProtobuf() then
value = true
elseif g_app.isEncrypted() then
local asyncWidget = panels.graphicsPanel:recursiveGetChildById('asyncTxtLoading')
asyncWidget:setEnabled(false)
asyncWidget:setChecked(false)
return
end
g_app.setLoadingAsyncTexture(value)
end
},
hudScale = {
event = nil,
value = g_platform.isMobile() and 2 or 0,
action = function(value, options, controller, panels, extraWidgets)
value = value / 2
if options.hudScale.event ~= nil then
removeEvent(options.hudScale.event)
end
options.hudScale.event = scheduleEvent(function()
g_app.setHUDScale(math.max(value + 0.5, 1))
options.hudScale.event = nil
end, 250)
local hudWidget = panels.interfaceHUD:recursiveGetChildById('hudScale')
hudWidget:setText(string.format('HUD Scale: %sx', math.max(value + 0.5, 1)))
end
},
creatureInformationScale = {
value = g_platform.isMobile() and 2 or 0,
action = function(value, options, controller, panels, extraWidgets)
if value == 0 then
value = g_window.getDisplayDensity() - 0.5
else
value = value / 2
end
g_app.setCreatureInformationScale(math.max(value + 0.5, 1))
panels.interfaceHUD:recursiveGetChildById('creatureInformationScale'):setText(string.format(
'Creature Information Scale: %sx', math.max(value + 0.5, 1)))
end
},
staticTextScale = {
value = g_platform.isMobile() and 2 or 0,
action = function(value, options, controller, panels, extraWidgets)
if value == 0 then
value = g_window.getDisplayDensity() - 0.5
else
value = value / 2
end
g_app.setStaticTextScale(math.max(value + 0.5, 1))
panels.interfaceHUD:recursiveGetChildById('staticTextScale'):setText(string.format('Message Scale: %sx',
math.max(value + 0.5, 1)))
end
},
animatedTextScale = {
value = g_platform.isMobile() and 2 or 0,
action = function(value, options, controller, panels, extraWidgets)
if value == 0 then
value = g_window.getDisplayDensity() - 0.5
else
value = value / 2
end
g_app.setAnimatedTextScale(math.max(value + 0.5, 1))
panels.interfaceHUD:recursiveGetChildById('animatedTextScale'):setText(
tr('Animated Message Scale: %sx', math.max(value + 0.5, 1)))
end
},
showLeftExtraPanel = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
modules.game_interface.getLeftExtraPanel():setOn(value)
end
},
showLeftPanel = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
modules.game_interface.getLeftPanel():setOn(value)
end
},
showRightExtraPanel = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
modules.game_interface.getRightExtraPanel():setOn(value)
end
},
showActionbar = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
modules.game_actionbar.setActionBarVisible(value)
end
},
showSpellGroupCooldowns = {
value = true,
action = function(value, options, controller, panels, extraWidgets)
modules.game_cooldown.setSpellGroupCooldownsVisible(value)
end
},
dontStretchShrink = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
addEvent(function()
modules.game_interface.updateStretchShrink()
end)
end
},
setEffectAlphaScroll = {
value = 100,
action = function(value, options, controller, panels, extraWidgets)
g_client.setEffectAlpha(value / 100)
panels.graphicsEffectsPanel:recursiveGetChildById('setEffectAlphaScroll'):setText(tr('Opacity Effect: %s%%',
value))
end
},
setMissileAlphaScroll = {
value = 100,
action = function(value, options, controller, panels, extraWidgets)
g_client.setMissileAlpha(value / 100)
panels.graphicsEffectsPanel:recursiveGetChildById('setMissileAlphaScroll'):setText(tr(
'Opacity Missile: %s%%', value))
end
},
distFromCenScrollbar = {
value = 0,
action = function(value, options, controller, panels, extraWidgets)
local bar = modules.game_healthcircle.optionPanel:recursiveGetChildById('distFromCenScrollbar')
bar:setText(tr('Distance: %s', bar:recursiveGetChildById('valueBar'):getValue()))
modules.game_healthcircle.setDistanceFromCenter(bar:recursiveGetChildById('valueBar'):getValue())
end
},
opacityScrollbar = {
value = 0,
action = function(value, options, controller, panels, extraWidgets)
local bar = modules.game_healthcircle.optionPanel:recursiveGetChildById('opacityScrollbar')
bar:setText(tr('Opacity: %s', bar:recursiveGetChildById('valueBar'):getValue() / 100))
modules.game_healthcircle.setCircleOpacity(bar:recursiveGetChildById('valueBar'):getValue() / 100)
end
},
profile = {
value = 1,
},
rightJoystick = {
value = false,
action = function(value, options, controller, panels, extraWidgets)
if not g_platform.isMobile() then return end
if value == true then
modules.game_shortcuts.getPanel():breakAnchors()
modules.game_shortcuts.getPanel():addAnchor(AnchorBottom, "parent", AnchorBottom)
modules.game_shortcuts.getPanel():addAnchor(AnchorLeft, "parent", AnchorLeft)
modules.game_joystick.getPanel():breakAnchors()
modules.game_joystick.getPanel():addAnchor(AnchorBottom, "parent", AnchorBottom)
modules.game_joystick.getPanel():addAnchor(AnchorRight, "parent", AnchorRight)
else
modules.game_joystick.getPanel():breakAnchors()
modules.game_joystick.getPanel():addAnchor(AnchorBottom, "parent", AnchorBottom)
modules.game_joystick.getPanel():addAnchor(AnchorLeft, "parent", AnchorLeft)
modules.game_shortcuts.getPanel():breakAnchors()
modules.game_shortcuts.getPanel():addAnchor(AnchorBottom, "parent", AnchorBottom)
modules.game_shortcuts.getPanel():addAnchor(AnchorRight, "parent", AnchorRight)
end
end
},
showExpiryInInvetory = {
value = true,
event = nil,
action = function(value, options, controller, panels, extraWidgets)
if options.showExpiryInContainers.event ~= nil then
removeEvent(options.showExpiryInInvetory.event)
end
options.showExpiryInInvetory.event = scheduleEvent(function()
modules.game_inventory.reloadInventory()
options.showExpiryInInvetory.event = nil
end, 100)
end
},
showExpiryInContainers = {
value = true,
event = nil,
action = function(value, options, controller, panels, extraWidgets)
if options.showExpiryInContainers.event ~= nil then
removeEvent(options.showExpiryInContainers.event)
end
options.showExpiryInContainers.event = scheduleEvent(function()
modules.game_containers.reloadContainers()
options.showExpiryInContainers.event = nil
end, 100)
end
},
showExpiryOnUnusedItems = true,
framesRarity = {
value = 'frames',
event = nil,
action = function(value, options, controller, panels, extraWidgets)
local newValue = value
if newValue == 'None' then
newValue = nil
end
panels.interface:recursiveGetChildById('frames'):setCurrentOptionByData(newValue, true)
if options.framesRarity.event ~= nil then
removeEvent(options.framesRarity.event)
end
options.framesRarity.event = scheduleEvent(function()
modules.game_containers.reloadContainers()
options.framesRarity.event = nil
end, 100)
end
},
autoSwitchPreset = false,
listKeybindsPanel = {
action = function(value, options, controller, panels, extraWidgets)
listKeybindsComboBox(value)
end
},
}