Ningguang
Practical config
Use ningguang in configs. Aliases: ning
Code
ningguang char lvl=90/90 cons=0 talent=9,9,9;
ningguang add weapon="favoniussword" refine=5 lvl=90/90;
ningguang add set="emblemofseveredfate" count=4;
ningguang add stats hp=4780 atk=311 atk%=0.466 cr=0.311 cd=0.622 er=0.110;Combo recipes
Jade count charger
Build Star Jades before charged attack.
Code
while .ningguang.jadeCount < 3 {
ningguang attack;
}
ningguang charge;Safe basic loop
This is the safest starter pattern. It checks if skill/burst are ready before pressing them, then uses attacks as filler. Use it when you do not know a character combo yet.
if .character.skill.ready
This reads the cooldown. If it says ready, the action can be used now. If it is false, the sim skips that action.
attack:3
`attack:3` means three normal attacks in a row. Change the number while you test.
No infinite loop here
This helper runs once when you call it. Put the repeated rotation outside, in your main `for` loop.
Code
fn ningguang_basic_loop() {
if .ningguang.skill.ready {
ningguang skill;
}
if .ningguang.burst.ready {
ningguang burst;
}
ningguang attack:3;
}Wait while .ningguang.prevAttack is active
Returns a number representing the previous N1 version. Possible values are: 0 = Left, 1 = Right, 2 = Twirl.
Live state
This is not a setup value. It is the current simulator state at that frame.
Timeout
The frame limit stops the config from freezing if the state never changes.
Code
let start = f();
while .ningguang.prevAttack > 0 && f() - start < 300 {
ningguang attack;
}Wait while .ningguang.jadeCount is active
Number of Star Jades.
Live state
This is not a setup value. It is the current simulator state at that frame.
Timeout
The frame limit stops the config from freezing if the state never changes.
Code
let start = f();
while .ningguang.jadeCount > 0 && f() - start < 300 {
ningguang attack;
}Use attack[travel=...]
Projectile travel time. Default 10 frames.
attack[travel=...]
Action params go inside brackets on the exact action you are casting.
Code
ningguang attack[travel=10];Use charge[travel=...]
Projectile travel time. Default 10 frames.
charge[travel=...]
Action params go inside brackets on the exact action you are casting.
Code
ningguang charge[travel=10];Actions you can write
attack usable directly
Code
ningguang attack:3;charge usable directly
Code
ningguang attack, charge;skill usable directly
Code
ningguang skill;burst usable directly
Code
ningguang burst;dash usable directly
Code
ningguang dash;jump usable directly
Code
ningguang jump;walk usable directly
Code
ningguang walk;swap usable directly
Code
ningguang swap;Special action params
attack[travel=...] - Projectile travel time. Default 10 frames.
Code
ningguang attack[travel=10];charge[travel=...] - Projectile travel time. Default 10 frames.
Code
ningguang charge[travel=10];skill[noscreen=...] - If 1, destroy the Jade Screen on cast. Default 0.
Code
ningguang skill[noscreen=1];burst[travel=...] - Projectile travel time. Default 0 frames.
Code
ningguang burst[travel=10];burst[jade=...] - Number of Jade attacks from burst. Default 6.
Code
ningguang burst[jade=1];burst[screen=...] - Number of Jade attacks from Jade Screen snapshot. Default 6.
Code
ningguang burst[screen=1];Fields for conditions
.ningguang.prevAttack - Returns a number representing the previous N1 version. Possible values are: 0 = Left, 1 = Right, 2 = Twirl.
Code
if .ningguang.prevAttack > 0 {
# action here
}.ningguang.jadeCount - Number of Star Jades.
Code
if .ningguang.jadeCount > 0 {
# action here
}Frames
Count: Sheet (credit: Kolibri#7675)
Hitlag Data
- Charge Attack
- Skill
- Burst
| Ability | Halt Time | Scale | Defense Halt | Deployable |
|---|---|---|---|---|
| CA-StarJade | 0 | 0 | true | true |
| Ability | Halt Time | Scale | Defense Halt | Deployable |
|---|---|---|---|---|
| E-Skill | 0.05 | 0.05 | true | true |
| Ability | Halt Time | Scale | Defense Halt | Deployable |
|---|---|---|---|---|
| Q-Gem | 0 | 0 | true | true |
AoE Data
- Normal
- Charge Attack
- Skill
- Burst
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| N1-PreC1 | Circle | PrimaryTarget | - | - | 0.5 | - | - | - | - |
| N1-PostC1 | Circle | PrimaryTarget | - | - | 3.5 | - | - | - | - |
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| CA | Circle | PrimaryTarget | - | - | 1.5 | - | - | - | - |
| CA-StarJade | Circle | PrimaryTarget | - | - | 0.5 | - | - | - | - |
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| E-Skill | Circle | Player | - | 3 | 5 | - | - | - | Screen construct spawns at the same position. |
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| Q-Gem | Circle | PrimaryTarget | - | - | 0.5 | - | - | - | - |
Known issues
Names
- ningguang
- ning
Legal Actions
| Ability | Legal | Notes |
|---|---|---|
attack | ✔ | - |
charge | ✔ | - |
aim | ❌ | - |
skill | ✔ | - |
burst | ✔ | - |
low_plunge | ❌ | - |
high_plunge | ❌ | - |
dash | ✔ | - |
jump | ✔ | - |
walk | ✔ | - |
swap | ✔ | - |
Params
| Ability | Param | Description |
|---|---|---|
attack | travel | Projectile travel time. Default 10 frames. |
charge | travel | Projectile travel time. Default 10 frames. |
skill | noscreen | If 1, destroy the Jade Screen on cast. Default 0. |
burst | travel | Projectile travel time. Default 0 frames. |
burst | jade | Number of Jade attacks from burst. Default 6. |
burst | screen | Number of Jade attacks from Jade Screen snapshot. Default 6. |
Fields
| Field | Description |
|---|---|
.ningguang.prevAttack | Returns a number representing the previous N1 version. Possible values are: 0 = Left, 1 = Right, 2 = Twirl. |
.ningguang.jadeCount | Number of Star Jades. |