From 55c98b69b783fc9e52116943cb40d13c4462c97c Mon Sep 17 00:00:00 2001 From: Jedzkie Date: Sun, 20 Dec 2015 00:48:13 +0800 Subject: Item & Skill Update: - Speed Potion & Guyak Pudding effects are now official. • Movement Speed changed from 50% to 100% • Removed its hard coded data in src. • Cannot be Slowed by Quagmire, Decrease AGI, and Slow Grace. - Modified Rudo Card effect. - NPC_AGIUP movement speed is now official • Movement speed changed from 50% to 100% • Fixed 100% movement speed per level. - Fix Slow Down Potion's movement speed reduction. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/pre-re/item_db.conf | 13 ++++++----- db/re/item_db.conf | 16 +++++++------- src/map/skill.c | 6 ++--- src/map/status.c | 60 +++++++++++++++++++++++--------------------------- 4 files changed, 46 insertions(+), 49 deletions(-) diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf index e9d13f16b..589b007e8 100644 --- a/db/pre-re/item_db.conf +++ b/db/pre-re/item_db.conf @@ -61722,7 +61722,7 @@ item_db: ( Buy: 2 Weight: 100 BuyingStore: true - Script: <" sc_start SC_MOVHASTE_INFINITY,5000,0; "> + Script: <" sc_start SC_MOVHASTE_INFINITY, 5000, 100; "> }, { Id: 12017 @@ -61732,7 +61732,7 @@ item_db: ( Buy: 2 Weight: 100 BuyingStore: true - Script: <" sc_start SC_SLOWDOWN,5000,0; "> + Script: <" sc_start SC_SLOWDOWN, 5000, 100; "> }, { Id: 12018 @@ -69079,6 +69079,7 @@ item_db: ( Type: 2 Buy: 0 Weight: 200 + Script: <" sc_start SC_MOVHASTE_INFINITY, 300000, 100; "> }, { Id: 12711 @@ -81166,11 +81167,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 12016,5; "> + Script: <" getitem Speed_Up_Potion, 5; "> }, { Id: 13995 @@ -81184,11 +81185,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 12016,10; "> + Script: <" getitem Speed_Up_Potion, 10; "> }, { Id: 13996 diff --git a/db/re/item_db.conf b/db/re/item_db.conf index a01a9d3d1..f9cb7dd2a 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -41090,7 +41090,7 @@ item_db: ( Weight: 10 Loc: 64 Script: <" - autobonus "{ sc_start SC_MOVHASTE_INFINITY,3000,0; bonus bAgi,44; heal 0,-40; }",3,3000,0; + autobonus "{ sc_start SC_MOVHASTE_HORSE, 3000, 100; bonus bAgi, 44; heal 0, -40; }", 3, 3000, 0, "{ specialeffect2 EF_WIND; }"; "> }, { @@ -76642,7 +76642,7 @@ item_db: ( Buy: 2 Weight: 100 BuyingStore: true - Script: <" sc_start SC_MOVHASTE_INFINITY,5000,0; "> + Script: <" sc_start SC_MOVHASTE_INFINITY, 5000, 100; "> }, { Id: 12017 @@ -76652,7 +76652,7 @@ item_db: ( Buy: 2 Weight: 100 BuyingStore: true - Script: <" sc_start SC_SLOWDOWN,5000,0; "> + Script: <" sc_start SC_SLOWDOWN, 5000, 100; "> }, { Id: 12018 @@ -85625,7 +85625,7 @@ item_db: ( Type: 2 Buy: 0 Weight: 200 - Script: <" sc_start SC_MOVHASTE_INFINITY,300000,0; "> + Script: <" sc_start SC_MOVHASTE_INFINITY, 300000, 100; "> }, { Id: 12711 @@ -103469,11 +103469,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 12016,5; "> + Script: <" getitem Speed_Up_Potion, 5; "> }, { Id: 13995 @@ -103487,11 +103487,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 12016,10; "> + Script: <" getitem Speed_Up_Potion, 10; "> }, { Id: 13996 diff --git a/src/map/skill.c b/src/map/skill.c index 8d97409fb..9b06591f4 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7383,9 +7383,9 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin break; case NPC_AGIUP: - sc_start(src,bl,SC_MOVHASTE_INFINITY,100,skill_lv,skill->get_time(skill_id, skill_lv)); - clif->skill_nodamage(src,bl,skill_id,skill_lv, - sc_start(src,bl,type,100,100,skill->get_time(skill_id, skill_lv))); + sc_start(src, bl, SC_MOVHASTE_INFINITY, 100, 100, skill->get_time(skill_id, skill_lv)); // Fix 100% movement speed in all levels. [Frost] + clif->skill_nodamage(src, bl, skill_id, skill_lv, + sc_start(src, bl, type, 100, 100, skill->get_time(skill_id, skill_lv))); break; case NPC_INVISIBLE: diff --git a/src/map/status.c b/src/map/status.c index 9f7465da0..5225dd40d 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -983,6 +983,7 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_ATTHASTE_INFINITY] = SCB_ASPD; status->dbs->ChangeFlagTable[SC_MOVHASTE_HORSE] = SCB_SPEED; status->dbs->ChangeFlagTable[SC_MOVHASTE_INFINITY] = SCB_SPEED; + status->dbs->ChangeFlagTable[SC_SLOWDOWN] |= SCB_SPEED; status->dbs->ChangeFlagTable[SC_PLUSATTACKPOWER] = SCB_BATK; status->dbs->ChangeFlagTable[SC_PLUSMAGICPOWER] = SCB_MATK; status->dbs->ChangeFlagTable[SC_INCALLSTATUS] |= SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK; @@ -5443,8 +5444,8 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc val = max( val, sc->data[SC_CLOAKING]->val1 < 3 ? 300 : 30 - 3 * sc->data[SC_CLOAKING]->val1 ); if( sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_ENEMY ) val = max( val, 75 ); - if( sc->data[SC_SLOWDOWN] ) // Slow Potion - val = max( val, 100 ); + if (sc->data[SC_SLOWDOWN]) // Slow Potion + val = max(val, sc->data[SC_SLOWDOWN]->val1); if( sc->data[SC_GS_GATLINGFEVER] ) val = max( val, 100 ); if( sc->data[SC_NJ_SUITON] ) @@ -5486,8 +5487,8 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc { int val = 0; - if( sc->data[SC_MOVHASTE_INFINITY] ) //FIXME: used both by NPC_AGIUP and Speed Potion script - val = max( val, 50 ); + if (sc->data[SC_MOVHASTE_INFINITY]) + val = max(val, sc->data[SC_MOVHASTE_INFINITY]->val1); if( sc->data[SC_INC_AGI] ) val = max( val, 25 ); if( sc->data[SC_WINDWALK] ) @@ -7091,25 +7092,20 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t if((type == SC_FREEZE || type == SC_FROSTMISTY || type == SC_COLD) && sc->data[SC_WARMER]) return 0; //Immune to Frozen and Freezing status if under Warmer status. [Jobbie] break; - - //There all like berserk, do not everlap each other - case SC_BERSERK: - if( sc->data[SC__BLOODYLUST] ) + case SC_BERSERK: // There all like berserk, do not everlap each other + if (sc->data[SC__BLOODYLUST]) return 0; break; - case SC_BURNING: - if(sc->opt1 || sc->data[SC_FROSTMISTY]) + if (sc->opt1 || sc->data[SC_FROSTMISTY]) return 0; break; - - case SC_CRUCIS: - //Only affects demons and undead element (but not players) - if((!undead_flag && st->race!=RC_DEMON) || bl->type == BL_PC) + case SC_CRUCIS: // Only affects demons and undead element (but not players) + if ((!undead_flag && st->race != RC_DEMON) || bl->type == BL_PC) return 0; break; case SC_LEXAETERNA: - if( (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE) || sc->data[SC_FREEZE] ) + if ((sc->data[SC_STONE] && sc->opt1 == OPT1_STONE) || sc->data[SC_FREEZE]) return 0; break; case SC_KYRIE: @@ -7118,46 +7114,46 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t break; case SC_OVERTHRUST: if (sc->data[SC_OVERTHRUSTMAX]) - return 0; //Overthrust can't take effect if under Max Overthrust. [Skotlex] + return 0; // Overthrust can't take effect if under Max Overthrust. [Skotlex] case SC_OVERTHRUSTMAX: - if( sc->option&OPTION_MADOGEAR ) - return 0; //Overthrust and Overthrust Max cannot be used on Mado Gear [Ind] + if (sc->option&OPTION_MADOGEAR) + return 0; // Overthrust and Overthrust Max cannot be used on Mado Gear [Ind] break; case SC_ADRENALINE: - if(sd && !pc_check_weapontype(sd,skill->get_weapontype(BS_ADRENALINE))) + if (sd && !pc_check_weapontype(sd, skill->get_weapontype(BS_ADRENALINE))) return 0; - if (sc->data[SC_QUAGMIRE] || - sc->data[SC_DEC_AGI] || - sc->option&OPTION_MADOGEAR //Adrenaline doesn't affect Mado Gear [Ind] - ) + if (sc->data[SC_QUAGMIRE] || sc->data[SC_DEC_AGI] || sc->option&OPTION_MADOGEAR) // Adrenaline doesn't affect Mado Gear [Ind] return 0; break; case SC_ADRENALINE2: - if(sd && !pc_check_weapontype(sd,skill->get_weapontype(BS_ADRENALINE2))) + if (sd && !pc_check_weapontype(sd,skill->get_weapontype(BS_ADRENALINE2))) return 0; - if (sc->data[SC_QUAGMIRE] || - sc->data[SC_DEC_AGI] - ) + if (sc->data[SC_QUAGMIRE] || sc->data[SC_DEC_AGI]) + return 0; + break; + case SC_QUAGMIRE: + case SC_DEC_AGI: + case SC_DONTFORGETME: + if (sc->data[SC_MOVHASTE_INFINITY]) // Doesn't affect by Quagmire, Decrease Agi, Slow Grace [Frost] return 0; break; case SC_MAGNIFICAT: - if( sc->data[SC_OFFERTORIUM] || sc->option&OPTION_MADOGEAR ) //Mado is immune to magnificat + if (sc->data[SC_OFFERTORIUM] || sc->option&OPTION_MADOGEAR) // Mado is immune to magnificat return 0; break; case SC_ONEHANDQUICKEN: case SC_MER_QUICKEN: case SC_TWOHANDQUICKEN: - if(sc->data[SC_DEC_AGI]) + if (sc->data[SC_DEC_AGI]) return 0; - case SC_CONCENTRATION: case SC_SPEARQUICKEN: case SC_TRUESIGHT: case SC_WINDWALK: case SC_CARTBOOST: case SC_ASSNCROS: - if(sc->option&OPTION_MADOGEAR) - return 0; //Mado is immune to wind walk, cart boost, etc (others above) [Ind] + if (sc->option&OPTION_MADOGEAR) + return 0; // Mado is immune to wind walk, cart boost, etc (others above) [Ind] case SC_INC_AGI: if (sc->data[SC_QUAGMIRE]) return 0; -- cgit v1.2.3-60-g2f50 From 03d6b89105558cfb8f157fcdc8c5e14427f9ffef Mon Sep 17 00:00:00 2001 From: Jedzkie Date: Sun, 20 Dec 2015 14:04:07 +0800 Subject: ItemDB Update: - Added official effect of Combat Pill and Advanced Combat Pill. --- db/const.txt | 3 +++ db/re/item_db.conf | 12 +++++++++++- src/map/status.c | 22 ++++++++++++++++++++++ src/map/status.h | 3 +++ 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/db/const.txt b/db/const.txt index 56437d2e2..a9c15685d 100644 --- a/db/const.txt +++ b/db/const.txt @@ -1333,6 +1333,9 @@ SC_TIME_ACCESSORY 623 SC_MAGICAL_FEATHER 624 SC_BLOSSOM_FLUTTERING 625 +SC_GM_BATTLE 626 +SC_GM_BATTLE2 627 + e_gasp 0 e_what 1 e_ho 2 diff --git a/db/re/item_db.conf b/db/re/item_db.conf index f9cb7dd2a..cf587b344 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -86563,14 +86563,22 @@ item_db: ( Type: 2 Buy: 20 Weight: 150 + Script: <" + specialeffect2 EF_POTION_BERSERK; + sc_start2 SC_GM_BATTLE, 600000, 5, 3; + "> }, { Id: 12792 AegisName: "P_Combat_Pill" Name: "Advanced Magic Battle Serum" - Type: 11 + Type: 2 Buy: 20 Weight: 150 + Script: <" + specialeffect2 EF_POTION_BERSERK; + sc_start2 SC_GM_BATTLE2, 600000, 10, 5; + "> }, { Id: 12793 @@ -86578,6 +86586,7 @@ item_db: ( Name: "Magic Battle Serum Box" Type: 11 Buy: 20 + Script: <" getitem Combat_Pill, 10; "> }, { Id: 12794 @@ -86585,6 +86594,7 @@ item_db: ( Name: "Advanced Magic Battle Serum Box" Type: 11 Buy: 20 + Script: <" getitem P_Combat_Pill, 10; "> }, { Id: 12795 diff --git a/src/map/status.c b/src/map/status.c index 5225dd40d..f6a068b98 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -848,6 +848,8 @@ void initChangeTables(void) { status->dbs->IconChangeTable[SC_ATKER_MOVESPEED] = SI_ATKER_MOVESPEED; status->dbs->IconChangeTable[SC_CUP_OF_BOZA] = SI_CUP_OF_BOZA; status->dbs->IconChangeTable[SC_OVERLAPEXPUP] = SI_OVERLAPEXPUP; + status->dbs->IconChangeTable[SC_GM_BATTLE] = SI_GM_BATTLE; + status->dbs->IconChangeTable[SC_GM_BATTLE2] = SI_GM_BATTLE2; // Eden Crystal Synthesis status->dbs->IconChangeTable[SC_QUEST_BUFF1] = SI_QUEST_BUFF1; @@ -1031,6 +1033,8 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_ATKER_MOVESPEED] |= SCB_MAXSP | SCB_ALL; status->dbs->ChangeFlagTable[SC_FOOD_CRITICALSUCCESSVALUE] |= SCB_CRI; status->dbs->ChangeFlagTable[SC_CUP_OF_BOZA] |= SCB_VIT | SCB_ALL; + status->dbs->ChangeFlagTable[SC_GM_BATTLE] |= SCB_BATK | SCB_MATK | SCB_MAXHP | SCB_MAXSP; + status->dbs->ChangeFlagTable[SC_GM_BATTLE2] |= SCB_BATK | SCB_MATK | SCB_MAXHP | SCB_MAXSP; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] = SCB_STR; @@ -4703,6 +4707,11 @@ unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc, if (sc->data[SC_QUEST_BUFF3]) batk += sc->data[SC_QUEST_BUFF3]->val1; + if (sc->data[SC_GM_BATTLE]) + batk += sc->data[SC_GM_BATTLE]->val1; + if (sc->data[SC_GM_BATTLE2]) + batk += sc->data[SC_GM_BATTLE2]->val1; + return (unsigned short)cap_value(batk,0,USHRT_MAX); } @@ -4883,6 +4892,11 @@ unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc, if (sc->data[SC_FENRIR_CARD]) matk += sc->data[SC_FENRIR_CARD]->val1; + if (sc->data[SC_GM_BATTLE]) + matk += sc->data[SC_GM_BATTLE]->val1; + if (sc->data[SC_GM_BATTLE2]) + matk += sc->data[SC_GM_BATTLE2]->val1; + return (unsigned short)cap_value(matk,0,USHRT_MAX); } @@ -5931,6 +5945,10 @@ unsigned int status_calc_maxhp(struct block_list *bl, struct status_change *sc, maxhp += maxhp * sc->data[SC_ATKER_ASPD]->val1 / 100; if (sc->data[SC_MVPCARD_TAOGUNKA]) maxhp += maxhp * sc->data[SC_MVPCARD_TAOGUNKA]->val1 / 100; + if (sc->data[SC_GM_BATTLE]) + maxhp -= maxhp * sc->data[SC_GM_BATTLE]->val1 / 100; + if (sc->data[SC_GM_BATTLE2]) + maxhp -= maxhp * sc->data[SC_GM_BATTLE2]->val1 / 100; return (unsigned int)cap_value(maxhp,1,UINT_MAX); } @@ -5964,6 +5982,10 @@ unsigned int status_calc_maxsp(struct block_list *bl, struct status_change *sc, maxsp += maxsp * sc->data[SC_SOULSCROLL]->val1 / 100; if (sc->data[SC_ATKER_MOVESPEED]) maxsp += maxsp * sc->data[SC_ATKER_MOVESPEED]->val1 / 100; + if (sc->data[SC_GM_BATTLE]) + maxsp -= maxsp * sc->data[SC_GM_BATTLE]->val1 / 100; + if (sc->data[SC_GM_BATTLE2]) + maxsp -= maxsp * sc->data[SC_GM_BATTLE2]->val1 / 100; return cap_value(maxsp,1,UINT_MAX); } diff --git a/src/map/status.h b/src/map/status.h index 2bf3c0a57..df1154794 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -809,6 +809,9 @@ typedef enum sc_type { SC_MAGICAL_FEATHER, SC_BLOSSOM_FLUTTERING, + SC_GM_BATTLE, + SC_GM_BATTLE2, + SC_MAX, //Automatically updated max, used in for's to check we are within bounds. } sc_type; -- cgit v1.2.3-60-g2f50 From ce1364f9b51e76b3bfb0fbe3bdccf898cd5ca852 Mon Sep 17 00:00:00 2001 From: Jedzkie Date: Sun, 20 Dec 2015 15:23:58 +0800 Subject: ItemDB Update: - Added official effect for RWC_Cele_Fire and RWC_Cele_Fire2. - Fix Battle Scroll not applying additional attack. - Fix Mystic Scroll not applying cast reduction - Fix Combat Pill and Advance Combat Pill giving ATK not ATKRATE. - Fix Combat Pill and Advance Combal Pill should not stack each other when used. --- db/const.txt | 1 + db/re/item_db.conf | 13 +++---------- src/map/status.c | 37 +++++++++++++++++++++++++++++++------ src/map/status.h | 1 + 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/db/const.txt b/db/const.txt index a9c15685d..6b60ee384 100644 --- a/db/const.txt +++ b/db/const.txt @@ -1335,6 +1335,7 @@ SC_BLOSSOM_FLUTTERING 625 SC_GM_BATTLE 626 SC_GM_BATTLE2 627 +SC_2011RWC 628 e_gasp 0 e_what 1 diff --git a/db/re/item_db.conf b/db/re/item_db.conf index cf587b344..2502e7b30 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -85457,22 +85457,15 @@ item_db: ( Name: "RWC Celebration Firecracker" Type: 2 Weight: 20 - Script: <" - sc_start SC_FOOD_STR,10000,3; - sc_start SC_FOOD_AGI,10000,3; - sc_start SC_FOOD_VIT,10000,3; - sc_start SC_FOOD_DEX,10000,3; - sc_start SC_FOOD_INT,10000,3; - sc_start SC_FOOD_LUK,10000,3; - "> + Script: <" sc_start2 SC_2011RWC, 10000, 3, 5; "> }, { Id: 12697 AegisName: "RWC_Cele_Fire2" Name: "RWC Celebration Firecracker 2" - Type: 11 - Buy: 0 + Type: 2 Weight: 20 + Script: <" sc_start2 SC_2011RWC, 10000, 3, 5; "> }, { Id: 12698 diff --git a/src/map/status.c b/src/map/status.c index f6a068b98..c3321799d 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -850,6 +850,7 @@ void initChangeTables(void) { status->dbs->IconChangeTable[SC_OVERLAPEXPUP] = SI_OVERLAPEXPUP; status->dbs->IconChangeTable[SC_GM_BATTLE] = SI_GM_BATTLE; status->dbs->IconChangeTable[SC_GM_BATTLE2] = SI_GM_BATTLE2; + status->dbs->IconChangeTable[SC_2011RWC] = SI_2011RWC; // Eden Crystal Synthesis status->dbs->IconChangeTable[SC_QUEST_BUFF1] = SI_QUEST_BUFF1; @@ -1035,6 +1036,7 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_CUP_OF_BOZA] |= SCB_VIT | SCB_ALL; status->dbs->ChangeFlagTable[SC_GM_BATTLE] |= SCB_BATK | SCB_MATK | SCB_MAXHP | SCB_MAXSP; status->dbs->ChangeFlagTable[SC_GM_BATTLE2] |= SCB_BATK | SCB_MATK | SCB_MAXHP | SCB_MAXSP; + status->dbs->ChangeFlagTable[SC_2011RWC] |= SCB_STR | SCB_AGI | SCB_VIT | SCB_INT | SCB_DEX | SCB_LUK | SCB_BATK | SCB_MATK; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] = SCB_STR; @@ -1092,7 +1094,7 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_DISTRUCTIONSCROLL] |= SCB_ALL; status->dbs->ChangeFlagTable[SC_ROYALSCROLL] |= SCB_ALL; status->dbs->ChangeFlagTable[SC_IMMUNITYSCROLL] |= SCB_ALL; - status->dbs->ChangeFlagTable[SC_MYSTICSCROLL] |= SCB_MATK; + status->dbs->ChangeFlagTable[SC_MYSTICSCROLL] |= SCB_MATK | SCB_ALL; status->dbs->ChangeFlagTable[SC_BATTLESCROLL] |= SCB_BATK | SCB_ASPD; status->dbs->ChangeFlagTable[SC_ARMORSCROLL] |= SCB_DEF | SCB_FLEE; status->dbs->ChangeFlagTable[SC_FREYJASCROLL] |= SCB_MDEF | SCB_FLEE2; @@ -4344,6 +4346,8 @@ unsigned short status_calc_str(struct block_list *bl, struct status_change *sc, str -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) str -= sc->data[SC_KYOUGAKU]->val3; + if (sc->data[SC_2011RWC]) + str += sc->data[SC_2011RWC]->val1; return (unsigned short)cap_value(str,0,USHRT_MAX); } @@ -4399,6 +4403,8 @@ unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc, agi -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) agi -= sc->data[SC_KYOUGAKU]->val3; + if (sc->data[SC_2011RWC]) + agi += sc->data[SC_2011RWC]->val1; if(sc->data[SC_MARSHOFABYSS]) agi -= agi * sc->data[SC_MARSHOFABYSS]->val2 / 100; @@ -4451,6 +4457,8 @@ unsigned short status_calc_vit(struct block_list *bl, struct status_change *sc, vit -= vit * sc->data[SC_NOEQUIPARMOR]->val2 / 100; if (sc->data[SC_CUP_OF_BOZA]) vit += sc->data[SC_CUP_OF_BOZA]->val1; + if (sc->data[SC_2011RWC]) + vit += sc->data[SC_2011RWC]->val1; return (unsigned short)cap_value(vit,0,USHRT_MAX); } @@ -4506,6 +4514,8 @@ unsigned short status_calc_int(struct block_list *bl, struct status_change *sc, int_ -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) int_ -= sc->data[SC_KYOUGAKU]->val3; + if (sc->data[SC_2011RWC]) + int_ += sc->data[SC_2011RWC]->val1; if(bl->type != BL_PC){ if(sc->data[SC_NOEQUIPHELM]) @@ -4568,6 +4578,8 @@ unsigned short status_calc_dex(struct block_list *bl, struct status_change *sc, dex -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) dex -= sc->data[SC_KYOUGAKU]->val3; + if (sc->data[SC_2011RWC]) + dex += sc->data[SC_2011RWC]->val1; if(sc->data[SC_MARSHOFABYSS]) dex -= dex * sc->data[SC_MARSHOFABYSS]->val2 / 100; @@ -4618,11 +4630,12 @@ unsigned short status_calc_luk(struct block_list *bl, struct status_change *sc, luk -= sc->data[SC_KYOUGAKU]->val3; if(sc->data[SC_LAUDARAMUS]) luk += 4 + sc->data[SC_LAUDARAMUS]->val1; - if(sc->data[SC__STRIPACCESSARY] && bl->type != BL_PC) luk -= luk * sc->data[SC__STRIPACCESSARY]->val2 / 100; if(sc->data[SC_BANANA_BOMB]) luk -= luk * sc->data[SC_BANANA_BOMB]->val1 / 100; + if (sc->data[SC_2011RWC]) + luk += sc->data[SC_2011RWC]->val1; return (unsigned short)cap_value(luk,0,USHRT_MAX); } @@ -4698,6 +4711,8 @@ unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc, batk -= batk * sc->data[SC__ENERVATION]->val2 / 100; if(sc->data[SC_SATURDAY_NIGHT_FEVER]) batk += 100 * sc->data[SC_SATURDAY_NIGHT_FEVER]->val1; + if (sc->data[SC_BATTLESCROLL]) + batk += batk * sc->data[SC_BATTLESCROLL]->val1 / 100; // Eden Crystal Synthesis if (sc->data[SC_QUEST_BUFF1]) @@ -4708,9 +4723,11 @@ unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc, batk += sc->data[SC_QUEST_BUFF3]->val1; if (sc->data[SC_GM_BATTLE]) - batk += sc->data[SC_GM_BATTLE]->val1; + batk += batk * sc->data[SC_GM_BATTLE]->val1 / 100; if (sc->data[SC_GM_BATTLE2]) - batk += sc->data[SC_GM_BATTLE2]->val1; + batk += batk * sc->data[SC_GM_BATTLE2]->val1 / 100; + if (sc->data[SC_2011RWC]) + batk += batk * sc->data[SC_2011RWC]->val2 / 100; return (unsigned short)cap_value(batk,0,USHRT_MAX); } @@ -4893,9 +4910,11 @@ unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc, matk += sc->data[SC_FENRIR_CARD]->val1; if (sc->data[SC_GM_BATTLE]) - matk += sc->data[SC_GM_BATTLE]->val1; + matk += matk * sc->data[SC_GM_BATTLE]->val1 / 100; if (sc->data[SC_GM_BATTLE2]) - matk += sc->data[SC_GM_BATTLE2]->val1; + matk += matk * sc->data[SC_GM_BATTLE2]->val1 / 100; + if (sc->data[SC_2011RWC]) + matk += matk * sc->data[SC_2011RWC]->val2 / 100; return (unsigned short)cap_value(matk,0,USHRT_MAX); } @@ -7561,6 +7580,12 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t case SC_FOOD_LUK_CASH: status_change_end(bl, SC_FOOD_LUK, INVALID_TIMER); break; + case SC_GM_BATTLE: + status_change_end(bl, SC_GM_BATTLE2, INVALID_TIMER); + break; + case SC_GM_BATTLE2: + status_change_end(bl, SC_GM_BATTLE, INVALID_TIMER); + break; case SC_ENDURE: if( val4 == 1 ) status_change_end(bl, SC_LKCONCENTRATION, INVALID_TIMER); diff --git a/src/map/status.h b/src/map/status.h index df1154794..94731dc17 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -811,6 +811,7 @@ typedef enum sc_type { SC_GM_BATTLE, SC_GM_BATTLE2, + SC_2011RWC, SC_MAX, //Automatically updated max, used in for's to check we are within bounds. } sc_type; -- cgit v1.2.3-60-g2f50 From aa9fc88745e8e0956ac1396f385a039973a58ef4 Mon Sep 17 00:00:00 2001 From: Jedzkie Date: Sun, 20 Dec 2015 15:55:16 +0800 Subject: ItemDB Update: - Added effects for Inc_Str_Scroll and Inc_Int_Scroll - Update some Statuses in sc_config.txt, removed some duplicate entries. --- db/const.txt | 2 ++ db/pre-re/item_db.conf | 8 ++++++++ db/re/item_db.conf | 16 ++++++++++++---- db/sc_config.txt | 38 +++++++++++++++----------------------- src/map/status.c | 8 ++++++++ src/map/status.h | 2 ++ 6 files changed, 47 insertions(+), 27 deletions(-) diff --git a/db/const.txt b/db/const.txt index 6b60ee384..f0ec7cd55 100644 --- a/db/const.txt +++ b/db/const.txt @@ -1336,6 +1336,8 @@ SC_BLOSSOM_FLUTTERING 625 SC_GM_BATTLE 626 SC_GM_BATTLE2 627 SC_2011RWC 628 +SC_STR_SCROLL 629 +SC_INT_SCROLL 630 e_gasp 0 e_what 1 diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf index 589b007e8..3ed2027cb 100644 --- a/db/pre-re/item_db.conf +++ b/db/pre-re/item_db.conf @@ -69551,6 +69551,10 @@ item_db: ( noselltonpc: true nogstorage: true } + Script: <" + specialeffect2 EF_POTION_BERSERK; + sc_start SC_STR_SCROLL, 60000, 20; + "> }, { Id: 12741 @@ -69563,6 +69567,10 @@ item_db: ( noselltonpc: true nogstorage: true } + Script: <" + specialeffect2 EF_SPELLBREAKER; + sc_start SC_INT_SCROLL, 60000, 20; + "> }, { Id: 12742 diff --git a/db/re/item_db.conf b/db/re/item_db.conf index 2502e7b30..f29364f0c 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -86075,13 +86075,17 @@ item_db: ( Trade: { nodrop: true notrade: true + nostorage: true noselltonpc: true nocart: true - nostorage: true - nogstorage: true nomail: true noauction: true + nogstorage: true } + Script: <" + specialeffect2 EF_POTION_BERSERK; + sc_start SC_STR_SCROLL, 60000, 20; + "> }, { Id: 12741 @@ -86092,13 +86096,17 @@ item_db: ( Trade: { nodrop: true notrade: true + nostorage: true noselltonpc: true nocart: true - nostorage: true - nogstorage: true nomail: true noauction: true + nogstorage: true } + Script: <" + specialeffect2 EF_SPELLBREAKER; + sc_start SC_INT_SCROLL, 60000, 20; + "> }, { Id: 12742 diff --git a/db/sc_config.txt b/db/sc_config.txt index d8272d39f..610f57e98 100644 --- a/db/sc_config.txt +++ b/db/sc_config.txt @@ -272,10 +272,10 @@ SC_SUMMON2, 24 SC_SUMMON3, 24 SC_SUMMON4, 24 SC_SUMMON5, 24 -//SC_MVPCARD_TAOGUNKA, 28 -//SC_MVPCARD_MISTRESS, 28 -//SC_MVPCARD_ORCHERO, 28 -//SC_MVPCARD_ORCLORD, 28 +SC_MVPCARD_TAOGUNKA, 60 +SC_MVPCARD_MISTRESS, 60 +SC_MVPCARD_ORCHERO, 60 +SC_MVPCARD_ORCLORD, 60 SC_OVERHEAT_LIMITPOINT, 28 SC_OVERHEAT, 28 SC_SHAPESHIFT, 28 @@ -291,8 +291,8 @@ SC_SPL_DEF, 28 SC__REPRODUCE, 28 SC_MANU_MATK, 28 SC_SPL_MATK, 28 -//SC_STR_SCROLL, 29 -//SC_INT_SCROLL, 29 +SC_STR_SCROLL, 61 +SC_INT_SCROLL, 61 SC_FORCEOFVANGUARD, 28 //SC_BUCHEDENOEL, 28 SC__AUTOSHADOWSPELL, 16 @@ -370,7 +370,7 @@ SC_FIRE_INSIGNIA, 2 SC_WATER_INSIGNIA, 2 SC_WIND_INSIGNIA, 2 SC_EARTH_INSIGNIA, 2 -//SC_MORA_BUFF, 2 +SC_MORA_BUFF, 2 //SC_REUSE_LIMIT_G, 29 //SC_REUSE_LIMIT_H, 29 SC_NEEDLE_OF_PARALYZE, 1 @@ -410,25 +410,17 @@ SC_ARMORSCROLL, 69 SC_FREYJASCROLL, 69 SC_SOULSCROLL, 69 -// Eden Crystal Synthesis [Needs more info] -//SC_QUEST_BUFF1, ?? -//SC_QUEST_BUFF2, ?? -//SC_QUEST_BUFF3, ?? +// Eden Crystal Synthesis +SC_QUEST_BUFF1, 13 +SC_QUEST_BUFF2, 13 +SC_QUEST_BUFF3, 13 -// Geffen Magic Tournament [Needs more info] -SC_GEFFEN_MAGIC1, 2 -SC_GEFFEN_MAGIC2, 2 -SC_GEFFEN_MAGIC3, 2 -//SC_FENRIR_CARD, ?? +// Geffen Magic Tournament +SC_GEFFEN_MAGIC1, 14 +SC_GEFFEN_MAGIC2, 14 +SC_GEFFEN_MAGIC3, 14 SC_OVERLAPEXPUP, 12 -SC_MORA_BUFF, 2 - -// MVP Scrolls -SC_MVPCARD_TAOGUNKA, 60 -SC_MVPCARD_MISTRESS, 60 -SC_MVPCARD_ORCHERO, 60 -SC_MVPCARD_ORCLORD, 60 // Guild Auras should not be saved SC_LEADERSHIP,78 diff --git a/src/map/status.c b/src/map/status.c index c3321799d..1a1c5e2c7 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -851,6 +851,8 @@ void initChangeTables(void) { status->dbs->IconChangeTable[SC_GM_BATTLE] = SI_GM_BATTLE; status->dbs->IconChangeTable[SC_GM_BATTLE2] = SI_GM_BATTLE2; status->dbs->IconChangeTable[SC_2011RWC] = SI_2011RWC; + status->dbs->IconChangeTable[SC_STR_SCROLL] = SI_STR_SCROLL; + status->dbs->IconChangeTable[SC_INT_SCROLL] = SI_INT_SCROLL; // Eden Crystal Synthesis status->dbs->IconChangeTable[SC_QUEST_BUFF1] = SI_QUEST_BUFF1; @@ -1037,6 +1039,8 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_GM_BATTLE] |= SCB_BATK | SCB_MATK | SCB_MAXHP | SCB_MAXSP; status->dbs->ChangeFlagTable[SC_GM_BATTLE2] |= SCB_BATK | SCB_MATK | SCB_MAXHP | SCB_MAXSP; status->dbs->ChangeFlagTable[SC_2011RWC] |= SCB_STR | SCB_AGI | SCB_VIT | SCB_INT | SCB_DEX | SCB_LUK | SCB_BATK | SCB_MATK; + status->dbs->ChangeFlagTable[SC_STR_SCROLL] |= SCB_STR; + status->dbs->ChangeFlagTable[SC_INT_SCROLL] |= SCB_INT; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] = SCB_STR; @@ -4348,6 +4352,8 @@ unsigned short status_calc_str(struct block_list *bl, struct status_change *sc, str -= sc->data[SC_KYOUGAKU]->val3; if (sc->data[SC_2011RWC]) str += sc->data[SC_2011RWC]->val1; + if (sc->data[SC_STR_SCROLL]) + str += sc->data[SC_STR_SCROLL]->val1; return (unsigned short)cap_value(str,0,USHRT_MAX); } @@ -4516,6 +4522,8 @@ unsigned short status_calc_int(struct block_list *bl, struct status_change *sc, int_ -= sc->data[SC_KYOUGAKU]->val3; if (sc->data[SC_2011RWC]) int_ += sc->data[SC_2011RWC]->val1; + if (sc->data[SC_INT_SCROLL]) + int_ += sc->data[SC_INT_SCROLL]->val1; if(bl->type != BL_PC){ if(sc->data[SC_NOEQUIPHELM]) diff --git a/src/map/status.h b/src/map/status.h index 94731dc17..a45b22adb 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -812,6 +812,8 @@ typedef enum sc_type { SC_GM_BATTLE, SC_GM_BATTLE2, SC_2011RWC, + SC_STR_SCROLL, + SC_INT_SCROLL, // 630 SC_MAX, //Automatically updated max, used in for's to check we are within bounds. } sc_type; -- cgit v1.2.3-60-g2f50 From cc5ec4717522c1733d96efaee46e3d05fea41f0a Mon Sep 17 00:00:00 2001 From: Jedzkie Date: Sun, 20 Dec 2015 21:34:28 +0800 Subject: Update Mercenary Skills. Special thanks to Rytech and mrdiablo. --- db/mercenary_skill_db.txt | 77 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 65 insertions(+), 12 deletions(-) diff --git a/db/mercenary_skill_db.txt b/db/mercenary_skill_db.txt index ea692641d..b7da95bd8 100644 --- a/db/mercenary_skill_db.txt +++ b/db/mercenary_skill_db.txt @@ -120,6 +120,20 @@ 6046,8201,10 //MS_BASH 6046,8206,1 //MS_BERSERK +// Game Master Mercenaries +// M_GAMEMASTER +2000,8226,1 //MER_REGAIN +2000,8227,1 //MER_TENDER +2000,8238,5 //MER_KYRIE +2000,8239,5 //MER_BLESSING +2000,8240,5 //MER_INCAGI +// F_GAMEMASTER +2001,8226,1 //MER_REGAIN +2001,8227,1 //MER_TENDER +2001,8238,5 //MER_KYRIE +2001,8239,5 //MER_BLESSING +2001,8240,5 //MER_INCAGI + // Monster Mercenaries // MIMIC 1191,8233,1 //MER_AUTOBERSERK @@ -144,18 +158,6 @@ 1967,8223,5 //MER_QUICKEN 1967,8201,5 //MS_BASH 1967,8221,3 //ML_DEVOTION -// M_GAMEMASTER -2000,8226,1 //MER_REGAIN -2000,8227,1 //MER_TENDER -2000,8238,5 //MER_KYRIE -2000,8239,5 //MER_BLESSING -2000,8240,5 //MER_INCAGI -// F_GAMEMASTER -2001,8226,1 //MER_REGAIN -2001,8227,1 //MER_TENDER -2001,8238,5 //MER_KYRIE -2001,8239,5 //MER_BLESSING -2001,8240,5 //MER_INCAGI // M_MIMIC 2058,8233,1 //MER_AUTOBERSERK 2058,8220,5 //ML_AUTOGUARD @@ -169,3 +171,54 @@ 2060,8202,5 //MS_MAGNUM 2060,8217,5 //ML_BRANDISH 2060,8226,1 //MER_REGAIN +// M_WANDER_MAN +2213,8223,10 //MER_QUICKEN +2213,8204,4 //MS_PARRYING +2213,8233,1 //MER_AUTOBERSERK +2213,8203,5 //MS_BOWLINGBASH +// M_WICKED_NYMPH +2214,8236,3 //MER_LEXDIVINA +2214,8239,5 //MER_BLESSING +2214,8227,1 //MER_TENDER +2214,8222,1 //MER_MAGNIFICAT +// M_KASA +2215,8225,5 //MER_CRASH +2215,8202,5 //MS_MAGNUM +2215,8226,1 //MER_REGAIN +2215,8233,1 //MER_AUTOBERSERK +// M_SALAMANDER +2216,8201,5 //MS_BASH +2216,8217,5 //ML_BRANDISH +2216,8233,1 //MER_AUTOBERSERK +2216,8228,1 //MER_BENEDICTION +// M_TEDDY_BEAR +2217,8221,3 //ML_DEVOTION +2217,8226,1 //MER_REGAIN +2217,8219,1 //ML_DEFENDER +2217,8235,1 //MER_SCAPEGOAT +// M_BAPHOMET_ +2325,8201,5 //MS_BASH +2325,8223,10 //MER_QUICKEN +// M_GALAPAGO +2326,8239,5 //MER_BLESSING +2326,28,5 //AL_HEAL +// MER_DIABOLIC +2342,8225,5 //MER_CRASH +2342,8202,5 //MS_MAGNUM +2342,8226,1 //MER_REGAIN +2342,8233,1 //MER_AUTOBERSERK +// MER_ZHERLTHSH +2345,8225,5 //MER_CRASH +2345,8202,5 //MS_MAGNUM +2345,8226,1 //MER_REGAIN +2345,8233,1 //MER_AUTOBERSERK +// MER_EDDGA +2347,8225,5 //MER_CRASH +2347,8202,5 //MS_MAGNUM +2347,8226,1 //MER_REGAIN +2347,8233,1 //MER_AUTOBERSERK +// MER_ANTLER_SCARABA +2378,8221,3 //ML_DEVOTION +2378,8226,1 //MER_REGAIN +2378,8219,1 //ML_DEFENDER +2378,8235,1 //MER_SCAPEGOAT -- cgit v1.2.3-60-g2f50 From d02496a043ded53fc715d673c257b29293c05b56 Mon Sep 17 00:00:00 2001 From: Jedzkie Date: Mon, 21 Dec 2015 08:49:53 +0800 Subject: ItemDB Update: - Added official effect for Jumping Candy (Spark_Candy) (Ref: http://herc.ws/board/topic/1125-please-implement-the-magic-scroll-mental-potion-etc/) Follow up Mercenary Skill update, disable AL_HEAL skill due to mercenary_skill_db doesn't recognize the skill. --- db/const.txt | 1 + db/mercenary_skill_db.txt | 2 +- db/pre-re/item_db.conf | 14 +++++++++----- db/re/item_db.conf | 23 +++++++++++++---------- db/sc_config.txt | 2 +- src/map/status.c | 23 +++++++++++++++++++++-- src/map/status.h | 3 ++- 7 files changed, 48 insertions(+), 20 deletions(-) diff --git a/db/const.txt b/db/const.txt index f0ec7cd55..2d61a01d6 100644 --- a/db/const.txt +++ b/db/const.txt @@ -1338,6 +1338,7 @@ SC_GM_BATTLE2 627 SC_2011RWC 628 SC_STR_SCROLL 629 SC_INT_SCROLL 630 +SC_STEAMPACK 631 e_gasp 0 e_what 1 diff --git a/db/mercenary_skill_db.txt b/db/mercenary_skill_db.txt index b7da95bd8..6f939ad7d 100644 --- a/db/mercenary_skill_db.txt +++ b/db/mercenary_skill_db.txt @@ -201,7 +201,7 @@ 2325,8223,10 //MER_QUICKEN // M_GALAPAGO 2326,8239,5 //MER_BLESSING -2326,28,5 //AL_HEAL +//2326,28,5 //AL_HEAL // MER_DIABOLIC 2342,8225,5 //MER_CRASH 2342,8202,5 //MS_MAGNUM diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf index 3ed2027cb..e17b1d952 100644 --- a/db/pre-re/item_db.conf +++ b/db/pre-re/item_db.conf @@ -78674,7 +78674,7 @@ item_db: ( Type: 18 Buy: 20 Weight: 10 - Script: <" getitem 14586,5; "> + Script: <" getitem Spark_Candy, 5; "> }, { Id: 13858 @@ -78683,7 +78683,7 @@ item_db: ( Type: 18 Buy: 20 Weight: 10 - Script: <" getitem 14586,10; "> + Script: <" getitem Spark_Candy, 10; "> }, { Id: 13859 @@ -82169,7 +82169,7 @@ item_db: ( nomail: true noauction: true } - Script: <" getitem 14586,5; "> + Script: <" getitem Spark_Candy, 5; "> }, { Id: 14050 @@ -82183,11 +82183,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 14586,10; "> + Script: <" getitem Spark_Candy, 10; "> }, { Id: 14051 @@ -87824,6 +87824,10 @@ item_db: ( noselltonpc: true nogstorage: true } + Script: <" + specialeffect2 EF_HASTEUP; + sc_start2 SC_STEAMPACK, 60000, 20, 25; + "> }, { Id: 14587 diff --git a/db/re/item_db.conf b/db/re/item_db.conf index f29364f0c..0bd005274 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -100871,11 +100871,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 14586,5; "> + Script: <" getitem Spark_Candy, 5; "> }, { Id: 13858 @@ -100889,11 +100889,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 14586,10; "> + Script: <" getitem Spark_Candy, 10; "> }, { Id: 13859 @@ -104491,11 +104491,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 14586,5; "> + Script: <" getitem Spark_Candy, 5; "> }, { Id: 14050 @@ -104509,11 +104509,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 14586,10; "> + Script: <" getitem Spark_Candy, 10; "> }, { Id: 14051 @@ -111478,11 +111478,14 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" bonus2 bHPLossRate,100,10000; "> + Script: <" + specialeffect2 EF_HASTEUP; + sc_start2 SC_STEAMPACK, 60000, 20, 25; + "> }, { Id: 14587 diff --git a/db/sc_config.txt b/db/sc_config.txt index 610f57e98..32dd28078 100644 --- a/db/sc_config.txt +++ b/db/sc_config.txt @@ -213,7 +213,7 @@ SC_TARGET_BLOOD, 30 SC_ARMOR_PROPERTY, 29 //SC_REUSE_LIMIT_A, 29 SC_HELLPOWER, 29 -//SC_STEAMPACK, 92 +SC_STEAMPACK, 108 //SC_REUSE_LIMIT_B, 29 //SC_REUSE_LIMIT_C, 29 //SC_REUSE_LIMIT_D, 29 diff --git a/src/map/status.c b/src/map/status.c index 1a1c5e2c7..52df73455 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -853,6 +853,7 @@ void initChangeTables(void) { status->dbs->IconChangeTable[SC_2011RWC] = SI_2011RWC; status->dbs->IconChangeTable[SC_STR_SCROLL] = SI_STR_SCROLL; status->dbs->IconChangeTable[SC_INT_SCROLL] = SI_INT_SCROLL; + status->dbs->IconChangeTable[SC_STEAMPACK] = SI_STEAMPACK; // Eden Crystal Synthesis status->dbs->IconChangeTable[SC_QUEST_BUFF1] = SI_QUEST_BUFF1; @@ -1041,6 +1042,7 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_2011RWC] |= SCB_STR | SCB_AGI | SCB_VIT | SCB_INT | SCB_DEX | SCB_LUK | SCB_BATK | SCB_MATK; status->dbs->ChangeFlagTable[SC_STR_SCROLL] |= SCB_STR; status->dbs->ChangeFlagTable[SC_INT_SCROLL] |= SCB_INT; + status->dbs->ChangeFlagTable[SC_STEAMPACK] |= SCB_BATK | SCB_ASPD | SCB_ALL; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] = SCB_STR; @@ -4736,6 +4738,8 @@ unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc, batk += batk * sc->data[SC_GM_BATTLE2]->val1 / 100; if (sc->data[SC_2011RWC]) batk += batk * sc->data[SC_2011RWC]->val2 / 100; + if (sc->data[SC_STEAMPACK]) + batk += sc->data[SC_STEAMPACK]->val1; return (unsigned short)cap_value(batk,0,USHRT_MAX); } @@ -5718,6 +5722,8 @@ short status_calc_aspd(struct block_list *bl, struct status_change *sc, short fl bonus += sc->data[SC_ACARAJE]->val2; if (sc->data[SC_BATTLESCROLL]) bonus += sc->data[SC_BATTLESCROLL]->val1; + if (sc->data[SC_STEAMPACK]) + bonus += sc->data[SC_STEAMPACK]->val2; } return (bonus + pots); @@ -5883,6 +5889,8 @@ short status_calc_aspd_rate(struct block_list *bl, struct status_change *sc, int aspd_rate += sc->data[SC_ACARAJE]->val2 * 10; if (sc->data[SC_BATTLESCROLL]) aspd_rate += sc->data[SC_BATTLESCROLL]->val1 * 10; + if (sc->data[SC_STEAMPACK]) + aspd_rate += sc->data[SC_STEAMPACK]->val2 * 10; return (short)cap_value(aspd_rate,0,SHRT_MAX); } @@ -9205,6 +9213,12 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t val4 = tick / 10000; tick_time = 10000; // [GodLesZ] tick time break; + case SC_STEAMPACK: // [Frost] + val3 = 100; // HP Consume. + val4 = tick / 10000; + tick_time = 10000; + sc_start(src, bl, SC_ENDURE, 100, 10, -1); // Endure effect + break; case SC_KYOUGAKU: { int min = val1*2; int max = val1*3; @@ -11490,10 +11504,9 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) { if (bl->type == BL_ELEM) elemental->change_mode(BL_CAST(BL_ELEM,bl),MAX_ELESKILLTREE); break; - case SC_STOMACHACHE: if (--(sce->val4) > 0) { - status->charge(bl, 0, sce->val3); // Reduce 8 every 10 seconds. + status->charge(bl, 0, sce->val3); // Reduce 8 SP every 10 seconds. if (sd && !pc_issit(sd)) { // Force to sit every 10 seconds. pc_stop_walking(sd, STOPWALKING_FLAG_FIXPOS | STOPWALKING_FLAG_NEXTCELL); pc_stop_attack(sd); @@ -11504,6 +11517,12 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) { return 0; } break; + case SC_STEAMPACK: + if (--(sce->val4) > 0) { + status->charge(bl, sce->val3, 0); // Reduce 100 HP every 10 seconds. + sc_timer_next(10000 + tick, status->change_timer, bl->id, data); + } + break; case SC_LEADERSHIP: case SC_GLORYWOUNDS: case SC_SOULCOLD: diff --git a/src/map/status.h b/src/map/status.h index a45b22adb..187188dfb 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -814,6 +814,7 @@ typedef enum sc_type { SC_2011RWC, SC_STR_SCROLL, SC_INT_SCROLL, // 630 + SC_STEAMPACK, SC_MAX, //Automatically updated max, used in for's to check we are within bounds. } sc_type; @@ -1133,7 +1134,7 @@ enum si_type { SI_ARMOR_PROPERTY = 302, //SI_REUSE_LIMIT_A = 303, SI_HELLPOWER = 304, - //SI_STEAMPACK = 305, + SI_STEAMPACK = 305, //SI_REUSE_LIMIT_B = 306, //SI_REUSE_LIMIT_C = 307, //SI_REUSE_LIMIT_D = 308, -- cgit v1.2.3-60-g2f50 From db3764a5a20f265d21cf10e45f03159e95935784 Mon Sep 17 00:00:00 2001 From: Jedzkie Date: Tue, 22 Dec 2015 08:54:05 +0800 Subject: Item Update: - Added SC_MOVHASTE_POTION and SC_MOVESLOW_POTION. - Change some item effects based on Aegis's special.sc. - White space adjustments --- db/const.txt | 2 + db/pre-re/item_db.conf | 207 +++++++++++++++++++++-------------------- db/re/item_db.conf | 248 ++++++++++++++++++++++++++----------------------- db/sc_config.txt | 4 +- src/map/status.c | 67 +++++++------ src/map/status.h | 4 +- 6 files changed, 279 insertions(+), 253 deletions(-) diff --git a/db/const.txt b/db/const.txt index 2d61a01d6..ec2d6280c 100644 --- a/db/const.txt +++ b/db/const.txt @@ -1339,6 +1339,8 @@ SC_2011RWC 628 SC_STR_SCROLL 629 SC_INT_SCROLL 630 SC_STEAMPACK 631 +SC_MOVHASTE_POTION 632 +SC_MOVESLOW_POTION 633 e_gasp 0 e_what 1 diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf index e17b1d952..84a4d98d2 100644 --- a/db/pre-re/item_db.conf +++ b/db/pre-re/item_db.conf @@ -1642,7 +1642,7 @@ item_db: ( Buy: 800 Weight: 100 BuyingStore: true - Script: <" sc_start SC_ATTHASTE_POTION1,1800000,0; "> + Script: <" sc_start SC_ATTHASTE_POTION1, 1800000, 0; "> }, { Id: 656 @@ -1654,7 +1654,7 @@ item_db: ( Job: 0xFFF7FEEF EquipLv: 40 BuyingStore: true - Script: <" sc_start SC_ATTHASTE_POTION2,1800000,0; "> + Script: <" sc_start SC_ATTHASTE_POTION2, 1800000, 0; "> }, { Id: 657 @@ -1666,7 +1666,7 @@ item_db: ( Job: 0x01E646A6 EquipLv: 85 BuyingStore: true - Script: <" sc_start SC_ATTHASTE_POTION3,1800000,0; "> + Script: <" sc_start SC_ATTHASTE_POTION3, 1800000, 0; "> }, { Id: 658 @@ -1725,7 +1725,7 @@ item_db: ( Buy: 1450 Weight: 30 BuyingStore: true - Script: <" sc_start SC_MOVHASTE_HORSE,180000,0; "> + Script: <" sc_start SC_MOVHASTE_HORSE, 180000, 25; "> }, { Id: 663 @@ -1935,7 +1935,7 @@ item_db: ( Buy: 0 Weight: 100 BuyingStore: true - Script: <" sc_start SC_PLUSATTACKPOWER,60000,30; "> + Script: <" sc_start SC_PLUSATTACKPOWER, 60000, 30; "> }, { Id: 683 @@ -1945,7 +1945,7 @@ item_db: ( Buy: 0 Weight: 50 BuyingStore: true - Script: <" sc_start SC_PLUSMAGICPOWER,60000,30; "> + Script: <" sc_start SC_PLUSMAGICPOWER, 60000, 30; "> }, { Id: 684 @@ -1956,8 +1956,8 @@ item_db: ( Weight: 300 BuyingStore: true Script: <" - sc_start SC_PLUSATTACKPOWER,60000,10; - sc_start SC_PLUSMAGICPOWER,60000,10; + sc_start SC_PLUSATTACKPOWER, 60000, 10; + sc_start SC_PLUSMAGICPOWER, 60000, 10; "> }, { @@ -61722,7 +61722,7 @@ item_db: ( Buy: 2 Weight: 100 BuyingStore: true - Script: <" sc_start SC_MOVHASTE_INFINITY, 5000, 100; "> + Script: <" sc_start SC_MOVHASTE_POTION, 5000, 100; "> }, { Id: 12017 @@ -61732,7 +61732,7 @@ item_db: ( Buy: 2 Weight: 100 BuyingStore: true - Script: <" sc_start SC_SLOWDOWN, 5000, 100; "> + Script: <" sc_start SC_MOVESLOW_POTION, 5000, 100; "> }, { Id: 12018 @@ -61844,7 +61844,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" sc_start SC_MOVHASTE_HORSE,20000,0; "> + Script: <" sc_start SC_MOVHASTE_HORSE, 20000, 25; "> }, { Id: 12029 @@ -61870,7 +61870,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" sc_start SC_PLUSATTACKPOWER,60000,20; "> + Script: <" sc_start SC_PLUSATTACKPOWER, 60000, 20; "> }, { Id: 12031 @@ -61883,7 +61883,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" sc_start SC_PLUSMAGICPOWER,60000,20; "> + Script: <" sc_start SC_PLUSMAGICPOWER, 60000, 20; "> }, { Id: 12032 @@ -63096,6 +63096,7 @@ item_db: ( Type: 0 Buy: 2 Weight: 100 + Script: <" sc_start SC_FOOD_LUK, 1800000, 15; "> }, { Id: 12132 @@ -63105,7 +63106,10 @@ item_db: ( Buy: 0 Weight: 200 BuyingStore: true - Script: <" sc_start SC_XMAS,600000,0; "> + Script: <" + sc_start SC_XMAS, 600000, 0; + sc_start SC_MOVHASTE_HORSE, 600000, 25; + "> }, { Id: 12133 @@ -64482,12 +64486,12 @@ item_db: ( Buy: 20 Weight: 50 Script: <" - sc_start SC_MOVHASTE_HORSE,5400000,0; - percentheal 100,100; - sc_start SC_FOOD_STR,5400000,10; - sc_start SC_FOOD_DEX,5400000,5; - sc_start SC_PLUSATTACKPOWER,5400000,22; - sc_start SC_MATKFOOD,5400000,15; + sc_start SC_MOVHASTE_INFINITY, 5400000, 100; + percentheal 100, 100; + sc_start SC_FOOD_STR, 5400000, 10; + sc_start SC_FOOD_DEX, 5400000, 5; + sc_start SC_PLUSATTACKPOWER, 5400000, 22; + sc_start SC_PLUSMAGICPOWER, 5400000, 15; "> }, { @@ -64498,12 +64502,12 @@ item_db: ( Buy: 20 Weight: 50 Script: <" - sc_start SC_MOVHASTE_HORSE,5400000,0; - percentheal 100,100; - sc_start SC_FOOD_INT,5400000,8; - sc_start SC_FOOD_VIT,5400000,7; - sc_start SC_FOOD_LUK,5400000,7; - sc_start SC_PLUSATTACKPOWER,5400000,10; + sc_start SC_MOVHASTE_INFINITY, 5400000, 100; + percentheal 100, 100; + sc_start SC_FOOD_INT, 5400000, 8; + sc_start SC_FOOD_VIT, 5400000, 7; + sc_start SC_FOOD_LUK, 5400000, 7; + sc_start SC_PLUSATTACKPOWER, 5400000, 10; "> }, { @@ -64514,11 +64518,11 @@ item_db: ( Buy: 20 Weight: 50 Script: <" - sc_start SC_MOVHASTE_HORSE,5400000,0; - percentheal 100,100; - sc_start SC_FOOD_AGI,5400000,15; - sc_start SC_PLUSATTACKPOWER,5400000,52; - sc_start SC_MATKFOOD,5400000,10; + sc_start SC_MOVHASTE_INFINITY, 5400000, 100; + percentheal 100, 100; + sc_start SC_FOOD_AGI, 5400000, 15; + sc_start SC_PLUSATTACKPOWER, 5400000, 52; + sc_start SC_PLUSMAGICPOWER, 5400000, 10; "> }, { @@ -64529,12 +64533,12 @@ item_db: ( Buy: 20 Weight: 50 Script: <" - sc_start SC_MOVHASTE_HORSE,5400000,0; - percentheal 100,100; - sc_start SC_FOOD_STR,5400000,3; - sc_start SC_FOOD_AGI,5400000,5; - sc_start SC_FOOD_VIT,5400000,10; - sc_start SC_MATKFOOD,5400000,52; + sc_start SC_MOVHASTE_INFINITY, 5400000, 100; + percentheal 100, 100; + sc_start SC_FOOD_STR, 5400000, 3; + sc_start SC_FOOD_AGI, 5400000, 5; + sc_start SC_FOOD_VIT, 5400000, 10; + sc_start SC_PLUSMAGICPOWER, 5400000, 52; "> }, { @@ -64545,12 +64549,12 @@ item_db: ( Buy: 20 Weight: 50 Script: <" - sc_start SC_MOVHASTE_HORSE,5400000,0; - percentheal 100,100; - sc_start SC_FOOD_INT,5400000,3; - sc_start SC_FOOD_DEX,5400000,12; - sc_start SC_PLUSATTACKPOWER,5400000,20; - sc_start SC_MATKFOOD,5400000,20; + sc_start SC_MOVHASTE_INFINITY, 5400000, 100; + percentheal 100, 100; + sc_start SC_FOOD_INT, 5400000, 3; + sc_start SC_FOOD_DEX, 5400000, 12; + sc_start SC_PLUSATTACKPOWER, 5400000, 20; + sc_start SC_PLUSMAGICPOWER, 5400000, 20; "> }, { @@ -64562,15 +64566,14 @@ item_db: ( Weight: 50 Script: <" percentheal 100,100; - sc_start SC_MOVHASTE_HORSE,5400000,0; - sc_start SC_FOOD_STR,5400000,6; - sc_start SC_FOOD_DEX,5400000,6; - sc_start SC_FOOD_AGI,5400000,6; - sc_start SC_FOOD_INT,5400000,6; - sc_start SC_FOOD_VIT,5400000,6; - sc_start SC_FOOD_LUK,5400000,6; - sc_start SC_PLUSATTACKPOWER,5400000,24; - sc_start SC_MATKFOOD,5400000,24; + sc_start SC_FOOD_STR, 5400000, 6; + sc_start SC_FOOD_DEX, 5400000, 6; + sc_start SC_FOOD_AGI, 5400000, 6; + sc_start SC_FOOD_INT, 5400000, 6; + sc_start SC_FOOD_VIT, 5400000, 6; + sc_start SC_FOOD_LUK, 5400000, 6; + sc_start SC_PLUSATTACKPOWER, 5400000, 24; + sc_start SC_PLUSMAGICPOWER, 5400000, 24; "> }, { @@ -64581,8 +64584,8 @@ item_db: ( Buy: 20 Weight: 150 Script: <" - sc_start SC_ATTHASTE_POTION2,900000,0; - sc_start SC_MOVHASTE_HORSE,900000,0; + sc_start SC_ATTHASTE_POTION2, 900000, 0; + sc_start SC_MOVHASTE_INFINITY, 900000, 100; "> }, { @@ -64691,7 +64694,7 @@ item_db: ( Buy: 800 Weight: 100 BuyingStore: true - Script: <" mercenary_sc_start SC_ATTHASTE_POTION1,1800000,0; "> + Script: <" mercenary_sc_start SC_ATTHASTE_POTION1, 1800000, 0; "> }, { Id: 12242 @@ -64701,7 +64704,7 @@ item_db: ( Buy: 1500 Weight: 150 BuyingStore: true - Script: <" mercenary_sc_start SC_ATTHASTE_POTION2,1800000,0; "> + Script: <" mercenary_sc_start SC_ATTHASTE_POTION2, 1800000, 0; "> }, { Id: 12243 @@ -64711,7 +64714,7 @@ item_db: ( Buy: 3000 Weight: 200 BuyingStore: true - Script: <" mercenary_sc_start SC_ATTHASTE_POTION3,1800000,0; "> + Script: <" mercenary_sc_start SC_ATTHASTE_POTION3, 1800000, 0; "> }, { Id: 12244 @@ -64951,7 +64954,7 @@ item_db: ( nomail: true noauction: true } - Script: <" sc_start SC_MOVHASTE_HORSE,180000,0; "> + Script: <" sc_start SC_MOVHASTE_HORSE, 180000, 25; "> }, { Id: 12263 @@ -65063,8 +65066,8 @@ item_db: ( noauction: true } Script: <" - sc_start SC_PLUSATTACKPOWER,60000,10; - sc_start SC_MATKFOOD,120000,10; + sc_start SC_PLUSATTACKPOWER, 60000, 10; + sc_start SC_PLUSMAGICPOWER, 60000, 10; "> }, { @@ -65083,7 +65086,7 @@ item_db: ( nomail: true noauction: true } - Script: <" sc_start SC_PLUSATTACKPOWER,600000,15; "> + Script: <" sc_start SC_PLUSATTACKPOWER, 600000, 15; "> }, { Id: 12270 @@ -65101,7 +65104,7 @@ item_db: ( nomail: true noauction: true } - Script: <" sc_start SC_PLUSMAGICPOWER,600000,15; "> + Script: <" sc_start SC_PLUSMAGICPOWER, 600000, 15; "> }, { Id: 12271 @@ -65275,14 +65278,14 @@ item_db: ( Buy: 0 Weight: 10 Script: <" - sc_start SC_FOOD_STR,5400000,3; - sc_start SC_FOOD_DEX,5400000,3; - sc_start SC_FOOD_AGI,5400000,3; - sc_start SC_FOOD_INT,5400000,3; - sc_start SC_FOOD_VIT,5400000,3; - sc_start SC_FOOD_LUK,5400000,3; - sc_start SC_PLUSATTACKPOWER,5400000,15; - sc_start SC_PLUSMAGICPOWER,5400000,15; + sc_start SC_FOOD_STR, 5400000, 3; + sc_start SC_FOOD_DEX, 5400000, 3; + sc_start SC_FOOD_AGI, 5400000, 3; + sc_start SC_FOOD_INT, 5400000, 3; + sc_start SC_FOOD_VIT, 5400000, 3; + sc_start SC_FOOD_LUK, 5400000, 3; + sc_start SC_PLUSATTACKPOWER, 5400000, 15; + sc_start SC_PLUSMAGICPOWER, 5400000, 15; "> }, { @@ -65293,11 +65296,11 @@ item_db: ( Buy: 0 Weight: 10 Script: <" - sc_start SC_FOOD_STR,5400000,8; - sc_start SC_FOOD_DEX,5400000,4; - sc_start SC_FOOD_AGI,5400000,6; - sc_start SC_PLUSATTACKPOWER,5400000,32; - sc_start SC_FOOD_BASICAVOIDANCE,5400000,5; + sc_start SC_FOOD_STR, 5400000, 8; + sc_start SC_FOOD_DEX, 5400000, 4; + sc_start SC_FOOD_AGI, 5400000, 6; + sc_start SC_PLUSATTACKPOWER, 5400000, 32; + sc_start SC_FOOD_BASICAVOIDANCE, 5400000, 5; "> }, { @@ -65308,10 +65311,10 @@ item_db: ( Buy: 0 Weight: 10 Script: <" - sc_start SC_FOOD_INT,5400000,8; - sc_start SC_FOOD_VIT,5400000,4; - sc_start SC_FOOD_DEX,5400000,6; - sc_start SC_PLUSMAGICPOWER,5400000,40; + sc_start SC_FOOD_INT, 5400000, 8; + sc_start SC_FOOD_VIT, 5400000, 4; + sc_start SC_FOOD_DEX, 5400000, 6; + sc_start SC_PLUSMAGICPOWER, 5400000, 40; "> }, { @@ -65322,11 +65325,11 @@ item_db: ( Buy: 0 Weight: 10 Script: <" - sc_start SC_FOOD_DEX,5400000,8; - sc_start SC_FOOD_LUK,5400000,4; - sc_start SC_FOOD_AGI,5400000,6; - sc_start SC_PLUSATTACKPOWER,5400000,24; - sc_start SC_PLUSMAGICPOWER,5400000,24; + sc_start SC_FOOD_DEX, 5400000, 8; + sc_start SC_FOOD_LUK, 5400000, 4; + sc_start SC_FOOD_AGI, 5400000, 6; + sc_start SC_PLUSATTACKPOWER, 5400000, 24; + sc_start SC_PLUSMAGICPOWER, 5400000, 24; "> }, { @@ -65862,8 +65865,8 @@ item_db: ( Buy: 0 Weight: 300 Script: <" - sc_start SC_PLUSATTACKPOWER,600000,5; - sc_start SC_PLUSMAGICPOWER,600000,5; + sc_start SC_PLUSATTACKPOWER, 600000, 5; + sc_start SC_PLUSMAGICPOWER, 600000, 5; "> }, { @@ -67275,9 +67278,9 @@ item_db: ( Weight: 10 BuyingStore: true Script: <" - sc_start SC_ATTHASTE_POTION1,1800000,0; - sc_start SC_INC_AGI,140000,5; - skilleffect AL_INCAGI,0; + sc_start SC_ATTHASTE_POTION1, 1800000, 0; + sc_start SC_INC_AGI, 140000, 5; + skilleffect AL_INCAGI, 0; "> }, { @@ -69079,7 +69082,7 @@ item_db: ( Type: 2 Buy: 0 Weight: 200 - Script: <" sc_start SC_MOVHASTE_INFINITY, 300000, 100; "> + Script: <" sc_start SC_MOVHASTE_POTION, 300000, 100; "> }, { Id: 12711 @@ -75368,7 +75371,7 @@ item_db: ( Type: 18 Buy: 20 Weight: 10 - Script: <" getitem 14509,20; "> + Script: <" getitem Light_Center_Pot, 20; "> }, { Id: 13536 @@ -75377,7 +75380,7 @@ item_db: ( Type: 18 Buy: 20 Weight: 10 - Script: <" getitem 14510,20; "> + Script: <" getitem Light_Awakening_Pot, 20; "> }, { Id: 13537 @@ -75386,7 +75389,7 @@ item_db: ( Type: 18 Buy: 20 Weight: 10 - Script: <" getitem 14511,20; "> + Script: <" getitem Light_Berserk_Pot, 20; "> }, { Id: 13538 @@ -86827,7 +86830,7 @@ item_db: ( Type: 2 Buy: 800 Weight: 20 - Script: <" sc_start SC_ATTHASTE_POTION1,1800000,4; "> + Script: <" sc_start SC_ATTHASTE_POTION1, 1800000, 0; "> }, { Id: 14510 @@ -86838,7 +86841,7 @@ item_db: ( Weight: 20 Job: 0xFFF7FEEF EquipLv: 40 - Script: <" sc_start SC_ATTHASTE_POTION2,1800000,6; "> + Script: <" sc_start SC_ATTHASTE_POTION2, 1800000, 0; "> }, { Id: 14511 @@ -86849,7 +86852,7 @@ item_db: ( Weight: 20 Job: 0x01E646A6 EquipLv: 85 - Script: <" sc_start SC_ATTHASTE_POTION3,1800000,9; "> + Script: <" sc_start SC_ATTHASTE_POTION3, 1800000, 0; "> }, { Id: 14512 @@ -86987,7 +86990,7 @@ item_db: ( Type: 2 Buy: 0 Weight: 10 - Script: <" sc_start SC_PLUSATTACKPOWER,1800000,10; "> + Script: <" sc_start SC_PLUSATTACKPOWER, 1800000, 10; "> }, { Id: 14526 @@ -86996,7 +86999,7 @@ item_db: ( Type: 2 Buy: 0 Weight: 10 - Script: <" sc_start SC_PLUSMAGICPOWER,1800000,10; "> + Script: <" sc_start SC_PLUSMAGICPOWER, 1800000, 10; "> }, { Id: 14527 @@ -88092,10 +88095,10 @@ item_db: ( nogstorage: true } Script: <" - sc_start SC_FOOD_BASICAVOIDANCE,300000,30; - sc_start SC_FOOD_BASICHIT,300000,30; - sc_start SC_PLUSATTACKPOWER,300000,20; - sc_start SC_PLUSMAGICPOWER,300000,20; + sc_start SC_FOOD_BASICAVOIDANCE, 300000, 30; + sc_start SC_FOOD_BASICHIT, 300000, 30; + sc_start SC_PLUSATTACKPOWER, 300000, 20; + sc_start SC_PLUSMAGICPOWER, 300000, 20; "> }, { diff --git a/db/re/item_db.conf b/db/re/item_db.conf index 0bd005274..6fc8f88df 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -1749,7 +1749,7 @@ item_db: ( Buy: 1450 Weight: 30 BuyingStore: true - Script: <" sc_start SC_MOVHASTE_HORSE,180000,0; "> + Script: <" sc_start SC_MOVHASTE_HORSE, 180000, 25; "> }, { Id: 663 @@ -1953,7 +1953,7 @@ item_db: ( Buy: 0 Weight: 100 BuyingStore: true - Script: <" sc_start SC_PLUSATTACKPOWER,60000,30; "> + Script: <" sc_start SC_PLUSATTACKPOWER, 60000, 30; "> }, { Id: 683 @@ -1963,7 +1963,7 @@ item_db: ( Buy: 0 Weight: 50 BuyingStore: true - Script: <" sc_start SC_PLUSMAGICPOWER,60000,30; "> + Script: <" sc_start SC_PLUSMAGICPOWER, 60000, 30; "> }, { Id: 684 @@ -1974,8 +1974,8 @@ item_db: ( Weight: 300 BuyingStore: true Script: <" - sc_start SC_PLUSATTACKPOWER,60000,10; - sc_start SC_PLUSMAGICPOWER,60000,10; + sc_start SC_PLUSATTACKPOWER, 60000, 10; + sc_start SC_PLUSMAGICPOWER, 60000, 10; "> }, { @@ -41090,7 +41090,7 @@ item_db: ( Weight: 10 Loc: 64 Script: <" - autobonus "{ sc_start SC_MOVHASTE_HORSE, 3000, 100; bonus bAgi, 44; heal 0, -40; }", 3, 3000, 0, "{ specialeffect2 EF_WIND; }"; + autobonus "{ sc_start SC_MOVHASTE_HORSE, 3000, 25; bonus bAgi, 44; heal 0, -40; }", 3, 3000, 0, "{ specialeffect2 EF_WIND; }"; "> }, { @@ -76642,7 +76642,7 @@ item_db: ( Buy: 2 Weight: 100 BuyingStore: true - Script: <" sc_start SC_MOVHASTE_INFINITY, 5000, 100; "> + Script: <" sc_start SC_MOVHASTE_POTION, 5000, 100; "> }, { Id: 12017 @@ -76652,7 +76652,7 @@ item_db: ( Buy: 2 Weight: 100 BuyingStore: true - Script: <" sc_start SC_SLOWDOWN, 5000, 100; "> + Script: <" sc_start SC_MOVESLOW_POTION, 5000, 100; "> }, { Id: 12018 @@ -76764,7 +76764,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" sc_start SC_MOVHASTE_HORSE,20000,0; "> + Script: <" sc_start SC_MOVHASTE_HORSE, 20000, 25; "> }, { Id: 12029 @@ -76790,7 +76790,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" sc_start SC_PLUSATTACKPOWER,60000,20; "> + Script: <" sc_start SC_PLUSATTACKPOWER, 60000, 20; "> }, { Id: 12031 @@ -76803,7 +76803,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" sc_start SC_PLUSMAGICPOWER,60000,20; "> + Script: <" sc_start SC_PLUSMAGICPOWER, 60000, 20; "> }, { Id: 12032 @@ -77930,7 +77930,7 @@ item_db: ( Buy: 2 Weight: 70 BuyingStore: true - Script: <" sc_start SC_FOOD_BASICAVOIDANCE,1200000,30; "> + Script: <" sc_start SC_FOOD_BASICAVOIDANCE, 1200000, 30; "> }, { Id: 12124 @@ -77941,8 +77941,8 @@ item_db: ( Weight: 70 BuyingStore: true Script: <" - sc_start SC_BATKFOOD,1200000,10; - sc_start SC_MATKFOOD,120000,10; + sc_start SC_PLUSATTACKPOWER, 1200000, 10; + sc_start SC_PLUSMAGICPOWER, 120000, 10; "> }, { @@ -78016,6 +78016,7 @@ item_db: ( Type: 0 Buy: 2 Weight: 100 + Script: <" sc_start SC_FOOD_LUK, 1800000, 15; "> }, { Id: 12132 @@ -78025,7 +78026,10 @@ item_db: ( Buy: 0 Weight: 200 BuyingStore: true - Script: <" sc_start SC_XMAS,600000,0; "> + Script: <" + sc_start SC_XMAS, 600000, 0; + sc_start SC_MOVHASTE_HORSE, 600000, 25; + "> }, { Id: 12133 @@ -78834,6 +78838,7 @@ item_db: ( Type: 2 Buy: 2 Weight: 300 + Script: <" sc_start SC_MOVHASTE_INFINITY, 180000, 25; "> }, { Id: 12191 @@ -78843,8 +78848,8 @@ item_db: ( Buy: 2 Weight: 500 Script: <" - sc_start SC_ATTHASTE_POTION1,600000,4; - sc_start SC_MOVHASTE_HORSE,600000,0; + sc_start SC_ATTHASTE_POTION1, 600000, 4; + sc_start SC_MOVHASTE_HORSE, 600000, 25; "> }, { @@ -79402,12 +79407,12 @@ item_db: ( Buy: 20 Weight: 50 Script: <" - sc_start SC_MOVHASTE_HORSE,5400000,0; - percentheal 100,100; - sc_start SC_FOOD_STR,5400000,10; - sc_start SC_FOOD_DEX,5400000,5; - sc_start SC_PLUSATTACKPOWER,5400000,22; - sc_start SC_MATKFOOD,5400000,15; + sc_start SC_MOVHASTE_INFINITY, 5400000, 100; + percentheal 100, 100; + sc_start SC_FOOD_STR, 5400000, 10; + sc_start SC_FOOD_DEX, 5400000, 5; + sc_start SC_PLUSATTACKPOWER, 5400000, 22; + sc_start SC_PLUSMAGICPOWER, 5400000, 15; "> }, { @@ -79418,12 +79423,12 @@ item_db: ( Buy: 20 Weight: 50 Script: <" - sc_start SC_MOVHASTE_HORSE,5400000,0; - percentheal 100,100; - sc_start SC_FOOD_INT,5400000,8; - sc_start SC_FOOD_VIT,5400000,7; - sc_start SC_FOOD_LUK,5400000,7; - sc_start SC_PLUSATTACKPOWER,5400000,10; + sc_start SC_MOVHASTE_INFINITY, 5400000, 100; + percentheal 100, 100; + sc_start SC_FOOD_INT, 5400000, 8; + sc_start SC_FOOD_VIT, 5400000, 7; + sc_start SC_FOOD_LUK, 5400000, 7; + sc_start SC_PLUSATTACKPOWER, 3600000, 20; "> }, { @@ -79434,11 +79439,11 @@ item_db: ( Buy: 20 Weight: 50 Script: <" - sc_start SC_MOVHASTE_HORSE,5400000,0; - percentheal 100,100; - sc_start SC_FOOD_AGI,5400000,15; - sc_start SC_PLUSATTACKPOWER,5400000,52; - sc_start SC_MATKFOOD,5400000,10; + sc_start SC_MOVHASTE_INFINITY, 5400000, 100; + percentheal 100, 100; + sc_start SC_FOOD_AGI, 5400000, 15; + sc_start SC_PLUSATTACKPOWER, 5400000, 52; + sc_start SC_PLUSMAGICPOWER, 5400000, 10; "> }, { @@ -79449,12 +79454,12 @@ item_db: ( Buy: 20 Weight: 50 Script: <" - sc_start SC_MOVHASTE_HORSE,5400000,0; - percentheal 100,100; - sc_start SC_FOOD_STR,5400000,3; - sc_start SC_FOOD_AGI,5400000,5; - sc_start SC_FOOD_VIT,5400000,10; - sc_start SC_MATKFOOD,5400000,52; + sc_start SC_MOVHASTE_INFINITY, 5400000, 100; + percentheal 100, 100; + sc_start SC_FOOD_STR, 5400000, 3; + sc_start SC_FOOD_AGI, 5400000, 5; + sc_start SC_FOOD_VIT, 5400000, 10; + sc_start SC_PLUSMAGICPOWER, 5400000, 52; "> }, { @@ -79465,12 +79470,12 @@ item_db: ( Buy: 20 Weight: 50 Script: <" - sc_start SC_MOVHASTE_HORSE,5400000,0; - percentheal 100,100; - sc_start SC_FOOD_INT,5400000,3; - sc_start SC_FOOD_DEX,5400000,12; - sc_start SC_PLUSATTACKPOWER,5400000,20; - sc_start SC_MATKFOOD,5400000,20; + sc_start SC_MOVHASTE_INFINITY, 5400000, 100; + percentheal 100, 100; + sc_start SC_FOOD_INT, 5400000, 3; + sc_start SC_FOOD_DEX, 5400000, 12; + sc_start SC_PLUSATTACKPOWER, 5400000, 20; + sc_start SC_PLUSMAGICPOWER, 5400000, 20; "> }, { @@ -79481,16 +79486,15 @@ item_db: ( Buy: 20 Weight: 50 Script: <" - percentheal 100,100; - sc_start SC_MOVHASTE_HORSE,5400000,0; - sc_start SC_FOOD_STR,5400000,6; - sc_start SC_FOOD_DEX,5400000,6; - sc_start SC_FOOD_AGI,5400000,6; - sc_start SC_FOOD_INT,5400000,6; - sc_start SC_FOOD_VIT,5400000,6; - sc_start SC_FOOD_LUK,5400000,6; - sc_start SC_PLUSATTACKPOWER,5400000,24; - sc_start SC_MATKFOOD,5400000,24; + percentheal 100, 100; + sc_start SC_FOOD_STR, 5400000, 6; + sc_start SC_FOOD_DEX, 5400000, 6; + sc_start SC_FOOD_AGI, 5400000, 6; + sc_start SC_FOOD_INT, 5400000, 6; + sc_start SC_FOOD_VIT, 5400000, 6; + sc_start SC_FOOD_LUK, 5400000, 6; + sc_start SC_PLUSATTACKPOWER, 5400000, 24; + sc_start SC_PLUSMAGICPOWER, 5400000, 24; "> }, { @@ -79501,8 +79505,8 @@ item_db: ( Buy: 20 Weight: 150 Script: <" - sc_start SC_ATTHASTE_POTION2,900000,0; - sc_start SC_MOVHASTE_HORSE,900000,0; + sc_start SC_ATTHASTE_POTION2, 900000, 6; + sc_start SC_MOVHASTE_INFINITY, 900000, 100; "> }, { @@ -79885,7 +79889,7 @@ item_db: ( nomail: true noauction: true } - Script: <" sc_start SC_MOVHASTE_HORSE,180000,0; "> + Script: <" sc_start SC_MOVHASTE_HORSE, 180000, 25; "> }, { Id: 12263 @@ -79998,8 +80002,8 @@ item_db: ( noauction: true } Script: <" - sc_start SC_PLUSATTACKPOWER,60000,10; - sc_start SC_MATKFOOD,120000,10; + sc_start SC_PLUSATTACKPOWER, 60000, 10; + sc_start SC_PLUSMAGICPOWER, 60000, 10; "> }, { @@ -80017,7 +80021,7 @@ item_db: ( nomail: true noauction: true } - Script: <" sc_start SC_PLUSATTACKPOWER,600000,15; "> + Script: <" sc_start SC_PLUSATTACKPOWER, 600000, 15; "> }, { Id: 12270 @@ -80034,7 +80038,7 @@ item_db: ( nomail: true noauction: true } - Script: <" sc_start SC_PLUSMAGICPOWER,600000,15; "> + Script: <" sc_start SC_PLUSMAGICPOWER, 600000, 15; "> }, { Id: 12271 @@ -80217,14 +80221,14 @@ item_db: ( Buy: 0 Weight: 10 Script: <" - sc_start SC_FOOD_STR,5400000,3; - sc_start SC_FOOD_DEX,5400000,3; - sc_start SC_FOOD_AGI,5400000,3; - sc_start SC_FOOD_INT,5400000,3; - sc_start SC_FOOD_VIT,5400000,3; - sc_start SC_FOOD_LUK,5400000,3; - sc_start SC_PLUSATTACKPOWER,5400000,15; - sc_start SC_PLUSMAGICPOWER,5400000,15; + sc_start SC_FOOD_STR, 5400000, 3; + sc_start SC_FOOD_DEX, 5400000, 3; + sc_start SC_FOOD_AGI, 5400000, 3; + sc_start SC_FOOD_INT, 5400000, 3; + sc_start SC_FOOD_VIT, 5400000, 3; + sc_start SC_FOOD_LUK, 5400000, 3; + sc_start SC_PLUSATTACKPOWER, 5400000, 15; + sc_start SC_PLUSMAGICPOWER, 5400000, 15; "> }, { @@ -80235,11 +80239,11 @@ item_db: ( Buy: 0 Weight: 10 Script: <" - sc_start SC_FOOD_STR,5400000,8; - sc_start SC_FOOD_DEX,5400000,4; - sc_start SC_FOOD_AGI,5400000,6; - sc_start SC_PLUSATTACKPOWER,5400000,32; - sc_start SC_FOOD_BASICAVOIDANCE,5400000,5; + sc_start SC_FOOD_STR, 5400000, 8; + sc_start SC_FOOD_DEX, 5400000, 4; + sc_start SC_FOOD_AGI, 5400000, 6; + sc_start SC_PLUSATTACKPOWER, 5400000, 32; + sc_start SC_FOOD_BASICAVOIDANCE, 5400000, 5; "> }, { @@ -80250,10 +80254,10 @@ item_db: ( Buy: 0 Weight: 10 Script: <" - sc_start SC_FOOD_INT,5400000,8; - sc_start SC_FOOD_VIT,5400000,4; - sc_start SC_FOOD_DEX,5400000,6; - sc_start SC_PLUSMAGICPOWER,5400000,40; + sc_start SC_FOOD_INT, 5400000, 8; + sc_start SC_FOOD_VIT, 5400000, 4; + sc_start SC_FOOD_DEX, 5400000, 6; + sc_start SC_PLUSMAGICPOWER, 5400000, 40; "> }, { @@ -80264,11 +80268,11 @@ item_db: ( Buy: 0 Weight: 10 Script: <" - sc_start SC_FOOD_DEX,5400000,8; - sc_start SC_FOOD_LUK,5400000,4; - sc_start SC_FOOD_AGI,5400000,6; - sc_start SC_PLUSATTACKPOWER,5400000,24; - sc_start SC_PLUSMAGICPOWER,5400000,24; + sc_start SC_FOOD_DEX, 5400000, 8; + sc_start SC_FOOD_LUK, 5400000, 4; + sc_start SC_FOOD_AGI, 5400000, 6; + sc_start SC_PLUSATTACKPOWER, 5400000, 24; + sc_start SC_PLUSMAGICPOWER, 5400000, 24; "> }, { @@ -80822,8 +80826,8 @@ item_db: ( noauction: true } Script: <" - sc_start SC_PLUSATTACKPOWER,600000,5; - sc_start SC_PLUSMAGICPOWER,600000,5; + sc_start SC_PLUSATTACKPOWER, 600000, 5; + sc_start SC_PLUSMAGICPOWER, 600000, 5; "> }, { @@ -84847,9 +84851,9 @@ item_db: ( Buy: 20 Weight: 30 Script:<" - sc_start SC_FOOD_LUK,6000,10; - sc_start SC_PLUSATTACKPOWER,6000,20; - sc_start SC_PLUSMAGICPOWER,6000,20; + sc_start SC_FOOD_LUK, 6000, 10; + sc_start SC_PLUSATTACKPOWER, 6000, 20; + sc_start SC_PLUSMAGICPOWER, 6000, 20; "> }, { @@ -85618,7 +85622,7 @@ item_db: ( Type: 2 Buy: 0 Weight: 200 - Script: <" sc_start SC_MOVHASTE_INFINITY, 300000, 100; "> + Script: <" sc_start SC_MOVHASTE_POTION, 300000, 100; "> }, { Id: 12711 @@ -94967,11 +94971,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 14509,20; "> + Script: <" getitem Light_Center_Pot, 20; "> }, { Id: 13536 @@ -94985,11 +94989,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 14510,20; "> + Script: <" getitem Light_Center_Pot, 20; "> }, { Id: 13537 @@ -95003,11 +95007,11 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } - Script: <" getitem 14511,20; "> + Script: <" getitem Light_Center_Pot, 20; "> }, { Id: 13538 @@ -110280,7 +110284,7 @@ item_db: ( nomail: true noauction: true } - Script: <" sc_start SC_PLUSATTACKPOWER,1800000,10; "> + Script: <" sc_start SC_PLUSATTACKPOWER, 1800000, 10; "> }, { Id: 14526 @@ -110298,7 +110302,7 @@ item_db: ( nomail: true noauction: true } - Script: <" sc_start SC_PLUSMAGICPOWER,1800000,10; "> + Script: <" sc_start SC_PLUSMAGICPOWER, 1800000, 10; "> }, { Id: 14527 @@ -111777,10 +111781,10 @@ item_db: ( noauction: true } Script: <" - sc_start SC_FOOD_BASICAVOIDANCE,300000,30; - sc_start SC_FOOD_BASICHIT,300000,30; - sc_start SC_PLUSATTACKPOWER,300000,20; - sc_start SC_PLUSMAGICPOWER,300000,20; + sc_start SC_FOOD_BASICAVOIDANCE, 300000, 30; + sc_start SC_FOOD_BASICHIT, 300000, 30; + sc_start SC_PLUSATTACKPOWER, 300000, 20; + sc_start SC_PLUSMAGICPOWER, 300000, 20; "> }, { @@ -111941,6 +111945,10 @@ item_db: ( nomail: true noauction: true } + Script: <" + specialeffect2 EF_GUARD; + sc_start SC_PROTECT_DEF, 120000, 3; + "> }, { Id: 14612 @@ -111958,6 +111966,10 @@ item_db: ( nomail: true noauction: true } + Script: <" + specialeffect2 EF_SPELLBREAKER; + sc_start SC_PROTECT_MDEF, 120000, 3; + "> }, { Id: 14613 @@ -111994,8 +112006,8 @@ item_db: ( } Script: <" specialeffect2 EF_GUARD; - sc_start SC_PROTECT_DEF, 1800000, 1; - sc_start SC_PROTECT_MDEF, 1800000, 1; + sc_start SC_PROTECT_DEF, 1800000, 3; + sc_start SC_PROTECT_MDEF, 1800000, 3; "> }, { @@ -112015,8 +112027,8 @@ item_db: ( noauction: true } Script: <" - sc_start SC_FOOD_STR,180000,15; - sc_start SC_PLUSATTACKPOWER,60000,rand(11,111); + sc_start SC_FOOD_STR, 180000, 15; + sc_start SC_PLUSATTACKPOWER, 60000, rand(11,111); "> }, { @@ -112036,8 +112048,8 @@ item_db: ( noauction: true } Script: <" - sc_start SC_FOOD_VIT,180000,15; - percentheal rand(11,33),0; + sc_start SC_FOOD_VIT, 180000, 15; + percentheal rand(11,33), 0; "> }, { @@ -112057,8 +112069,8 @@ item_db: ( noauction: true } Script: <" - sc_start SC_FOOD_AGI,180000,15; - sc_start SC_FOOD_BASICAVOIDANCE,60000,rand(11,33); + sc_start SC_FOOD_AGI, 180000, 15; + sc_start SC_FOOD_BASICAVOIDANCE, 60000, rand(11,33); "> }, { @@ -112078,8 +112090,8 @@ item_db: ( noauction: true } Script: <" - sc_start SC_FOOD_INT,180000,15; - sc_start SC_PLUSMAGICPOWER,60000,rand(11,111); + sc_start SC_FOOD_INT, 180000, 15; + sc_start SC_PLUSMAGICPOWER, 60000, rand(11,111); "> }, { @@ -112099,8 +112111,8 @@ item_db: ( noauction: true } Script: <" - sc_start SC_FOOD_DEX,180000,15; - sc_start SC_FOOD_BASICHIT,60000,rand(11,33); + sc_start SC_FOOD_DEX, 180000, 15; + sc_start SC_FOOD_BASICHIT, 60000, rand(11,33); "> }, { @@ -112120,8 +112132,8 @@ item_db: ( noauction: true } Script: <" - sc_start SC_FOOD_LUK,180000,15; - sc_start SC_CRITICALSUCCESSVALUE,60000,rand(11,13); + sc_start SC_FOOD_LUK, 180000, 15; + sc_start SC_CRITICALSUCCESSVALUE, 60000, rand(11,13); "> }, { @@ -112132,7 +112144,7 @@ item_db: ( Buy: 20 Weight: 10 Script: <" - sc_start2 SC_CUP_OF_BOZA,120000,10,5; + sc_start2 SC_CUP_OF_BOZA, 120000, 10, 5; "> }, diff --git a/db/sc_config.txt b/db/sc_config.txt index 32dd28078..814d30667 100644 --- a/db/sc_config.txt +++ b/db/sc_config.txt @@ -46,7 +46,7 @@ SC_ENERGYCOAT, 16 SC_ATTHASTE_POTION1, 24 SC_ATTHASTE_POTION2, 24 SC_ATTHASTE_POTION3, 16 -//SC_MOVHASTE_POTION, 26 +SC_MOVHASTE_POTION, 26 //SC_POSTDELAY, 29 SC_BARRIER, 16 SC_NOEQUIPWEAPON, 30 @@ -122,7 +122,7 @@ SC_ONEHANDQUICKEN, 26 SC_PRESERVE, 18 SC_CHASEWALK, 4 SC_CHASEWALK2, 26 -//SC_MOVESLOW_POTION, 26 +SC_MOVESLOW_POTION, 26 SC_DOUBLECASTING, 26 SC_GRAVITATION, 26 SC_OVERTHRUSTMAX, 18 diff --git a/src/map/status.c b/src/map/status.c index 52df73455..921d2fc45 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -796,9 +796,11 @@ void initChangeTables(void) { status->dbs->IconChangeTable[SC_ATTHASTE_POTION1] = SI_ATTHASTE_POTION1; status->dbs->IconChangeTable[SC_ATTHASTE_POTION2] = SI_ATTHASTE_POTION2; status->dbs->IconChangeTable[SC_ATTHASTE_POTION3] = SI_ATTHASTE_POTION3; + status->dbs->IconChangeTable[SC_MOVHASTE_POTION] = SI_MOVHASTE_POTION; status->dbs->IconChangeTable[SC_ATTHASTE_INFINITY] = SI_ATTHASTE_INFINITY; status->dbs->IconChangeTable[SC_MOVHASTE_HORSE] = SI_MOVHASTE_HORSE; status->dbs->IconChangeTable[SC_MOVHASTE_INFINITY] = SI_MOVHASTE_INFINITY; + status->dbs->IconChangeTable[SC_MOVESLOW_POTION] = SI_MOVESLOW_POTION; status->dbs->IconChangeTable[SC_CHASEWALK2] = SI_INCSTR; status->dbs->IconChangeTable[SC_MIRACLE] = SI_SOULLINK; status->dbs->IconChangeTable[SC_CLAIRVOYANCE] = SI_CLAIRVOYANCE; @@ -983,16 +985,18 @@ void initChangeTables(void) { status->dbs->IconChangeTable[SC_BLOSSOM_FLUTTERING] = SI_BLOSSOM_FLUTTERING; // Other SC which are not necessarily associated to skills. - status->dbs->ChangeFlagTable[SC_ATTHASTE_POTION1] = SCB_ASPD; - status->dbs->ChangeFlagTable[SC_ATTHASTE_POTION2] = SCB_ASPD; - status->dbs->ChangeFlagTable[SC_ATTHASTE_POTION3] = SCB_ASPD; - status->dbs->ChangeFlagTable[SC_ATTHASTE_INFINITY] = SCB_ASPD; - status->dbs->ChangeFlagTable[SC_MOVHASTE_HORSE] = SCB_SPEED; - status->dbs->ChangeFlagTable[SC_MOVHASTE_INFINITY] = SCB_SPEED; + status->dbs->ChangeFlagTable[SC_ATTHASTE_POTION1] |= SCB_ASPD; + status->dbs->ChangeFlagTable[SC_ATTHASTE_POTION2] |= SCB_ASPD; + status->dbs->ChangeFlagTable[SC_ATTHASTE_POTION3] |= SCB_ASPD; + status->dbs->ChangeFlagTable[SC_MOVHASTE_POTION] |= SCB_SPEED; + status->dbs->ChangeFlagTable[SC_ATTHASTE_INFINITY] |= SCB_ASPD; + status->dbs->ChangeFlagTable[SC_MOVHASTE_HORSE] |= SCB_SPEED; + status->dbs->ChangeFlagTable[SC_MOVHASTE_INFINITY] |= SCB_SPEED; + status->dbs->ChangeFlagTable[SC_MOVESLOW_POTION] |= SCB_SPEED; status->dbs->ChangeFlagTable[SC_SLOWDOWN] |= SCB_SPEED; - status->dbs->ChangeFlagTable[SC_PLUSATTACKPOWER] = SCB_BATK; - status->dbs->ChangeFlagTable[SC_PLUSMAGICPOWER] = SCB_MATK; - status->dbs->ChangeFlagTable[SC_INCALLSTATUS] |= SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK; + status->dbs->ChangeFlagTable[SC_PLUSATTACKPOWER] |= SCB_BATK; + status->dbs->ChangeFlagTable[SC_PLUSMAGICPOWER] |= SCB_MATK; + status->dbs->ChangeFlagTable[SC_INCALLSTATUS] |= SCB_STR | SCB_AGI | SCB_VIT | SCB_INT | SCB_DEX | SCB_LUK; status->dbs->ChangeFlagTable[SC_CHASEWALK2] |= SCB_STR; status->dbs->ChangeFlagTable[SC_INCAGI] |= SCB_AGI; status->dbs->ChangeFlagTable[SC_INCVIT] |= SCB_VIT; @@ -1003,7 +1007,7 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_INCHITRATE] |= SCB_HIT; status->dbs->ChangeFlagTable[SC_INCFLEE] |= SCB_FLEE; status->dbs->ChangeFlagTable[SC_INCFLEERATE] |= SCB_FLEE; - status->dbs->ChangeFlagTable[SC_MTF_HITFLEE] |= SCB_HIT|SCB_FLEE; + status->dbs->ChangeFlagTable[SC_MTF_HITFLEE] |= SCB_HIT | SCB_FLEE; status->dbs->ChangeFlagTable[SC_CRITICALPERCENT] |= SCB_CRI; status->dbs->ChangeFlagTable[SC_INCASPDRATE] |= SCB_ASPD; status->dbs->ChangeFlagTable[SC_PLUSAVOIDVALUE] |= SCB_FLEE2; @@ -1013,7 +1017,7 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_MTF_MHP] |= SCB_MAXHP; status->dbs->ChangeFlagTable[SC_INCMSP] |= SCB_MAXSP; status->dbs->ChangeFlagTable[SC_MTF_MSP] |= SCB_MAXSP; - status->dbs->ChangeFlagTable[SC_INCATKRATE] |= SCB_BATK|SCB_WATK; + status->dbs->ChangeFlagTable[SC_INCATKRATE] |= SCB_BATK | SCB_WATK; status->dbs->ChangeFlagTable[SC_INCMATKRATE] |= SCB_MATK; status->dbs->ChangeFlagTable[SC_INCDEFRATE] |= SCB_DEF; status->dbs->ChangeFlagTable[SC_FOOD_STR] |= SCB_STR; @@ -1045,12 +1049,12 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_STEAMPACK] |= SCB_BATK | SCB_ASPD | SCB_ALL; // Cash Items - status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] = SCB_STR; - status->dbs->ChangeFlagTable[SC_FOOD_AGI_CASH] = SCB_AGI; - status->dbs->ChangeFlagTable[SC_FOOD_VIT_CASH] = SCB_VIT; - status->dbs->ChangeFlagTable[SC_FOOD_DEX_CASH] = SCB_DEX; - status->dbs->ChangeFlagTable[SC_FOOD_INT_CASH] = SCB_INT; - status->dbs->ChangeFlagTable[SC_FOOD_LUK_CASH] = SCB_LUK; + status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; + status->dbs->ChangeFlagTable[SC_FOOD_AGI_CASH] |= SCB_AGI; + status->dbs->ChangeFlagTable[SC_FOOD_VIT_CASH] |= SCB_VIT; + status->dbs->ChangeFlagTable[SC_FOOD_DEX_CASH] |= SCB_DEX; + status->dbs->ChangeFlagTable[SC_FOOD_INT_CASH] |= SCB_INT; + status->dbs->ChangeFlagTable[SC_FOOD_LUK_CASH] |= SCB_LUK; // Mercenary Bonus Effects status->dbs->ChangeFlagTable[SC_MER_FLEE] |= SCB_FLEE; @@ -1060,11 +1064,11 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_MER_HIT] |= SCB_HIT; // Guillotine Cross Poison Effects - status->dbs->ChangeFlagTable[SC_PARALYSE] |= SCB_FLEE|SCB_SPEED|SCB_ASPD; + status->dbs->ChangeFlagTable[SC_PARALYSE] |= SCB_FLEE | SCB_SPEED | SCB_ASPD; status->dbs->ChangeFlagTable[SC_VENOMBLEED] |= SCB_MAXHP; status->dbs->ChangeFlagTable[SC_MAGICMUSHROOM] |= SCB_REGEN; status->dbs->ChangeFlagTable[SC_DEATHHURT] |= SCB_REGEN; - status->dbs->ChangeFlagTable[SC_PYREXIA] |= SCB_HIT|SCB_FLEE; + status->dbs->ChangeFlagTable[SC_PYREXIA] |= SCB_HIT | SCB_FLEE; status->dbs->ChangeFlagTable[SC_OBLIVIONCURSE] |= SCB_REGEN; // RG status @@ -1106,11 +1110,11 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_FREYJASCROLL] |= SCB_MDEF | SCB_FLEE2; status->dbs->ChangeFlagTable[SC_SOULSCROLL] |= SCB_MAXHP | SCB_MAXSP; - status->dbs->ChangeFlagTable[SC_ALL_RIDING] = SCB_SPEED; - status->dbs->ChangeFlagTable[SC_WEDDING] = SCB_SPEED; + status->dbs->ChangeFlagTable[SC_ALL_RIDING] |= SCB_SPEED; + status->dbs->ChangeFlagTable[SC_WEDDING] |= SCB_SPEED; - status->dbs->ChangeFlagTable[SC_MTF_ASPD] = SCB_ASPD | SCB_HIT; - status->dbs->ChangeFlagTable[SC_MTF_MATK] = SCB_MATK; + status->dbs->ChangeFlagTable[SC_MTF_ASPD] |= SCB_ASPD | SCB_HIT; + status->dbs->ChangeFlagTable[SC_MTF_MATK] |= SCB_MATK; status->dbs->ChangeFlagTable[SC_MTF_MLEATKED] |= SCB_ALL; // Eden Crystal Synthesis @@ -5489,8 +5493,10 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc val = max( val, sc->data[SC_CLOAKING]->val1 < 3 ? 300 : 30 - 3 * sc->data[SC_CLOAKING]->val1 ); if( sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_ENEMY ) val = max( val, 75 ); - if (sc->data[SC_SLOWDOWN]) // Slow Potion - val = max(val, sc->data[SC_SLOWDOWN]->val1); + if (sc->data[SC_SLOWDOWN]) + val = max(val, 100); + if (sc->data[SC_MOVESLOW_POTION]) // Used by Slow_Down_Potion [Frost] + val = max(val, sc->data[SC_MOVESLOW_POTION]->val1); if( sc->data[SC_GS_GATLINGFEVER] ) val = max( val, 100 ); if( sc->data[SC_NJ_SUITON] ) @@ -5532,8 +5538,10 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc { int val = 0; - if (sc->data[SC_MOVHASTE_INFINITY]) + if (sc->data[SC_MOVHASTE_INFINITY]) // Used by NPC_AGIUP [Frost] val = max(val, sc->data[SC_MOVHASTE_INFINITY]->val1); + if (sc->data[SC_MOVHASTE_POTION]) // Used by Speed_Up_Potion and Guyak_Pudding [Frost] + val = max(val, sc->data[SC_MOVHASTE_POTION]->val1); if( sc->data[SC_INC_AGI] ) val = max( val, 25 ); if( sc->data[SC_WINDWALK] ) @@ -5564,9 +5572,8 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc val = max( val, sc->data[SC_WIND_STEP_OPTION]->val2 ); if( sc->data[SC_FULL_THROTTLE] ) val = max( val, 25); - //FIXME: official items use a single bonus for this [ultramage] - if( sc->data[SC_MOVHASTE_HORSE] ) // temporary item-based speedup - val = max( val, 25 ); + if (sc->data[SC_MOVHASTE_HORSE]) + val = max(val, sc->data[SC_MOVHASTE_HORSE]->val1); if( sd && sd->bonus.speed_rate + sd->bonus.speed_add_rate < 0 ) // permanent item-based speedup val = max( val, -(sd->bonus.speed_rate + sd->bonus.speed_add_rate) ); @@ -7191,7 +7198,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t case SC_QUAGMIRE: case SC_DEC_AGI: case SC_DONTFORGETME: - if (sc->data[SC_MOVHASTE_INFINITY]) // Doesn't affect by Quagmire, Decrease Agi, Slow Grace [Frost] + if (sc->data[SC_MOVHASTE_POTION]) // Doesn't affect by Quagmire, Decrease Agi, Slow Grace [Frost] return 0; break; case SC_MAGNIFICAT: diff --git a/src/map/status.h b/src/map/status.h index 187188dfb..3bf862163 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -815,6 +815,8 @@ typedef enum sc_type { SC_STR_SCROLL, SC_INT_SCROLL, // 630 SC_STEAMPACK, + SC_MOVHASTE_POTION, + SC_MOVESLOW_POTION, SC_MAX, //Automatically updated max, used in for's to check we are within bounds. } sc_type; @@ -1011,7 +1013,7 @@ enum si_type { SI_INCSTR = 182, //SI_NOT_EXTREMITYFIST = 183, SI_CLAIRVOYANCE = 184, - //SI_MOVESLOW_POTION = 185, + SI_MOVESLOW_POTION = 185, SI_DOUBLECASTING = 186, //SI_GRAVITATION = 187, SI_OVERTHRUSTMAX = 188, -- cgit v1.2.3-60-g2f50