public void SetArrivalThread(int startT, Car car, int goMile, Node goPath, commandWithTime.ReturningOjb returningOjb) { this._setAttackArrivalThread(startT, car, this._sa, goMile, goPath, returningOjb); // this._ // throw new NotImplementedException(); }
private void SetAttackArrivalThread(int startT, int step, RoleInGame player, Car car, SetAttack sa, int goMile, Node goPath, commandWithTime.ReturningOjb ro) { System.Threading.Thread th = new System.Threading.Thread(() => { if (step >= goPath.path.Count - 1) { that.debtE.setDebtT(startT, car, sa, goMile, ro); } //this.startNewThread(startT, new commandWithTime.defenseSet() //{ // c = command, // changeType = commandWithTime.returnning.ChangeType.BeforeTax, // costMile = goMile, // key = ms.Key, // returningOjb = ro, // target = car.targetFpIndex, // beneficiary = ms.targetOwner //}, this); else { if (step == 0) { this.ThreadSleep(startT); if (player.playerType == RoleInGame.PlayerType.NPC || player.Bust) { } else { StartSelectThread(goPath.path[step].selections, goPath.path[step].selectionCenter, (Player)player); } List <string> notifyMsg = new List <string>(); int newStartT; step++; if (step < goPath.path.Count) { EditCarStateAfterSelect(step, player, ref car, goPath, ref notifyMsg, out newStartT); } else { newStartT = 0; } car.setState(player, ref notifyMsg, CarState.working); this.sendMsg(notifyMsg); //string command, int startT, int step, RoleInGame player, Car car, MagicSkill ms, int goMile, Node goPath, commandWithTime.ReturningOjb ro SetAttackArrivalThread(newStartT, step, player, car, sa, goMile, goPath, ro); } else { this.ThreadSleep(startT); if (player.playerType == RoleInGame.PlayerType.NPC || player.Bust) { } else if (startT != 0) { StartSelectThread(goPath.path[step].selections, goPath.path[step].selectionCenter, (Player)player); } step++; List <string> notifyMsg = new List <string>(); int newStartT; if (step < goPath.path.Count) { EditCarStateAfterSelect(step, player, ref car, goPath, ref notifyMsg, out newStartT); } // else if(step==goPath.path.Count-1) //EditCarStateAfterSelect(step,player,ref car,) else { throw new Exception("这种情况不会出现"); } //newStartT = 0; car.setState(player, ref notifyMsg, CarState.working); this.sendMsg(notifyMsg); SetAttackArrivalThread(newStartT, step, player, car, sa, goMile, goPath, ro); } } }); th.Start(); }
//private void StartArriavalThread(int startT, Car car, SetCollect sc, commandWithTime.ReturningOjb ro, int goMile) //{ // this.startNewThread(startT + 100, new commandWithTime.placeArriving() // { // c = "placeArriving", // key = sc.Key, // //car = sc.car, // returningOjb = ro, // target = car.targetFpIndex, // costMile = goMile // }, this); // //Thread th = new Thread(() => setArrive(startT, )); // //th.Start(); //} private void StartArriavalThread(int startT, int step, RoleInGame player, Car car, SetCollect sc, commandWithTime.ReturningOjb ro, int goMile, Node goPath) { System.Threading.Thread th = new System.Threading.Thread(() => { if (step >= goPath.path.Count - 1) { this.startNewThread(startT + 100, new commandWithTime.placeArriving() { c = "placeArriving", key = sc.Key, //car = sc.car, returningOjb = ro, target = car.targetFpIndex, costMile = goMile }, this); } else { if (step == 0) { this.ThreadSleep(startT); if (player.playerType == RoleInGame.PlayerType.NPC || player.Bust) { } else { StartSelectThread(goPath.path[step].selections, goPath.path[step].selectionCenter, (Player)player); } List <string> notifyMsg = new List <string>(); int newStartT; step++; if (step < goPath.path.Count) { EditCarStateAfterSelect(step, player, ref car, goPath, ref notifyMsg, out newStartT); } else { newStartT = 0; } car.setState(player, ref notifyMsg, CarState.working); this.sendMsg(notifyMsg); StartArriavalThread(newStartT, step, player, car, sc, ro, goMile, goPath); } else { this.ThreadSleep(startT); if (player.playerType == RoleInGame.PlayerType.NPC || player.Bust) { this.ThreadSleep(500); } else if (startT != 0) { StartSelectThread(goPath.path[step].selections, goPath.path[step].selectionCenter, (Player)player); } step++; List <string> notifyMsg = new List <string>(); int newStartT; if (step < goPath.path.Count) { EditCarStateAfterSelect(step, player, ref car, goPath, ref notifyMsg, out newStartT); } // else if(step==goPath.path.Count-1) //EditCarStateAfterSelect(step,player,ref car,) else { throw new Exception("这种情况不会出现"); } //newStartT = 0; car.setState(player, ref notifyMsg, CarState.working); this.sendMsg(notifyMsg); StartArriavalThread(newStartT, step, player, car, sc, ro, goMile, goPath); } } }); th.Start(); //Thread th = new Thread(() => setArrive(startT, )); //th.Start(); }