mirror of
https://github.com/mehah/otclient
synced 2026-08-15 16:29:06 -04:00
474 lines
19 KiB
Lua
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
|
|
},
|
|
}
|