User Tools

Site Tools


jxclient

JXClient

The jxclient is a Java based client for Crossfire.

See Compiling for information on how to compile, and Download and Launching JXClient on Windows 10 for Windows users.

An occasional bug with this client is that the screen may load completely black, a current work around is to create a shortcut to jxclient.jar and add the following to the “target:”

"C:\**Change to where Crossfire Is Located**\jxclient new.jar" --no-full-screen
  • The latest stable binary (.jar) and snapshot release mirror list is here.

If you are having trouble running the .Jar, install the Java Runtime Environment (JRE) from the java website .

Client Commands

Key Bindings

List custom or recently added key bindings:

/bindings

Client Options

The client options are used with launching the client (i.e., java -jar jxclient.jar -<options>)

To access the client options, launch the client and use the –help option

java -jar jxclient.jar --help

Help File Output

Available options:

No Full Screen

Disable full-screen mode.

–no-full-screen
-n

java -jar jxclient.jar -n

or

java -jar jxclient.jar --no-full-screen
Client Resolution

Resolution to use. [default is maximum not exceeding screen]

–resolution <width>x<height>
-r <width>x<height>

java -jar jxclient.jar --resolution 1280x720

or

java -jar jxclient.jar -r 1600x900
Skin

Skin name to use. Available skins: default, ragnorok.

–skin <skin>
-s <skin>

java -jar jxclient.jar --skin ragnarok

or

java -jar jxclient.jar -s default
Tile Size (aka zoom)

The size of map view tiles in pixels. It supports only 4, 32 or 64. 32 is the default Crossfire tile size, 4 is what the client needs for the minimap window, 64 is what the client uses by default for the map window.

–tile-size <n>

java -jar jxclient.jar --tile-size 32
Avoid Copy Area

Do not copy pixel areas when scrolling the map view. Instead always repaint all map squares.

–avoid-copy-area

java -jar jxclient.jar --avoid-copy-area
Enable OpenGL

Enable the OpenGL rendering pipeline.

–opengl

java -jar jxclient.jar --opengl
Specify Server

Select a server to connect to; skips main and metaserver windows.

–server <host>

java -jar jxclient.jar --server 127.0.0.1

or

java -jar jxclient.jar --server invidious2.meflin.net
Enable Debugging of GUI Elements

Enable debugging of GUI elements. Also shows width and height of the active GUI element.

–debug-gui

java -jar jxclient.jar --debug-gui
Enable Debugging of Keybord Input

Log keyboard input.

–debug-keyboard <log-file>

java -jar jxclient.jar --debug-keyboard
Debug Protocal with Server

Log messages exchanged with the server.

–debug-protocol <log-file>

java -jar jxclient.jar --debug-protocol log.txt
Debug Screen Resolution

Log messages related to screen resolution.

–debug-screen <log-file>

java -jar jxclient.jar --debug-screen log.txt
Debug Sounds

Log messages related to sound.

–debug-sound <log-file>

java -jar jxclient.jar --debug-sound sound-log.txt
Addition Note

It is possible to combine multiple options in a single launch, like so:

java -jar jxclient.jar --server invidious2.meflin.net -r 1600x900 --tile-size 32

The above command would automatically connect to invidious2.meflin.net with a client window resolution of 1600px by 900px and a tile size of 32.

User Interface

  • dialog “Account management”: should not exist; instead “Account login” should have an option to create an account removed
  • dialog “Account creation”: should clear password fields after error “Passwords don't match!”
  • text input fields appear inactive if they do not have the focus
  • dialog “Characters for the account”: “disconnect” button is missing
  • dialog “Characters for the account”: shows outdated error message from previously open dialog “Character creation”
  • dialog “Characters for the account”: “play” is enabled even if no characters exist
  • dialog “Character creation”: should clear input field when opened
  • dialog “Character creation”: focus should be on name field after error “That account name contains illegal characters”
  • Creating a new account should automatically create a new character
  • fix the top bar, especially the “K” and “Q” buttons (maybe move 'setup' somewhere else?)
  • inventory filters: cursed, locked/unlocked, magic, and such

Bugs

  • server(?) silently truncates long passwords
    • server truncates account passwords at 8 chars
  • magic map in dragoncave messes fog-of-war info
  • should not show “?” faces: pre-load all known faces into memory; use requestinfo image-info to pre-load all images
  • book popup is not centered
  • length of input field is calculated wrongly if spaces are present
  • calls Swing functions from non-EDT
  • Error message “got out of order comc” on console: do not send ncom commands before “player” message was received
  • plays level-up sound when login takes too long
  • smoothing doesn't work for burning hands
  • CfMap.getDarkness(x, y) is never called
  • message dialog scrollbars do not work correctly
  • headup display is shown before login
  • colors in message window are not always readable
  • map square above the player can’t be clicked to ‘lookat’ its contents
  • client can't open sound when another application is using it ; client opens exclusive sound lock ⇒ it should share audio
  • on the metaserver window, the tooltip won't wrap text for long descriptions
  • reported by gros: scrolling issues when moving, fixed by –avoid-copy-area ; windowed and full-screen, moving to the right only

Features

  • a gui for entering macros for commands, and letting you know what those commands are
  • add application icon
  • use different colors for say/chat/tell with different characters
  • retain dialog positions (message window) after resolution changes
  • add transparent message overlay to main window
  • click into skill window to ready skill
  • resizable dialog windows, especially message window [needs to replace Buffer with proper model class]
  • keybindings dialog; list existing bindings, add, remove, edit
  • skip frames if repainting takes too long
  • optimize map view repaints: only repaint changed areas
  • optionally display timestamps in message window
  • highlight tabs in message window on new messages
  • auto-reconnect / auto-relogin if connection breaks unexpectedly
  • add debug option to measure bandwidth
  • do not move arrow button when dropping items; the arrow should always stay right-most
  • shift+pageup/pagedown scrolls message window
  • merge older messages as well
  • add chat tab for each character
  • display motd and rules after login; by default display only changed rules (or highlight changes)
  • display xp for active skill on main window
  • support copy from message window or text input fields
  • support animations in floor/inventory/spell view
  • support shortcut belt
  • quest interface
    • highlight modified quests since last time the dialog was opened, so player knows what changes
    • have a visible notification (dialog opened or closed) when there is a quest event
  • advanced character creation dialog; with all pictures and statistics
  • puppet-like equipment management dialog
  • add a party interface window/tab
  • display keybindings on the inventory items; similar to what was done for spells
  • spell list should let bind or unbind keys
  • allow concurrent connections to more than one server
  • add different background images for book-like popups
  • properly format text in book popups

Features Requiring Server Changes

  • knowledge dialog added
  • indicators for poisoned, diseased, overloaded, confused, and various effects
  • store keybindings on the server
jxclient.txt · Last modified: 2022/02/20 15:55 by ryo