Server emulator for Zenless Zone Zero 1.1.1
Find a file
YYHEggEgg 28864ff1e4 Teleport Map & Switching Dynamic Wallpaper Support, Gacha optimization (#2)
## Abstract

This PR implements

- Showing Teleports on map
- Quick Menu usage
- Dynamic Wallpaper switching
- Settings UP for Bangboo pool (via CLI)

## Support list

- The support of Teleport with map.
- Unlocking the 3 buttons (Interknow, DMs, Map) as a prerequisite of the previous feature. By pressing 'F' you can also modify the buttons in Quick Menu.
- Changing Dynamic Wallpaper to a specific one instead of being randomly chosen. **Notice that you can't use one's Dynamic Wallpaper if you don't own this agent.**
- Fixed some Gacha bugs, including:
  - Obtained items won't be sent to your bag unless you're pulling the standard banner;
  - Obtained items won't show in bag until relogin;
- Alternative command `gacha up` to choose the UP Bangboo. Start with `gacha up [player_uid]` and follow the guide to fill params.

## Principle

- Player's `UnlockModelBin` stores Quick Menu data, with the player's chosen buttons and their positions.
- Separate Gacha's DTO & Saving model to make it more standardized, and ensure ID validation is always performed.
- Player's bag information is now sync to client appropriately after finishing any gacha operations.
- `gacha up` search for pools with a `chooseable` Category Guarantee Policy, then list included items if user has provided the target pool's `gacha_schedule_id`.

## Known issues

- **Specifically for 1.1 Beta**, teleport may meet these issues leading to a 'black screen', forcing you to restart the client (or use `player kick` command as an alternative).
  - Don't try to teleport to `治安局光映分署`, it won't succeed. This is the 32nd teleport out of the 31 ones defined visible in assets.
  - Don't close the page after opening map. Teleport to somewhere.
- `gacha up` command is an alternative to in-game operation. You still can not see any bangboos in the collection when choosing Bangboo.

Co-authored-by: YYHEggEgg <53960525+YYHEggEgg@users.noreply.github.com>
Reviewed-on: NewEriduPubSec/JaneDoe-ZS#2
Co-authored-by: YYHEggEgg <yyheggegg@xeondev.com>
Co-committed-by: YYHEggEgg <yyheggegg@xeondev.com>
2024-08-06 17:15:04 +00:00
assets Teleport Map & Switching Dynamic Wallpaper Support, Gacha optimization (#2) 2024-08-06 17:15:04 +00:00
nap_common server version: milestone 2 reached (0.2.0) 2024-08-05 17:59:18 +03:00
nap_data Teleport Map & Switching Dynamic Wallpaper Support, Gacha optimization (#2) 2024-08-06 17:15:04 +00:00
nap_gameserver Teleport Map & Switching Dynamic Wallpaper Support, Gacha optimization (#2) 2024-08-06 17:15:04 +00:00
nap_proto Teleport Map & Switching Dynamic Wallpaper Support, Gacha optimization (#2) 2024-08-06 17:15:04 +00:00
nap_sdk simple CLI command system 2024-07-22 19:47:04 +03:00
.gitignore Hi 2024-07-20 15:59:36 +03:00
Cargo.toml chore: move new dependencies to workspace's Cargo.toml 2024-08-04 16:20:31 +03:00
LICENSE Initial commit 2024-07-20 10:51:17 +00:00
README.md README: update feature list 2024-08-05 15:08:00 +00:00
screenshot.png Hi 2024-07-20 15:59:36 +03:00

JaneDoe-ZS

Zenless Zone Zero 1.1.1 server emulator written in Rust.

screenshot

Current features

  • Logging in
  • Fully playable prologue
  • HollowDeepDive with Combat and Rally commissions
  • Archive (playable cutscenes and battles)
  • Open world
  • World exploration with any character (can be changed with a command)
  • Player progress saving with PostgreSQL
  • Player management command system
  • Training

Requirements

NOTE: Nightly Rust is required to build the project. To install it, first install Rust itself, then run the following command:

rustup toolchain install nightly
rustup default nightly

Setup

Server

a) building from sources
git clone https://git.xeondev.com/NewEriduPubSec/JaneDoe-ZS.git
cd JaneDoe-ZS
cargo run --bin nap-sdk
cargo run --bin nap-gameserver
b) using pre-built binaries

Navigate to the Releases page and download the latest release for your platform.
Launch nap-sdk and nap-gameserver

Database

You have to put your PostgreSQL database credentials in both nap_sdk.toml and nap_gameserver.toml configuration files.

[database]
username = "root"
password = "root"
host = "localhost:5432"
name = "nap"

Connecting

Get ZZZ 1.1.1 beta client, apply encryption patch and follow its instructions.
NOTE: You should create a game account. By default, you can do so at http://127.0.0.1:21000/account/register

Troubleshooting

Visit our discord if you have any questions/issues

Support

If you want to support this project, feel free to send a tip via boosty