|
@@ -16037,7 +16037,7 @@ int skill_autospell(struct map_session_data *sd, uint16 skill_id)
|
|
if(skill_id==MG_NAPALMBEAT) maxlv=3;
|
|
if(skill_id==MG_NAPALMBEAT) maxlv=3;
|
|
else if(skill_id==MG_COLDBOLT || skill_id==MG_FIREBOLT || skill_id==MG_LIGHTNINGBOLT){
|
|
else if(skill_id==MG_COLDBOLT || skill_id==MG_FIREBOLT || skill_id==MG_LIGHTNINGBOLT){
|
|
if (sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_SAGE)
|
|
if (sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_SAGE)
|
|
- maxlv =10; //Soul Linker bonus. [Skotlex]
|
|
|
|
|
|
+ maxlv = 10; //Soul Linker bonus. [Skotlex]
|
|
else if(skill_lv==2) maxlv=1;
|
|
else if(skill_lv==2) maxlv=1;
|
|
else if(skill_lv==3) maxlv=2;
|
|
else if(skill_lv==3) maxlv=2;
|
|
else if(skill_lv>=4) maxlv=3;
|
|
else if(skill_lv>=4) maxlv=3;
|
|
@@ -17817,16 +17817,21 @@ void skill_unit_move_unit_group(struct skill_unit_group *group, int16 m, int16 d
|
|
switch(m_flag[i]) {
|
|
switch(m_flag[i]) {
|
|
case 0:
|
|
case 0:
|
|
//Cell moves independently, safely move it.
|
|
//Cell moves independently, safely move it.
|
|
|
|
+ map_foreachinmovearea(clif_outsight, &unit1->bl, AREA_SIZE, dx, dy, BL_PC, &unit1->bl);
|
|
map_moveblock(&unit1->bl, unit1->bl.x+dx, unit1->bl.y+dy, tick);
|
|
map_moveblock(&unit1->bl, unit1->bl.x+dx, unit1->bl.y+dy, tick);
|
|
break;
|
|
break;
|
|
case 1:
|
|
case 1:
|
|
//Cell moves unto another cell, look for a replacement cell that won't collide
|
|
//Cell moves unto another cell, look for a replacement cell that won't collide
|
|
//and has no cell moving into it (flag == 2)
|
|
//and has no cell moving into it (flag == 2)
|
|
for(; j < group->unit_count; j++) {
|
|
for(; j < group->unit_count; j++) {
|
|
|
|
+ int dx2, dy2;
|
|
if(m_flag[j] != 2 || !group->unit[j].alive)
|
|
if(m_flag[j] != 2 || !group->unit[j].alive)
|
|
continue;
|
|
continue;
|
|
//Move to where this cell would had moved.
|
|
//Move to where this cell would had moved.
|
|
unit2 = &group->unit[j];
|
|
unit2 = &group->unit[j];
|
|
|
|
+ dx2 = unit2->bl.x + dx - unit1->bl.x;
|
|
|
|
+ dy2 = unit2->bl.y + dy - unit1->bl.y;
|
|
|
|
+ map_foreachinmovearea(clif_outsight, &unit1->bl, AREA_SIZE, dx2, dy2, BL_PC, &unit1->bl);
|
|
map_moveblock(&unit1->bl, unit2->bl.x+dx, unit2->bl.y+dy, tick);
|
|
map_moveblock(&unit1->bl, unit2->bl.x+dx, unit2->bl.y+dy, tick);
|
|
j++; //Skip this cell as we have used it.
|
|
j++; //Skip this cell as we have used it.
|
|
break;
|
|
break;
|