/// <summary> /// 用于自己位置的初始化,实际上这个才是真正的初始化!在AddNewPlayer或者update以前,需要将self的others初始化 /// </summary> /// <param name="getPosition">传入参数</param> /// <param name="fromUrl">返回的url</param> /// <param name="webSocketID">websocketID</param> /// <param name="fp">地点</param> /// <param name="carsNames"></param> /// <returns></returns> internal async Task <GetPositionResult> GetPosition(GetPosition getPosition) { GetPositionResult result; int OpenMore = -1;//第一次打开? var notifyMsgs = new List <string>(); lock (this.PlayerLock) { if (this._Players.ContainsKey(getPosition.Key)) { var fp = Program.dt.GetFpByIndex(this._Players[getPosition.Key].StartFPIndex); var fromUrl = this._Players[getPosition.Key].FromUrl; var webSocketID = this._Players[getPosition.Key].WebSocketID; var carsNames = this._Players[getPosition.Key].CarsNames; var playerName = this._Players[getPosition.Key].PlayerName; /* * 这已经走查过,在AddNewPlayer、UpdatePlayer时,others都进行了初始化 */ AddOtherPlayer(getPosition.Key, ref notifyMsgs); this.brokenParameterT1RecordChanged(getPosition.Key, getPosition.Key, this._Players[getPosition.Key].brokenParameterT1, ref notifyMsgs); GetAllCarInfomationsWhenInitialize(getPosition.Key, ref notifyMsgs); //getAllCarInfomations(getPosition.Key, ref notifyMsgs); OpenMore = this._Players[getPosition.Key].OpenMore; var player = this._Players[getPosition.Key]; //var m2 = player.GetMoneyCanSave(); // MoneyCanSaveChanged(player, m2, ref notifyMsgs); SendPromoteCountOfPlayer("mile", player, ref notifyMsgs); SendPromoteCountOfPlayer("business", player, ref notifyMsgs); SendPromoteCountOfPlayer("volume", player, ref notifyMsgs); SendPromoteCountOfPlayer("speed", player, ref notifyMsgs); BroadCoastFrequency(player, ref notifyMsgs); player.SetMoneyCanSave(player, ref notifyMsgs); // player.RunSupportChangedF(ref notifyMsgs); //player.this._Players[addItem.Key].SetMoneyCanSave = RoomMain.SetMoneyCanSave; //MoneyCanSaveChanged(player, player.MoneyForSave, ref notifyMsgs); SendMaxHolderInfoMation(player, ref notifyMsgs); var players = this._Players; foreach (var item in players) { if (item.Value.TheLargestHolderKey == player.Key) { player.TheLargestHolderKeyChanged(item.Key, item.Value.TheLargestHolderKey, item.Key, ref notifyMsgs); } } var list = player.usedRoadsList; for (var i = 0; i < list.Count; i++) { this.DrawSingleRoadF(player, list[i], ref notifyMsgs); } //this._Players[getPosition.Key]; this._Players[getPosition.Key].MoneyChanged(this._Players[getPosition.Key], this._Players[getPosition.Key].Money, ref notifyMsgs); result = new GetPositionResult() { Success = true, CarsNames = carsNames, Fp = fp, FromUrl = fromUrl, NotifyMsgs = notifyMsgs, WebSocketID = webSocketID, PlayerName = playerName }; } else { result = new GetPositionResult() { Success = false }; } } if (OpenMore == 0) { await CheckAllPromoteState(getPosition.Key); await CheckCollectState(getPosition.Key); await sendCarAbilityState(getPosition.Key); await sendCarStateAndPurpose(getPosition.Key); await TellOtherPlayerMyFatigueDegree(getPosition.Key); await TellMeOtherPlayersFatigueDegree(getPosition.Key); await TellMeOthersRightAndDuty(getPosition.Key); } else if (OpenMore > 0) { await CheckAllPromoteState(getPosition.Key); await CheckCollectState(getPosition.Key); await SendAllTax(getPosition.Key); await sendCarAbilityState(getPosition.Key); await sendCarStateAndPurpose(getPosition.Key); await TellOtherPlayerMyFatigueDegree(getPosition.Key); await TellMeOtherPlayersFatigueDegree(getPosition.Key); await TellMeOthersRightAndDuty(getPosition.Key); // await sendPlayerFatigueDegree(getPosition.Key); //for(var i=0;i<) //AbilityChanged(player, car, ref notifyMsg, "business"); //AbilityChanged(player, car, ref notifyMsg, "volume"); //AbilityChanged(player, car, ref notifyMsg, "mile"); } return(result); }
public GetPositionResult GetPosition(GetPosition getPosition) { GetPositionResult result; int OpenMore = -1;//第一次打开? var notifyMsgs = new List <string>(); lock (this.PlayerLock) { if (this._Players.ContainsKey(getPosition.Key)) { if (this._Players[getPosition.Key].playerType == RoleInGame.PlayerType.player) { var player = (Player)this._Players[getPosition.Key]; var fp = Program.dt.GetFpByIndex(this._Players[getPosition.Key].StartFPIndex); var fromUrl = player.FromUrl; var webSocketID = player.WebSocketID; //var carsNames = this._Players[getPosition.Key].CarsNames; var playerName = this._Players[getPosition.Key].PlayerName; /* * 这已经走查过,在AddNewPlayer、UpdatePlayer时,others都进行了初始化 */ AddOtherPlayer(getPosition.Key, ref notifyMsgs); // this.brokenParameterT1RecordChanged(getPosition.Key, getPosition.Key, this._Players[getPosition.Key].brokenParameterT1, ref notifyMsgs); GetAllCarInfomationsWhenInitialize(getPosition.Key, ref notifyMsgs); //getAllCarInfomations(getPosition.Key, ref notifyMsgs); OpenMore = ((Player)this._Players[getPosition.Key]).OpenMore; // var player = this._Players[getPosition.Key]; //var m2 = player.GetMoneyCanSave(); // MoneyCanSaveChanged(player, m2, ref notifyMsgs); SendPromoteCountOfPlayer("mile", player, ref notifyMsgs); SendPromoteCountOfPlayer("business", player, ref notifyMsgs); SendPromoteCountOfPlayer("volume", player, ref notifyMsgs); SendPromoteCountOfPlayer("speed", player, ref notifyMsgs); // BroadCoastFrequency(player, ref notifyMsgs); player.SetMoneyCanSave(player, ref notifyMsgs); // player.RunSupportChangedF(ref notifyMsgs); //player.this._Players[addItem.Key].SetMoneyCanSave = RoomMain.SetMoneyCanSave; //MoneyCanSaveChanged(player, player.MoneyForSave, ref notifyMsgs); SendMaxHolderInfoMation(player, ref notifyMsgs); var players = this._Players; foreach (var item in players) { if (item.Value.TheLargestHolderKey == player.Key) { player.TheLargestHolderKeyChanged(item.Key, item.Value.TheLargestHolderKey, item.Key, ref notifyMsgs); } } var list = player.usedRoadsList; for (var i = 0; i < list.Count; i++) { this.DrawSingleRoadF(player, list[i], ref notifyMsgs); } //this._Players[getPosition.Key]; ((Player)this._Players[getPosition.Key]).MoneyChanged(player, this._Players[getPosition.Key].Money, ref notifyMsgs); ((Player)this._Players[getPosition.Key]).ShowLevelOfPlayerDetail(ref notifyMsgs); this.DriverSelected(this._Players[getPosition.Key], this._Players[getPosition.Key].getCar(), ref notifyMsgs); result = new GetPositionResult() { Success = true, //CarsNames = carsNames, Fp = fp, FromUrl = fromUrl, NotifyMsgs = notifyMsgs, WebSocketID = webSocketID, PlayerName = playerName, positionInStation = this._Players[getPosition.Key].positionInStation, fPIndex = this._Players[getPosition.Key].StartFPIndex }; } else { result = new GetPositionResult() { Success = false } }; } else { result = new GetPositionResult() { Success = false }; } } if (OpenMore == 0) { CheckAllPromoteState(getPosition.Key); CheckCollectState(getPosition.Key); sendCarAbilityState(getPosition.Key); sendCarStateAndPurpose(getPosition.Key); } else if (OpenMore > 0) { CheckAllPromoteState(getPosition.Key); CheckCollectState(getPosition.Key); sendCarAbilityState(getPosition.Key); sendCarStateAndPurpose(getPosition.Key); } return(result); }