Relation code finished.

This commit is contained in:
Filip Maj 2016-12-18 10:07:06 -05:00
parent 7036ef363d
commit 4109f33b6e
3 changed files with 13 additions and 6 deletions

View File

@ -1,4 +1,5 @@
using FFXIVClassic.Common; using FFXIVClassic.Common;
using FFXIVClassic_World_Server.Actor.Group.Work;
using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups; using FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -10,14 +11,14 @@ namespace FFXIVClassic_World_Server.DataObjects.Group
{ {
class Relation : Group class Relation : Group
{ {
public uint charaHost, charaOther; public RelationWork work = new RelationWork();
public uint command; public uint charaOther;
public Relation(ulong groupIndex, uint host, uint other, uint command) : base (groupIndex) public Relation(ulong groupIndex, uint host, uint other, uint command) : base (groupIndex)
{ {
this.charaHost = host;
this.charaOther = other; this.charaOther = other;
this.command = command; work._globalTemp.host = ((ulong)host << 32) | (0xc17909);
work._globalTemp.variableCommand = command;
} }
public override int GetMemberCount() public override int GetMemberCount()
@ -33,7 +34,10 @@ namespace FFXIVClassic_World_Server.DataObjects.Group
public override List<GroupMember> BuildMemberList() public override List<GroupMember> BuildMemberList()
{ {
List<GroupMember> groupMembers = new List<GroupMember>(); List<GroupMember> groupMembers = new List<GroupMember>();
groupMembers.Add(new GroupMember(charaHost, -1, 0, false, Server.GetServer().GetSession(charaHost) != null, Server.GetServer().GetNameForId(charaHost)));
uint hostId = (uint)((work._globalTemp.host >> 32) & 0xFFFFFFFF);
groupMembers.Add(new GroupMember(hostId, -1, 0, false, Server.GetServer().GetSession(hostId) != null, Server.GetServer().GetNameForId(hostId)));
groupMembers.Add(new GroupMember(charaOther, -1, 0, false, Server.GetServer().GetSession(charaOther) != null, Server.GetServer().GetNameForId(charaOther))); groupMembers.Add(new GroupMember(charaOther, -1, 0, false, Server.GetServer().GetSession(charaOther) != null, Server.GetServer().GetNameForId(charaOther)));
return groupMembers; return groupMembers;
} }

View File

@ -18,7 +18,7 @@ namespace FFXIVClassic_World_Server
mCurrentWorldGroupsReference = worldGroupList; mCurrentWorldGroupsReference = worldGroupList;
} }
public void CreateRelationGroup(uint hostCharaId, uint otherCharaId, uint command) public Relation CreateRelationGroup(uint hostCharaId, uint otherCharaId, uint command)
{ {
lock (mGroupLockReference) lock (mGroupLockReference)
{ {
@ -27,6 +27,7 @@ namespace FFXIVClassic_World_Server
mRelationList.Add(groupIndex, relation); mRelationList.Add(groupIndex, relation);
mCurrentWorldGroupsReference.Add(groupIndex, relation); mCurrentWorldGroupsReference.Add(groupIndex, relation);
mWorldManager.IncrementGroupIndex(); mWorldManager.IncrementGroupIndex();
return relation;
} }
} }

View File

@ -215,6 +215,8 @@ namespace FFXIVClassic_World_Server
List<Linkshell> linkshells = mLinkshellManager.GetPlayerLinkshellMembership(session.sessionId); List<Linkshell> linkshells = mLinkshellManager.GetPlayerLinkshellMembership(session.sessionId);
foreach (Linkshell ls in linkshells) foreach (Linkshell ls in linkshells)
ls.SendGroupPackets(session); ls.SendGroupPackets(session);
mRelationGroupManager.CreateRelationGroup(157, session.sessionId, 0x2711).SendGroupPackets(session);
} }
private void SendMotD(Session session) private void SendMotD(Session session)