public Projectile(Map map, int id, float x, float y, int collisionRadius, Unit owner, Target target, Spell originSpell, float moveSpeed, int projectileId, int flags = 0) : base(map, id, x, y, collisionRadius) { this.originSpell = originSpell; this.moveSpeed = moveSpeed; this.owner = owner; this.projectileId = projectileId; this.flags = flags; setTarget(target); if (!target.isSimpleTarget()) ((GameObject)target).incrementAttackerCount(); owner.incrementAttackerCount(); }
public CastSpellAns(Spell s, float x, float y, int futureProjNetId, int spellNetId) : base(PacketCmdS2C.PKT_S2C_CastSpellAns, s.getOwner().getNetId()) { Map m = s.getOwner().getMap(); buffer.Write((byte)0); buffer.Write((byte)0x66); buffer.Write((byte)0x00); // unk buffer.Write((int)s.getId()); // Spell hash, for example hash("EzrealMysticShot") buffer.Write((int)spellNetId); // Spell net ID buffer.Write((byte)0); // unk buffer.Write((float)1.0f); // unk buffer.Write((int)s.getOwner().getNetId()); buffer.Write((int)s.getOwner().getNetId()); buffer.Write((int)s.getOwner().getChampionHash()); buffer.Write((int)futureProjNetId); // The projectile ID that will be spawned buffer.Write((float)x); buffer.Write((float)m.getHeightAtLocation(x, y)); buffer.Write((float)y); buffer.Write((float)x); buffer.Write((float)m.getHeightAtLocation(x, y)); buffer.Write((float)y); buffer.Write((byte)0); // unk buffer.Write(s.getCastTime()); buffer.Write((float)0.0f); // unk buffer.Write((float)1.0f); // unk buffer.Write(s.getCooldown()); buffer.Write((float)0.0f); // unk buffer.Write((byte)0); // unk buffer.Write((byte)s.getSlot()); buffer.Write((float)s.getCost()); buffer.Write((float)s.getOwner().getX()); buffer.Write((float)s.getOwner().getZ()); buffer.Write((float)s.getOwner().getY()); buffer.Write((long)1); // unk }