diff options
-rw-r--r-- | Changelog-Trunk.txt | 5 | ||||
-rw-r--r-- | db/skill_db.txt | 2 | ||||
-rw-r--r-- | db/skill_unit_db.txt | 2 | ||||
-rw-r--r-- | src/map/skill.c | 69 | ||||
-rw-r--r-- | src/map/skill.h | 2 |
5 files changed, 50 insertions, 30 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 92f6629b6..3da653e26 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,11 @@ 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.
2006/07/12
+ * Fixed NJ_TATAMIGAESHI to use ground-tiles rather than "for each in path"
+ calls. The skill should be working correctly now, except for the fact that
+ the correct "unit id" is missing (this is what would give the ground tile
+ it's correct display). Temporarily it is using 0xba until the correct value
+ is found. [Skotlex]
* Added back the undead check to turn undead/resurrection to prevent
damaging non-undead targets, removed it from the battle damage section.
[Skotlex]
diff --git a/db/skill_db.txt b/db/skill_db.txt index 715d11864..b79a9f4a2 100644 --- a/db/skill_db.txt +++ b/db/skill_db.txt @@ -548,7 +548,7 @@ 524,9,8,1,-1,0,0,5,3,no,0,0,0,weapon,0 //NJ_KUNAI#NJ_KUNAI#
525,9,8,1,-1,2,2,5,-1:-2:-3:-4:-5,no,0,0,0,weapon,0 //NJ_HUUMA#NJ_HUUMA#
526,9,6,1,0,0,0,10,1,no,0,0,0,misc,0 //NJ_ZENYNAGE#NJ_ZENYNAGE#
-527,1:2:2:3:3,6,4,3,0,0,5,1,no,0,0,0,weapon,3 //NJ_TATAMIGAESHI#NJ_TATAMIGAESHI#
+527,0,6,4,3,0,0,5,1,no,0,0,0,weapon,3 //NJ_TATAMIGAESHI#NJ_TATAMIGAESHI#
528,1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0 //NJ_KASUMIKIRI#NJ_KASUMIKIRI#
529,5:6:7:8:9,6,2,0,1,0,5,1,no,0,0,0,none,0 //NJ_SHADOWJUMP#NJ_SHADOWJUMP#
530,-1,6,1,-1,0,0,5,1,no,0,0,0,weapon,0 //NJ_KIRIKAGE#NJ_KIRIKAGE#
diff --git a/db/skill_unit_db.txt b/db/skill_unit_db.txt index 889ea0967..1df96b18f 100644 --- a/db/skill_unit_db.txt +++ b/db/skill_unit_db.txt @@ -87,7 +87,7 @@ 430,0x86, , 0, 1, 500,enemy, 0x000 //SG_STAR_WARM
484,0xb8, , 2, 0,1000,enemy, 0x808 //HW_GRAVITATION
488,0xb9, , 3, 0, -1,all, 0x200 //CG_HERMODE
-527,0xbc, , -1, 1,2000,enemy, 0x000 //NJ_TATAMIGAESHI
+527,0xba, , -1, 0,2000,enemy, 0x000 //NJ_TATAMIGAESHI
535,0xbd, , 2, 0,2000,enemy, 0x000 //NJ_KAENSIN
536,0x86, , 2, 0, 300,enemy, 0x000 //NJ_BAKUENRYU
541,0x86,,0,2:2:3:3:4,1000,enemy,0x000 //NJ_RAIGEKISAI
diff --git a/src/map/skill.c b/src/map/skill.c index 34423071a..3de50dc0f 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3654,25 +3654,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in clif_skill_nodamage(src,bl,skillid,skilllv, sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); break; - case NJ_TATAMIGAESHI: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); - - i = skill_get_range(skillid, skilllv); //use i for range. - type = skill_get_splash(skillid, skilllv); //reuse type for splash - map_foreachinpath(skill_attack_area,src->m, - src->x,src->y,src->x-i,src->y,type,BL_CHAR, - BF_WEAPON,src,src,skillid,skilllv,tick,flag,BCT_ENEMY); - map_foreachinpath(skill_attack_area,src->m, - src->x,src->y,src->x+i,src->y,type,BL_CHAR, - BF_WEAPON,src,src,skillid,skilllv,tick,flag,BCT_ENEMY); - map_foreachinpath(skill_attack_area,src->m, - src->x,src->y,src->x,src->y-i,type,BL_CHAR, - BF_WEAPON,src,src,skillid,skilllv,tick,flag,BCT_ENEMY); - map_foreachinpath(skill_attack_area,src->m, - src->x,src->y,src->x,src->y+i,type,BL_CHAR, - BF_WEAPON,src,src,skillid,skilllv,tick,flag,BCT_ENEMY); - break; case CG_MOONLIT: /* 月明りの泉に落ちる花びら */ clif_skill_nodamage(src,bl,skillid,skilllv,1); @@ -6025,7 +6006,10 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s sc_start4(src,type,100,skilllv,0,(int)sg,BCT_SELF,skill_get_time(skillid,skilllv)); } break; - + case NJ_TATAMIGAESHI: + sc_start(src,type,100,skilllv,skill_get_time(skillid,skilllv)); + skill_unitsetting(src,skillid,skilllv,src->x,src->y,0); + break; default: ShowWarning("skill_castend_pos2: Unknown skill used:%d\n",skillid); return 1; @@ -6945,8 +6929,9 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns break; } + case UNT_TATAMIGAESHI: case UNT_DEMONSTRATION: - skill_attack(BF_WEAPON, ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0); + skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); break; case UNT_GOSPEL: @@ -7051,12 +7036,11 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns break; case UNT_KAENSIN: - { skill_attack(BF_MAGIC,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); src->val2--; if (--src->val2<=0) skill_delunit(src); - } + break; } if (sg->state.magic_power && sc && sc->data[SC_MAGICPOWER].timer == -1) @@ -10511,11 +10495,42 @@ void skill_init_unit_layout (void) } case NJ_TATAMIGAESHI: { - static const int dx[] = {-1, 0, 0, 1}; - static const int dy[] = { 0,-1, 1, 0}; + //Level 1 (count 4, cross of 3x3) + static const int dx1[] = {-1, 1, 0, 0}; + static const int dy1[] = { 0, 0,-1, 1}; + //Level 2-3 (count 8, cross of 5x5) + static const int dx2[] = {-2,-1, 1, 2, 0, 0, 0, 0}; + static const int dy2[] = { 0, 0, 0, 0,-2,-1, 1, 2}; + //Level 4-5 (count 12, cross of 7x7 + static const int dx3[] = {-3,-2,-1, 1, 2, 3, 0, 0, 0, 0, 0, 0}; + static const int dy3[] = { 0, 0, 0, 0, 0, 0,-3,-2,-1, 1, 2, 3}; + //lv1 + j = 0; skill_unit_layout[pos].count = 4; - memcpy(skill_unit_layout[pos].dx,dx,sizeof(dx)); - memcpy(skill_unit_layout[pos].dy,dy,sizeof(dy)); + memcpy(skill_unit_layout[pos].dx,dx1,sizeof(dx1)); + memcpy(skill_unit_layout[pos].dy,dy1,sizeof(dy1)); + skill_db[i].unit_layout_type[j] = pos; + //lv2/3 + j++; + pos++; + skill_unit_layout[pos].count = 8; + memcpy(skill_unit_layout[pos].dx,dx2,sizeof(dx2)); + memcpy(skill_unit_layout[pos].dy,dy2,sizeof(dy2)); + skill_db[i].unit_layout_type[j] = pos; + skill_db[i].unit_layout_type[++j] = pos; + //lv4/5 + j++; + pos++; + skill_unit_layout[pos].count = 12; + memcpy(skill_unit_layout[pos].dx,dx3,sizeof(dx3)); + memcpy(skill_unit_layout[pos].dy,dy3,sizeof(dy3)); + skill_db[i].unit_layout_type[j] = pos; + skill_db[i].unit_layout_type[++j] = pos; + //Fill in the rest using lv 5. + for (;j<MAX_SKILL_LEVEL;j++) + skill_db[i].unit_layout_type[j] = pos; + //Skip, this way the check below will fail and continue to the next skill. + pos++; break; } default: diff --git a/src/map/skill.h b/src/map/skill.h index f6494ead5..accc6dfdf 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -935,7 +935,7 @@ enum { UNT_SPIDERWEB,
UNT_GRAVITATION,
UNT_HERMODE,
- //0xba
+ UNT_TATAMIGAESHI, //0xba //Temporary setting until correct value is found.
UNT_SUITON = 0xbb,
UNT_DESPERADO, //NJ_TATAMIGAESHI is 0xbc as well?
UNT_KAENSIN,
|