From cb227339015cdd739580b36222d31b6755694d49 Mon Sep 17 00:00:00 2001 From: skotlex Date: Mon, 19 Mar 2007 19:44:21 +0000 Subject: - Removed the last argument from skillitem, the skill name passed to the client should always be of the type "AL_HEAL" anyway. - Added skill ITEM_ENCHANTARMS, this is what weapon enchanting items should use. - Corrected itemskill calls in the item_db, also made the weapon enchanting items invoke the ITEM_ENCHANTARMS skill. Corrected Holy Egg not being type 11 (delay consume) - Updated item_db.sql with item_db information. - Added support for specifying different elements per skill level in the skill_db - Added bonus bNoKnockback - Corrected typo in bonus bSubRace2 (it was called bSPSubRace2 for some reason) - Corrected login sql server not resetting your account state to 0 when the banuntil duration expires. - Corrected use of UINT_MAX instead of INT_MAX in some jailing check. - Made the skillatk bonus it's own function, it can now be used to boost Heal/Sanctuary/Potion Pitcher and Slim Pitcher as well. - Cleaned up TK_WARMWIND to use the element acquired from the skill_db rather than hardcoded values. - Corrected Teleport's save map entry being sent without the .gat extension. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10031 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/status.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/map/status.c') diff --git a/src/map/status.c b/src/map/status.c index 5521bf517..bc7b5130c 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -351,6 +351,7 @@ void initChangeTables(void) { set_sc(WS_OVERTHRUSTMAX, SC_MAXOVERTHRUST, SI_MAXOVERTHRUST, SCB_NONE); set_sc(CG_LONGINGFREEDOM, SC_LONGING, SI_BLANK, SCB_SPEED|SCB_ASPD); add_sc(CG_HERMODE, SC_HERMODE); + set_sc(ITEM_ENCHANTARMS, SC_ENCHANTARMS, SI_BLANK, SCB_ATK_ELE); set_sc(SL_HIGH, SC_SPIRIT, SI_SPIRIT, SCB_PC); set_sc(KN_ONEHAND, SC_ONEHAND, SI_ONEHAND, SCB_ASPD); set_sc(GS_FLING, SC_FLING, SI_BLANK, SCB_DEF|SCB_DEF2); @@ -1091,7 +1092,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int hide_flag = flag?OPTION_HIDE:(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK); //You cannot hide from ground skills. - if(skill_get_pl(skill_num) == ELE_EARTH) + if(skill_get_pl(skill_num,1) == ELE_EARTH) //TODO: Need Skill Lv here :/ hide_flag &= ~OPTION_HIDE; switch (target->type) @@ -3903,6 +3904,8 @@ unsigned char status_calc_attack_element(struct block_list *bl, struct status_ch { if(!sc || !sc->count) return element; + if( sc->data[SC_ENCHANTARMS].timer!=-1) + return sc->data[SC_ENCHANTARMS].val2; if( sc->data[SC_WATERWEAPON].timer!=-1) return ELE_WATER; if( sc->data[SC_EARTHWEAPON].timer!=-1) @@ -5744,6 +5747,13 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val val3 = BF_LONG; //Range val4 = BF_WEAPON|BF_MISC; //Type break; + case SC_ENCHANTARMS: + //Make sure the received element is valid. + if (val2 >= ELE_MAX) + val2 = val2%ELE_MAX; + else if (val2 < 0) + val2 = rand()%ELE_MAX; + break; case SC_ARMOR_ELEMENT: //Place here SCs that have no SCB_* data, no skill associated, no ICON //associated, and yet are not wrong/unknown. [Skotlex] -- cgit v1.2.3-70-g09d2