コード例 #1
0
        public override void OnTick()
        {
            TimeSpan ts       = DateTime.Now.Subtract(LastSpawn);
            int      compteur = (int)ts.TotalSeconds;

            if (Frequency == 0)
            {
                Console.WriteLine("BaseSpawner frequency = 0, {0},{1},{2},{3},{4}", ci.ToString(), X, Y, Z, MapId);
                return;
            }
            if (compteur / Frequency > howMuch)
            {
                compteur = howMuch * Frequency;
            }
            while (compteur > 0)
            {
                if (CurrentAmount < howMuch)
                {
                    BaseCreature bc = (BaseCreature)ci.Invoke(null);
                    bc.InitStats();
                    bc.SpawnerLink = this;
                    bc.Orientation = this.Orientation;
                    //	if ( bc.AIEngine != null && bc.AIEngine.CustomBehaviours != null && bc.AIEngine.CustomBehaviours.Contains( CustomBehavioursTypes.Stay ) )
                    World.Add(bc, X, Y, Z, MapId);
                    /*else*/
                    //	World.Add( bc, realx, realy, realz, MapId );
                    Bind(bc);
                    bc.ZoneId = ZoneId;
                    LastSpawn = DateTime.Now;
                    compteur -= Frequency;
                    bc.OnAddToWorld();
                }
                else
                {
                    break;
                }
            }
        }