public static void HandlePigeon(Character pUser, MsgPigeon pMsg) { switch (pMsg.Type) { case 1: // next broadcasts list case 2: // next broadcast list (my) { ServerKernel.Broadcast.RequestNextPage(pUser, pMsg); break; } case 3: // send { var list = pMsg.ToList(); if (list.Count <= 0) { return; } var szMessage = list[0]; ServerKernel.Broadcast.Push(pUser, szMessage, true); ServerKernel.Broadcast.RequestNextPage(pUser, pMsg); break; } case 4: // urgent 15 cps { ServerKernel.Broadcast.Addition(pUser, pMsg.DwParam, 15); ServerKernel.Broadcast.RequestNextPage(pUser, pMsg); break; } case 5: // urgent 5 cps { ServerKernel.Broadcast.Addition(pUser, pMsg.DwParam, 5); ServerKernel.Broadcast.RequestNextPage(pUser, pMsg); break; } } }
public void Request5Last(Character pRole, MsgPigeon pMsg) { var pNewMsg = new MsgPigeonQuery { Param = pMsg.DwParam }; ushort wTempPos = 0; lock (m_pLock) { foreach (var bc in m_lNext) { if (pNewMsg.Total >= 5) { break; } pNewMsg.AddBroadcast(bc.Identity, wTempPos++, bc.OwnerIdentity, bc.OwnerName, bc.Addition, bc.Message); } } pRole.Owner.Send(pNewMsg); }