* Typo fixed, thanks to @xEasycore

* Udpated item upgrade, added `NeedRefineMax`
This commit is contained in:
Cydh 2019-11-12 10:38:57 +07:00
parent 0368896510
commit c1c02048f9
9 changed files with 23 additions and 11 deletions

View File

@ -7,7 +7,7 @@
###########################################################################
# - Id: # (int) Item ID of synthesis box
# NeedRefine: # (int) Minimum refine level for source item
# SourceNeeded: # (int) Number of item sets (in SourceItem) must be selected
# SourceNeeded: # (int) Number of item sets (in SourceItem) must be selected (default: 1)
# SourceItem: # List of item required
# - Item: # (int) Item ID for source
# - Amount: # (int) Item amount will be consumed

View File

@ -6,8 +6,9 @@
#
###########################################################################
# - Id: # (int) Item ID of upgrade box
# NeedRefineMin: # (int) Minimum refine level for target item (default :0)
# NeedOptionNumMin: # (int) Minimum random option that target item has (default :0)
# NeedRefineMin: # (int) Minimum refine level needed for target item (default: 0)
# NeedRefineMax: # (int) Maximum refine level needed for target item (default: MAX_REFINE)
# NeedOptionNumMin: # (int) Minimum random option that target item has (default: 0)
# NotSocketEnchantItem: # (bool) Target item must not has enchant stone (default: true)
# TargetItem: # List of possible item to be upgraded
# - Item: # (int) Target's Item ID

View File

@ -7,7 +7,7 @@
###########################################################################
# - Id: # (int) Item ID of synthesis box
# NeedRefine: # (int) Minimum refine level for source item
# SourceNeeded: # (int) Number of item sets (in SourceItem) must be selected
# SourceNeeded: # (int) Number of item sets (in SourceItem) must be selected (default: 1)
# SourceItem: # List of item required
# - Item: # (int) Item ID for source
# - Amount: # (int) Item amount will be consumed

View File

@ -6,8 +6,9 @@
#
###########################################################################
# - Id: # (int) Item ID of upgrade box
# NeedRefineMin: # (int) Minimum refine level for target item (default :0)
# NeedOptionNumMin: # (int) Minimum random option that target item has (default :0)
# NeedRefineMin: # (int) Minimum refine level needed for target item (default: 0)
# NeedRefineMax: # (int) Maximum refine level needed for target item (default: MAX_REFINE)
# NeedOptionNumMin: # (int) Minimum random option that target item has (default: 0)
# NotSocketEnchantItem: # (bool) Target item must not has enchant stone (default: true)
# TargetItem: # List of possible item to be upgraded
# - Item: # (int) Target's Item ID

View File

@ -7,7 +7,7 @@
###########################################################################
# - Id: # (int) Item ID of synthesis box
# NeedRefine: # (int) Minimum refine level for source item
# SourceNeeded: # (int) Number of item sets (in SourceItem) must be selected
# SourceNeeded: # (int) Number of item sets (in SourceItem) must be selected (default: 1)
# SourceItem: # List of item required
# - Item: # (int) Item ID for source
# - Amount: # (int) Item amount will be consumed

View File

@ -6,8 +6,9 @@
#
###########################################################################
# - Id: # (int) Item ID of upgrade box
# NeedRefineMin: # (int) Minimum refine level for target item (default :0)
# NeedOptionNumMin: # (int) Minimum random option that target item has (default :0)
# NeedRefineMin: # (int) Minimum refine level needed for target item (default: 0)
# NeedRefineMax: # (int) Maximum refine level needed for target item (default: MAX_REFINE)
# NeedOptionNumMin: # (int) Minimum random option that target item has (default: 0)
# NotSocketEnchantItem: # (bool) Target item must not has enchant stone (default: true)
# TargetItem: # List of possible item to be upgraded
# - Item: # (int) Target's Item ID

View File

@ -213,7 +213,7 @@ void do_final_item_synthesis(void) {
* Constructor
*/
s_item_synthesis_db::s_item_synthesis_db()
: source_needed(0)
: source_needed(1)
, sources()
, reward(nullptr)
, source_refine_min(0)

View File

@ -84,8 +84,12 @@ uint64 ItemUpgradeDatabase::parseBodyNode(const YAML::Node &node) {
this->asUInt16(node, "NeedRefineMin", entry->source_refine_min);
}
if (this->nodeExists(node, "NeedRefineMax")) {
this->asUInt16(node, "NeedRefineMax", entry->source_refine_max);
}
if (this->nodeExists(node, "NeedOptionNumMin")) {
this->asUInt16(node, "NeedOptionNumMin", entry->source_refine_min);
this->asUInt16(node, "NeedOptionNumMin", entry->need_option_num);
}
if (this->nodeExists(node, "NotSocketEnchantItem")) {
@ -212,6 +216,7 @@ s_item_upgrade_db::s_item_upgrade_db()
: targets()
, result(nullptr)
, source_refine_min(0)
, source_refine_max(MAX_REFINE)
, need_option_num(0)
, not_socket_enchant(false)
, delete_target_onsuccess(true)
@ -252,6 +257,9 @@ bool s_item_upgrade_db::checkRequirement(item *it, item_data *id)
if (this->source_refine_min > it->refine)
return false;
if (this->source_refine_max < it->refine)
return false;
if (this->not_socket_enchant) {
for (int i = id->slot; i < MAX_SLOTS; i++) {
if (it->card[i])

View File

@ -21,6 +21,7 @@ struct s_item_upgrade_db {
std::vector<uint32> targets;
script_code *result;
uint16 source_refine_min;
uint16 source_refine_max;
uint16 need_option_num;
bool not_socket_enchant;
bool delete_target_onsuccess;