diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-06-04 01:44:59 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-06-04 01:44:59 -0300 |
commit | 6209e38538f2fc1418dd644862ff3c85af21c62a (patch) | |
tree | 8432fb5cc95c85b4931306c1c47d2dbe09ee6c1d | |
parent | 3650b0b6c021f12922b2ba1624b971a5984c51f1 (diff) | |
download | serverdata-6209e38538f2fc1418dd644862ff3c85af21c62a.tar.gz serverdata-6209e38538f2fc1418dd644862ff3c85af21c62a.tar.bz2 serverdata-6209e38538f2fc1418dd644862ff3c85af21c62a.tar.xz serverdata-6209e38538f2fc1418dd644862ff3c85af21c62a.zip |
Refinery for Savior and Legendary items can go up to +12 and will never nerf.
Meaning a legendary or savior item will never lose refine levels.
They can still break.
-rw-r--r-- | db/re/refine_db.conf | 18 | ||||
-rw-r--r-- | npc/functions/refine.txt | 18 |
2 files changed, 23 insertions, 13 deletions
diff --git a/db/re/refine_db.conf b/db/re/refine_db.conf index 04bf67a7d..5c63ccbd9 100644 --- a/db/re/refine_db.conf +++ b/db/re/refine_db.conf @@ -131,21 +131,21 @@ Armors: { EnrichedChance: 40 Bonus: 500 } - // Anything below this line was NOT MAINTENANED Lv11: { - NormalChance: 30 + NormalChance: 35 EnrichedChance: 30 - Bonus: 300 + Bonus: 600 } Lv12: { - NormalChance: 0 - EnrichedChance: 0 - Bonus: 300 + NormalChance: 32 + EnrichedChance: 20 + Bonus: 600 } + // Anything below this line was NOT MAINTENANED Lv13: { - NormalChance: 0 - EnrichedChance: 0 - Bonus: 400 + NormalChance: 25 + EnrichedChance: 10 + Bonus: 700 } Lv14: { NormalChance: 0 diff --git a/npc/functions/refine.txt b/npc/functions/refine.txt index e5c835070..dee5c36e0 100644 --- a/npc/functions/refine.txt +++ b/npc/functions/refine.txt @@ -60,8 +60,17 @@ function script refineMaster { return; } + // Savior items have different rules + .@savior = false; + if (compare("savior", strtolower(getitemname(getarg(0))))) + .@savior = true; + + // Legendary Weapons, this formula is hardcoded in C + if (is_between(3600, 3610, getarg(0))) + .@savior = true; + // Max refining level: 10 - if (getequiprefinerycnt(.@it) >= 10) { + if (getequiprefinerycnt(.@it) >= (.@savior ? 12 : 10)) { mesn; mesq l("This item cannot be refined further."); return; @@ -93,7 +102,8 @@ function script refineMaster { } mesn; mesq l("This @@ is a nice stuff. I can refine it for @@ GP and @@ @@.", getitemlink(.@item), .@price, .@amount, getitemlink(.@rg)); - mesc l("Success ratio is of aprox. @@ %", (100-(.@rlv*7))+rand2(-6,6)); + .@fake = (.@savior ? rand2(-1,1) : rand2(-6, 6)); + mesc l("Success ratio is of aprox. @@ %", (100-(.@rlv*7))+.@fake); next; if (askyesno() != ASK_YES) close; @@ -146,8 +156,8 @@ function script refineMaster { mesc l("Weapons: +8 attack, +8 magic attack"); mesc l("Armors: +3~5 defense"); next; - // Item is weakened. (1% per refine level) - } else if (rand2(100) < .@rlv) { + // Item is weakened. (1% per refine level) (Savior Immunity) + } else if (rand2(100) < .@rlv && !.@savior) { downrefitem .@it, 1; mesn; mesq l("A masterpiece!... Whaaaat, this stuff got ##Bweaker##b??"); |