public override void PostUpdate(DateTime tick, List <SubPacket> packets = null) { if (updateFlags != ActorUpdateFlags.None) { packets = packets ?? new List <SubPacket>(); if ((updateFlags & ActorUpdateFlags.Appearance) != 0) { packets.Add(new SetActorAppearancePacket(modelId, appearanceIds).BuildPacket(actorId)); } if ((updateFlags & ActorUpdateFlags.State) != 0) { packets.Add(SetActorStatePacket.BuildPacket(actorId, currentMainState, 0x0)); packets.Add(CommandResultX00Packet.BuildPacket(actorId, 0x72000062, 0)); packets.Add(CommandResultX01Packet.BuildPacket(actorId, 0x7C000062, 21001, new CommandResult(actorId, 0, 1))); updateFlags &= ~ActorUpdateFlags.State; //DoBattleAction(21001, 0x7C000062, new BattleAction(this.actorId, 0, 1, 0, 0, 1)); //Attack Mode } if ((updateFlags & ActorUpdateFlags.SubState) != 0) { packets.Add(SetActorSubStatePacket.BuildPacket(actorId, currentSubState)); packets.Add(CommandResultX00Packet.BuildPacket(actorId, 0x72000062, 0)); packets.Add(CommandResultX01Packet.BuildPacket(actorId, 0x7C000062, 21001, new CommandResult(actorId, 0, 1))); updateFlags &= ~ActorUpdateFlags.SubState; //DoBattleAction(21001, 0x7C000062, new BattleAction(this.actorId, 0, 1, 0, 0, 1)); //Attack Mode } if ((updateFlags & ActorUpdateFlags.Status) != 0) { List <SubPacket> statusPackets = statusEffects.GetStatusPackets(); packets.AddRange(statusPackets); statusPackets.Clear(); updateFlags &= ~ActorUpdateFlags.Status; } if ((updateFlags & ActorUpdateFlags.StatusTime) != 0) { packets.AddRange(statusEffects.GetStatusTimerPackets()); statusEffects.ResetPropPacketUtil(); updateFlags &= ~ActorUpdateFlags.StatusTime; } if ((updateFlags & ActorUpdateFlags.HpTpMp) != 0) { var propPacketUtil = new ActorPropertyPacketUtil("charaWork/stateAtQuicklyForAll", this); propPacketUtil.AddProperty("charaWork.parameterSave.hp[0]"); propPacketUtil.AddProperty("charaWork.parameterSave.hpMax[0]"); propPacketUtil.AddProperty("charaWork.parameterSave.mp"); propPacketUtil.AddProperty("charaWork.parameterSave.mpMax"); propPacketUtil.AddProperty("charaWork.parameterTemp.tp"); packets.AddRange(propPacketUtil.Done()); } base.PostUpdate(tick, packets); } }
public void changeState(ushort newState) { currentMainState = newState; SubPacket changeStatePacket = SetActorStatePacket.buildPacket(actorId, actorId, newState, currentSubState); SubPacket battleActionPacket = BattleAction1Packet.buildPacket(actorId, actorId); zone.broadcastPacketAroundActor(this, changeStatePacket); zone.broadcastPacketAroundActor(this, battleActionPacket); }
public void ChangeState(ushort newState) { currentMainState = newState; SubPacket ChangeStatePacket = SetActorStatePacket.BuildPacket(actorId, newState, currentSubState); SubPacket battleActionPacket = BattleActionX01Packet.BuildPacket(actorId, actorId, actorId, 0x72000062, 1, 0, 0x05209, 0, 0); zone.BroadcastPacketAroundActor(this, ChangeStatePacket); zone.BroadcastPacketAroundActor(this, battleActionPacket); }
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); }
public SubPacket CreateStatePacket() { return(SetActorStatePacket.BuildPacket(actorId, currentMainState, 0)); }
public SubPacket createStatePacket(uint playerActorID) { return(SetActorStatePacket.buildPacket(actorId, playerActorID, currentMainState, currentSubState)); }