Example #1
0
        public void SendStoreUpdate(PlayerStore store)
        {
            SelectCharacterClientPeer peer;

            if (mApplication.Clients.TryGetPeerForCharacterId(store.characterID, out peer))
            {
                log.Info("send store update to client");
                PlayerStoreUpdateEvent data = new PlayerStoreUpdateEvent {
                    storeInfo = store.GetInfo()
                };
                EventData evt = new EventData((byte)SelectCharacterEventCode.PlayerStoreUpdate, data);
                peer.SendEvent(evt, new SendParameters());
            }
        }
Example #2
0
        /// <summary>
        /// Send pvp point update generic event to client
        /// </summary>
        /// <param name="store">Store of client</param>
        public void SendPvpPointsUpdate(PlayerStore store)
        {
            SelectCharacterClientPeer peer;

            if (mApplication.Clients.TryGetPeerForCharacterId(store.characterID, out peer))
            {
                log.InfoFormat("sending PvP points updates to client peer [red]");
                GenericEvent eventObject = new GenericEvent {
                    data = new Hashtable {
                        { (int)SPC.PvpPoints, store.pvpPoints }
                    },
                    subCode = (int)SelectCharacterGenericEventSubCode.PvpPointUpdate
                };
                EventData eventData = new EventData((byte)SelectCharacterEventCode.GenericEvent, eventObject);
                peer.SendEvent(eventData, new SendParameters());
            }
        }
Example #3
0
 public PlayerStore GetOrCreatePlayerStore(string login, string gameRefID, string characterID)
 {
     if (mPlayerStoreCache.ContainsKey(characterID))
     {
         PlayerStore store;
         if (mPlayerStoreCache.TryGetValue(characterID, out store))
         {
             return(store);
         }
         else
         {
             store = new PlayerStore {
                 characterID = characterID,
                 gameRefID   = gameRefID,
                 login       = login,
                 storeItems  = new Dictionary <string, PlayerStoreItem>()
             };
             mApplication.DB.Stores.Save(store);
             mPlayerStoreCache[store.characterID] = store;
             return(store);
         }
     }
     else
     {
         var store = mApplication.DB.Stores.FindOne(Query <PlayerStore> .EQ(s => s.characterID, characterID));
         if (store != null)
         {
             mPlayerStoreCache.TryAdd(store.characterID, store);
             return(store);
         }
         else
         {
             store = new PlayerStore {
                 characterID = characterID,
                 gameRefID   = gameRefID,
                 login       = login,
                 storeItems  = new Dictionary <string, PlayerStoreItem>()
             };
             mApplication.DB.Stores.Save(store);
             mPlayerStoreCache.TryAdd(store.characterID, store);
             return(store);
         }
     }
 }