diff options
-rw-r--r-- | db/const.txt | 2 | ||||
-rw-r--r-- | db/pre-re/item_db.conf | 44 | ||||
-rw-r--r-- | db/re/item_db.conf | 109 | ||||
-rw-r--r-- | db/sc_config.txt | 3 | ||||
-rw-r--r-- | src/map/skill.c | 2 | ||||
-rw-r--r-- | src/map/status.c | 20 | ||||
-rw-r--r-- | src/map/status.h | 2 |
7 files changed, 128 insertions, 54 deletions
diff --git a/db/const.txt b/db/const.txt index a77a612bf..98883e9cc 100644 --- a/db/const.txt +++ b/db/const.txt @@ -1346,6 +1346,8 @@ SC_PHI_DEMON 635 SC_PROMOTE_HEALTH_RESERCH 636 SC_ENERGY_DRINK_RESERCH 637 SC_MAGIC_CANDY 638 +SC_M_LIFEPOTION 639 +SC_G_LIFEPOTION 640 e_gasp 0 e_what 1 diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf index d5ccd7e97..8d4c99379 100644 --- a/db/pre-re/item_db.conf +++ b/db/pre-re/item_db.conf @@ -87070,13 +87070,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_HEAL3; - sc_start4 SC_S_LIFEPOTION,600000,-5,5,0,0; + sc_start2 SC_S_LIFEPOTION, 600000, -5, 5; "> }, { @@ -87091,13 +87091,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_HEAL3; - sc_start4 SC_L_LIFEPOTION,600000,-7,4,0,0; + sc_start2 SC_L_LIFEPOTION, 600000, -7, 4; "> }, { @@ -87112,13 +87112,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_MAGICALATTHIT; - sc_start SC_CRITICALPERCENT,300000,30; + sc_start SC_CRITICALPERCENT, 300000, 30; "> }, { @@ -87133,13 +87133,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_LIGHTSPHERE; - sc_start SC_HEALPLUS,1800000,20; + sc_start SC_HEALPLUS, 1800000, 20; "> }, { @@ -87155,13 +87155,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_STEAL; - sc_start SC_PLUSAVOIDVALUE,60000,20; + sc_start SC_PLUSAVOIDVALUE, 60000, 20; "> }, { @@ -87176,13 +87176,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_CLOAKING; - sc_start4 SC_ARMOR_PROPERTY,1800000,1,Ele_Dark,1,0; + sc_start4 SC_ARMOR_PROPERTY, 1800000, 1, Ele_Dark, 1, 0; "> }, { @@ -87197,13 +87197,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_BENEDICTIO; - sc_start4 SC_ARMOR_PROPERTY,1800000,1,Ele_Holy,1,0; + sc_start4 SC_ARMOR_PROPERTY, 1800000, 1, Ele_Holy, 1, 0; "> }, { @@ -87218,13 +87218,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_GUARD; - sc_start SC_PROTECT_DEF,60000,3; + sc_start SC_PROTECT_DEF, 60000, 3; "> }, { @@ -87239,13 +87239,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_GUARD; - sc_start SC_PROTECT_DEF,180000,3; + sc_start SC_PROTECT_DEF, 180000, 3; "> }, { @@ -87260,13 +87260,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_SPELLBREAKER; - sc_start SC_PROTECT_MDEF,60000,3; + sc_start SC_PROTECT_MDEF, 60000, 3; "> }, { @@ -87281,13 +87281,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_SPELLBREAKER; - sc_start SC_PROTECT_MDEF,180000,3; + sc_start SC_PROTECT_MDEF, 180000, 3; "> }, { diff --git a/db/re/item_db.conf b/db/re/item_db.conf index b85203710..56eb0e27b 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -76626,6 +76626,63 @@ item_db: ( Script: <" itemheal rand(40,45),0; "> }, { + Id: 11715 + AegisName: "Fruit_Salad" + Name: "Fruit Salad" + Type: 0 + Buy: 0 + Weight: 10 + Script: <" + specialeffect2 EF_SPELLBREAKER; + sc_start SC_TARGET_ASPD, 180000, 10; + "> +}, +{ + Id: 11716 + AegisName: "Shepherd_Salad" + Name: "Shepherd Salad" + Type: 0 + Buy: 0 + Weight: 10 + Script: <" + specialeffect2 EF_LIGHTSPHERE; + sc_start SC_HEALPLUS, 180000, 20; + "> +}, +{ + Id: 11717 + AegisName: "Yogurt" + Name: "Yogurt" + Type: 0 + Buy: 0 + Weight: 140 + Script: <" + specialeffect2 EF_HEAL3; + sc_start2 SC_ATKER_MOVESPEED, 180000, 5, 10; + "> +}, +{ + Id: 11718 + AegisName: "Sushi_Kebab" + Name: "Sushi Kebab" + Type: 0 + Buy: 0 + Weight: 60 + Script: <" + specialeffect2 EF_HEAL3; + sc_start2 SC_M_LIFEPOTION, 180000, -4, 4; + "> +}, +{ + Id: 11719 + AegisName: "Bisket_Dessert" + Name: "Bisket Dessert" + Type: 0 + Buy: 0 + Weight: 200 + Script: <" sc_start SC_CASH_PLUSEXP, 1800000, 100;"> +}, +{ Id: 12000 AegisName: "Cold_Scroll_2_5" Name: "Level 5 Frost Diver" @@ -80268,7 +80325,7 @@ item_db: ( noauction: true nogstorage: true } - Script: <" sc_start2 SC_ATKER_ASPD,3600000,5,10; "> + Script: <" sc_start2 SC_ATKER_ASPD, 3600000, 5, 10; "> }, { Id: 12275 @@ -80287,7 +80344,7 @@ item_db: ( noauction: true nogstorage: true } - Script: <" sc_start2 SC_ATKER_MOVESPEED,3600000,5,10; "> + Script: <" sc_start2 SC_ATKER_MOVESPEED, 3600000, 5, 10; "> }, { Id: 12276 @@ -80647,7 +80704,7 @@ item_db: ( } Script: <" specialeffect2 EF_SPELLBREAKER; - sc_start SC_ATKER_BLOOD,3600000,15; + sc_start SC_ATKER_BLOOD, 3600000, 15; "> }, { @@ -80669,7 +80726,7 @@ item_db: ( } Script: <" specialeffect2 EF_GUARD; - sc_start SC_TARGET_BLOOD,3600000,10; + sc_start SC_TARGET_BLOOD, 3600000, 10; "> }, { @@ -84252,10 +84309,14 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } + Script: <" + specialeffect2 EF_HEAL; + sc_start2 SC_G_LIFEPOTION, 600000, -6, 3; + "> }, { Id: 12579 @@ -110922,13 +110983,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_HEAL3; - sc_start4 SC_S_LIFEPOTION,600000,-5,5,0,0; + sc_start2 SC_S_LIFEPOTION, 600000, -5, 5; "> }, { @@ -110943,13 +111004,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_HEAL3; - sc_start4 SC_L_LIFEPOTION,600000,-7,4,0,0; + sc_start2 SC_L_LIFEPOTION, 600000, -7, 4; "> }, { @@ -110964,13 +111025,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_MAGICALATTHIT; - sc_start SC_CRITICALPERCENT,300000,30; + sc_start SC_CRITICALPERCENT, 300000, 30; "> }, { @@ -110985,13 +111046,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_LIGHTSPHERE; - sc_start SC_HEALPLUS,1800000,20; + sc_start SC_HEALPLUS, 1800000, 20; "> }, { @@ -111007,13 +111068,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_STEAL; - sc_start SC_PLUSAVOIDVALUE,60000,20; + sc_start SC_PLUSAVOIDVALUE, 60000, 20; "> }, { @@ -111070,13 +111131,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_GUARD; - sc_start SC_PROTECT_DEF,60000,3; + sc_start SC_PROTECT_DEF, 60000, 3; "> }, { @@ -111091,13 +111152,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_GUARD; - sc_start SC_PROTECT_DEF,180000,3; + sc_start SC_PROTECT_DEF, 180000, 3; "> }, { @@ -111112,13 +111173,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_SPELLBREAKER; - sc_start SC_PROTECT_MDEF,60000,3; + sc_start SC_PROTECT_MDEF, 60000, 3; "> }, { @@ -111133,13 +111194,13 @@ item_db: ( notrade: true noselltonpc: true nocart: true - nogstorage: true nomail: true noauction: true + nogstorage: true } Script: <" specialeffect2 EF_SPELLBREAKER; - sc_start SC_PROTECT_MDEF,180000,3; + sc_start SC_PROTECT_MDEF, 180000, 3; "> }, { @@ -112235,7 +112296,7 @@ item_db: ( } Script: <" specialeffect2 EF_SPELLBREAKER; - sc_start SC_TARGET_ASPD,1800000,10; + sc_start SC_TARGET_ASPD, 1800000, 10; "> }, { diff --git a/db/sc_config.txt b/db/sc_config.txt index afc75b8e5..ac65a6677 100644 --- a/db/sc_config.txt +++ b/db/sc_config.txt @@ -388,7 +388,7 @@ SC_MORA_BUFF, 2 //SC_REUSE_LIMIT_H, 29 SC_NEEDLE_OF_PARALYZE, 1 SC_PAIN_KILLER, 1 -//SC_G_LIFEPOTION, 68 +SC_G_LIFEPOTION, 68 //SC_VITALIZE_POTION, 4 SC_LIGHT_OF_REGENE, 1 //SC_SONIC_CLAW_POSTDELAY, 2 @@ -434,6 +434,7 @@ SC_GEFFEN_MAGIC2, 14 SC_GEFFEN_MAGIC3, 14 SC_OVERLAPEXPUP, 12 +SC_M_LIFEPOTION, 68 // Guild Auras should not be saved SC_LEADERSHIP,78 diff --git a/src/map/skill.c b/src/map/skill.c index f82cdee71..f870524fa 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7623,7 +7623,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin // Slim Pitcher case CR_SLIMPITCHER: // Updated to block Slim Pitcher from working on barricades and guardian stones. - if( dstmd && (dstmd->class_ == MOBID_EMPERIUM || (dstmd->class_ >= MOBID_BARRICADE1 && dstmd->class_ <= MOBID_GUARDIAN_STONE2)) ) + if (dstmd && (dstmd->class_ == MOBID_EMPERIUM || (dstmd->class_ >= MOBID_BARRICADE1 && dstmd->class_ <= MOBID_GUARDIAN_STONE2))) break; if (script->potion_hp || script->potion_sp) { int hp = script->potion_hp, sp = script->potion_sp; diff --git a/src/map/status.c b/src/map/status.c index 108f3d72d..5c2d1d2f5 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -859,6 +859,8 @@ void initChangeTables(void) { status->dbs->IconChangeTable[SC_INT_SCROLL] = SI_INT_SCROLL; status->dbs->IconChangeTable[SC_STEAMPACK] = SI_STEAMPACK; status->dbs->IconChangeTable[SC_MAGIC_CANDY] = SI_MAGIC_CANDY; + status->dbs->IconChangeTable[SC_M_LIFEPOTION] = SI_M_LIFEPOTION; + status->dbs->IconChangeTable[SC_G_LIFEPOTION] = SI_G_LIFEPOTION; // Eden Crystal Synthesis status->dbs->IconChangeTable[SC_QUEST_BUFF1] = SI_QUEST_BUFF1; @@ -7751,6 +7753,8 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t break; case SC_S_LIFEPOTION: case SC_L_LIFEPOTION: + case SC_M_LIFEPOTION: + case SC_G_LIFEPOTION: case SC_CASH_BOSS_ALARM: case SC_STUN: case SC_SLEEP: @@ -8135,12 +8139,14 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t break; case SC_S_LIFEPOTION: case SC_L_LIFEPOTION: - if( val1 == 0 ) return 0; + case SC_M_LIFEPOTION: + case SC_G_LIFEPOTION: + if (val1 == 0) return 0; // val1 = heal percent/amout // val2 = seconds between heals // val4 = total of heals - if( val2 < 1 ) val2 = 1; - if( (val4 = tick/(val2 * 1000)) < 1 ) + if (val2 < 1) val2 = 1; + if ((val4 = tick / (val2 * 1000)) < 1) val4 = 1; tick_time = val2 * 1000; // [GodLesZ] tick time break; @@ -10982,10 +10988,12 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) { case SC_S_LIFEPOTION: case SC_L_LIFEPOTION: - if( sd && --(sce->val4) >= 0 ) { + case SC_M_LIFEPOTION: + case SC_G_LIFEPOTION: + if (sd && --(sce->val4) >= 0) { // val1 < 0 = per max% | val1 > 0 = exact amount int hp = 0; - if( st->hp < st->max_hp ) + if (st->hp < st->max_hp) hp = (sce->val1 < 0) ? (int)(sd->status.max_hp * -1 * sce->val1 / 100.) : sce->val1 ; status->heal(bl, hp, 0, 2); sc_timer_next((sce->val2 * 1000) + tick, status->change_timer, bl->id, data); @@ -11600,7 +11608,7 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) { break; case SC_MAGIC_CANDY: if (--(sce->val4) > 0) { - status->charge(bl, 0, sce->val3); // Reduce 100 SP every 10 seconds. + status->charge(bl, 0, sce->val3); // Reduce 90 SP every 10 seconds. sc_timer_next(10000 + tick, status->change_timer, bl->id, data); } break; diff --git a/src/map/status.h b/src/map/status.h index dfc914849..b5597dd45 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -822,6 +822,8 @@ typedef enum sc_type { SC_PROMOTE_HEALTH_RESERCH, SC_ENERGY_DRINK_RESERCH, SC_MAGIC_CANDY, + SC_M_LIFEPOTION, + SC_G_LIFEPOTION, // 640 SC_MAX, //Automatically updated max, used in for's to check we are within bounds. } sc_type; |