public bool Create(DbUser dbUser, DbFamilyMember obj) { m_dbObj = obj; Name = dbUser.Name; Level = dbUser.Level; return(true); }
public bool Create(Character pUser) { m_dbObj = new DbFamilyMember { FamilyIdentity = m_pFamily.Identity, Identity = pUser.Identity, JoinDate = (uint)UnixTimestamp.Timestamp(), Position = (byte)FamilyRank.MEMBER }; Save(); Name = pUser.Name; Level = pUser.Level; return(true); }
public bool AppendMember(Character pLeader, Character pTarget) { if (pTarget.Family != null) { pLeader.Send(ServerString.STR_FAMILY_TARGET_ALREADY_HAVE_FAMILY); return(false); } if (pTarget.Level < 50) { pLeader.Send(ServerString.STR_FAMILY_JOIN_LOW_LEVEL); return(false); } if (MembersCount >= 6) { pLeader.Send(ServerString.STR_FAMILY_FULL); return(false); } FamilyRank pPos = FamilyRank.MEMBER; if (pTarget.Mate != "None") { DbUser pUser = Database.Characters.SearchByName(pTarget.Mate); if (pUser != null) { DbFamilyMember dbSpouseMember = Database.FamilyMemberRepository.FetchByUser(pUser.Identity); if (dbSpouseMember != null && // has a clan dbSpouseMember.FamilyIdentity != Identity && // not this one dbSpouseMember.Position != 11) // is core member or leader { pLeader.Send(ServerString.STR_FAMILY_SPOUSE_CANTDO); return(false); } if (dbSpouseMember != null && // has a clan dbSpouseMember.FamilyIdentity == Identity && // is this clan dbSpouseMember.Position != 11) // is core member or leader { pPos = FamilyRank.SPOUSE; } else if (dbSpouseMember == null) { FamilyMember pSpouse = new FamilyMember(this); if (!pSpouse.Create(pUser, new DbFamilyMember { FamilyIdentity = Identity, Identity = pUser.Identity, JoinDate = (uint)UnixTimestamp.Timestamp(), Money = 0, Position = (byte)FamilyRank.SPOUSE }) || !Members.TryAdd(pSpouse.Identity, pSpouse)) { return(false); } Client pClientSpouse; if (pSpouse.IsOnline && ServerKernel.Players.TryGetValue(pSpouse.Identity, out pClientSpouse)) { pClientSpouse.Character.Family = this; pClientSpouse.Character.FamilyMember = pSpouse; pClientSpouse.Character.FamilyIdentity = Identity; pClientSpouse.Character.FamilyPosition = pSpouse.Position; pClientSpouse.Character.FamilyName = Name; pClientSpouse.Character.SetNames(); SendFamily(pClientSpouse.Character); SendRelation(pClientSpouse.Character); } } else // ??? { return(false); } } } FamilyMember pMember = new FamilyMember(this); if (!pMember.Create(pTarget)) { return(false); } pMember.Position = pPos; Members.TryAdd(pMember.Identity, pMember); pTarget.Family = this; pTarget.FamilyMember = pMember; pTarget.FamilyIdentity = Identity; pTarget.FamilyName = Name; pTarget.FamilyPosition = pMember.Position; pTarget.SetNames(); SendFamily(pTarget); SendRelation(pTarget); return(true); }