Implement mob and client melee push

New rules:
Combat:MeleePush turns melee push on/off
Combat:MeleePushChance is the chance that an NPC will be pushed
Clients are pushed every successful hit, need to verify or disprove this
This commit is contained in:
Michael Cook (mackal)
2015-04-30 19:36:21 -04:00
parent 8b4d601027
commit 06f4fd49ef
21 changed files with 257 additions and 178 deletions
+4 -2
View File
@@ -658,7 +658,9 @@ namespace RoF
OUT(type);
OUT(spellid);
OUT(damage);
eq->sequence = emu->sequence;
OUT(force)
OUT(meleepush_xy);
OUT(meleepush_z)
FINISH_ENCODE();
}
@@ -4389,7 +4391,7 @@ namespace RoF
IN(type);
IN(spellid);
IN(damage);
emu->sequence = eq->sequence;
IN(meleepush_xy);
FINISH_DIRECT_DECODE();
}
+4 -2
View File
@@ -729,7 +729,9 @@ namespace RoF2
OUT(type);
OUT(spellid);
OUT(damage);
eq->sequence = emu->sequence;
OUT(force)
OUT(meleepush_xy);
OUT(meleepush_z)
FINISH_ENCODE();
}
@@ -4538,7 +4540,7 @@ namespace RoF2
IN(type);
IN(spellid);
IN(damage);
emu->sequence = eq->sequence;
IN(meleepush_xy);
FINISH_DIRECT_DECODE();
}
+4 -3
View File
@@ -1484,9 +1484,10 @@ struct CombatDamage_Struct
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells
/* 05 */ uint32 spellid;
/* 09 */ int32 damage;
/* 13 */ float unknown11; // cd cc cc 3d
/* 17 */ float sequence; // see above notes in Action_Struct
/* 21 */ uint8 unknown19[9]; // was [9]
/* 13 */ float force; // cd cc cc 3d
/* 17 */ float meleepush_xy; // see above notes in Action_Struct
/* 21 */ float meleepush_z;
/* 25 */ uint8 unknown25[5]; // was [9]
/* 30 */
};
+4 -3
View File
@@ -1514,9 +1514,10 @@ struct CombatDamage_Struct
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells
/* 05 */ uint32 spellid;
/* 09 */ int32 damage;
/* 13 */ float unknown11; // cd cc cc 3d
/* 17 */ float sequence; // see above notes in Action_Struct
/* 21 */ uint8 unknown19[9]; // was [9]
/* 13 */ float force; // cd cc cc 3d
/* 17 */ float meleepush_xy; // see above notes in Action_Struct
/* 21 */ float meleepush_z;
/* 25 */ uint8 unknown25[5]; // was [9]
/* 30 */
};
+3 -1
View File
@@ -446,7 +446,9 @@ namespace SoD
OUT(type);
OUT(spellid);
OUT(damage);
eq->sequence = emu->sequence;
OUT(force)
OUT(meleepush_xy);
OUT(meleepush_z)
FINISH_ENCODE();
}
+4 -3
View File
@@ -1272,9 +1272,10 @@ struct CombatDamage_Struct
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells
/* 05 */ uint16 spellid;
/* 07 */ int32 damage;
/* 11 */ float unknown11; // cd cc cc 3d
/* 15 */ float sequence; // see above notes in Action_Struct
/* 19 */ uint8 unknown19[9]; // was [9]
/* 11 */ float force; // cd cc cc 3d
/* 15 */ float meleepush_xy; // see above notes in Action_Struct
/* 19 */ float meleepush_z;
/* 23 */ uint8 unknown23[5]; // was [9]
/* 28 */
};
+3 -1
View File
@@ -426,7 +426,9 @@ namespace SoF
OUT(type);
OUT(spellid);
OUT(damage);
eq->sequence = emu->sequence;
OUT(force)
OUT(meleepush_xy);
OUT(meleepush_z)
FINISH_ENCODE();
}
+4 -3
View File
@@ -1249,9 +1249,10 @@ struct CombatDamage_Struct
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells
/* 05 */ uint16 spellid;
/* 07 */ int32 damage;
/* 11 */ float unknown11; // cd cc cc 3d
/* 15 */ float sequence; // see above notes in Action_Struct
/* 19 */ uint8 unknown19[9]; // was [9]
/* 11 */ float force; // cd cc cc 3d
/* 15 */ float meleepush_xy; // see above notes in Action_Struct
/* 19 */ float meleepush_z;
/* 23 */ uint8 unknown23[5]; // was [9]
/* 28 */
};
+3 -3
View File
@@ -1101,9 +1101,9 @@ struct CombatDamage_Struct
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells
/* 05 */ uint16 spellid;
/* 07 */ uint32 damage;
/* 11 */ uint32 unknown11;
/* 15 */ uint32 sequence; // see above notes in Action_Struct
/* 19 */ uint32 unknown19;
/* 11 */ float force;
/* 15 */ float meleepush_xy; // see above notes in Action_Struct
/* 19 */ float meleepush_z;
/* 23 */
};
+4 -2
View File
@@ -581,7 +581,9 @@ namespace UF
OUT(type);
OUT(spellid);
OUT(damage);
eq->sequence = emu->sequence;
OUT(force)
OUT(meleepush_xy);
OUT(meleepush_z)
FINISH_ENCODE();
}
@@ -3356,7 +3358,7 @@ namespace UF
IN(type);
IN(spellid);
IN(damage);
emu->sequence = eq->sequence;
IN(meleepush_xy);
FINISH_DIRECT_DECODE();
}
+4 -3
View File
@@ -1330,9 +1330,10 @@ struct CombatDamage_Struct
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells
/* 05 */ uint16 spellid;
/* 07 */ int32 damage;
/* 11 */ float unknown11; // cd cc cc 3d
/* 15 */ float sequence; // see above notes in Action_Struct
/* 19 */ uint8 unknown19[9]; // was [9]
/* 11 */ float force; // cd cc cc 3d
/* 15 */ float meleepush_xy; // see above notes in Action_Struct
/* 19 */ float meleepush_z;
/* 23 */ uint8 unknown23[5]; // was [9]
/* 28 */
};