mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-07-24 19:38:26 +02:00
Party invite done, as well as chat. Fixed double output of say packets. Note: Still need to implement name version of invite!!!
This commit is contained in:
parent
5af1f6dba6
commit
5d494255ad
16 changed files with 231 additions and 23 deletions
|
@ -286,7 +286,7 @@
|
|||
<Compile Include="packets\WorldPackets\Send\Group\CreateLinkshellPacket.cs" />
|
||||
<Compile Include="packets\WorldPackets\Send\Group\DeleteLinkshellPacket.cs" />
|
||||
<Compile Include="packets\WorldPackets\Send\Group\ModifyLinkshellPacket.cs" />
|
||||
<Compile Include="packets\WorldPackets\Send\Group\PartyInviteResultPacket.cs" />
|
||||
<Compile Include="packets\WorldPackets\Send\Group\GroupInviteResultPacket.cs" />
|
||||
<Compile Include="packets\WorldPackets\Send\Group\PartyInvitePacket.cs" />
|
||||
<Compile Include="packets\WorldPackets\Send\Group\PartyLeavePacket.cs" />
|
||||
<Compile Include="packets\WorldPackets\Send\Group\PartyModifyPacket.cs" />
|
||||
|
|
|
@ -111,7 +111,8 @@ namespace FFXIVClassic_Map_Server
|
|||
return; ;
|
||||
}
|
||||
|
||||
session.GetActor().BroadcastPacket(SendMessagePacket.BuildPacket(session.id, session.id, chatMessage.logType, session.GetActor().customDisplayName, chatMessage.message), false);
|
||||
if (chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SAY || chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SHOUT)
|
||||
session.GetActor().BroadcastPacket(SendMessagePacket.BuildPacket(session.id, session.id, chatMessage.logType, session.GetActor().customDisplayName, chatMessage.message), false);
|
||||
|
||||
break;
|
||||
//Langauge Code (Client safe to send packets to now)
|
||||
|
|
|
@ -748,6 +748,23 @@ namespace FFXIVClassic_Map_Server
|
|||
currentPlayerParties.Remove(party.groupIndex);
|
||||
}
|
||||
|
||||
public void CreateInvitePartyGroup(Player player, string name)
|
||||
{
|
||||
SubPacket invitePacket = PartyInvitePacket.BuildPacket(player.playerSession, name);
|
||||
player.QueuePacket(invitePacket);
|
||||
}
|
||||
public void CreateInvitePartyGroup(Player player, uint actorId)
|
||||
{
|
||||
SubPacket invitePacket = PartyInvitePacket.BuildPacket(player.playerSession, actorId);
|
||||
player.QueuePacket(invitePacket);
|
||||
}
|
||||
|
||||
public void GroupInviteResult(Player player, uint groupType, uint result)
|
||||
{
|
||||
SubPacket groupInviteResultPacket = GroupInviteResultPacket.BuildPacket(player.playerSession, groupType, result);
|
||||
player.QueuePacket(groupInviteResultPacket);
|
||||
}
|
||||
|
||||
public Player GetPCInWorld(string name)
|
||||
{
|
||||
foreach (Zone zone in zoneList.Values)
|
||||
|
|
|
@ -608,14 +608,15 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||
|
||||
public void BroadcastPacket(SubPacket packet, bool sendToSelf)
|
||||
{
|
||||
if (sendToSelf)
|
||||
QueuePacket(packet);
|
||||
|
||||
foreach (Actor a in playerSession.actorInstanceList)
|
||||
{
|
||||
if (a is Player)
|
||||
{
|
||||
Player p = (Player)a;
|
||||
Player p = (Player)a;
|
||||
|
||||
if (p.Equals(this) && !sendToSelf)
|
||||
continue;
|
||||
|
||||
SubPacket clonedPacket = new SubPacket(packet, a.actorId);
|
||||
p.QueuePacket(clonedPacket);
|
||||
}
|
||||
|
|
|
@ -9,18 +9,19 @@ using System.Threading.Tasks;
|
|||
|
||||
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
||||
{
|
||||
class PartyInviteResultPacket
|
||||
class GroupInviteResultPacket
|
||||
{
|
||||
public const ushort OPCODE = 0x1023;
|
||||
public const uint PACKET_SIZE = 0x28;
|
||||
|
||||
public static SubPacket BuildPacket(Session session, uint result)
|
||||
public static SubPacket BuildPacket(Session session, uint groupType, uint result)
|
||||
{
|
||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||
using (MemoryStream mem = new MemoryStream(data))
|
||||
{
|
||||
using (BinaryWriter binWriter = new BinaryWriter(mem))
|
||||
{
|
||||
binWriter.Write((UInt32)groupType);
|
||||
binWriter.Write((UInt32)result);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue