internal void iOnCastSpell(NPCProto caster, Spell spell, Vob target) { if (OnCastSpell != null) { OnCastSpell(caster, spell, target); } }
private void _toContainer(Vob vob) { BitStream stream = Program.server.SendBitStream; stream.Reset(); stream.Write((byte)RakNet.DefaultMessageIDTypes.ID_USER_PACKET_ENUM); stream.Write((byte)NetworkID.ItemChangeContainer); stream.Write(this.ProtoItem.ID); stream.Write(vob.ID); Program.server.ServerInterface.Send(stream, PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, true); }
public virtual void PlayPlayerEffect(Player player, String effect, Vob targetVob, int effectLevel, int damage, int damagetype, bool isprojectile) { if (!created) { return; } if (effect == null || effect.Length == 0) { return; } if (targetVob.Map != this.Map) { throw new Exception("Target-Vob is not in the same map!"); } int targetID = 0; if (targetVob != null) { targetID = targetVob.ID; } if (!created) { return; } BitStream stream = Program.server.SendBitStream; stream.Reset(); stream.Write((byte)RakNet.DefaultMessageIDTypes.ID_USER_PACKET_ENUM); stream.Write((byte)NetworkID.PlayEffectMessage); stream.Write(vob.ID); stream.Write(effect); stream.Write(targetID); stream.Write(effectLevel); stream.Write(damage); stream.Write(damagetype); stream.Write(isprojectile); if (player == null) { Program.server.ServerInterface.Send(stream, PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, true); } else { using (RakNetGUID guid = player.proto.GUID) Program.server.ServerInterface.Send(stream, PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, guid, false); } }
public virtual void PlayEffect(String effect, Vob targetVob, int effectLevel, int damage, int damagetype, bool isprojectile) { PlayPlayerEffect(null, effect, targetVob, effectLevel, damage, damagetype, isprojectile); }
public float GetDistanceTo(Vob other) { return((other.Position - this.Position).Length); }