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()); } }
/// <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()); } }
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); } } }