public static void HandleSynAdvertisingOpt(Character pUser, MsgSynRecruitAdvertisingOpt pMsg) { switch (pMsg.Action) { case 1: // join syndicate { ServerKernel.SyndicateRecruitment.JoinSyndicate(pUser, pMsg.EntityIdentity); break; } case 2: // start or edit recruiting { if (pUser.Syndicate == null) { return; } if (ServerKernel.SyndicateRecruitment.IsAdvertising(pUser.SyndicateIdentity)) { ServerKernel.SyndicateRecruitment.SendEditScreen(pUser); return; } MsgSynRecuitAdvertising pNewMsg = new MsgSynRecuitAdvertising(); pUser.Send(pNewMsg); break; } default: { ServerKernel.Log.SaveLog("MsgSynRecruitAdvertisingOpt::" + pMsg.Action); break; } } }
public void SendEditScreen(Character pSender) { if (pSender == null || pSender.Syndicate == null || pSender.SyndicateRank != SyndicateRank.GUILD_LEADER) { return; } DbSyndicateAdvertising dbSyn; if (!m_pSyndicateAdvertisings.TryGetValue(pSender.SyndicateIdentity, out dbSyn)) { return; } MsgSynRecuitAdvertising pMsg = new MsgSynRecuitAdvertising { IsAutoRecruit = dbSyn.AutoRecruit > 0, Amount = dbSyn.Donation, Description = dbSyn.Message, GenderForbid = 0, Identity = dbSyn.SyndicateIdentity, LevelRequirement = (ushort)dbSyn.RequiredLevel, ProfessionForbid = (ushort)dbSyn.RequiredProfession, RebornRequirement = (ushort)dbSyn.RequiredMetempsychosis }; pSender.Send(pMsg); }
public static void HandleSynRecruitAdvertising(Character pUser, MsgSynRecuitAdvertising pMsg) { if (pUser.Syndicate == null || pUser.SyndicateRank != SyndicateRank.GUILD_LEADER) { return; } ServerKernel.SyndicateRecruitment.AddSyndicate(pUser, pMsg); }
public void AddSyndicate(Character pSender, MsgSynRecuitAdvertising pMsg) { if (pSender == null || pSender.Syndicate == null) { return; } string szMessage = pMsg.Description; if (pSender.SyndicateRank != SyndicateRank.GUILD_LEADER) { return; } if (szMessage.Length > 255) { szMessage = szMessage.Substring(0, 255); } if (m_pSyndicateAdvertisings.Values.FirstOrDefault(x => x.SyndicateIdentity == pSender.SyndicateIdentity) != null) { EditSyndicate(pSender, pMsg); return; } if (pMsg.LevelRequirement <= 0) { pMsg.LevelRequirement = 1; } if (pSender.Syndicate.SilverDonation < pMsg.Amount) { pSender.Send(ServerString.STR_SYNRECRUIT_NOT_ENOUGH_MONEY); return; } if (pMsg.Amount < _MIN_MONEY_AMOUNT) { pSender.Send(ServerString.STR_SYNRECRUIT_NOT_ENOUGH_DONATION); return; } pSender.Syndicate.ChangeFunds((int)pMsg.Amount * -1); DbSyndicateAdvertising dbSyn = new DbSyndicateAdvertising { AutoRecruit = (byte)(pMsg.IsAutoRecruit ? 1 : 0), Donation = (uint)pMsg.Amount, Message = szMessage, RequiredLevel = pMsg.LevelRequirement, RequiredMetempsychosis = pMsg.RebornRequirement, RequiredProfession = pMsg.ProfessionForbid, SyndicateIdentity = pSender.SyndicateIdentity, SyndicateName = pSender.SyndicateName, Timestamp = (uint)UnixTimestamp.Timestamp() }; if (m_pRepo.SaveOrUpdate(dbSyn)) { m_pSyndicateAdvertisings.TryAdd(dbSyn.SyndicateIdentity, dbSyn); } else { pSender.Send("Oops! Something went wrong."); } }