Jump to content
  • 0

Adding a similar status effect to SC_SPL_ATK


Dragonis1701

Question


  • Group:  Members
  • Topic Count:  45
  • Topics Per Day:  0.01
  • Content Count:  96
  • Reputation:   7
  • Joined:  05/25/12
  • Last Seen:  

I've been trying to get a new status effect I've called SC_BIFROST for Mora Berry and I'm not sure what I'm doing wrong. I figured I'll implement it in the same vein as Pinguicula's Fruit Jam and such items. I've done the following:
battle.c:

if (bl->type == BL_MOB) {
            uint8 i;

            if ( ((sce=sc->data[SC_MANU_ATK]) && (flag&BF_WEAPON)) ||
                 ((sce=sc->data[SC_MANU_MATK]) && (flag&BF_MAGIC))
                ) {
                for (i=0;ARRAYLENGTH(mob_manuk)>i;i++) {
                    if (((TBL_MOB*)bl)->mob_id==mob_manuk[i]) {
                        damage += damage * sce->val1 / 100;
                        break;
                    }
                }
            }
            if ( ((sce=sc->data[SC_SPL_ATK]) && (flag&BF_WEAPON)) ||
                 ((sce=sc->data[SC_SPL_MATK]) && (flag&BF_MAGIC))
                ) {
                for (i=0;ARRAYLENGTH(mob_splendide)>i;i++) {
                    if (((TBL_MOB*)bl)->mob_id==mob_splendide[i]) {
                        damage += damage * sce->val1 / 100;
                        break;
                    }
                }
            }
            if ( (sce=sc->data[SC_BIFROST]) ) {
                for (i=0;ARRAYLENGTH(mob_bifrost)>i;i++) {
                    if (((TBL_MOB*)bl)->mob_id==mob_bifrost[i]) {
                        damage += damage * sce->val1 / 100;
                        break;
                    }
                }
            }
        }

battle.c2:
 

if (src->type == BL_MOB) {
            int i;

            if (sc->data[SC_MANU_DEF]) {
                for (i=0;ARRAYLENGTH(mob_manuk)>i;i++) {
                    if (mob_manuk[i]==((TBL_MOB*)src)->mob_id) {
                        damage -= damage * sc->data[SC_MANU_DEF]->val1 / 100;
                        break;
                    }
                }
            }
            if (sc->data[SC_SPL_DEF]) {
                for (i=0;ARRAYLENGTH(mob_splendide)>i;i++) {
                    if (mob_splendide[i]==((TBL_MOB*)src)->mob_id) {
                        damage -= damage * sc->data[SC_SPL_DEF]->val1 / 100;
                        break;
                    }
                }
            }
            if (sc->data[SC_BIFROST]) {
                for (i=0;ARRAYLENGTH(mob_bifrost)>i;i++) {
                    if (mob_bifrost[i]==((TBL_MOB*)src)->mob_id) {
                        damage -= damage * sc->data[SC_BIFROST]->val1 / 500;
                        break;
                    }
                }
            }
        }

status.c:
 

StatusIconChangeTable[SC_MANU_ATK] = SI_MANU_ATK;
    StatusIconChangeTable[SC_MANU_DEF] = SI_MANU_DEF;
    StatusIconChangeTable[SC_SPL_ATK] = SI_SPL_ATK;
    StatusIconChangeTable[SC_SPL_DEF] = SI_SPL_DEF;
    StatusIconChangeTable[SC_MANU_MATK] = SI_MANU_MATK;
    StatusIconChangeTable[SC_SPL_MATK] = SI_SPL_MATK;
    StatusIconChangeTable[SC_BIFROST] = SI_BIFROST;

status.c2:

case SC_MANU_DEF:
        case SC_MANU_ATK:
        case SC_MANU_MATK:
            val2 = 1; // Manuk group
            break;
        case SC_SPL_DEF:
        case SC_SPL_ATK:
        case SC_SPL_MATK:
            val2 = 2; // Splendide group
            break;
        case SC_BIFROST:
            val2 = 3;
            break;

status.h:
 

SC_BIFROST,

SC_MAX,

status.h2:
 

SI_BIFROST = 1018,
    SI_MAX,

Inserted it into three points where it is also implemented in skill.c under Banishing Buster, Dispell and Clearance.

mob.c:

const int mob_manuk[20] = { MOBID_TATACHO, MOBID_CENTIPEDE, MOBID_NEPENTHES, MOBID_HILLSRION, MOBID_HARDROCK_MOMMOTH, MOBID_G_TATACHO, MOBID_G_HILLSRION, MOBID_CENTIPEDE_LARVA, MOBID_HORN_SCARABA, MOBID_HORN_SCARABA2, MOBID_ANTLER_SCARABA, MOBID_RAKE_SCARABA, MOBID_QUEEN_SCARABA, MOBID_HORN_SCARABA_EGG, MOBID_HORN_SCARABA2_EGG, MOBID_ANTLER_SCARABA_EGG, MOBID_RAKE_SCARABA_EGG, MOBID_DOLOMEDES, MOBID_G_ANTLER_SCARABA, MOBID_G_RAKE_SCARABA };
const int mob_splendide[17] = { MOBID_TENDRILRION, MOBID_CORNUS, MOBID_NAGA, MOBID_LUCIOLA_VESPA, MOBID_PINGUICULA, MOBID_LOST_DRAGON, MOBID_POM_SPIDER, MOBID_ANGRA_MANTIS, MOBID_PARUS, MOBID_LITTLE_FATUM, MOBID_MIMING, MOBID_DRACO, MOBID_DRACO_EGG, MOBID_PINGUICULA_D, MOBID_AQUA_ELEMENTAL, MOBID_RATA, MOBID_DUNEYRR };
const int mob_bifrost[6] = { MOBID_POM_SPIDER, MOBID_LOST_DRAGON, MOBID_ANGRA_MANTIS, MOBID_PARUS, MOBID_LITTLE_FATUM, MOBID_MIMING };

mob.h:
 

extern const int mob_manuk[20];
extern const int mob_splendide[17];
extern const int mob_bifrost[6];

itemdb:
 

12574,Mora_Berry,Mora Berry,2,1000,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ specialeffect2 EF_POTION_BERSERK; sc_start SC_BIFROST,1800000,250; },{},{}


Pinguicula's Fruit Jam and those items work fine after the modifications I made to them but this new one doesn't. Am I missing a spot I should have added some lines of code to?

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...