Table of Contents
JXClient
The jxclient is a Java based client for Crossfire.
See Compiling for information on how to compile the client on Linux
Also, Download and Launching JXClient on Windows 10 for Windows users.
For Mac OS users, see Download and Launching JXClient.
Under Linux, visit Download and Launching JXClient.
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 ragnorok
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
JXClient has some hard-coded 32 x 32 pixel settings. Therefore other tile sizes will probably not work (.e., 24 x 24px.)
The same applies for tile sets: JXClient simply only supports the default tile set.
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 accountremoveddialog “Account creation”: should clear password fields after error “Passwords don't match!”text input fields appear inactive if they do not have the focusdialog “Characters for the account”: “disconnect” button is missingdialog “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 openeddialog “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 dialogaddedindicators for poisoned, diseased, overloaded, confused, and various effects- store keybindings on the server