mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-05-20 08:26:59 -04:00
Added substate modifications to characters.
This commit is contained in:
@@ -169,7 +169,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
|
||||
public SubPacket CreateIdleAnimationPacket()
|
||||
{
|
||||
return SetActorSubStatPacket.BuildPacket(actorId, 0, 0, 0, 0, 0, 0, animationId);
|
||||
return SetActorSubStatePacket.BuildPacket(actorId, 0, 0, 0, 0, 0, 0, animationId);
|
||||
}
|
||||
|
||||
public void SetQuestGraphic(Player player, int graphicNum)
|
||||
@@ -221,8 +221,8 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
|
||||
public void SendChant(int left, int right)
|
||||
{
|
||||
SetActorSubStatPacket.BuildPacket(actorId, 0, left, right, 0, 0, 0, 0).DebugPrintSubPacket();
|
||||
zone.BroadcastPacketAroundActor(this, SetActorSubStatPacket.BuildPacket(actorId, 0, left, right, 0, 0, 0, 0));
|
||||
SetActorSubStatePacket.BuildPacket(actorId, 0, left, right, 0, 0, 0, 0).DebugPrintSubPacket();
|
||||
zone.BroadcastPacketAroundActor(this, SetActorSubStatePacket.BuildPacket(actorId, 0, left, right, 0, 0, 0, 0));
|
||||
}
|
||||
|
||||
public void DoBattleAction(ushort commandId, uint animationId)
|
||||
@@ -370,7 +370,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
|
||||
if ((updateFlags & ActorUpdateFlags.State) != 0)
|
||||
{
|
||||
packets.Add(SetActorStatePacket.BuildPacket(actorId, currentMainState, currentSubState));
|
||||
packets.Add(SetActorStatePacket.BuildPacket(actorId, currentMainState, 0x0));
|
||||
packets.Add(BattleActionX00Packet.BuildPacket(actorId, 0x72000062, 0));
|
||||
packets.Add(BattleActionX01Packet.BuildPacket(actorId, 0x7C000062, 21001, new BattleAction(actorId, 0, 1)));
|
||||
|
||||
@@ -378,6 +378,16 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
//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(BattleActionX00Packet.BuildPacket(actorId, 0x72000062, 0));
|
||||
packets.Add(BattleActionX01Packet.BuildPacket(actorId, 0x7C000062, 21001, new BattleAction(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();
|
||||
|
56
FFXIVClassic Map Server/actors/chara/SubState.cs
Normal file
56
FFXIVClassic Map Server/actors/chara/SubState.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace FFXIVClassic_Map_Server.actors.chara
|
||||
{
|
||||
class SubState
|
||||
{
|
||||
public byte breakage = 0;
|
||||
public byte chantId = 0;
|
||||
public byte guard = 0;
|
||||
public byte waste = 0;
|
||||
public byte mode = 0;
|
||||
public ushort motionPack = 0;
|
||||
|
||||
public void toggleBreak(int index, bool toggle)
|
||||
{
|
||||
if (index > 7 || index < 0)
|
||||
return;
|
||||
|
||||
if (toggle)
|
||||
breakage = (byte)(breakage | (1 << index));
|
||||
else
|
||||
breakage = (byte)(breakage & ~(1 << index));
|
||||
}
|
||||
|
||||
public void setChant(byte chant) {
|
||||
chantId = chant;
|
||||
}
|
||||
|
||||
public void setGuard(byte guard)
|
||||
{
|
||||
if (guard >= 0 && guard <= 3)
|
||||
this.guard = guard;
|
||||
}
|
||||
|
||||
public void setWaste(byte waste)
|
||||
{
|
||||
if (waste >= 0 && waste <= 3)
|
||||
this.waste = waste;
|
||||
}
|
||||
|
||||
public void setMode(byte bitfield)
|
||||
{
|
||||
mode = bitfield;
|
||||
}
|
||||
|
||||
public void setMotionPack(ushort mp)
|
||||
{
|
||||
motionPack = mp;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user