diff options
-rw-r--r-- | Changelog-Trunk.txt | 7 | ||||
-rw-r--r-- | db/Changelog.txt | 2 | ||||
-rw-r--r-- | db/skill_db.txt | 20 | ||||
-rw-r--r-- | src/map/battle.c | 2 | ||||
-rw-r--r-- | src/map/skill.c | 29 | ||||
-rw-r--r-- | src/map/status.c | 2 |
6 files changed, 33 insertions, 29 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 1f551c6a6..f60c56738 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,13 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2010/08/16 + * Rev. 14378 Attempting to tackle, and fix some simple errors in skills. [L0ne_W0lf] + - Stormgust hit counter no longer resets under new casts of stormgust. + - RG_STEALCOIN will now cause the monster to aggro player on success. (bugreport:3547) + - SL_WIZARD will now consume one crystal fragement per reflected hit. (bugreport:3603) + - WZ_FROSTNOVA will now ignore targets in area that are already frozen. (bugreport:3980) + - SL_KAAHI will no longer uses SP if player has full health already. (bugreport:3918) + - CG_TAROTCARD "The Lovers" will heal source player instead of target. (bugreport:4171) * Merged Shinryo's patch which speeds up map-cache loading (with a few changes, see eA forum thread #253218 for details) [Skotlex] 2010/08/14 * Rev. 14373 Quest log kill count now updated properly. (Added from topic 253813) [L0ne_W0lf] diff --git a/db/Changelog.txt b/db/Changelog.txt index 29a8da57d..660edbeb8 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -8,6 +8,8 @@ 1475 Equestrian's Spear: NEED INFO. 13005 Angelic Wing Dagger: NEED INFO. ======================= +2010/08/16 + * Rev. 14378 Flag some skills so they won't be given with @allskills. (bugreport:3933) [L0ne_W0lf] 2010/07/30 * Rev. 14367 Added two new monster mercenaries. [L0ne_W0lf] - Added information for the three new mercenary skills. diff --git a/db/skill_db.txt b/db/skill_db.txt index 19f31c3a6..b534986c8 100644 --- a/db/skill_db.txt +++ b/db/skill_db.txt @@ -631,17 +631,17 @@ // Additional Skill (??) //688,0,0,0,0,0,0,9,0,no,0,0,0,none,0, GM_SANDMAN,GM Sandman -689,0,6,4,0,0x3,-1,10,1,yes,0,0,0,magic,0, CASH_BLESSING,Party Blessing -690,0,6,4,0,0x3,-1,10,1,yes,0,0,0,magic,0, CASH_INCAGI,Party Increase AGI -691,0,6,4,0,0x3,-1,5,1,yes,0,0,0,magic,0, CASH_ASSUMPTIO,Party Assumptio -//692,0,0,0,0,0,0,9,0,no,0,0,0,none,0, ALL_CATCRY,Cat Cry -//693,0,0,0,0,0,0,9,0,no,0,0,0,none,0, ALL_PARTYFLEE,Party Flee -//694,0,0,0,0,0,0,9,0,no,0,0,0,none,0, ALL_ANGEL_PROTECT,Angel's Protection -//695,0,0,0,0,0,0,9,0,no,0,0,0,none,0, ALL_DREAM_SUMMERNIGHT,Summer Night Dream -//696,0,0,0,0,0,0,9,0,no,0,0,0,none,0, NPC_CHANGEUNDEAD2,Change Undead +689,0,6,4,0,0x3,-1,10,1,yes,0,0x2,0,magic,0, CASH_BLESSING,Party Blessing +690,0,6,4,0,0x3,-1,10,1,yes,0,0x2,0,magic,0, CASH_INCAGI,Party Increase AGI +691,0,6,4,0,0x3,-1,5,1,yes,0,0x2,0,magic,0, CASH_ASSUMPTIO,Party Assumptio +//692,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0, ALL_CATCRY,Cat Cry +//693,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0, ALL_PARTYFLEE,Party Flee +//694,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0, ALL_ANGEL_PROTECT,Angel's Protection +//695,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0, ALL_DREAM_SUMMERNIGHT,Summer Night Dream +//696,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0, NPC_CHANGEUNDEAD2,Change Undead //697,9,6,4,0,0x1,0,1,1,yes,0,0x2,0,magic,0, ALL_REVERSEORCISH,Reverse Orcish -698,0,6,4,0,0x01,0,1,1,no,0,0,0,none,0, ALL_WEWISH,Christmas Carol -//699,0,0,0,0,0,0,9,0,no,0,0,0,none,0, ALL_SONKRAN,ALL_SONKRAN +698,0,6,4,0,0x01,0,1,1,no,0,0x2,0,none,0, ALL_WEWISH,Christmas Carol +//699,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0, ALL_SONKRAN,ALL_SONKRAN 1001,9,6,1,-1,0,0,1,1,no,0,0x1,0,weapon,0, KN_CHARGEATK,Charge Attack 1002,0,6,4,0,0x1,0,1,0,no,0,0x1,0,weapon,2, CR_SHRINK,Shrink diff --git a/src/map/battle.c b/src/map/battle.c index 3ed1aa33c..0f800b759 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3052,7 +3052,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t return (damage_lv)skill_attack(BF_MAGIC,src,src,target,NPC_MAGICALATTACK,sc->data[SC_MAGICALATTACK]->val1,tick,0); } - if(tsc && tsc->data[SC_KAAHI] && tsc->data[SC_KAAHI]->val4 == -1) + if(tsc && tsc->data[SC_KAAHI] && tsc->data[SC_KAAHI]->val4 == -1 && tstatus->hp < tstatus->max_hp) tsc->data[SC_KAAHI]->val4 = add_timer(tick + skill_get_time2(SL_KAAHI,tsc->data[SC_KAAHI]->val1), kaahi_heal_timer, target->id, SC_KAAHI); //Activate heal. wd = battle_calc_attack(BF_WEAPON, src, target, 0, 0, flag); diff --git a/src/map/skill.c b/src/map/skill.c index 5fd1fe54d..e214a7f55 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1677,15 +1677,11 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds //Spirit of Wizard blocks Kaite's reflection if( type == 2 && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_WIZARD ) - { //It should only consume once per skill casted. Val3 is the skill id and val4 is the ID of the damage src. + { //Consume one Fragment per hit of the casted skill. Val3 is the skill id and val4 is the ID of the damage src. //This should account for ground spells (and single target spells will be completed on castend_id) [Skotlex] - if (tsd && !(sc->data[SC_SPIRIT]->val3 == skillid && sc->data[SC_SPIRIT]->val4 == dsrc->id) ) - { //Check if you have stone to consume. - type = pc_search_inventory (tsd, 7321); - if (type >= 0) - pc_delitem(tsd, type, 1, 0); - } else - type = 0; + type = pc_search_inventory (tsd, 7321); + if (type >= 0) + pc_delitem(tsd, type, 1, 0); if (type >= 0) { dmg.damage = dmg.damage2 = 0; @@ -4258,7 +4254,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case RG_STEALCOIN: if(sd) { if(pc_steal_coin(sd,bl)) + { + dstmd->state.provoke_flag = src->id; + mob_target(dstmd, src, skill_get_range2(src,skillid,skilllv)); clif_skill_nodamage(src,bl,skillid,skilllv,1); + + } else clif_skill_fail(sd,skillid,0,0); } @@ -5373,7 +5374,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in sc_start(bl,SC_INCATKRATE,100,-50,skill_get_time2(skillid,skilllv)); break; case 5: // 2000HP heal, random teleported - status_heal(bl, 2000, 0, 0); + status_heal(src, 2000, 0, 0); if( !map_flag_vs(bl->m) ) unit_warp(bl, -1,-1,-1, 3); break; @@ -7539,15 +7540,9 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns ++count < SKILLUNITTIMER_INTERVAL/sg->interval && !status_isdead(bl) ); } break; - case WZ_STORMGUST: - if (tsc) - { //Reset hit counter when under new storm gust. - if (tsc->sg_id != sg->group_id) { - tsc->sg_id = sg->group_id; - tsc->sg_counter = 0; - } + case WZ_STORMGUST: //SG counter does not reset per stormgust. IE: One hit from a SG and two hits from another will freeze you. + if (tsc) tsc->sg_counter++; //SG hit counter. - } if (skill_attack(skill_get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0) <= 0 && tsc) tsc->sg_counter=0; //Attack absorbed. break; diff --git a/src/map/status.c b/src/map/status.c index aa639337e..f1315f23f 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1175,7 +1175,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int { if(!skill_num && !(status->mode&MD_BOSS) && tsc->data[SC_TRICKDEAD]) return 0; - if((skill_num == WZ_STORMGUST || skill_num == NJ_HYOUSYOURAKU) + if((skill_num == WZ_STORMGUST || skill_num == WZ_FROSTNOVA || skill_num == NJ_HYOUSYOURAKU) && tsc->data[SC_FREEZE]) return 0; if(skill_num == PR_LEXAETERNA && (tsc->data[SC_FREEZE] || (tsc->data[SC_STONE] && tsc->opt1 == OPT1_STONE))) |