From c389a6c456bd48f9ea3ffb8d9a1d46eece0f925e Mon Sep 17 00:00:00 2001 From: aleos89 Date: Mon, 16 Nov 2015 11:14:42 -0500 Subject: [PATCH] Follow up to e276970 * Fixed an issue with ATK/MATK params. Thanks to Lord Ganja. --- doc/script_commands.txt | 273 +++++++++++++++++++++++++++++++++------- src/map/script.c | 108 ++++++++++------ src/map/script.h | 36 ++++-- src/map/status.h | 3 +- 4 files changed, 329 insertions(+), 91 deletions(-) diff --git a/doc/script_commands.txt b/doc/script_commands.txt index d1fe123146..06b5f9cfd4 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -7156,68 +7156,257 @@ Note: When adjusting a unit's stat (STR, AGI, etc) the unit's respective statuse affect a unit's status and will have to directly be modified. Parameters (indexes) for monsters are: - UMOB_SIZE UMOB_Y UMOB_HAIRSTYLE UMOB_WEAPON UMOB_LUK UMOB_MDEF UMOB_ELELEVEL - UMOB_LEVEL UMOB_SPEED UMOB_HAIRCOLOR UMOB_LOOKDIR UMOB_SLAVECPYMSTRMD UMOB_HIT UMOB_AMOTION - UMOB_HP UMOB_MODE UMOB_HEADBOTTOM UMOB_STR UMOB_DMGIMMUNE UMOB_FLEE UMOB_ADELAY - UMOB_MAXHP UMOB_AI UMOB_HEADMIDDLE UMOB_AGI UMOB_ATKRANGE UMOB_PDODGE UMOB_DMOTION - UMOB_MASTERAID UMOB_SCOPTION UMOB_HEADTOP UMOB_VIT UMOB_ATK UMOB_CRIT - UMOB_MAPID UMOB_SEX UMOB_CLOTHCOLOR UMOB_INT UMOB_MATK UMOB_RACE - UMOB_X UMOB_CLASS UMOB_SHIELD UMOB_DEX UMOB_DEF UMOB_ELETYPE + UMOB_SIZE + UMOB_LEVEL + UMOB_HP + UMOB_MAXHP + UMOB_MASTERAID + UMOB_MAPID + UMOB_X + UMOB_Y + UMOB_SPEED + UMOB_MODE + UMOB_AI + UMOB_SCOPTION + UMOB_SEX + UMOB_CLASS + UMOB_HAIRSTYLE + UMOB_HAIRCOLOR + UMOB_HEADBOTTOM + UMOB_HEADMIDDLE + UMOB_HEADTOP + UMOB_CLOTHCOLOR + UMOB_SHIELD + UMOB_WEAPON + UMOB_LOOKDIR + UMOB_STR + UMOB_AGI + UMOB_VIT + UMOB_INT + UMOB_DEX + UMOB_LUK + UMOB_SLAVECPYMSTRMD + UMOB_DMGIMMUNE + UMOB_ATKRANGE + UMOB_ATKMIN + UMOB_ATKMAX + UMOB_MATKMIN + UMOB_MATKMAX + UMOB_DEF + UMOB_MDEF + UMOB_HIT + UMOB_FLEE + UMOB_PDODGE + UMOB_CRIT + UMOB_RACE + UMOB_ELETYPE + UMOB_ELELEVEL + UMOB_AMOTION + UMOB_ADELAY + UMOB_DMOTION ----- Parameter (indexes) for homunculi are: - UHOM_SIZE UHOM_MAPID UHOM_CANMOVETICK UHOM_DMGIMMUNE UHOM_FLEE UHOM_ADELAY - UHOM_LEVEL UHOM_X UHOM_STR UHOM_ATKRANGE UHOM_PDODGE UHOM_DMOTION - UHOM_HP UHOM_Y UHOM_AGI UHOM_ATK UHOM_CRIT - UHOM_MAXHP UHOM_HUNGER UHOM_VIT UHOM_MATK UHOM_RACE - UHOM_SP UHOM_INTIMACY UHOM_INT UHOM_DEF UHOM_ELETYPE - UHOM_MAXSP UHOM_SPEED UHOM_DEX UHOM_MDEF UHOM_ELELEVEL - UHOM_MASTERCID UHOM_LOOKDIR UHOM_LUK UHOM_HIT UHOM_AMOTION + UHOM_SIZE + UHOM_LEVEL + UHOM_HP + UHOM_MAXHP + UHOM_SP + UHOM_MAXSP + UHOM_MASTERCID + UHOM_MAPID + UHOM_X + UHOM_Y + UHOM_HUNGER + UHOM_INTIMACY + UHOM_SPEED + UHOM_LOOKDIR + UHOM_CANMOVETICK + UHOM_STR + UHOM_AGI + UHOM_VIT + UHOM_INT + UHOM_DEX + UHOM_LUK + UHOM_DMGIMMUNE + UHOM_ATKRANGE + UHOM_ATKMIN + UHOM_ATKMAX + UHOM_MATKMIN + UHOM_MATKMAX + UHOM_DEF + UHOM_MDEF + UHOM_HIT + UHOM_FLEE + UHOM_PDODGE + UHOM_CRIT + UHOM_RACE + UHOM_ELETYPE + UHOM_ELELEVEL + UHOM_AMOTION + UHOM_ADELAY + UHOM_DMOTION ----- Parameter (indexes) for pets are: - UPET_SIZE UPET_Y UPET_AGI UPET_ATK UPET_CRIT - UPET_LEVEL UPET_HUNGER UPET_VIT UPET_MATK UPET_RACE - UPET_HP UPET_INTIMACY UPET_INT UPET_DEF UPET_ELETYPE - UPET_MAXHP UPET_SPEED UPET_DEX UPET_MDEF UPET_ELELEVEL - UPET_MASTERAID UPET_LOOKDIR UPET_LUK UPET_HIT UPET_AMOTION - UPET_MAPID UPET_CANMOVETICK UPET_DMGIMMUNE UPET_FLEE UPET_ADELAY - UPET_X UPET_STR UPET_ATKRANGE UPET_PDODGE UPET_DMOTION + UPET_SIZE + UPET_LEVEL + UPET_HP + UPET_MAXHP + UPET_MASTERAID + UPET_MAPID + UPET_X + UPET_Y + UPET_HUNGER + UPET_INTIMACY + UPET_SPEED + UPET_LOOKDIR + UPET_CANMOVETICK + UPET_STR + UPET_AGI + UPET_VIT + UPET_INT + UPET_DEX + UPET_LUK + UPET_DMGIMMUNE + UPET_ATKRANGE + UPET_ATKMIN + UPET_ATKMAX + UPET_MATKMIN + UPET_MATKMAX + UPET_DEF + UPET_MDEF + UPET_HIT + UPET_FLEE + UPET_PDODGE + UPET_CRIT + UPET_RACE + UPET_ELETYPE + UPET_ELELEVEL + UPET_AMOTION + UPET_ADELAY + UPET_DMOTION ----- Parameter (indexes) for mercenaries are: - UMER_SIZE UMER_KILLCOUNT UMER_VIT UMER_MATK UMER_RACE - UMER_HP UMER_LIFETIME UMER_INT UMER_DEF UMER_ELETYPE - UMER_MAXHP UMER_SPEED UMER_DEX UMER_MDEF UMER_ELELEVEL - UMER_MASTERCID UMER_LOOKDIR UMER_LUK UMER_HIT UMER_AMOTION - UMER_MAPID UMER_CANMOVETICK UMER_DMGIMMUNE UMER_FLEE UMER_ADELAY - UMER_X UMER_STR UMER_ATKRANGE UMER_PDODGE UMER_DMOTION - UMER_Y UMER_AGI UMER_ATK UMER_CRIT + UMER_SIZE + UMER_HP + UMER_MAXHP + UMER_MASTERCID + UMER_MAPID + UMER_X + UMER_Y + UMER_KILLCOUNT + UMER_LIFETIME + UMER_SPEED + UMER_LOOKDIR + UMER_CANMOVETICK + UMER_STR + UMER_AGI + UMER_VIT + UMER_INT + UMER_DEX + UMER_LUK + UMER_DMGIMMUNE + UMER_ATKRANGE + UMER_ATKMIN + UMER_ATKMAX + UMER_MATKMIN + UMER_MATKMAX + UMER_DEF + UMER_MDEF + UMER_HIT + UMER_FLEE + UMER_PDODGE + UMER_CRIT + UMER_RACE + UMER_ELETYPE + UMER_ELELEVEL + UMER_AMOTION + UMER_ADELAY + UMER_DMOTION ----- Parameter (indexes) for elementals are: - UELE_SIZE UELE_X UELE_STR UELE_ATKRANGE UELE_PDODGE UELE_DMOTION - UELE_HP UELE_Y UELE_AGI UELE_ATK UELE_CRIT - UELE_MAXHP UELE_LIFETIME UELE_VIT UELE_MATK UELE_RACE - UELE_SP UELE_MODE UELE_INT UELE_DEF UELE_ELETYPE - UELE_MAXSP UELE_SPEED UELE_DEX UELE_MDEF UELE_ELELEVEL - UELE_MASTERCID UELE_LOOKDIR UELE_LUK UELE_HIT UELE_AMOTION - UELE_MAPID UELE_CANMOVETICK UELE_DMGIMMUNE UELE_FLEE ELE_ADELAY + UELE_SIZE + UELE_HP + UELE_MAXHP + UELE_SP + UELE_MAXSP + UELE_MASTERCID + UELE_MAPID + UELE_X + UELE_Y + UELE_LIFETIME + UELE_MODE + UELE_SPEED + UELE_LOOKDIR + UELE_CANMOVETICK + UELE_STR + UELE_AGI + UELE_VIT + UELE_INT + UELE_DEX + UELE_LUK + UELE_DMGIMMUNE + UELE_ATKRANGE + UELE_ATKMIN + UELE_ATKMAX + UELE_MATKMIN + UELE_MATKMAX + UELE_DEF + UELE_MDEF + UELE_HIT + UELE_FLEE + UELE_PDODGE + UELE_CRIT + UELE_RACE + UELE_ELETYPE + UELE_ELELEVEL + UELE_AMOTION + UELE_ADELAY + UELE_DMOTION ----- Parameter (indexes) for NPCs are: - UNPC_DISPLAY UNPC_LOOKDIR UNPC_PLUSALLSTAT UNPC_HIT UNPC_AMOTION - UNPC_LEVEL UNPC_STR UNPC_DMGIMMUNE UNPC_FLEE UNPC_ADELAY - UNPC_HP UNPC_AGI UNPC_ATKRANGE UNPC_PDODGE UNPC_DMOTION - UNPC_MAXHP UNPC_VIT UNPC_ATK UNPC_CRIT - UNPC_MAPID UNPC_INT UNPC_MATK UNPC_RACE - UNPC_X UNPC_DEX UNPC_DEF UNPC_ELETYPE - UNPC_Y UNPC_LUK UNPC_MDEF UNPC_ELELEVEL + UNPC_DISPLAY + UNPC_LEVEL + UNPC_HP + UNPC_MAXHP + UNPC_MAPID + UNPC_X + UNPC_Y + UNPC_LOOKDIR + UNPC_STR + UNPC_AGI + UNPC_VIT + UNPC_INT + UNPC_DEX + UNPC_LUK + UNPC_PLUSALLSTAT + UNPC_DMGIMMUNE + UNPC_ATKRANGE + UNPC_ATKMIN + UNPC_ATKMAX + UNPC_MATKMIN + UNPC_MATKMAX + UNPC_DEF + UNPC_MDEF + UNPC_HIT + UNPC_FLEE + UNPC_PDODGE + UNPC_CRIT + UNPC_RACE + UNPC_ELETYPE + UNPC_ELELEVEL + UNPC_AMOTION + UNPC_ADELAY + UNPC_DMOTION *Notes: - *_SIZE: small (0); medium (1); large (2) diff --git a/src/map/script.c b/src/map/script.c index abfb0ebaa5..c31e2b81da 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -2326,8 +2326,10 @@ void script_hardcoded_constants(void) { script_set_constant("UMOB_SLAVECPYMSTRMD",UMOB_SLAVECPYMSTRMD,false); script_set_constant("UMOB_DMGIMMUNE",UMOB_DMGIMMUNE,false); script_set_constant("UMOB_ATKRANGE",UMOB_ATKRANGE,false); - script_set_constant("UMOB_ATK",UMOB_ATK,false); - script_set_constant("UMOB_MATK",UMOB_MATK,false); + script_set_constant("UMOB_ATKMIN",UMOB_ATKMIN,false); + script_set_constant("UMOB_ATKMAX",UMOB_ATKMAX,false); + script_set_constant("UMOB_MATKMIN",UMOB_MATKMIN,false); + script_set_constant("UMOB_MATKMAX",UMOB_MATKMAX,false); script_set_constant("UMOB_DEF",UMOB_DEF,false); script_set_constant("UMOB_MDEF",UMOB_MDEF,false); script_set_constant("UMOB_HIT",UMOB_HIT,false); @@ -2365,8 +2367,10 @@ void script_hardcoded_constants(void) { script_set_constant("UHOM_LUK",UHOM_LUK,false); script_set_constant("UHOM_DMGIMMUNE",UHOM_DMGIMMUNE,false); script_set_constant("UHOM_ATKRANGE",UHOM_ATKRANGE,false); - script_set_constant("UHOM_ATK",UHOM_ATK,false); - script_set_constant("UHOM_MATK",UHOM_MATK,false); + script_set_constant("UHOM_ATKMIN",UHOM_ATKMIN,false); + script_set_constant("UHOM_ATKMAX",UHOM_ATKMAX,false); + script_set_constant("UHOM_MATKMIN",UHOM_MATKMIN,false); + script_set_constant("UHOM_MATKMAX",UHOM_MATKMAX,false); script_set_constant("UHOM_DEF",UHOM_DEF,false); script_set_constant("UHOM_MDEF",UHOM_MDEF,false); script_set_constant("UHOM_HIT",UHOM_HIT,false); @@ -2402,8 +2406,10 @@ void script_hardcoded_constants(void) { script_set_constant("UPET_LUK",UPET_LUK,false); script_set_constant("UPET_DMGIMMUNE",UPET_DMGIMMUNE,false); script_set_constant("UPET_ATKRANGE",UPET_ATKRANGE,false); - script_set_constant("UPET_ATK",UPET_ATK,false); - script_set_constant("UPET_MATK",UPET_MATK,false); + script_set_constant("UPET_ATKMIN",UPET_ATKMIN,false); + script_set_constant("UPET_ATKMAX",UPET_ATKMAX,false); + script_set_constant("UPET_MATKMIN",UPET_MATKMIN,false); + script_set_constant("UPET_MATKMAX",UPET_MATKMAX,false); script_set_constant("UPET_DEF",UPET_DEF,false); script_set_constant("UPET_MDEF",UPET_MDEF,false); script_set_constant("UPET_HIT",UPET_HIT,false); @@ -2438,8 +2444,10 @@ void script_hardcoded_constants(void) { script_set_constant("UMER_LUK",UMER_LUK,false); script_set_constant("UMER_DMGIMMUNE",UMER_DMGIMMUNE,false); script_set_constant("UMER_ATKRANGE",UMER_ATKRANGE,false); - script_set_constant("UMER_ATK",UMER_ATK,false); - script_set_constant("UMER_MATK",UMER_MATK,false); + script_set_constant("UMER_ATKMIN",UMER_ATKMIN,false); + script_set_constant("UMER_ATKMAX",UMER_ATKMAX,false); + script_set_constant("UMER_MATKMIN",UMER_MATKMIN,false); + script_set_constant("UMER_MATKMAX",UMER_MATKMAX,false); script_set_constant("UMER_DEF",UMER_DEF,false); script_set_constant("UMER_MDEF",UMER_MDEF,false); script_set_constant("UMER_HIT",UMER_HIT,false); @@ -2476,8 +2484,10 @@ void script_hardcoded_constants(void) { script_set_constant("UELE_LUK",UELE_LUK,false); script_set_constant("UELE_DMGIMMUNE",UELE_DMGIMMUNE,false); script_set_constant("UELE_ATKRANGE",UELE_ATKRANGE,false); - script_set_constant("UELE_ATK",UELE_ATK,false); - script_set_constant("UELE_MATK",UELE_MATK,false); + script_set_constant("UELE_ATKMIN",UELE_ATKMIN,false); + script_set_constant("UELE_ATKMAX",UELE_ATKMAX,false); + script_set_constant("UELE_MATKMIN",UELE_MATKMIN,false); + script_set_constant("UELE_MATKMAX",UELE_MATKMAX,false); script_set_constant("UELE_DEF",UELE_DEF,false); script_set_constant("UELE_MDEF",UELE_MDEF,false); script_set_constant("UELE_HIT",UELE_HIT,false); @@ -2509,8 +2519,10 @@ void script_hardcoded_constants(void) { script_set_constant("UNPC_PLUSALLSTAT",UNPC_PLUSALLSTAT,false); script_set_constant("UNPC_DMGIMMUNE",UNPC_DMGIMMUNE,false); script_set_constant("UNPC_ATKRANGE",UNPC_ATKRANGE,false); - script_set_constant("UNPC_ATK",UNPC_ATK,false); - script_set_constant("UNPC_MATK",UNPC_MATK,false); + script_set_constant("UNPC_ATKMIN",UNPC_ATKMIN,false); + script_set_constant("UNPC_ATKMAX",UNPC_ATKMAX,false); + script_set_constant("UNPC_MATKMIN",UNPC_MATKMIN,false); + script_set_constant("UNPC_MATKMAX",UNPC_MATKMAX,false); script_set_constant("UNPC_DEF",UNPC_DEF,false); script_set_constant("UNPC_MDEF",UNPC_MDEF,false); script_set_constant("UNPC_HIT",UNPC_HIT,false); @@ -17109,8 +17121,10 @@ BUILDIN_FUNC(getunitdata) getunitdata_sub(UMOB_SLAVECPYMSTRMD, md->state.copy_master_mode); getunitdata_sub(UMOB_DMGIMMUNE, md->ud.immune_attack); getunitdata_sub(UMOB_ATKRANGE, md->status.rhw.range); - getunitdata_sub(UMOB_ATK, md->status.rhw.atk); - getunitdata_sub(UMOB_MATK, md->status.rhw.atk2); + getunitdata_sub(UMOB_ATKMIN, md->status.rhw.atk); + getunitdata_sub(UMOB_ATKMAX, md->status.rhw.atk2); + getunitdata_sub(UMOB_MATKMIN, md->status.matk_min); + getunitdata_sub(UMOB_MATKMAX, md->status.matk_max); getunitdata_sub(UMOB_DEF, md->status.def); getunitdata_sub(UMOB_MDEF, md->status.mdef); getunitdata_sub(UMOB_HIT, md->status.hit); @@ -17153,8 +17167,10 @@ BUILDIN_FUNC(getunitdata) getunitdata_sub(UHOM_LUK, hd->base_status.luk); getunitdata_sub(UHOM_DMGIMMUNE, hd->ud.immune_attack); getunitdata_sub(UHOM_ATKRANGE, hd->battle_status.rhw.range); - getunitdata_sub(UHOM_ATK, hd->battle_status.rhw.atk); - getunitdata_sub(UHOM_MATK, hd->battle_status.rhw.atk2); + getunitdata_sub(UHOM_ATKMIN, hd->base_status.rhw.atk); + getunitdata_sub(UHOM_ATKMAX, hd->base_status.rhw.atk2); + getunitdata_sub(UHOM_MATKMIN, hd->base_status.matk_min); + getunitdata_sub(UHOM_MATKMAX, hd->base_status.matk_max); getunitdata_sub(UHOM_DEF, hd->battle_status.def); getunitdata_sub(UHOM_MDEF, hd->battle_status.mdef); getunitdata_sub(UHOM_HIT, hd->battle_status.hit); @@ -17195,8 +17211,10 @@ BUILDIN_FUNC(getunitdata) getunitdata_sub(UPET_LUK, pd->status.luk); getunitdata_sub(UPET_DMGIMMUNE, pd->ud.immune_attack); getunitdata_sub(UPET_ATKRANGE, pd->status.rhw.range); - getunitdata_sub(UPET_ATK, pd->status.rhw.atk); - getunitdata_sub(UPET_MATK, pd->status.rhw.atk2); + getunitdata_sub(UPET_ATKMIN, pd->status.rhw.atk); + getunitdata_sub(UPET_ATKMAX, pd->status.rhw.atk2); + getunitdata_sub(UPET_MATKMIN, pd->status.matk_min); + getunitdata_sub(UPET_MATKMAX, pd->status.matk_max); getunitdata_sub(UPET_DEF, pd->status.def); getunitdata_sub(UPET_MDEF, pd->status.mdef); getunitdata_sub(UPET_HIT, pd->status.hit); @@ -17236,8 +17254,10 @@ BUILDIN_FUNC(getunitdata) getunitdata_sub(UMER_LUK, mc->base_status.luk); getunitdata_sub(UMER_DMGIMMUNE, mc->ud.immune_attack); getunitdata_sub(UMER_ATKRANGE, mc->base_status.rhw.range); - getunitdata_sub(UMER_ATK, mc->base_status.rhw.atk); - getunitdata_sub(UMER_MATK, mc->base_status.rhw.atk2); + getunitdata_sub(UMER_ATKMIN, mc->base_status.rhw.atk); + getunitdata_sub(UMER_ATKMAX, mc->base_status.rhw.atk2); + getunitdata_sub(UMER_MATKMIN, mc->base_status.matk_min); + getunitdata_sub(UMER_MATKMAX, mc->base_status.matk_max); getunitdata_sub(UMER_DEF, mc->base_status.def); getunitdata_sub(UMER_MDEF, mc->base_status.mdef); getunitdata_sub(UMER_HIT, mc->base_status.hit); @@ -17279,8 +17299,10 @@ BUILDIN_FUNC(getunitdata) getunitdata_sub(UELE_LUK, ed->base_status.luk); getunitdata_sub(UELE_DMGIMMUNE, ed->ud.immune_attack); getunitdata_sub(UELE_ATKRANGE, ed->base_status.rhw.range); - getunitdata_sub(UELE_ATK, ed->base_status.rhw.atk); - getunitdata_sub(UELE_MATK, ed->base_status.rhw.atk2); + getunitdata_sub(UELE_ATKMIN, ed->base_status.rhw.atk); + getunitdata_sub(UELE_ATKMAX, ed->base_status.rhw.atk2); + getunitdata_sub(UELE_MATKMIN, ed->base_status.matk_min); + getunitdata_sub(UELE_MATKMAX, ed->base_status.matk_max); getunitdata_sub(UELE_DEF, ed->base_status.def); getunitdata_sub(UELE_MDEF, ed->base_status.mdef); getunitdata_sub(UELE_HIT, ed->base_status.hit); @@ -17317,8 +17339,10 @@ BUILDIN_FUNC(getunitdata) getunitdata_sub(UNPC_PLUSALLSTAT, nd->stat_point); getunitdata_sub(UNPC_DMGIMMUNE, nd->ud.immune_attack); getunitdata_sub(UNPC_ATKRANGE, nd->status.rhw.range); - getunitdata_sub(UNPC_ATK, nd->status.rhw.atk); - getunitdata_sub(UNPC_MATK, nd->status.rhw.atk2); + getunitdata_sub(UNPC_ATKMIN, nd->status.rhw.atk); + getunitdata_sub(UNPC_ATKMAX, nd->status.rhw.atk2); + getunitdata_sub(UNPC_MATKMIN, nd->status.matk_min); + getunitdata_sub(UNPC_MATKMAX, nd->status.matk_max); getunitdata_sub(UNPC_DEF, nd->status.def); getunitdata_sub(UNPC_MDEF, nd->status.mdef); getunitdata_sub(UNPC_HIT, nd->status.hit); @@ -17436,8 +17460,10 @@ BUILDIN_FUNC(setunitdata) case UMOB_SLAVECPYMSTRMD: md->state.copy_master_mode = value > 0 ? 1 : 0; if (value > 0) { TBL_MOB *md2 = map_id2md(md->master_id); md->status.mode = md2->status.mode; } break; case UMOB_DMGIMMUNE: md->ud.immune_attack = (bool)value > 0 ? 1 : 0; break; case UMOB_ATKRANGE: md->status.rhw.range = (unsigned short)value; break; - case UMOB_ATK: md->status.rhw.atk = (unsigned short)value; break; - case UMOB_MATK: md->status.rhw.atk2 = (unsigned short)value; break; + case UMOB_ATKMIN: md->status.rhw.atk = (unsigned short)value; break; + case UMOB_ATKMAX: md->status.rhw.atk2 = (unsigned short)value; break; + case UMOB_MATKMIN: md->status.matk_min = (unsigned short)value; break; + case UMOB_MATKMAX: md->status.matk_max = (unsigned short)value; break; case UMOB_DEF: md->status.def = (defType)value; break; case UMOB_MDEF: md->status.mdef = (defType)value; break; case UMOB_HIT: md->status.hit = (short)value; break; @@ -17485,8 +17511,10 @@ BUILDIN_FUNC(setunitdata) case UHOM_LUK: hd->base_status.luk = (unsigned short)value; status_calc_misc(bl, &hd->base_status, hd->homunculus.level); break; case UHOM_DMGIMMUNE: hd->ud.immune_attack = (bool)value > 0 ? 1 : 0; break; case UHOM_ATKRANGE: hd->base_status.rhw.range = (unsigned short)value; break; - case UHOM_ATK: hd->base_status.rhw.atk = (unsigned short)value; break; - case UHOM_MATK: hd->base_status.rhw.atk2 = (unsigned short)value; break; + case UHOM_ATKMIN: hd->base_status.rhw.atk = (unsigned short)value; break; + case UHOM_ATKMAX: hd->base_status.rhw.atk2 = (unsigned short)value; break; + case UHOM_MATKMIN: hd->base_status.matk_min = (unsigned short)value; break; + case UHOM_MATKMAX: hd->base_status.matk_max = (unsigned short)value; break; case UHOM_DEF: hd->base_status.def = (defType)value; break; case UHOM_MDEF: hd->base_status.mdef = (defType)value; break; case UHOM_HIT: hd->base_status.hit = (short)value; break; @@ -17532,8 +17560,10 @@ BUILDIN_FUNC(setunitdata) case UPET_LUK: pd->status.luk = (unsigned short)value; status_calc_misc(bl, &pd->status, pd->pet.level); break; case UPET_DMGIMMUNE: pd->ud.immune_attack = (bool)value > 0 ? 1 : 0; break; case UPET_ATKRANGE: pd->status.rhw.range = (unsigned short)value; break; - case UPET_ATK: pd->status.rhw.atk = (unsigned short)value; break; - case UPET_MATK: pd->status.rhw.atk2 = (unsigned short)value; break; + case UPET_ATKMIN: pd->status.rhw.atk = (unsigned short)value; break; + case UPET_ATKMAX: pd->status.rhw.atk2 = (unsigned short)value; break; + case UPET_MATKMIN: pd->status.matk_min = (unsigned short)value; break; + case UPET_MATKMAX: pd->status.matk_max = (unsigned short)value; break; case UPET_DEF: pd->status.def = (defType)value; break; case UPET_MDEF: pd->status.mdef = (defType)value; break; case UPET_HIT: pd->status.hit = (short)value; break; @@ -17578,8 +17608,10 @@ BUILDIN_FUNC(setunitdata) case UMER_LUK: mc->base_status.luk = (unsigned short)value; status_calc_misc(bl, &mc->base_status, mc->db->lv); break; case UMER_DMGIMMUNE: mc->ud.immune_attack = (bool)value > 0 ? 1 : 0; break; case UMER_ATKRANGE: mc->base_status.rhw.range = (unsigned short)value; break; - case UMER_ATK: mc->base_status.rhw.atk = (unsigned short)value; break; - case UMER_MATK: mc->base_status.rhw.atk2 = (unsigned short)value; break; + case UMER_ATKMIN: mc->base_status.rhw.atk = (unsigned short)value; break; + case UMER_ATKMAX: mc->base_status.rhw.atk2 = (unsigned short)value; break; + case UMER_MATKMIN: mc->base_status.matk_min = (unsigned short)value; break; + case UMER_MATKMAX: mc->base_status.matk_max = (unsigned short)value; break; case UMER_DEF: mc->base_status.def = (defType)value; break; case UMER_MDEF: mc->base_status.mdef = (defType)value; break; case UMER_HIT: mc->base_status.hit = (short)value; break; @@ -17626,8 +17658,10 @@ BUILDIN_FUNC(setunitdata) case UELE_LUK: ed->base_status.luk = (unsigned short)value; status_calc_misc(bl, &ed->base_status, ed->db->lv); break; case UELE_DMGIMMUNE: ed->ud.immune_attack = (bool)value > 0 ? 1 : 0; break; case UELE_ATKRANGE: ed->base_status.rhw.range = (unsigned short)value; break; - case UELE_ATK: ed->base_status.rhw.atk = (unsigned short)value; break; - case UELE_MATK: ed->base_status.rhw.atk2 = (unsigned short)value; break; + case UELE_ATKMIN: ed->base_status.rhw.atk = (unsigned short)value; break; + case UELE_ATKMAX: ed->base_status.rhw.atk2 = (unsigned short)value; break; + case UELE_MATKMIN: ed->base_status.matk_min = (unsigned short)value; break; + case UELE_MATKMAX: ed->base_status.matk_max = (unsigned short)value; break; case UELE_DEF: ed->base_status.def = (defType)value; break; case UELE_MDEF: ed->base_status.mdef = (defType)value; break; case UELE_HIT: ed->base_status.hit = (short)value; break; @@ -17668,8 +17702,10 @@ BUILDIN_FUNC(setunitdata) case UNPC_LUK: nd->params.luk = (unsigned short)value; status_calc_misc(bl, &nd->status, nd->level); break; case UNPC_PLUSALLSTAT: nd->stat_point = (unsigned int)value; break; case UNPC_ATKRANGE: nd->status.rhw.range = (unsigned short)value; break; - case UNPC_ATK: nd->status.rhw.atk = (unsigned short)value; break; - case UNPC_MATK: nd->status.rhw.atk2 = (unsigned short)value; break; + case UNPC_ATKMIN: nd->status.rhw.atk = (unsigned short)value; break; + case UNPC_ATKMAX: nd->status.rhw.atk2 = (unsigned short)value; break; + case UNPC_MATKMIN: nd->status.matk_min = (unsigned short)value; break; + case UNPC_MATKMAX: nd->status.matk_max = (unsigned short)value; break; case UNPC_DEF: nd->status.def = (defType)value; break; case UNPC_MDEF: nd->status.mdef = (defType)value; break; case UNPC_HIT: nd->status.hit = (short)value; break; diff --git a/src/map/script.h b/src/map/script.h index cd13a20884..9a6b387858 100644 --- a/src/map/script.h +++ b/src/map/script.h @@ -330,8 +330,10 @@ enum unitdata_mobtypes { UMOB_SLAVECPYMSTRMD, UMOB_DMGIMMUNE, UMOB_ATKRANGE, - UMOB_ATK, - UMOB_MATK, + UMOB_ATKMIN, + UMOB_ATKMAX, + UMOB_MATKMIN, + UMOB_MATKMAX, UMOB_DEF, UMOB_MDEF, UMOB_HIT, @@ -370,8 +372,10 @@ enum unitdata_homuntypes { UHOM_LUK, UHOM_DMGIMMUNE, UHOM_ATKRANGE, - UHOM_ATK, - UHOM_MATK, + UHOM_ATKMIN, + UHOM_ATKMAX, + UHOM_MATKMIN, + UHOM_MATKMAX, UHOM_DEF, UHOM_MDEF, UHOM_HIT, @@ -408,8 +412,10 @@ enum unitdata_pettypes { UPET_LUK, UPET_DMGIMMUNE, UPET_ATKRANGE, - UPET_ATK, - UPET_MATK, + UPET_ATKMIN, + UPET_ATKMAX, + UPET_MATKMIN, + UPET_MATKMAX, UPET_DEF, UPET_MDEF, UPET_HIT, @@ -445,8 +451,10 @@ enum unitdata_merctypes { UMER_LUK, UMER_DMGIMMUNE, UMER_ATKRANGE, - UMER_ATK, - UMER_MATK, + UMER_ATKMIN, + UMER_ATKMAX, + UMER_MATKMIN, + UMER_MATKMAX, UMER_DEF, UMER_MDEF, UMER_HIT, @@ -484,8 +492,10 @@ enum unitdata_elemtypes { UELE_LUK, UELE_DMGIMMUNE, UELE_ATKRANGE, - UELE_ATK, - UELE_MATK, + UELE_ATKMIN, + UELE_ATKMAX, + UELE_MATKMIN, + UELE_MATKMAX, UELE_DEF, UELE_MDEF, UELE_HIT, @@ -518,8 +528,10 @@ enum unitdata_npctypes { UNPC_PLUSALLSTAT, UNPC_DMGIMMUNE, UNPC_ATKRANGE, - UNPC_ATK, - UNPC_MATK, + UNPC_ATKMIN, + UNPC_ATKMAX, + UNPC_MATKMIN, + UNPC_MATKMAX, UNPC_DEF, UNPC_MDEF, UNPC_HIT, diff --git a/src/map/status.h b/src/map/status.h index 85f3eef433..1717a0fb43 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -1934,7 +1934,8 @@ struct status_data { hp, sp, // see status_cpy before adding members before hp and sp max_hp, max_sp; short - str, agi, vit, int_, dex, luk, + str, agi, vit, int_, dex, luk; + unsigned short batk, #ifdef RENEWAL watk,