Implemented refine result broadcast packet (#7301)
This commit is contained in:
parent
6fc3a07247
commit
19fe27932f
@ -116,7 +116,7 @@ default_bind_on_equip: 4
|
|||||||
allow_bound_sell: 0x0
|
allow_bound_sell: 0x0
|
||||||
|
|
||||||
// Hide n last characters of player's name with asterisk (*) when the player
|
// Hide n last characters of player's name with asterisk (*) when the player
|
||||||
// obtained an item with special broadcast flag.
|
// obtained an item with special broadcast flag or refined an item at a level with broadcast flag.
|
||||||
// Note: Players with short names can be fully converted to asterisks if this
|
// Note: Players with short names can be fully converted to asterisks if this
|
||||||
// config value is set high.
|
// config value is set high.
|
||||||
broadcast_hide_name: 2
|
broadcast_hide_name: 2
|
||||||
|
@ -30,6 +30,8 @@
|
|||||||
# Bonus Refinement bonus. (Default: 0)
|
# Bonus Refinement bonus. (Default: 0)
|
||||||
# RandomBonus Extra refinement bonus of 0~RandomBonus stacked on Bonus. (Default: 0)
|
# RandomBonus Extra refinement bonus of 0~RandomBonus stacked on Bonus. (Default: 0)
|
||||||
# BlacksmithBlessingAmount Amount of Blacksmith Blessing required. (Default: 0)
|
# BlacksmithBlessingAmount Amount of Blacksmith Blessing required. (Default: 0)
|
||||||
|
# BroadcastSuccess Broadcast to the whole server when a refine attempt at this level succeeds. (Default: false)
|
||||||
|
# BroadcastFailure Broadcast to the whole server when a refine attempt at this level fails. (Default: false)
|
||||||
# Chances: Success chance based on cost type. (Default: null)
|
# Chances: Success chance based on cost type. (Default: null)
|
||||||
# - Type Refinement cost type based on ore used.
|
# - Type Refinement cost type based on ore used.
|
||||||
# Rate Chance of success out of 0~10000. (Default: 0)
|
# Rate Chance of success out of 0~10000. (Default: 0)
|
||||||
@ -41,7 +43,7 @@
|
|||||||
|
|
||||||
Header:
|
Header:
|
||||||
Type: REFINE_DB
|
Type: REFINE_DB
|
||||||
Version: 1
|
Version: 2
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Event Refine Rates
|
# Event Refine Rates
|
||||||
|
@ -30,6 +30,8 @@
|
|||||||
# Bonus Refinement bonus. (Default: 0)
|
# Bonus Refinement bonus. (Default: 0)
|
||||||
# RandomBonus Extra refinement bonus of 0~RandomBonus stacked on Bonus. (Default: 0)
|
# RandomBonus Extra refinement bonus of 0~RandomBonus stacked on Bonus. (Default: 0)
|
||||||
# BlacksmithBlessingAmount Amount of Blacksmith Blessing required. (Default: 0)
|
# BlacksmithBlessingAmount Amount of Blacksmith Blessing required. (Default: 0)
|
||||||
|
# BroadcastSuccess Broadcast to the whole server when a refine attempt at this level succeeds. (Default: false)
|
||||||
|
# BroadcastFailure Broadcast to the whole server when a refine attempt at this level fails. (Default: false)
|
||||||
# Chances: Success chance based on cost type. (Default: null)
|
# Chances: Success chance based on cost type. (Default: null)
|
||||||
# - Type Refinement cost type based on ore used.
|
# - Type Refinement cost type based on ore used.
|
||||||
# Rate Chance of success out of 0~10000. (Default: 0)
|
# Rate Chance of success out of 0~10000. (Default: 0)
|
||||||
@ -41,7 +43,7 @@
|
|||||||
|
|
||||||
Header:
|
Header:
|
||||||
Type: REFINE_DB
|
Type: REFINE_DB
|
||||||
Version: 1
|
Version: 2
|
||||||
|
|
||||||
Body:
|
Body:
|
||||||
- Group: Armor
|
- Group: Armor
|
||||||
|
116
db/re/refine.yml
116
db/re/refine.yml
@ -30,6 +30,8 @@
|
|||||||
# Bonus Refinement bonus. (Default: 0)
|
# Bonus Refinement bonus. (Default: 0)
|
||||||
# RandomBonus Extra refinement bonus of 0~RandomBonus stacked on Bonus. (Default: 0)
|
# RandomBonus Extra refinement bonus of 0~RandomBonus stacked on Bonus. (Default: 0)
|
||||||
# BlacksmithBlessingAmount Amount of Blacksmith Blessing required. (Default: 0)
|
# BlacksmithBlessingAmount Amount of Blacksmith Blessing required. (Default: 0)
|
||||||
|
# BroadcastSuccess Broadcast to the whole server when a refine attempt at this level succeeds. (Default: false)
|
||||||
|
# BroadcastFailure Broadcast to the whole server when a refine attempt at this level fails. (Default: false)
|
||||||
# Chances: Success chance based on cost type. (Default: null)
|
# Chances: Success chance based on cost type. (Default: null)
|
||||||
# - Type Refinement cost type based on ore used.
|
# - Type Refinement cost type based on ore used.
|
||||||
# Rate Chance of success out of 0~10000. (Default: 0)
|
# Rate Chance of success out of 0~10000. (Default: 0)
|
||||||
@ -41,7 +43,7 @@
|
|||||||
|
|
||||||
Header:
|
Header:
|
||||||
Type: REFINE_DB
|
Type: REFINE_DB
|
||||||
Version: 1
|
Version: 2
|
||||||
|
|
||||||
Body:
|
Body:
|
||||||
- Group: Armor
|
- Group: Armor
|
||||||
@ -252,6 +254,8 @@ Body:
|
|||||||
- Level: 13
|
- Level: 13
|
||||||
Bonus: 2800
|
Bonus: 2800
|
||||||
BlacksmithBlessingAmount: 16
|
BlacksmithBlessingAmount: 16
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 800
|
Rate: 800
|
||||||
@ -267,6 +271,8 @@ Body:
|
|||||||
- Level: 14
|
- Level: 14
|
||||||
Bonus: 3200
|
Bonus: 3200
|
||||||
BlacksmithBlessingAmount: 22
|
BlacksmithBlessingAmount: 22
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 800
|
Rate: 800
|
||||||
@ -281,6 +287,8 @@ Body:
|
|||||||
DowngradeAmount: 1
|
DowngradeAmount: 1
|
||||||
- Level: 15
|
- Level: 15
|
||||||
Bonus: 3600
|
Bonus: 3600
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -295,6 +303,8 @@ Body:
|
|||||||
DowngradeAmount: 1
|
DowngradeAmount: 1
|
||||||
- Level: 16
|
- Level: 16
|
||||||
Bonus: 4000
|
Bonus: 4000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -309,6 +319,8 @@ Body:
|
|||||||
DowngradeAmount: 1
|
DowngradeAmount: 1
|
||||||
- Level: 17
|
- Level: 17
|
||||||
Bonus: 4500
|
Bonus: 4500
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -323,6 +335,8 @@ Body:
|
|||||||
DowngradeAmount: 1
|
DowngradeAmount: 1
|
||||||
- Level: 18
|
- Level: 18
|
||||||
Bonus: 5000
|
Bonus: 5000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -337,6 +351,8 @@ Body:
|
|||||||
DowngradeAmount: 1
|
DowngradeAmount: 1
|
||||||
- Level: 19
|
- Level: 19
|
||||||
Bonus: 5500
|
Bonus: 5500
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 500
|
Rate: 500
|
||||||
@ -351,6 +367,8 @@ Body:
|
|||||||
DowngradeAmount: 1
|
DowngradeAmount: 1
|
||||||
- Level: 20
|
- Level: 20
|
||||||
Bonus: 6000
|
Bonus: 6000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 500
|
Rate: 500
|
||||||
@ -517,6 +535,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 13
|
- Level: 13
|
||||||
Bonus: 3360
|
Bonus: 3360
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 800
|
Rate: 800
|
||||||
@ -530,6 +550,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 14
|
- Level: 14
|
||||||
Bonus: 3840
|
Bonus: 3840
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 800
|
Rate: 800
|
||||||
@ -543,6 +565,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 15
|
- Level: 15
|
||||||
Bonus: 4320
|
Bonus: 4320
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -556,6 +580,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 16
|
- Level: 16
|
||||||
Bonus: 4800
|
Bonus: 4800
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -569,6 +595,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 17
|
- Level: 17
|
||||||
Bonus: 5400
|
Bonus: 5400
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -582,6 +610,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 18
|
- Level: 18
|
||||||
Bonus: 6000
|
Bonus: 6000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -595,6 +625,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 19
|
- Level: 19
|
||||||
Bonus: 6600
|
Bonus: 6600
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 500
|
Rate: 500
|
||||||
@ -608,6 +640,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 20
|
- Level: 20
|
||||||
Bonus: 7200
|
Bonus: 7200
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 500
|
Rate: 500
|
||||||
@ -824,6 +858,8 @@ Body:
|
|||||||
Bonus: 2600
|
Bonus: 2600
|
||||||
RandomBonus: 1800
|
RandomBonus: 1800
|
||||||
BlacksmithBlessingAmount: 16
|
BlacksmithBlessingAmount: 16
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1800
|
Rate: 1800
|
||||||
@ -840,6 +876,8 @@ Body:
|
|||||||
Bonus: 2800
|
Bonus: 2800
|
||||||
RandomBonus: 2100
|
RandomBonus: 2100
|
||||||
BlacksmithBlessingAmount: 22
|
BlacksmithBlessingAmount: 22
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1800
|
Rate: 1800
|
||||||
@ -855,6 +893,8 @@ Body:
|
|||||||
- Level: 15
|
- Level: 15
|
||||||
Bonus: 3000
|
Bonus: 3000
|
||||||
RandomBonus: 2400
|
RandomBonus: 2400
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1800
|
Rate: 1800
|
||||||
@ -870,6 +910,8 @@ Body:
|
|||||||
- Level: 16
|
- Level: 16
|
||||||
Bonus: 4800
|
Bonus: 4800
|
||||||
RandomBonus: 2700
|
RandomBonus: 2700
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1700
|
Rate: 1700
|
||||||
@ -885,6 +927,8 @@ Body:
|
|||||||
- Level: 17
|
- Level: 17
|
||||||
Bonus: 5100
|
Bonus: 5100
|
||||||
RandomBonus: 3000
|
RandomBonus: 3000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1700
|
Rate: 1700
|
||||||
@ -900,6 +944,8 @@ Body:
|
|||||||
- Level: 18
|
- Level: 18
|
||||||
Bonus: 5400
|
Bonus: 5400
|
||||||
RandomBonus: 3300
|
RandomBonus: 3300
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1700
|
Rate: 1700
|
||||||
@ -915,6 +961,8 @@ Body:
|
|||||||
- Level: 19
|
- Level: 19
|
||||||
Bonus: 5700
|
Bonus: 5700
|
||||||
RandomBonus: 3600
|
RandomBonus: 3600
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1500
|
Rate: 1500
|
||||||
@ -930,6 +978,8 @@ Body:
|
|||||||
- Level: 20
|
- Level: 20
|
||||||
Bonus: 6000
|
Bonus: 6000
|
||||||
RandomBonus: 3900
|
RandomBonus: 3900
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1500
|
Rate: 1500
|
||||||
@ -1149,6 +1199,8 @@ Body:
|
|||||||
Bonus: 3900
|
Bonus: 3900
|
||||||
RandomBonus: 3500
|
RandomBonus: 3500
|
||||||
BlacksmithBlessingAmount: 16
|
BlacksmithBlessingAmount: 16
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1800
|
Rate: 1800
|
||||||
@ -1165,6 +1217,8 @@ Body:
|
|||||||
Bonus: 4200
|
Bonus: 4200
|
||||||
RandomBonus: 4000
|
RandomBonus: 4000
|
||||||
BlacksmithBlessingAmount: 22
|
BlacksmithBlessingAmount: 22
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1800
|
Rate: 1800
|
||||||
@ -1180,6 +1234,8 @@ Body:
|
|||||||
- Level: 15
|
- Level: 15
|
||||||
Bonus: 4500
|
Bonus: 4500
|
||||||
RandomBonus: 4500
|
RandomBonus: 4500
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1800
|
Rate: 1800
|
||||||
@ -1195,6 +1251,8 @@ Body:
|
|||||||
- Level: 16
|
- Level: 16
|
||||||
Bonus: 8000
|
Bonus: 8000
|
||||||
RandomBonus: 5000
|
RandomBonus: 5000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1700
|
Rate: 1700
|
||||||
@ -1210,6 +1268,8 @@ Body:
|
|||||||
- Level: 17
|
- Level: 17
|
||||||
Bonus: 8500
|
Bonus: 8500
|
||||||
RandomBonus: 5500
|
RandomBonus: 5500
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1700
|
Rate: 1700
|
||||||
@ -1225,6 +1285,8 @@ Body:
|
|||||||
- Level: 18
|
- Level: 18
|
||||||
Bonus: 9000
|
Bonus: 9000
|
||||||
RandomBonus: 6000
|
RandomBonus: 6000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1700
|
Rate: 1700
|
||||||
@ -1240,6 +1302,8 @@ Body:
|
|||||||
- Level: 19
|
- Level: 19
|
||||||
Bonus: 9500
|
Bonus: 9500
|
||||||
RandomBonus: 6500
|
RandomBonus: 6500
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1500
|
Rate: 1500
|
||||||
@ -1255,6 +1319,8 @@ Body:
|
|||||||
- Level: 20
|
- Level: 20
|
||||||
Bonus: 10000
|
Bonus: 10000
|
||||||
RandomBonus: 7000
|
RandomBonus: 7000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1500
|
Rate: 1500
|
||||||
@ -1478,6 +1544,8 @@ Body:
|
|||||||
Bonus: 6500
|
Bonus: 6500
|
||||||
RandomBonus: 6400
|
RandomBonus: 6400
|
||||||
BlacksmithBlessingAmount: 16
|
BlacksmithBlessingAmount: 16
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1800
|
Rate: 1800
|
||||||
@ -1494,6 +1562,8 @@ Body:
|
|||||||
Bonus: 7000
|
Bonus: 7000
|
||||||
RandomBonus: 7200
|
RandomBonus: 7200
|
||||||
BlacksmithBlessingAmount: 22
|
BlacksmithBlessingAmount: 22
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1800
|
Rate: 1800
|
||||||
@ -1509,6 +1579,8 @@ Body:
|
|||||||
- Level: 15
|
- Level: 15
|
||||||
Bonus: 7500
|
Bonus: 7500
|
||||||
RandomBonus: 8000
|
RandomBonus: 8000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1800
|
Rate: 1800
|
||||||
@ -1524,6 +1596,8 @@ Body:
|
|||||||
- Level: 16
|
- Level: 16
|
||||||
Bonus: 11200
|
Bonus: 11200
|
||||||
RandomBonus: 8800
|
RandomBonus: 8800
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1700
|
Rate: 1700
|
||||||
@ -1539,6 +1613,8 @@ Body:
|
|||||||
- Level: 17
|
- Level: 17
|
||||||
Bonus: 11900
|
Bonus: 11900
|
||||||
RandomBonus: 9600
|
RandomBonus: 9600
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1700
|
Rate: 1700
|
||||||
@ -1554,6 +1630,8 @@ Body:
|
|||||||
- Level: 18
|
- Level: 18
|
||||||
Bonus: 12600
|
Bonus: 12600
|
||||||
RandomBonus: 10400
|
RandomBonus: 10400
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1700
|
Rate: 1700
|
||||||
@ -1569,6 +1647,8 @@ Body:
|
|||||||
- Level: 19
|
- Level: 19
|
||||||
Bonus: 13300
|
Bonus: 13300
|
||||||
RandomBonus: 11200
|
RandomBonus: 11200
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1500
|
Rate: 1500
|
||||||
@ -1584,6 +1664,8 @@ Body:
|
|||||||
- Level: 20
|
- Level: 20
|
||||||
Bonus: 14000
|
Bonus: 14000
|
||||||
RandomBonus: 12000
|
RandomBonus: 12000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 1500
|
Rate: 1500
|
||||||
@ -1811,6 +1893,8 @@ Body:
|
|||||||
Bonus: 9100
|
Bonus: 9100
|
||||||
RandomBonus: 12600
|
RandomBonus: 12600
|
||||||
BlacksmithBlessingAmount: 16
|
BlacksmithBlessingAmount: 16
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 800
|
Rate: 800
|
||||||
@ -1827,6 +1911,8 @@ Body:
|
|||||||
Bonus: 9800
|
Bonus: 9800
|
||||||
RandomBonus: 14000
|
RandomBonus: 14000
|
||||||
BlacksmithBlessingAmount: 22
|
BlacksmithBlessingAmount: 22
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 800
|
Rate: 800
|
||||||
@ -1842,6 +1928,8 @@ Body:
|
|||||||
- Level: 15
|
- Level: 15
|
||||||
Bonus: 10500
|
Bonus: 10500
|
||||||
RandomBonus: 15400
|
RandomBonus: 15400
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -1857,6 +1945,8 @@ Body:
|
|||||||
- Level: 16
|
- Level: 16
|
||||||
Bonus: 16000
|
Bonus: 16000
|
||||||
RandomBonus: 16800
|
RandomBonus: 16800
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -1872,6 +1962,8 @@ Body:
|
|||||||
- Level: 17
|
- Level: 17
|
||||||
Bonus: 17000
|
Bonus: 17000
|
||||||
RandomBonus: 18200
|
RandomBonus: 18200
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -1887,6 +1979,8 @@ Body:
|
|||||||
- Level: 18
|
- Level: 18
|
||||||
Bonus: 18000
|
Bonus: 18000
|
||||||
RandomBonus: 19600
|
RandomBonus: 19600
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -1902,6 +1996,8 @@ Body:
|
|||||||
- Level: 19
|
- Level: 19
|
||||||
Bonus: 19000
|
Bonus: 19000
|
||||||
RandomBonus: 21000
|
RandomBonus: 21000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 500
|
Rate: 500
|
||||||
@ -1917,6 +2013,8 @@ Body:
|
|||||||
- Level: 20
|
- Level: 20
|
||||||
Bonus: 20000
|
Bonus: 20000
|
||||||
RandomBonus: 22400
|
RandomBonus: 22400
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 500
|
Rate: 500
|
||||||
@ -2083,6 +2181,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 13
|
- Level: 13
|
||||||
Bonus: 10400
|
Bonus: 10400
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 800
|
Rate: 800
|
||||||
@ -2096,6 +2196,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 14
|
- Level: 14
|
||||||
Bonus: 11200
|
Bonus: 11200
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 800
|
Rate: 800
|
||||||
@ -2109,6 +2211,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 15
|
- Level: 15
|
||||||
Bonus: 12000
|
Bonus: 12000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -2122,6 +2226,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 16
|
- Level: 16
|
||||||
Bonus: 12800
|
Bonus: 12800
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -2135,6 +2241,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 17
|
- Level: 17
|
||||||
Bonus: 13600
|
Bonus: 13600
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -2148,6 +2256,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 18
|
- Level: 18
|
||||||
Bonus: 14400
|
Bonus: 14400
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 700
|
Rate: 700
|
||||||
@ -2161,6 +2271,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 19
|
- Level: 19
|
||||||
Bonus: 15200
|
Bonus: 15200
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 500
|
Rate: 500
|
||||||
@ -2174,6 +2286,8 @@ Body:
|
|||||||
BreakingRate: 10000
|
BreakingRate: 10000
|
||||||
- Level: 20
|
- Level: 20
|
||||||
Bonus: 16000
|
Bonus: 16000
|
||||||
|
BroadcastSuccess: true
|
||||||
|
BroadcastFailure: true
|
||||||
Chances:
|
Chances:
|
||||||
- Type: Normal
|
- Type: Normal
|
||||||
Rate: 500
|
Rate: 500
|
||||||
|
@ -30,6 +30,8 @@
|
|||||||
# Bonus Refinement bonus. (Default: 0)
|
# Bonus Refinement bonus. (Default: 0)
|
||||||
# RandomBonus Extra refinement bonus of 0~RandomBonus stacked on Bonus. (Default: 0)
|
# RandomBonus Extra refinement bonus of 0~RandomBonus stacked on Bonus. (Default: 0)
|
||||||
# BlacksmithBlessingAmount Amount of Blacksmith Blessing required. (Default: 0)
|
# BlacksmithBlessingAmount Amount of Blacksmith Blessing required. (Default: 0)
|
||||||
|
# BroadcastSuccess Broadcast to the whole server when a refine attempt at this level succeeds. (Default: false)
|
||||||
|
# BroadcastFailure Broadcast to the whole server when a refine attempt at this level fails. (Default: false)
|
||||||
# Chances: Success chance based on cost type. (Default: null)
|
# Chances: Success chance based on cost type. (Default: null)
|
||||||
# - Type Refinement cost type based on ore used.
|
# - Type Refinement cost type based on ore used.
|
||||||
# Rate Chance of success out of 0~10000. (Default: 0)
|
# Rate Chance of success out of 0~10000. (Default: 0)
|
||||||
@ -41,7 +43,7 @@
|
|||||||
|
|
||||||
Header:
|
Header:
|
||||||
Type: REFINE_DB
|
Type: REFINE_DB
|
||||||
Version: 1
|
Version: 2
|
||||||
|
|
||||||
Footer:
|
Footer:
|
||||||
Imports:
|
Imports:
|
||||||
|
@ -20878,6 +20878,14 @@ void clif_parse_merge_item_cancel(int fd, struct map_session_data* sd) {
|
|||||||
return; // Nothing todo yet
|
return; // Nothing todo yet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::string clif_hide_name(const char* original_name)
|
||||||
|
{
|
||||||
|
std::string censored(original_name);
|
||||||
|
int hide = min(battle_config.broadcast_hide_name, censored.length() - 1);
|
||||||
|
censored.replace(censored.length() - hide, hide, hide, '*');
|
||||||
|
return censored;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 07fd <size>.W <type>.B <itemid>.W <charname_len>.B <charname>.24B <source_len>.B <containerid>.W (ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN)
|
* 07fd <size>.W <type>.B <itemid>.W <charname_len>.B <charname>.24B <source_len>.B <containerid>.W (ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN)
|
||||||
* 07fd <size>.W <type>.B <itemid>.W <charname_len>.B <charname>.24B <source_len>.B <srcname>.24B (ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN)
|
* 07fd <size>.W <type>.B <itemid>.W <charname_len>.B <charname>.24B <source_len>.B <srcname>.24B (ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN)
|
||||||
@ -20888,10 +20896,8 @@ void clif_broadcast_obtain_special_item( const char *char_name, t_itemid nameid,
|
|||||||
char name[NAME_LENGTH];
|
char name[NAME_LENGTH];
|
||||||
|
|
||||||
if( battle_config.broadcast_hide_name ){
|
if( battle_config.broadcast_hide_name ){
|
||||||
std::string dispname = std::string( char_name );
|
std::string dispname = clif_hide_name(char_name);
|
||||||
int hide = min( battle_config.broadcast_hide_name, dispname.length() - 1 );
|
safestrncpy(name, dispname.c_str(), sizeof(name));
|
||||||
dispname.replace( dispname.length() - hide, hide, hide, '*' );
|
|
||||||
safestrncpy( name, dispname.c_str(), sizeof( name ) );
|
|
||||||
}else{
|
}else{
|
||||||
safestrncpy( name, char_name, sizeof( name ) );
|
safestrncpy( name, char_name, sizeof( name ) );
|
||||||
}
|
}
|
||||||
@ -22308,6 +22314,9 @@ void clif_parse_refineui_refine( int fd, struct map_session_data* sd ){
|
|||||||
log_pick_pc( sd, LOG_TYPE_OTHER, 1, item );
|
log_pick_pc( sd, LOG_TYPE_OTHER, 1, item );
|
||||||
clif_misceffect( &sd->bl, 3 );
|
clif_misceffect( &sd->bl, 3 );
|
||||||
clif_refine( fd, 0, index, item->refine );
|
clif_refine( fd, 0, index, item->refine );
|
||||||
|
if (info->broadcast_success) {
|
||||||
|
clif_broadcast_refine_result(*sd, item->nameid, item->refine, true);
|
||||||
|
}
|
||||||
if( id->type == IT_WEAPON ){
|
if( id->type == IT_WEAPON ){
|
||||||
achievement_update_objective( sd, AG_ENCHANT_SUCCESS, 2, id->weapon_level, item->refine );
|
achievement_update_objective( sd, AG_ENCHANT_SUCCESS, 2, id->weapon_level, item->refine );
|
||||||
}
|
}
|
||||||
@ -22315,6 +22324,9 @@ void clif_parse_refineui_refine( int fd, struct map_session_data* sd ){
|
|||||||
}else{
|
}else{
|
||||||
// Failure
|
// Failure
|
||||||
|
|
||||||
|
if (info->broadcast_failure) {
|
||||||
|
clif_broadcast_refine_result(*sd, item->nameid, item->refine, false);
|
||||||
|
}
|
||||||
// Blacksmith blessings were used to prevent breaking and downgrading
|
// Blacksmith blessings were used to prevent breaking and downgrading
|
||||||
if( blacksmith_amount > 0 ){
|
if( blacksmith_amount > 0 ){
|
||||||
clif_refine( fd, 3, index, item->refine );
|
clif_refine( fd, 3, index, item->refine );
|
||||||
@ -24593,6 +24605,27 @@ void clif_parse_itempackage_select( int fd, struct map_session_data* sd ){
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clif_broadcast_refine_result(map_session_data& sd, t_itemid itemId, int8 level, bool success)
|
||||||
|
{
|
||||||
|
#if PACKETVER_MAIN_NUM >= 20170906 || PACKETVER_RE_NUM >= 20170830 || defined(PACKETVER_ZERO)
|
||||||
|
PACKET_ZC_BROADCAST_ITEMREFINING_RESULT p{};
|
||||||
|
p.packetType = HEADER_ZC_BROADCAST_ITEMREFINING_RESULT;
|
||||||
|
p.itemId = itemId;
|
||||||
|
p.refine_level = level;
|
||||||
|
p.status = (int8)success;
|
||||||
|
|
||||||
|
if (battle_config.broadcast_hide_name) {
|
||||||
|
std::string dispname = clif_hide_name(sd.status.name);
|
||||||
|
safestrncpy(p.name, dispname.c_str(), sizeof(p.name));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
safestrncpy(p.name, sd.status.name, sizeof(p.name));
|
||||||
|
}
|
||||||
|
|
||||||
|
clif_send(&p, sizeof(p), &sd.bl, ALL_CLIENT);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/*==========================================
|
/*==========================================
|
||||||
* Main client packet processing function
|
* Main client packet processing function
|
||||||
*------------------------------------------*/
|
*------------------------------------------*/
|
||||||
|
@ -1215,4 +1215,6 @@ void clif_enchantwindow_open( struct map_session_data& sd, uint64 clientLuaIndex
|
|||||||
// Enchanting Shadow / Shadow Scar Spirit
|
// Enchanting Shadow / Shadow Scar Spirit
|
||||||
void clif_enchantingshadow_spirit(unit_data &ud);
|
void clif_enchantingshadow_spirit(unit_data &ud);
|
||||||
|
|
||||||
|
void clif_broadcast_refine_result(struct map_session_data& sd, t_itemid itemId, int8 level, bool success);
|
||||||
|
|
||||||
#endif /* CLIF_HPP */
|
#endif /* CLIF_HPP */
|
||||||
|
@ -230,6 +230,32 @@ uint64 RefineDatabase::parseBodyNode( const ryml::NodeRef& node ){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->nodeExists(refineLevelNode, "BroadcastSuccess")) {
|
||||||
|
bool bcast;
|
||||||
|
if (!this->asBool(refineLevelNode, "BroadcastSuccess", bcast)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
level_info->broadcast_success = bcast;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!level_exists) {
|
||||||
|
level_info->broadcast_success = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this->nodeExists(refineLevelNode, "BroadcastFailure")) {
|
||||||
|
bool bcast;
|
||||||
|
if (!this->asBool(refineLevelNode, "BroadcastFailure", bcast)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
level_info->broadcast_failure = bcast;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!level_exists) {
|
||||||
|
level_info->broadcast_failure = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if( this->nodeExists( refineLevelNode, "Chances" ) ){
|
if( this->nodeExists( refineLevelNode, "Chances" ) ){
|
||||||
const auto& chancesNode = refineLevelNode["Chances"];
|
const auto& chancesNode = refineLevelNode["Chances"];
|
||||||
for( const auto& chanceNode : chancesNode ){
|
for( const auto& chanceNode : chancesNode ){
|
||||||
|
@ -73,6 +73,8 @@ struct s_refine_level_info{
|
|||||||
uint32 bonus;
|
uint32 bonus;
|
||||||
uint32 randombonus_max;
|
uint32 randombonus_max;
|
||||||
uint16 blessing_amount;
|
uint16 blessing_amount;
|
||||||
|
bool broadcast_success;
|
||||||
|
bool broadcast_failure;
|
||||||
std::unordered_map<uint16, std::shared_ptr<s_refine_cost>> costs;
|
std::unordered_map<uint16, std::shared_ptr<s_refine_cost>> costs;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -92,7 +94,7 @@ private:
|
|||||||
std::shared_ptr<s_refine_level_info> findLevelInfoSub( const struct item_data& data, struct item& item, uint16 refine );
|
std::shared_ptr<s_refine_level_info> findLevelInfoSub( const struct item_data& data, struct item& item, uint16 refine );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RefineDatabase() : TypesafeYamlDatabase( "REFINE_DB", 1 ){
|
RefineDatabase() : TypesafeYamlDatabase( "REFINE_DB", 2, 1 ){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user