Exemplo n.º 1
0
 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();
 }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        //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();
        }