===== JXClient ===== The jxclient is a Java based client for Crossfire. See [[jxclient:compiling|Compiling]] for information on how to compile the client on Linux Also, [[jxclient-windows|Download and Launching JXClient on Windows 10]] for Windows users. For Mac OS users, see [[jxclient-macosx|Download and Launching JXClient]]. Under Linux, visit [[jxclient-linux|Download and Launching JXClient]]. If you are having trouble running the .Jar, install the Java Runtime Environment (JRE) from the [[https://www.java.com|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 -) 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 x''\\ ''-r x''\\ java -jar jxclient.jar --resolution 1280x720 or java -jar jxclient.jar -r 1600x900 == Skin == Skin name to use. Available skins: default, ragnorok. ''--skin ''\\ ''-s ''\\ 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 ''\\ 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 '' 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 ''\\ java -jar jxclient.jar --debug-keyboard == Debug Protocal with Server == Log messages exchanged with the server. ''--debug-protocol ''\\ java -jar jxclient.jar --debug-protocol log.txt == Debug Screen Resolution == Log messages related to screen resolution. ''--debug-screen ''\\ java -jar jxclient.jar --debug-screen log.txt == Debug Sounds == Log messages related to sound. ''--debug-sound ''\\ 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