Example #1
0
        public virtual void PostUpdate(DateTime tick, List <SubPacket> packets = null)
        {
            if (updateFlags != ActorUpdateFlags.None)
            {
                packets = packets ?? new List <SubPacket>();
                if ((updateFlags & ActorUpdateFlags.Position) != 0)
                {
                    if (positionUpdates != null && positionUpdates.Count > 0)
                    {
                        var pos = positionUpdates[0];
                        if (pos != null)
                        {
                            oldPositionX = positionX;
                            oldPositionY = positionY;
                            oldPositionZ = positionZ;
                            oldRotation  = rotation;

                            positionX = pos.X;
                            positionY = pos.Y;
                            positionZ = pos.Z;

                            zone.UpdateActorPosition(this);

                            //Program.Server.GetInstance().mLuaEngine.OnPath(actor, position, positionUpdates)
                        }
                        positionUpdates.Remove(pos);
                    }
                    packets.Add(CreatePositionUpdatePacket());
                }

                if ((updateFlags & ActorUpdateFlags.Speed) != 0)
                {
                    packets.Add(SetActorSpeedPacket.BuildPacket(actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]));
                }

                if ((updateFlags & ActorUpdateFlags.Name) != 0)
                {
                    packets.Add(SetActorNamePacket.BuildPacket(actorId, displayNameId, customDisplayName));
                }

                if ((updateFlags & ActorUpdateFlags.State) != 0)
                {
                    packets.Add(SetActorStatePacket.BuildPacket(actorId, currentMainState, 0x3B));
                }

                if ((updateFlags & ActorUpdateFlags.SubState) != 0)
                {
                    packets.Add(SetActorSubStatePacket.BuildPacket(actorId, currentSubState));
                }

                updateFlags = ActorUpdateFlags.None;
            }
            zone.BroadcastPacketsAroundActor(this, packets);
        }
Example #2
0
 public SubPacket CreateNamePacket()
 {
     return(SetActorNamePacket.BuildPacket(actorId, displayNameId, displayNameId == 0xFFFFFFFF | displayNameId == 0x0 ? customDisplayName : ""));
 }
Example #3
0
 public SubPacket createNamePacket(uint playerActorId)
 {
     return(SetActorNamePacket.buildPacket(actorId, playerActorId, displayNameId, displayNameId == 0xFFFFFFFF | displayNameId == 0x0 ? customDisplayName : ""));
 }