summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/const.txt2
-rw-r--r--db/pre-re/item_db.conf4
-rw-r--r--db/re/item_combo_db.txt6
-rw-r--r--db/re/item_db.conf8
-rw-r--r--db/sc_config.txt5
-rw-r--r--src/map/status.c18
-rw-r--r--src/map/status.h2
7 files changed, 30 insertions, 15 deletions
diff --git a/db/const.txt b/db/const.txt
index 8cd614ff9..430407967 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -1286,6 +1286,8 @@ SC_MTF_HITFLEE 587
SC_LJOSALFAR 588
SC_MERMAID_LONGING 589
+SC_ACARAJE 590
+
e_gasp 0
e_what 1
e_ho 2
diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf
index b66b1198c..c777aa28f 100644
--- a/db/pre-re/item_db.conf
+++ b/db/pre-re/item_db.conf
@@ -66691,7 +66691,7 @@ item_db: (
}
Script: <"
specialeffect2 EF_STEAL;
- sc_start SC_INCHITRATE,120000,5;
+ sc_start2 SC_ACARAJE,120000,5,10;
">
},
{
@@ -67489,7 +67489,7 @@ item_db: (
Weight: 10
BuyingStore: true
Script: <"
- sc_start SC_VITATA_500,500000,0;
+ sc_start2 SC_VITATA_500,500000,20,5;
itemheal 0,200;
">
},
diff --git a/db/re/item_combo_db.txt b/db/re/item_combo_db.txt
index 2efef8691..ab17bba21 100644
--- a/db/re/item_combo_db.txt
+++ b/db/re/item_combo_db.txt
@@ -71,10 +71,8 @@
1741:2748,{ bonus bAtk,25; bonus3 bAddEff,Eff_Curse,200,ATF_WEAPON|ATF_LONG|ATF_TARGET; }
1746:1773,{ bonus bLongAtkRate,50; }
1764:18541,{ bonus bCritAtkRate,5; }
-1775:18113,{ bonus bLongAtkRate,70; }
-1776:18113,{ bonus bLongAtkRate,40; }
-1775:18114,{ bonus bLongAtkRate,50; }
-1776:18114,{ bonus bLongAtkRate,20; }
+1775:18114,{ bonus bLongAtkRate,70; }
+1776:18114,{ bonus bLongAtkRate,40; }
1935:2988,{ bonus2 bSkillAtk,CG_ARROWVULCAN,200; bonus2 bSkillUseSP,CG_ARROWVULCAN,20; }
1990:2989,{ bonus2 bSkillAtk,CG_ARROWVULCAN,200; }
2001:2677,{ bonus bMatkRate,10; bonus bDex,2; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; }
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 2b0f70489..b86305fff 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -80782,7 +80782,7 @@ item_db: (
Weight: 80
Script: <"
specialeffect2 EF_STEAL;
- sc_start SC_INCHITRATE,120000,5;
+ sc_start2 SC_ACARAJE,120000,5,10;
">
},
{
@@ -81614,7 +81614,7 @@ item_db: (
Weight: 50
BuyingStore: true
Script: <"
- sc_start SC_VITATA_500,500000,0;
+ sc_start2 SC_VITATA_500,500000,20,5;
heal 0,200;
">
},
@@ -84384,7 +84384,7 @@ item_db: (
Buy: 2
Weight: 100
EquipLv: 130
- Script: <" getitem 1776,200; ">
+ Script: <" getitem Siege_Arrow_S,200; ">
},
{
Id: 12678
@@ -84394,7 +84394,7 @@ item_db: (
Buy: 2
Weight: 100
EquipLv: 95
- Script: <" getitem 1775,200; ">
+ Script: <" getitem Siege_Arrow_A,200; ">
},
{
Id: 12679
diff --git a/db/sc_config.txt b/db/sc_config.txt
index 650409f6c..9ae43aaa0 100644
--- a/db/sc_config.txt
+++ b/db/sc_config.txt
@@ -397,7 +397,8 @@ SC_MTF_MLEATKED,12
SC_MTF_CRIDAMAGE, 12
SC_FULL_THROTTLE, 18
SC_REBOUND, 18
-SC_TELEKINESIS_INTENSE,18
+SC_TELEKINESIS_INTENSE, 18
+SC_ACARAJE, 64
//Guild Auras should not be saved
SC_LEADERSHIP,78
@@ -439,6 +440,8 @@ SC_MOONSTAR, 207
SC_SUPER_STAR, 207
SC_STRANGELIGHTS, 207
SC_DECORATION_OF_MUSIC, 207
+SC_LJOSALFAR, 207
+SC_MERMAID_LONGING, 207
//Cant Clear
SC_ALL_RIDING, 141
diff --git a/src/map/status.c b/src/map/status.c
index 1a07f74dc..4cd73d3ac 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -823,6 +823,7 @@ void initChangeTables(void) {
status->dbs->IconChangeTable[SC_L_LIFEPOTION] = SI_L_LIFEPOTION;
status->dbs->IconChangeTable[SC_ATKER_BLOOD] = SI_ATKER_BLOOD;
status->dbs->IconChangeTable[SC_TARGET_BLOOD] = SI_TARGET_BLOOD;
+ status->dbs->IconChangeTable[SC_ACARAJE] = SI_ACARAJE;
// Mercenary Bonus Effects
status->dbs->IconChangeTable[SC_MER_FLEE] = SI_MER_FLEE;
status->dbs->IconChangeTable[SC_MER_ATK] = SI_MER_ATK;
@@ -1008,12 +1009,13 @@ void initChangeTables(void) {
status->dbs->ChangeFlagTable[SC_MUSTLE_M] |= SCB_MAXHP;
status->dbs->ChangeFlagTable[SC_LIFE_FORCE_F] |= SCB_MAXSP;
status->dbs->ChangeFlagTable[SC_EXTRACT_WHITE_POTION_Z] |= SCB_REGEN;
- status->dbs->ChangeFlagTable[SC_VITATA_500] |= SCB_REGEN;
+ status->dbs->ChangeFlagTable[SC_VITATA_500] |= SCB_REGEN | SCB_MAXSP;
status->dbs->ChangeFlagTable[SC_EXTRACT_SALAMINE_JUICE] |= SCB_ASPD;
status->dbs->ChangeFlagTable[SC_REBOUND] |= SCB_SPEED|SCB_REGEN;
status->dbs->ChangeFlagTable[SC_DEFSET] |= SCB_DEF|SCB_DEF2;
status->dbs->ChangeFlagTable[SC_MDEFSET] |= SCB_MDEF|SCB_MDEF2;
status->dbs->ChangeFlagTable[SC_MYSTERIOUS_POWDER] |= SCB_MAXHP;
+ status->dbs->ChangeFlagTable[SC_ACARAJE] |= SCB_HIT | SCB_ASPD;
status->dbs->ChangeFlagTable[SC_ALL_RIDING] = SCB_SPEED;
status->dbs->ChangeFlagTable[SC_WEDDING] = SCB_SPEED;
@@ -3328,8 +3330,8 @@ void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, str
regen->flag &=~RGN_SP;
if(sc->data[SC_EXTRACT_WHITE_POTION_Z])
regen->rate.hp += regen->rate.hp * sc->data[SC_EXTRACT_WHITE_POTION_Z]->val1/100;
- if(sc->data[SC_VITATA_500])
- regen->rate.sp += regen->rate.sp * sc->data[SC_VITATA_500]->val1/100;
+ if (sc->data[SC_VITATA_500])
+ regen->rate.sp += regen->rate.sp * sc->data[SC_VITATA_500]->val1 / 100;
}
/// Recalculates parts of an object's battle status according to the specified flags.
/// @param flag bitfield of values from enum scb_flag
@@ -4792,7 +4794,9 @@ signed short status_calc_hit(struct block_list *bl, struct status_change *sc, in
hit /= 2;
if(sc->data[SC_ILLUSIONDOPING])
hit -= hit * (5 + sc->data[SC_ILLUSIONDOPING]->val1) / 100; //custom
-
+ if (sc->data[SC_ACARAJE])
+ hit += sc->data[SC_ACARAJE]->val1;
+
return (short)cap_value(hit,1,SHRT_MAX);
}
@@ -5477,6 +5481,8 @@ short status_calc_aspd(struct block_list *bl, struct status_change *sc, short fl
bonus += sc->data[SC_GS_GATLINGFEVER]->val1;
if (sc->data[SC_STAR_COMFORT])
bonus += 3 * sc->data[SC_STAR_COMFORT]->val1;
+ if (sc->data[SC_ACARAJE])
+ bonus += sc->data[SC_ACARAJE]->val2;
}
return (bonus + pots);
@@ -5638,6 +5644,8 @@ short status_calc_aspd_rate(struct block_list *bl, struct status_change *sc, int
aspd_rate += sc->data[SC_PAIN_KILLER]->val2 * 10;
if( sc->data[SC_GOLDENE_FERSE])
aspd_rate -= sc->data[SC_GOLDENE_FERSE]->val3 * 10;
+ if (sc->data[SC_ACARAJE])
+ aspd_rate += sc->data[SC_ACARAJE]->val2 * 10;
return (short)cap_value(aspd_rate,0,SHRT_MAX);
}
@@ -5748,6 +5756,8 @@ unsigned int status_calc_maxsp(struct block_list *bl, struct status_change *sc,
maxsp += maxsp * sc->data[SC_LIFE_FORCE_F]->val1/100;
if(sc->data[SC_EARTH_INSIGNIA] && sc->data[SC_EARTH_INSIGNIA]->val1 == 3)
maxsp += 50;
+ if (sc->data[SC_VITATA_500])
+ maxsp += maxsp * sc->data[SC_VITATA_500]->val2 / 100;
return cap_value(maxsp,1,UINT_MAX);
}
diff --git a/src/map/status.h b/src/map/status.h
index 800e3de9f..7635248d0 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -745,6 +745,8 @@ typedef enum sc_type {
SC_LJOSALFAR,
SC_MERMAID_LONGING,
+
+ SC_ACARAJE, // 590
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
} sc_type;