Open source development of the game Knight Online. This is a reversed engineered old version of the game aiming to replicate the nostalgic experience we all once had <3
The 1264 UIFs introduced stackable HP/MP bars in state-bar.
This also requires server and client side implementation for N3PKT_ZONEABILITY (0x5E) with its sub-opcode 2.
We now have 3 different bars stacked on each other that need to change visibility based on the current state of the user.
The state can be either dot (bleeding red), poison (purple) and speed (green).
The server currently does not have implementation for it, hence it's needed to add calls where applicable to send such information so that the client will update the stackable bars depending on the state.
Tasks
[ ] [client] Load the relevant UI elements (lasting, slow, drop) and hide their visibility
[ ] [client] Ensure when we update hp (CUIStateBar::UpdateHP) that they also get updated
[ ] [client] Implement a call in CUIStateBar::Tick to call CUIStateBar::TickAffectingHP every frame where depending on the state it will toggle the stackable bars visibility
[ ] [client] Allow the client to receive packet to update status via N3PKT_ZONEABILITY packet (CUIStateBar::MsgRecv_UserStatusChange)
[ ] [server] Change the state of the user depending on the magic attack type and send the state via N3PKT_ZONEABILITY
Description
The 1264 UIFs introduced stackable HP/MP bars in state-bar.
This also requires server and client side implementation for
N3PKT_ZONEABILITY
(0x5E) with its sub-opcode 2.We now have 3 different bars stacked on each other that need to change visibility based on the current state of the user. The state can be either dot (bleeding red), poison (purple) and speed (green).
The server currently does not have implementation for it, hence it's needed to add calls where applicable to send such information so that the client will update the stackable bars depending on the state.
Tasks
CUIStateBar::UpdateHP
) that they also get updatedCUIStateBar::Tick
to callCUIStateBar::TickAffectingHP
every frame where depending on the state it will toggle the stackable bars visibilityN3PKT_ZONEABILITY
packet (CUIStateBar::MsgRecv_UserStatusChange
)N3PKT_ZONEABILITY