Refactor out a lot of hard coded hit rates
* Moves skills that adjust hit rate into the skill database.
This commit is contained in:
parent
9e17fa776c
commit
8fdac5ecfc
@ -37,6 +37,10 @@
|
|||||||
# HitCount: Skill hit count. (Default: 0)
|
# HitCount: Skill hit count. (Default: 0)
|
||||||
# - Level Skill level.
|
# - Level Skill level.
|
||||||
# Count Number of hits at specific skill level.
|
# Count Number of hits at specific skill level.
|
||||||
|
# HitRate Skill hit rate. (Default: 100)
|
||||||
|
# - Level Skill level.
|
||||||
|
# Rate Rate is a percent of hit rate added to hit rate.
|
||||||
|
# Skills: Skill flagged as a requirement (players only). (Optional)
|
||||||
# Element: Skill element. (Default: Neutral)
|
# Element: Skill element. (Default: Neutral)
|
||||||
# - Level Skill level.
|
# - Level Skill level.
|
||||||
# Element Element at specific skill level.
|
# Element Element at specific skill level.
|
||||||
@ -140,4 +144,4 @@
|
|||||||
|
|
||||||
Header:
|
Header:
|
||||||
Type: SKILL_DB
|
Type: SKILL_DB
|
||||||
Version: 3
|
Version: 4
|
||||||
|
|||||||
@ -37,6 +37,10 @@
|
|||||||
# HitCount: Skill hit count. (Default: 0)
|
# HitCount: Skill hit count. (Default: 0)
|
||||||
# - Level Skill level.
|
# - Level Skill level.
|
||||||
# Count Number of hits at specific skill level.
|
# Count Number of hits at specific skill level.
|
||||||
|
# HitRate Skill hit rate. (Default: 100)
|
||||||
|
# - Level Skill level.
|
||||||
|
# Rate Rate is a percent of hit rate added to hit rate.
|
||||||
|
# Skills: Skill flagged as a requirement (players only). (Optional)
|
||||||
# Element: Skill element. (Default: Neutral)
|
# Element: Skill element. (Default: Neutral)
|
||||||
# - Level Skill level.
|
# - Level Skill level.
|
||||||
# Element Element at specific skill level.
|
# Element Element at specific skill level.
|
||||||
@ -140,7 +144,7 @@
|
|||||||
|
|
||||||
Header:
|
Header:
|
||||||
Type: SKILL_DB
|
Type: SKILL_DB
|
||||||
Version: 3
|
Version: 4
|
||||||
|
|
||||||
Body:
|
Body:
|
||||||
- Id: 1
|
- Id: 1
|
||||||
@ -170,6 +174,27 @@ Body:
|
|||||||
Range: -1
|
Range: -1
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 105
|
||||||
|
- Level: 2
|
||||||
|
Rate: 110
|
||||||
|
- Level: 3
|
||||||
|
Rate: 115
|
||||||
|
- Level: 4
|
||||||
|
Rate: 120
|
||||||
|
- Level: 5
|
||||||
|
Rate: 125
|
||||||
|
- Level: 6
|
||||||
|
Rate: 130
|
||||||
|
- Level: 7
|
||||||
|
Rate: 135
|
||||||
|
- Level: 8
|
||||||
|
Rate: 140
|
||||||
|
- Level: 9
|
||||||
|
Rate: 145
|
||||||
|
- Level: 10
|
||||||
|
Rate: 150
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
CopyFlags:
|
CopyFlags:
|
||||||
Skill:
|
Skill:
|
||||||
@ -269,6 +294,27 @@ Body:
|
|||||||
TargetTrap: true
|
TargetTrap: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 110
|
||||||
|
- Level: 2
|
||||||
|
Rate: 120
|
||||||
|
- Level: 3
|
||||||
|
Rate: 130
|
||||||
|
- Level: 4
|
||||||
|
Rate: 140
|
||||||
|
- Level: 5
|
||||||
|
Rate: 150
|
||||||
|
- Level: 6
|
||||||
|
Rate: 160
|
||||||
|
- Level: 7
|
||||||
|
Rate: 170
|
||||||
|
- Level: 8
|
||||||
|
Rate: 180
|
||||||
|
- Level: 9
|
||||||
|
Rate: 190
|
||||||
|
- Level: 10
|
||||||
|
Rate: 200
|
||||||
Element: Fire
|
Element: Fire
|
||||||
SplashArea:
|
SplashArea:
|
||||||
- Level: 1
|
- Level: 1
|
||||||
@ -2088,6 +2134,27 @@ Body:
|
|||||||
Range: -2
|
Range: -2
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: 3
|
HitCount: 3
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 105
|
||||||
|
- Level: 2
|
||||||
|
Rate: 110
|
||||||
|
- Level: 3
|
||||||
|
Rate: 115
|
||||||
|
- Level: 4
|
||||||
|
Rate: 120
|
||||||
|
- Level: 5
|
||||||
|
Rate: 125
|
||||||
|
- Level: 6
|
||||||
|
Rate: 130
|
||||||
|
- Level: 7
|
||||||
|
Rate: 135
|
||||||
|
- Level: 8
|
||||||
|
Rate: 140
|
||||||
|
- Level: 9
|
||||||
|
Rate: 145
|
||||||
|
- Level: 10
|
||||||
|
Rate: 150
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Requires:
|
Requires:
|
||||||
SpCost: 7
|
SpCost: 7
|
||||||
@ -2232,6 +2299,7 @@ Body:
|
|||||||
Critical: true
|
Critical: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration1:
|
Duration1:
|
||||||
- Level: 1
|
- Level: 1
|
||||||
@ -4768,6 +4836,29 @@ Body:
|
|||||||
Range: 1
|
Range: 1
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: -8
|
HitCount: -8
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 50
|
||||||
|
- Level: 2
|
||||||
|
Rate: 50
|
||||||
|
- Level: 3
|
||||||
|
Rate: 50
|
||||||
|
- Level: 4
|
||||||
|
Rate: 50
|
||||||
|
- Level: 5
|
||||||
|
Rate: 50
|
||||||
|
- Level: 6
|
||||||
|
Rate: 50
|
||||||
|
- Level: 7
|
||||||
|
Rate: 50
|
||||||
|
- Level: 8
|
||||||
|
Rate: 50
|
||||||
|
- Level: 9
|
||||||
|
Rate: 50
|
||||||
|
- Level: 10
|
||||||
|
Rate: 50
|
||||||
|
Skills:
|
||||||
|
AS_SONICACCEL: true
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
AfterCastActDelay: 2000
|
AfterCastActDelay: 2000
|
||||||
AfterCastWalkDelay: 2000
|
AfterCastWalkDelay: 2000
|
||||||
@ -5605,6 +5696,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 60000
|
Duration2: 60000
|
||||||
Status: Poison
|
Status: Poison
|
||||||
@ -5619,6 +5711,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 30000
|
Duration2: 30000
|
||||||
Status: Blind
|
Status: Blind
|
||||||
@ -5633,6 +5726,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 30000
|
Duration2: 30000
|
||||||
Status: Silence
|
Status: Silence
|
||||||
@ -5647,6 +5741,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 5000
|
Duration2: 5000
|
||||||
Status: Stun
|
Status: Stun
|
||||||
@ -5661,6 +5756,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration1: 100
|
Duration1: 100
|
||||||
Duration2: 20000
|
Duration2: 20000
|
||||||
@ -5676,6 +5772,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Dark
|
Element: Dark
|
||||||
Duration2: 30000
|
Duration2: 30000
|
||||||
Status: Curse
|
Status: Curse
|
||||||
@ -5690,6 +5787,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 30000
|
Duration2: 30000
|
||||||
Status: Sleep
|
Status: Sleep
|
||||||
@ -5716,6 +5814,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Water
|
Element: Water
|
||||||
- Id: 185
|
- Id: 185
|
||||||
Name: NPC_GROUNDATTACK
|
Name: NPC_GROUNDATTACK
|
||||||
@ -5729,6 +5828,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Earth
|
Element: Earth
|
||||||
- Id: 186
|
- Id: 186
|
||||||
Name: NPC_FIREATTACK
|
Name: NPC_FIREATTACK
|
||||||
@ -5741,6 +5841,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Fire
|
Element: Fire
|
||||||
- Id: 187
|
- Id: 187
|
||||||
Name: NPC_WINDATTACK
|
Name: NPC_WINDATTACK
|
||||||
@ -5753,6 +5854,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Wind
|
Element: Wind
|
||||||
- Id: 188
|
- Id: 188
|
||||||
Name: NPC_POISONATTACK
|
Name: NPC_POISONATTACK
|
||||||
@ -5765,6 +5867,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Poison
|
Element: Poison
|
||||||
Status: Poison
|
Status: Poison
|
||||||
- Id: 189
|
- Id: 189
|
||||||
@ -5778,6 +5881,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Holy
|
Element: Holy
|
||||||
- Id: 190
|
- Id: 190
|
||||||
Name: NPC_DARKNESSATTACK
|
Name: NPC_DARKNESSATTACK
|
||||||
@ -5790,6 +5894,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Dark
|
Element: Dark
|
||||||
- Id: 191
|
- Id: 191
|
||||||
Name: NPC_TELEKINESISATTACK
|
Name: NPC_TELEKINESISATTACK
|
||||||
@ -5802,6 +5907,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Ghost
|
Element: Ghost
|
||||||
- Id: 192
|
- Id: 192
|
||||||
Name: NPC_MAGICALATTACK
|
Name: NPC_MAGICALATTACK
|
||||||
@ -9380,6 +9486,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Undead
|
Element: Undead
|
||||||
- Id: 348
|
- Id: 348
|
||||||
Name: NPC_CHANGEUNDEAD
|
Name: NPC_CHANGEUNDEAD
|
||||||
@ -9392,6 +9499,7 @@ Body:
|
|||||||
Range: -2
|
Range: -2
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Undead
|
Element: Undead
|
||||||
Duration2: 60000
|
Duration2: 60000
|
||||||
Status: ChangeUndead
|
Status: ChangeUndead
|
||||||
@ -13089,6 +13197,7 @@ Body:
|
|||||||
Range: 4
|
Range: 4
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: 5
|
HitCount: 5
|
||||||
|
HitRate: 120
|
||||||
CastTime: 1000
|
CastTime: 1000
|
||||||
AfterCastActDelay: 1000
|
AfterCastActDelay: 1000
|
||||||
Requires:
|
Requires:
|
||||||
@ -15599,6 +15708,7 @@ Body:
|
|||||||
IgnoreLandProtector: true
|
IgnoreLandProtector: true
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
SplashArea:
|
SplashArea:
|
||||||
- Level: 1
|
- Level: 1
|
||||||
Area: 5
|
Area: 5
|
||||||
@ -15659,6 +15769,7 @@ Body:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 200
|
||||||
Element: Fire
|
Element: Fire
|
||||||
SplashArea: 3
|
SplashArea: 3
|
||||||
ActiveInstance: 14
|
ActiveInstance: 14
|
||||||
@ -15673,6 +15784,7 @@ Body:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 200
|
||||||
Element: Water
|
Element: Water
|
||||||
SplashArea: 3
|
SplashArea: 3
|
||||||
ActiveInstance: 14
|
ActiveInstance: 14
|
||||||
@ -15689,6 +15801,7 @@ Body:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 200
|
||||||
Element: Wind
|
Element: Wind
|
||||||
SplashArea: 3
|
SplashArea: 3
|
||||||
ActiveInstance: 14
|
ActiveInstance: 14
|
||||||
@ -15703,6 +15816,7 @@ Body:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 200
|
||||||
Element: Poison
|
Element: Poison
|
||||||
SplashArea: 3
|
SplashArea: 3
|
||||||
ActiveInstance: 14
|
ActiveInstance: 14
|
||||||
@ -15719,6 +15833,7 @@ Body:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 200
|
||||||
Element: Dark
|
Element: Dark
|
||||||
SplashArea: 3
|
SplashArea: 3
|
||||||
ActiveInstance: 14
|
ActiveInstance: 14
|
||||||
@ -15766,6 +15881,7 @@ Body:
|
|||||||
Range: -9
|
Range: -9
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 120000
|
Duration2: 120000
|
||||||
Status: Bleeding
|
Status: Bleeding
|
||||||
@ -32261,6 +32377,27 @@ Body:
|
|||||||
Range: -1
|
Range: -1
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 105
|
||||||
|
- Level: 2
|
||||||
|
Rate: 110
|
||||||
|
- Level: 3
|
||||||
|
Rate: 115
|
||||||
|
- Level: 4
|
||||||
|
Rate: 120
|
||||||
|
- Level: 5
|
||||||
|
Rate: 125
|
||||||
|
- Level: 6
|
||||||
|
Rate: 130
|
||||||
|
- Level: 7
|
||||||
|
Rate: 135
|
||||||
|
- Level: 8
|
||||||
|
Rate: 140
|
||||||
|
- Level: 9
|
||||||
|
Rate: 145
|
||||||
|
- Level: 10
|
||||||
|
Rate: 150
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Requires:
|
Requires:
|
||||||
SpCost:
|
SpCost:
|
||||||
@ -32319,6 +32456,27 @@ Body:
|
|||||||
TargetTrap: true
|
TargetTrap: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 110
|
||||||
|
- Level: 2
|
||||||
|
Rate: 120
|
||||||
|
- Level: 3
|
||||||
|
Rate: 130
|
||||||
|
- Level: 4
|
||||||
|
Rate: 140
|
||||||
|
- Level: 5
|
||||||
|
Rate: 150
|
||||||
|
- Level: 6
|
||||||
|
Rate: 160
|
||||||
|
- Level: 7
|
||||||
|
Rate: 170
|
||||||
|
- Level: 8
|
||||||
|
Rate: 180
|
||||||
|
- Level: 9
|
||||||
|
Rate: 190
|
||||||
|
- Level: 10
|
||||||
|
Rate: 200
|
||||||
Element: Fire
|
Element: Fire
|
||||||
SplashArea: 2
|
SplashArea: 2
|
||||||
Knockback: 2
|
Knockback: 2
|
||||||
@ -32773,6 +32931,27 @@ Body:
|
|||||||
Range: -2
|
Range: -2
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: 3
|
HitCount: 3
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 105
|
||||||
|
- Level: 2
|
||||||
|
Rate: 110
|
||||||
|
- Level: 3
|
||||||
|
Rate: 115
|
||||||
|
- Level: 4
|
||||||
|
Rate: 120
|
||||||
|
- Level: 5
|
||||||
|
Rate: 125
|
||||||
|
- Level: 6
|
||||||
|
Rate: 130
|
||||||
|
- Level: 7
|
||||||
|
Rate: 135
|
||||||
|
- Level: 8
|
||||||
|
Rate: 140
|
||||||
|
- Level: 9
|
||||||
|
Rate: 145
|
||||||
|
- Level: 10
|
||||||
|
Rate: 150
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Requires:
|
Requires:
|
||||||
SpCost: 7
|
SpCost: 7
|
||||||
|
|||||||
@ -37,6 +37,10 @@
|
|||||||
# HitCount: Skill hit count. (Default: 0)
|
# HitCount: Skill hit count. (Default: 0)
|
||||||
# - Level Skill level.
|
# - Level Skill level.
|
||||||
# Count Number of hits at specific skill level.
|
# Count Number of hits at specific skill level.
|
||||||
|
# HitRate Skill hit rate. (Default: 100)
|
||||||
|
# - Level Skill level.
|
||||||
|
# Rate Rate is a percent of hit rate added to hit rate.
|
||||||
|
# Skills: Skill flagged as a requirement (players only). (Optional)
|
||||||
# Element: Skill element. (Default: Neutral)
|
# Element: Skill element. (Default: Neutral)
|
||||||
# - Level Skill level.
|
# - Level Skill level.
|
||||||
# Element Element at specific skill level.
|
# Element Element at specific skill level.
|
||||||
@ -140,7 +144,7 @@
|
|||||||
|
|
||||||
Header:
|
Header:
|
||||||
Type: SKILL_DB
|
Type: SKILL_DB
|
||||||
Version: 3
|
Version: 4
|
||||||
|
|
||||||
Body:
|
Body:
|
||||||
- Id: 1
|
- Id: 1
|
||||||
@ -170,6 +174,27 @@ Body:
|
|||||||
Range: -1
|
Range: -1
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 105
|
||||||
|
- Level: 2
|
||||||
|
Rate: 110
|
||||||
|
- Level: 3
|
||||||
|
Rate: 115
|
||||||
|
- Level: 4
|
||||||
|
Rate: 120
|
||||||
|
- Level: 5
|
||||||
|
Rate: 125
|
||||||
|
- Level: 6
|
||||||
|
Rate: 130
|
||||||
|
- Level: 7
|
||||||
|
Rate: 135
|
||||||
|
- Level: 8
|
||||||
|
Rate: 140
|
||||||
|
- Level: 9
|
||||||
|
Rate: 145
|
||||||
|
- Level: 10
|
||||||
|
Rate: 150
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
CopyFlags:
|
CopyFlags:
|
||||||
Skill:
|
Skill:
|
||||||
@ -268,6 +293,27 @@ Body:
|
|||||||
TargetTrap: true
|
TargetTrap: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 110
|
||||||
|
- Level: 2
|
||||||
|
Rate: 120
|
||||||
|
- Level: 3
|
||||||
|
Rate: 130
|
||||||
|
- Level: 4
|
||||||
|
Rate: 140
|
||||||
|
- Level: 5
|
||||||
|
Rate: 150
|
||||||
|
- Level: 6
|
||||||
|
Rate: 160
|
||||||
|
- Level: 7
|
||||||
|
Rate: 170
|
||||||
|
- Level: 8
|
||||||
|
Rate: 180
|
||||||
|
- Level: 9
|
||||||
|
Rate: 190
|
||||||
|
- Level: 10
|
||||||
|
Rate: 200
|
||||||
Element: Fire
|
Element: Fire
|
||||||
SplashArea:
|
SplashArea:
|
||||||
- Level: 1
|
- Level: 1
|
||||||
@ -2102,6 +2148,27 @@ Body:
|
|||||||
Range: -2
|
Range: -2
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: 3
|
HitCount: 3
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 105
|
||||||
|
- Level: 2
|
||||||
|
Rate: 110
|
||||||
|
- Level: 3
|
||||||
|
Rate: 115
|
||||||
|
- Level: 4
|
||||||
|
Rate: 120
|
||||||
|
- Level: 5
|
||||||
|
Rate: 125
|
||||||
|
- Level: 6
|
||||||
|
Rate: 130
|
||||||
|
- Level: 7
|
||||||
|
Rate: 135
|
||||||
|
- Level: 8
|
||||||
|
Rate: 140
|
||||||
|
- Level: 9
|
||||||
|
Rate: 145
|
||||||
|
- Level: 10
|
||||||
|
Rate: 150
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Requires:
|
Requires:
|
||||||
SpCost: 7
|
SpCost: 7
|
||||||
@ -2247,6 +2314,7 @@ Body:
|
|||||||
Critical: true
|
Critical: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration1:
|
Duration1:
|
||||||
- Level: 1
|
- Level: 1
|
||||||
@ -5013,6 +5081,29 @@ Body:
|
|||||||
Range: 1
|
Range: 1
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: -8
|
HitCount: -8
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 90
|
||||||
|
- Level: 2
|
||||||
|
Rate: 90
|
||||||
|
- Level: 3
|
||||||
|
Rate: 90
|
||||||
|
- Level: 4
|
||||||
|
Rate: 90
|
||||||
|
- Level: 5
|
||||||
|
Rate: 90
|
||||||
|
- Level: 6
|
||||||
|
Rate: 90
|
||||||
|
- Level: 7
|
||||||
|
Rate: 90
|
||||||
|
- Level: 8
|
||||||
|
Rate: 90
|
||||||
|
- Level: 9
|
||||||
|
Rate: 90
|
||||||
|
- Level: 10
|
||||||
|
Rate: 90
|
||||||
|
Skills:
|
||||||
|
AS_SONICACCEL: true
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 4500
|
Duration2: 4500
|
||||||
Cooldown: 1000
|
Cooldown: 1000
|
||||||
@ -5875,6 +5966,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 18000
|
Duration2: 18000
|
||||||
Status: Poison
|
Status: Poison
|
||||||
@ -5889,6 +5981,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 18000
|
Duration2: 18000
|
||||||
Status: Blind
|
Status: Blind
|
||||||
@ -5903,6 +5996,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 18000
|
Duration2: 18000
|
||||||
Status: Silence
|
Status: Silence
|
||||||
@ -5917,6 +6011,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 4500
|
Duration2: 4500
|
||||||
Status: Stun
|
Status: Stun
|
||||||
@ -5931,6 +6026,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration1: 100
|
Duration1: 100
|
||||||
Duration2: 17000
|
Duration2: 17000
|
||||||
@ -5946,6 +6042,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Dark
|
Element: Dark
|
||||||
Duration2: 28000
|
Duration2: 28000
|
||||||
Status: Curse
|
Status: Curse
|
||||||
@ -5960,6 +6057,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 18000
|
Duration2: 18000
|
||||||
Status: Sleep
|
Status: Sleep
|
||||||
@ -5986,6 +6084,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Water
|
Element: Water
|
||||||
- Id: 185
|
- Id: 185
|
||||||
Name: NPC_GROUNDATTACK
|
Name: NPC_GROUNDATTACK
|
||||||
@ -5999,6 +6098,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Earth
|
Element: Earth
|
||||||
- Id: 186
|
- Id: 186
|
||||||
Name: NPC_FIREATTACK
|
Name: NPC_FIREATTACK
|
||||||
@ -6011,6 +6111,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Fire
|
Element: Fire
|
||||||
- Id: 187
|
- Id: 187
|
||||||
Name: NPC_WINDATTACK
|
Name: NPC_WINDATTACK
|
||||||
@ -6023,6 +6124,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Wind
|
Element: Wind
|
||||||
- Id: 188
|
- Id: 188
|
||||||
Name: NPC_POISONATTACK
|
Name: NPC_POISONATTACK
|
||||||
@ -6035,6 +6137,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Poison
|
Element: Poison
|
||||||
Status: Poison
|
Status: Poison
|
||||||
- Id: 189
|
- Id: 189
|
||||||
@ -6048,6 +6151,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Holy
|
Element: Holy
|
||||||
- Id: 190
|
- Id: 190
|
||||||
Name: NPC_DARKNESSATTACK
|
Name: NPC_DARKNESSATTACK
|
||||||
@ -6060,6 +6164,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Dark
|
Element: Dark
|
||||||
- Id: 191
|
- Id: 191
|
||||||
Name: NPC_TELEKINESISATTACK
|
Name: NPC_TELEKINESISATTACK
|
||||||
@ -6072,6 +6177,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Ghost
|
Element: Ghost
|
||||||
- Id: 192
|
- Id: 192
|
||||||
Name: NPC_MAGICALATTACK
|
Name: NPC_MAGICALATTACK
|
||||||
@ -6386,6 +6492,27 @@ Body:
|
|||||||
Range: -1
|
Range: -1
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 105
|
||||||
|
- Level: 2
|
||||||
|
Rate: 110
|
||||||
|
- Level: 3
|
||||||
|
Rate: 115
|
||||||
|
- Level: 4
|
||||||
|
Rate: 120
|
||||||
|
- Level: 5
|
||||||
|
Rate: 125
|
||||||
|
- Level: 6
|
||||||
|
Rate: 130
|
||||||
|
- Level: 7
|
||||||
|
Rate: 135
|
||||||
|
- Level: 8
|
||||||
|
Rate: 140
|
||||||
|
- Level: 9
|
||||||
|
Rate: 145
|
||||||
|
- Level: 10
|
||||||
|
Rate: 150
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
CopyFlags:
|
CopyFlags:
|
||||||
Skill:
|
Skill:
|
||||||
@ -9690,6 +9817,7 @@ Body:
|
|||||||
Range: -7
|
Range: -7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Undead
|
Element: Undead
|
||||||
- Id: 348
|
- Id: 348
|
||||||
Name: NPC_CHANGEUNDEAD
|
Name: NPC_CHANGEUNDEAD
|
||||||
@ -9702,6 +9830,7 @@ Body:
|
|||||||
Range: -2
|
Range: -2
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Undead
|
Element: Undead
|
||||||
Duration2: 60000
|
Duration2: 60000
|
||||||
Status: ChangeUndead
|
Status: ChangeUndead
|
||||||
@ -13412,6 +13541,7 @@ Body:
|
|||||||
Size: 11
|
Size: 11
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: 5
|
HitCount: 5
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
CastTime: 800
|
CastTime: 800
|
||||||
AfterCastActDelay: 1000
|
AfterCastActDelay: 1000
|
||||||
@ -15985,6 +16115,7 @@ Body:
|
|||||||
IgnoreLandProtector: true
|
IgnoreLandProtector: true
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
SplashArea:
|
SplashArea:
|
||||||
- Level: 1
|
- Level: 1
|
||||||
Area: 5
|
Area: 5
|
||||||
@ -16046,6 +16177,7 @@ Body:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 200
|
||||||
Element: Fire
|
Element: Fire
|
||||||
SplashArea: 3
|
SplashArea: 3
|
||||||
ActiveInstance: 14
|
ActiveInstance: 14
|
||||||
@ -16060,6 +16192,7 @@ Body:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 200
|
||||||
Element: Water
|
Element: Water
|
||||||
SplashArea: 3
|
SplashArea: 3
|
||||||
ActiveInstance: 14
|
ActiveInstance: 14
|
||||||
@ -16076,6 +16209,7 @@ Body:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 200
|
||||||
Element: Wind
|
Element: Wind
|
||||||
SplashArea: 3
|
SplashArea: 3
|
||||||
ActiveInstance: 14
|
ActiveInstance: 14
|
||||||
@ -16090,6 +16224,7 @@ Body:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 200
|
||||||
Element: Poison
|
Element: Poison
|
||||||
SplashArea: 3
|
SplashArea: 3
|
||||||
ActiveInstance: 14
|
ActiveInstance: 14
|
||||||
@ -16106,6 +16241,7 @@ Body:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 200
|
||||||
Element: Dark
|
Element: Dark
|
||||||
SplashArea: 3
|
SplashArea: 3
|
||||||
ActiveInstance: 14
|
ActiveInstance: 14
|
||||||
@ -16153,6 +16289,7 @@ Body:
|
|||||||
Range: -9
|
Range: -9
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Duration2: 108000
|
Duration2: 108000
|
||||||
Status: Bleeding
|
Status: Bleeding
|
||||||
@ -18229,6 +18366,7 @@ Body:
|
|||||||
Range: -9
|
Range: -9
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 120
|
||||||
Element: Neutral
|
Element: Neutral
|
||||||
Duration2: 108000
|
Duration2: 108000
|
||||||
Status: Bleeding
|
Status: Bleeding
|
||||||
@ -18243,6 +18381,7 @@ Body:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate: 200
|
||||||
Element: Water
|
Element: Water
|
||||||
SplashArea: 4
|
SplashArea: 4
|
||||||
ActiveInstance: 14
|
ActiveInstance: 14
|
||||||
@ -18857,6 +18996,27 @@ Body:
|
|||||||
Size: 11
|
Size: 11
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 3
|
HitCount: 3
|
||||||
|
HitRate: # TODO: Confirm rate
|
||||||
|
- Level: 1
|
||||||
|
Rate: 103
|
||||||
|
- Level: 2
|
||||||
|
Rate: 106
|
||||||
|
- Level: 3
|
||||||
|
Rate: 109
|
||||||
|
- Level: 4
|
||||||
|
Rate: 112
|
||||||
|
- Level: 5
|
||||||
|
Rate: 115
|
||||||
|
- Level: 6
|
||||||
|
Rate: 118
|
||||||
|
- Level: 7
|
||||||
|
Rate: 121
|
||||||
|
- Level: 8
|
||||||
|
Rate: 124
|
||||||
|
- Level: 9
|
||||||
|
Rate: 127
|
||||||
|
- Level: 10
|
||||||
|
Rate: 130
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
CopyFlags:
|
CopyFlags:
|
||||||
Skill:
|
Skill:
|
||||||
@ -20781,6 +20941,17 @@ Body:
|
|||||||
Range: 1
|
Range: 1
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 114
|
||||||
|
- Level: 2
|
||||||
|
Rate: 118
|
||||||
|
- Level: 3
|
||||||
|
Rate: 122
|
||||||
|
- Level: 4
|
||||||
|
Rate: 126
|
||||||
|
- Level: 5
|
||||||
|
Rate: 130
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
AfterCastActDelay: 1000
|
AfterCastActDelay: 1000
|
||||||
Requires:
|
Requires:
|
||||||
@ -23466,6 +23637,27 @@ Body:
|
|||||||
Range: 2
|
Range: 2
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 70
|
||||||
|
- Level: 2
|
||||||
|
Rate: 75
|
||||||
|
- Level: 3
|
||||||
|
Rate: 80
|
||||||
|
- Level: 4
|
||||||
|
Rate: 85
|
||||||
|
- Level: 5
|
||||||
|
Rate: 90
|
||||||
|
- Level: 6
|
||||||
|
Rate: 100
|
||||||
|
- Level: 7
|
||||||
|
Rate: 105
|
||||||
|
- Level: 8
|
||||||
|
Rate: 110
|
||||||
|
- Level: 9
|
||||||
|
Rate: 115
|
||||||
|
- Level: 10
|
||||||
|
Rate: 120
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
SplashArea:
|
SplashArea:
|
||||||
- Level: 1
|
- Level: 1
|
||||||
@ -24443,6 +24635,27 @@ Body:
|
|||||||
Range: 7
|
Range: 7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 105
|
||||||
|
- Level: 2
|
||||||
|
Rate: 110
|
||||||
|
- Level: 3
|
||||||
|
Rate: 115
|
||||||
|
- Level: 4
|
||||||
|
Rate: 120
|
||||||
|
- Level: 5
|
||||||
|
Rate: 125
|
||||||
|
- Level: 6
|
||||||
|
Rate: 130
|
||||||
|
- Level: 7
|
||||||
|
Rate: 135
|
||||||
|
- Level: 8
|
||||||
|
Rate: 140
|
||||||
|
- Level: 9
|
||||||
|
Rate: 145
|
||||||
|
- Level: 10
|
||||||
|
Rate: 150
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Requires:
|
Requires:
|
||||||
SpCost:
|
SpCost:
|
||||||
@ -28738,6 +28951,17 @@ Body:
|
|||||||
Name: GN_REMODELING_CART
|
Name: GN_REMODELING_CART
|
||||||
Description: Cart Remodeling
|
Description: Cart Remodeling
|
||||||
MaxLevel: 5
|
MaxLevel: 5
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 104
|
||||||
|
- Level: 2
|
||||||
|
Rate: 108
|
||||||
|
- Level: 3
|
||||||
|
Rate: 112
|
||||||
|
- Level: 4
|
||||||
|
Rate: 116
|
||||||
|
- Level: 5
|
||||||
|
Rate: 120
|
||||||
- Id: 2476
|
- Id: 2476
|
||||||
Name: GN_CART_TORNADO
|
Name: GN_CART_TORNADO
|
||||||
Description: Cart Tornado
|
Description: Cart Tornado
|
||||||
@ -30438,6 +30662,17 @@ Body:
|
|||||||
Range: -9
|
Range: -9
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 10
|
||||||
|
- Level: 2
|
||||||
|
Rate: 9
|
||||||
|
- Level: 3
|
||||||
|
Rate: 8
|
||||||
|
- Level: 4
|
||||||
|
Rate: 7
|
||||||
|
- Level: 5
|
||||||
|
Rate: 6
|
||||||
Knockback: 6
|
Knockback: 6
|
||||||
CastTime:
|
CastTime:
|
||||||
- Level: 1
|
- Level: 1
|
||||||
@ -44015,6 +44250,27 @@ Body:
|
|||||||
Range: -1
|
Range: -1
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 105
|
||||||
|
- Level: 2
|
||||||
|
Rate: 110
|
||||||
|
- Level: 3
|
||||||
|
Rate: 115
|
||||||
|
- Level: 4
|
||||||
|
Rate: 120
|
||||||
|
- Level: 5
|
||||||
|
Rate: 125
|
||||||
|
- Level: 6
|
||||||
|
Rate: 130
|
||||||
|
- Level: 7
|
||||||
|
Rate: 135
|
||||||
|
- Level: 8
|
||||||
|
Rate: 140
|
||||||
|
- Level: 9
|
||||||
|
Rate: 145
|
||||||
|
- Level: 10
|
||||||
|
Rate: 150
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Requires:
|
Requires:
|
||||||
SpCost:
|
SpCost:
|
||||||
@ -44073,6 +44329,27 @@ Body:
|
|||||||
TargetTrap: true
|
TargetTrap: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 110
|
||||||
|
- Level: 2
|
||||||
|
Rate: 120
|
||||||
|
- Level: 3
|
||||||
|
Rate: 130
|
||||||
|
- Level: 4
|
||||||
|
Rate: 140
|
||||||
|
- Level: 5
|
||||||
|
Rate: 150
|
||||||
|
- Level: 6
|
||||||
|
Rate: 160
|
||||||
|
- Level: 7
|
||||||
|
Rate: 170
|
||||||
|
- Level: 8
|
||||||
|
Rate: 180
|
||||||
|
- Level: 9
|
||||||
|
Rate: 190
|
||||||
|
- Level: 10
|
||||||
|
Rate: 200
|
||||||
Element: Fire
|
Element: Fire
|
||||||
SplashArea: 2
|
SplashArea: 2
|
||||||
Knockback: 2
|
Knockback: 2
|
||||||
@ -44566,6 +44843,27 @@ Body:
|
|||||||
Range: -2
|
Range: -2
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: 3
|
HitCount: 3
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Rate: 15
|
||||||
|
- Level: 2
|
||||||
|
Rate: 110
|
||||||
|
- Level: 3
|
||||||
|
Rate: 115
|
||||||
|
- Level: 4
|
||||||
|
Rate: 120
|
||||||
|
- Level: 5
|
||||||
|
Rate: 125
|
||||||
|
- Level: 6
|
||||||
|
Rate: 130
|
||||||
|
- Level: 7
|
||||||
|
Rate: 135
|
||||||
|
- Level: 8
|
||||||
|
Rate: 140
|
||||||
|
- Level: 9
|
||||||
|
Rate: 145
|
||||||
|
- Level: 10
|
||||||
|
Rate: 150
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
Requires:
|
Requires:
|
||||||
SpCost: 7
|
SpCost: 7
|
||||||
|
|||||||
@ -37,6 +37,10 @@
|
|||||||
# HitCount: Skill hit count. (Default: 0)
|
# HitCount: Skill hit count. (Default: 0)
|
||||||
# - Level Skill level.
|
# - Level Skill level.
|
||||||
# Count Number of hits at specific skill level.
|
# Count Number of hits at specific skill level.
|
||||||
|
# HitRate Skill hit rate. (Default: 100)
|
||||||
|
# - Level Skill level.
|
||||||
|
# Rate Rate is a percent of hit rate added to hit rate.
|
||||||
|
# Skills: Skill flagged as a requirement (players only). (Optional)
|
||||||
# Element: Skill element. (Default: Neutral)
|
# Element: Skill element. (Default: Neutral)
|
||||||
# - Level Skill level.
|
# - Level Skill level.
|
||||||
# Element Element at specific skill level.
|
# Element Element at specific skill level.
|
||||||
@ -140,7 +144,7 @@
|
|||||||
|
|
||||||
Header:
|
Header:
|
||||||
Type: SKILL_DB
|
Type: SKILL_DB
|
||||||
Version: 3
|
Version: 4
|
||||||
|
|
||||||
Footer:
|
Footer:
|
||||||
Imports:
|
Imports:
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
//===== By: ==================================================
|
//===== By: ==================================================
|
||||||
//= rAthena Dev Team
|
//= rAthena Dev Team
|
||||||
//===== Last Updated: ========================================
|
//===== Last Updated: ========================================
|
||||||
//= 20220126
|
//= 20230803
|
||||||
//===== Description: =========================================
|
//===== Description: =========================================
|
||||||
//= Explanation of the skill_db.yml file and structure.
|
//= Explanation of the skill_db.yml file and structure.
|
||||||
//============================================================
|
//============================================================
|
||||||
@ -157,6 +157,27 @@ Sequence Map Form
|
|||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
HitRate: Skill hit rate. Rate is 100 by default.
|
||||||
|
|
||||||
|
Can be defined in scalar form or sequence map form:
|
||||||
|
Scalar Form
|
||||||
|
HitRate: 120
|
||||||
|
|
||||||
|
Sequence Map Form
|
||||||
|
HitRate:
|
||||||
|
- Level: 1
|
||||||
|
Count: 120
|
||||||
|
- Level: 2
|
||||||
|
Count: 140
|
||||||
|
- Level: 3
|
||||||
|
Count: 160
|
||||||
|
- Level: 4
|
||||||
|
Count: 180
|
||||||
|
- Level: 5
|
||||||
|
Count: 200
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
Element: Skill element.
|
Element: Skill element.
|
||||||
|
|
||||||
Neutral (Default)
|
Neutral (Default)
|
||||||
|
|||||||
@ -20,6 +20,10 @@
|
|||||||
# HitCount: Skill hit count. (Default: 0)
|
# HitCount: Skill hit count. (Default: 0)
|
||||||
# - Level Skill level.
|
# - Level Skill level.
|
||||||
# Count Number of hits at specific skill level.
|
# Count Number of hits at specific skill level.
|
||||||
|
# HitRate Skill hit rate. (Default: 100)
|
||||||
|
# - Level Skill level.
|
||||||
|
# Rate Rate is a percent of hit rate added to hit rate.
|
||||||
|
# Skills: Skill flagged as a requirement (players only). (Optional)
|
||||||
# Element: Skill element. (Default: Neutral)
|
# Element: Skill element. (Default: Neutral)
|
||||||
# - Level Skill level.
|
# - Level Skill level.
|
||||||
# Element Element at specific skill level.
|
# Element Element at specific skill level.
|
||||||
|
|||||||
@ -34,6 +34,8 @@
|
|||||||
#include "pc_groups.hpp"
|
#include "pc_groups.hpp"
|
||||||
#include "pet.hpp"
|
#include "pet.hpp"
|
||||||
|
|
||||||
|
using namespace rathena;
|
||||||
|
|
||||||
struct Battle_Config battle_config;
|
struct Battle_Config battle_config;
|
||||||
static struct eri *delay_damage_ers; //For battle delay damage structures.
|
static struct eri *delay_damage_ers; //For battle delay damage structures.
|
||||||
|
|
||||||
@ -3097,95 +3099,46 @@ static bool is_attack_hitting(struct Damage* wd, struct block_list *src, struct
|
|||||||
hitrate += pc_checkskill(sd,AC_VULTURE);
|
hitrate += pc_checkskill(sd,AC_VULTURE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(skill_id) {
|
if (skill_id > 0) {
|
||||||
switch (skill_id) { //Hit skill modifiers
|
switch (skill_id) { //Hit skill modifiers
|
||||||
//It is proven that bonus is applied on final hitrate, not hit.
|
//It is proven that bonus is applied on final hitrate, not hit.
|
||||||
case SM_BASH:
|
|
||||||
case MS_BASH:
|
|
||||||
hitrate += hitrate * 5 * skill_lv / 100;
|
|
||||||
break;
|
|
||||||
case MS_MAGNUM:
|
|
||||||
case SM_MAGNUM:
|
|
||||||
hitrate += hitrate * 10 * skill_lv / 100;
|
|
||||||
break;
|
|
||||||
case KN_AUTOCOUNTER:
|
|
||||||
case PA_SHIELDCHAIN:
|
|
||||||
case NPC_WATERATTACK:
|
|
||||||
case NPC_GROUNDATTACK:
|
|
||||||
case NPC_FIREATTACK:
|
|
||||||
case NPC_WINDATTACK:
|
|
||||||
case NPC_POISONATTACK:
|
|
||||||
case NPC_HOLYATTACK:
|
|
||||||
case NPC_DARKNESSATTACK:
|
|
||||||
case NPC_TELEKINESISATTACK:
|
|
||||||
case NPC_UNDEADATTACK:
|
|
||||||
case NPC_CHANGEUNDEAD:
|
|
||||||
case NPC_EARTHQUAKE:
|
|
||||||
case NPC_POISON:
|
|
||||||
case NPC_BLINDATTACK:
|
|
||||||
case NPC_SILENCEATTACK:
|
|
||||||
case NPC_STUNATTACK:
|
|
||||||
case NPC_PETRIFYATTACK:
|
|
||||||
case NPC_CURSEATTACK:
|
|
||||||
case NPC_SLEEPATTACK:
|
|
||||||
case NPC_BLEEDING:
|
|
||||||
case NPC_BLEEDING2:
|
|
||||||
hitrate += hitrate * 20 / 100;
|
|
||||||
break;
|
|
||||||
case NPC_FIREBREATH:
|
|
||||||
case NPC_ICEBREATH:
|
|
||||||
case NPC_ICEBREATH2:
|
|
||||||
case NPC_THUNDERBREATH:
|
|
||||||
case NPC_ACIDBREATH:
|
|
||||||
case NPC_DARKNESSBREATH:
|
|
||||||
hitrate *= 2;
|
|
||||||
break;
|
|
||||||
case KN_PIERCE:
|
|
||||||
case ML_PIERCE:
|
|
||||||
hitrate += hitrate * 5 * skill_lv / 100;
|
|
||||||
break;
|
|
||||||
case AS_SONICBLOW:
|
|
||||||
if(sd && pc_checkskill(sd,AS_SONICACCEL) > 0)
|
|
||||||
#ifdef RENEWAL
|
|
||||||
hitrate += hitrate * 90 / 100;
|
|
||||||
#else
|
|
||||||
hitrate += hitrate * 50 / 100;
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
#ifdef RENEWAL
|
|
||||||
case RG_BACKSTAP:
|
|
||||||
hitrate += skill_lv; // !TODO: What's the rate increase?
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
case RK_SONICWAVE:
|
|
||||||
hitrate += hitrate * 3 * skill_lv / 100; // !TODO: Confirm the hitrate bonus
|
|
||||||
break;
|
|
||||||
case MC_CARTREVOLUTION:
|
case MC_CARTREVOLUTION:
|
||||||
case GN_CART_TORNADO:
|
case GN_CART_TORNADO:
|
||||||
case GN_CARTCANNON:
|
case GN_CARTCANNON:
|
||||||
if (sd && pc_checkskill(sd, GN_REMODELING_CART))
|
{
|
||||||
hitrate += pc_checkskill(sd, GN_REMODELING_CART) * 4;
|
uint16 cart_remodel_lv = pc_checkskill(sd, GN_REMODELING_CART);
|
||||||
break;
|
|
||||||
case LG_BANISHINGPOINT:
|
if (sd && cart_remodel_lv > 0)
|
||||||
hitrate += 5 * skill_lv;
|
hitrate = hitrate * skill_get_hitrate(GN_REMODELING_CART, cart_remodel_lv) / 100;
|
||||||
break;
|
}
|
||||||
case GC_VENOMPRESSURE:
|
|
||||||
hitrate += 10 + 4 * skill_lv;
|
|
||||||
break;
|
|
||||||
case SC_FATALMENACE:
|
|
||||||
if (skill_lv < 6)
|
|
||||||
hitrate -= 35 - 5 * skill_lv;
|
|
||||||
else if (skill_lv > 6)
|
|
||||||
hitrate += 5 * skill_lv - 30;
|
|
||||||
break;
|
break;
|
||||||
case RL_SLUGSHOT:
|
case RL_SLUGSHOT:
|
||||||
{
|
{
|
||||||
int8 dist = distance_bl(src, target);
|
uint32 dist = distance_bl(src, target);
|
||||||
|
|
||||||
if (dist > 3) {
|
if (dist > 3) {
|
||||||
// Reduce n hitrate for each cell after initial 3 cells. Different each level
|
// Reduce n hitrate for each cell after initial 3 cells.
|
||||||
// -10:-9:-8:-7:-6
|
hitrate -= (skill_get_hitrate(RL_SLUGSHOT, skill_lv) * (dist - 3));
|
||||||
dist -= 3;
|
}
|
||||||
hitrate -= ((11 - skill_lv) * dist);
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
struct s_skill_hitrate skill_hitrate = skill_db.find(skill_id)->hitrate;
|
||||||
|
|
||||||
|
if (skill_hitrate.rate[skill_lv] != 100) { // Hit skill modifiers
|
||||||
|
bool req_fail = false;
|
||||||
|
|
||||||
|
// List of skills required to be learned before adjusting hitrate (players only).
|
||||||
|
for (uint16 skill_req : skill_hitrate.skills) {
|
||||||
|
if (sd && pc_checkskill(sd, skill_req) == 0) {
|
||||||
|
req_fail = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!req_fail)
|
||||||
|
hitrate = hitrate * skill_hitrate.rate[skill_lv] / 100;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -172,6 +172,7 @@ static bool skill_check(uint16 id) {
|
|||||||
|
|
||||||
// Skill DB
|
// Skill DB
|
||||||
e_damage_type skill_get_hit( uint16 skill_id ) { if (!skill_check(skill_id)) return DMG_NORMAL; return skill_db.find(skill_id)->hit; }
|
e_damage_type skill_get_hit( uint16 skill_id ) { if (!skill_check(skill_id)) return DMG_NORMAL; return skill_db.find(skill_id)->hit; }
|
||||||
|
int skill_get_hitrate( uint16 skill_id, uint16 skill_lv ) { skill_get_lv(skill_id, skill_lv, skill_db.find(skill_id)->hitrate.rate); }
|
||||||
int skill_get_inf( uint16 skill_id ) { skill_get(skill_id, skill_db.find(skill_id)->inf); }
|
int skill_get_inf( uint16 skill_id ) { skill_get(skill_id, skill_db.find(skill_id)->inf); }
|
||||||
int skill_get_ele( uint16 skill_id , uint16 skill_lv ) { skill_get_lv(skill_id, skill_lv, skill_db.find(skill_id)->element); }
|
int skill_get_ele( uint16 skill_id , uint16 skill_lv ) { skill_get_lv(skill_id, skill_lv, skill_db.find(skill_id)->element); }
|
||||||
int skill_get_max( uint16 skill_id ) { skill_get(skill_id, skill_db.find(skill_id)->max); }
|
int skill_get_max( uint16 skill_id ) { skill_get(skill_id, skill_db.find(skill_id)->max); }
|
||||||
@ -23641,6 +23642,39 @@ uint64 SkillDatabase::parseBodyNode(const ryml::NodeRef& node) {
|
|||||||
memset(skill->num, 0, sizeof(skill->num));
|
memset(skill->num, 0, sizeof(skill->num));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->nodeExists(node, "HitRate")) {
|
||||||
|
if (!this->parseNode("HitRate", "Rate", node, skill->hitrate.rate))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
const auto &skillsNode = node["HitRate"];
|
||||||
|
|
||||||
|
if (this->nodeExists(skillsNode, "Skills")) {
|
||||||
|
for (const auto &it : skillsNode) {
|
||||||
|
std::string req_skill_name;
|
||||||
|
c4::from_chars(it.key(), &req_skill_name);
|
||||||
|
uint16 req_skill_id = skill_name2id(req_skill_name.c_str());
|
||||||
|
|
||||||
|
if (skill_id == 0) {
|
||||||
|
this->invalidWarning(skillsNode, "HitRate requires skill %s is invalid.\n", req_skill_name.c_str());
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool active;
|
||||||
|
|
||||||
|
if (!this->asBool(skillsNode, req_skill_name, active))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (active)
|
||||||
|
skill->hitrate.skills.push_back(req_skill_id);
|
||||||
|
else
|
||||||
|
util::vector_erase_if_exists(skill->hitrate.skills, req_skill_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!exists)
|
||||||
|
memset(skill->hitrate.rate, 100, sizeof(skill->hitrate.rate));
|
||||||
|
}
|
||||||
|
|
||||||
if (this->nodeExists(node, "Element")) {
|
if (this->nodeExists(node, "Element")) {
|
||||||
const auto elementNode = node["Element"];
|
const auto elementNode = node["Element"];
|
||||||
std::string element;
|
std::string element;
|
||||||
|
|||||||
@ -246,6 +246,12 @@ struct s_skill_copyable { // [Cydh]
|
|||||||
uint16 req_opt;
|
uint16 req_opt;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Skill HitRate structure.
|
||||||
|
struct s_skill_hitrate{
|
||||||
|
int32 rate[MAX_SKILL_LEVEL];
|
||||||
|
std::vector<uint16> skills;
|
||||||
|
};
|
||||||
|
|
||||||
/// Database skills
|
/// Database skills
|
||||||
struct s_skill_db {
|
struct s_skill_db {
|
||||||
uint16 nameid; ///< Skill ID
|
uint16 nameid; ///< Skill ID
|
||||||
@ -259,6 +265,7 @@ struct s_skill_db {
|
|||||||
int32 splash[MAX_SKILL_LEVEL]; ///< Splash effect
|
int32 splash[MAX_SKILL_LEVEL]; ///< Splash effect
|
||||||
uint16 max; ///< Max level
|
uint16 max; ///< Max level
|
||||||
int32 num[MAX_SKILL_LEVEL]; ///< Number of hit
|
int32 num[MAX_SKILL_LEVEL]; ///< Number of hit
|
||||||
|
struct s_skill_hitrate hitrate; ///< Hitrate
|
||||||
bool castcancel; ///< Cancel cast when being hit
|
bool castcancel; ///< Cancel cast when being hit
|
||||||
uint16 cast_def_rate; ///< Def rate during cast a skill
|
uint16 cast_def_rate; ///< Def rate during cast a skill
|
||||||
e_battle_flag skill_type; ///< Skill type
|
e_battle_flag skill_type; ///< Skill type
|
||||||
@ -315,7 +322,7 @@ private:
|
|||||||
template<typename T, size_t S> bool parseNode(const std::string& nodeName, const std::string& subNodeName, const ryml::NodeRef& node, T(&arr)[S]);
|
template<typename T, size_t S> bool parseNode(const std::string& nodeName, const std::string& subNodeName, const ryml::NodeRef& node, T(&arr)[S]);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SkillDatabase() : TypesafeCachedYamlDatabase("SKILL_DB", 3, 1) {
|
SkillDatabase() : TypesafeCachedYamlDatabase("SKILL_DB", 4, 1) {
|
||||||
this->clear();
|
this->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -498,6 +505,7 @@ int skill_tree_get_max( uint16 skill_id, int b_class ); // Celest
|
|||||||
#define skill_get_index(skill_id) skill_db.get_index((skill_id), false, __FUNCTION__, __FILE__, __LINE__) /// Get skill index from skill_id (common usage on source)
|
#define skill_get_index(skill_id) skill_db.get_index((skill_id), false, __FUNCTION__, __FILE__, __LINE__) /// Get skill index from skill_id (common usage on source)
|
||||||
int skill_get_type( uint16 skill_id );
|
int skill_get_type( uint16 skill_id );
|
||||||
e_damage_type skill_get_hit( uint16 skill_id );
|
e_damage_type skill_get_hit( uint16 skill_id );
|
||||||
|
int skill_get_hitrate( uint16 skill_id, uint16 skill_lv );
|
||||||
int skill_get_inf( uint16 skill_id );
|
int skill_get_inf( uint16 skill_id );
|
||||||
int skill_get_ele( uint16 skill_id , uint16 skill_lv );
|
int skill_get_ele( uint16 skill_id , uint16 skill_lv );
|
||||||
int skill_get_max( uint16 skill_id );
|
int skill_get_max( uint16 skill_id );
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user