public static COutPacket UserShootAttack(Character c, MapleAttack a, byte nSLV, byte nLevel) { var p = new COutPacket(SendOps.LP_UserShootAttack); p.Encode4(c.dwId); a.EncodeAttackInfo(c, p, nSLV, nLevel, SendOps.LP_UserShootAttack); return(p); }
public static COutPacket UserBodyAttack(int cid, MapleAttack a, byte nSLV, byte nLevel) { var p = new COutPacket(SendOps.LP_UserBodyAttack); p.Encode4(cid); a.EncodeAttackInfo(null, p, nSLV, nLevel, SendOps.LP_UserBodyAttack); return(p); }
/// <summary> /// Internal handler for creating the affected area /// </summary> public static void CastGrenadeSkill(Character c, MapleAttack atkInfo) { // no validation because it has already occurred var skill = c.Skills.Get(atkInfo.nSkillID); var offset = new TagPoint(atkInfo.nGrenadePtX, atkInfo.nGrenadePtY); c.Skills.CastAffectedAreaSkill (atkInfo.nSkillID, skill.nSLV, (short)skill.BuffTime, offset, skill.Template.LT, skill.Template.RB); }