當前位置: 首頁>>代碼示例>>C#>>正文


C# MegaSpawner.CheckAddItem方法代碼示例

本文整理匯總了C#中Server.Items.MegaSpawner.CheckAddItem方法的典型用法代碼示例。如果您正苦於以下問題:C# MegaSpawner.CheckAddItem方法的具體用法?C# MegaSpawner.CheckAddItem怎麽用?C# MegaSpawner.CheckAddItem使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Server.Items.MegaSpawner的用法示例。


在下文中一共展示了MegaSpawner.CheckAddItem方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: SpawnEntry

		public static void SpawnEntry( MegaSpawner megaSpawner, int index )
		{
			if ( !(bool) megaSpawner.ActivatedList[index] )
				return;

			Type spawnType = ScriptCompiler.FindTypeByName( (string) megaSpawner.EntryList[index] );

			if ( spawnType != null )
			{
				object check = null;

				try
				{
					object o = Activator.CreateInstance( spawnType );
					check = o;

					if ( o is Item )
					{
						Item item = (Item) o;

						if ( item.Stackable )
						{
							int min = (int) megaSpawner.MinStackAmountList[index];
							int max = (int) megaSpawner.MaxStackAmountList[index];
							int stack = Utility.Random( min, ( max - min ) );

							item.Amount = stack;
						}

						if ( megaSpawner.RootParent is Container )
							( (Container) megaSpawner.RootParent ).DropItem( item );
						else if ( megaSpawner.ContainerSpawn != null )
							megaSpawner.ContainerSpawn.DropItem( item );
						else
							item.MoveToWorld( GetSpawnPosition( megaSpawner ), megaSpawner.Map );

						item.Movable = (bool) megaSpawner.MovableList[index];

						megaSpawner.OverrideSpawnedEntries.Add( item );
						megaSpawner.OverrideLastMovedList.Add( item.LastMoved );
						AddToRespawnEntries( megaSpawner, item );
					}
					else if ( o is Mobile )
					{
						Mobile m = (Mobile) o;

						Map map = megaSpawner.Map;
						Point3D loc = ( m is BaseVendor ? megaSpawner.Location : GetSpawnPosition( megaSpawner ) );

						m.Map = map;
						m.Location = loc;

						if ( m is BaseCreature )
						{
							BaseCreature creature = (BaseCreature) m;

							creature.Location = GetSpawnPosition( megaSpawner );
							creature.Home = megaSpawner.Location;
							creature.RangeHome = megaSpawner.OverrideWalkRange;
							creature.CantWalk = !(bool) megaSpawner.MovableList[index];

                            // Genova: customização no sistema para traduzir nome da criatura.
                            TraducaoDeNomesMobiles.AplicarAlteracoesCriatura(creature, spawnType.ToString(), creature.Title);
						}

						megaSpawner.OverrideSpawnedEntries.Add( m );
						megaSpawner.OverrideLastMovedList.Add( DateTime.Now );
						AddToRespawnEntries( megaSpawner, m );
					}

					megaSpawner.CheckAddItem( index, o );
				}
				catch
				{
					if ( check is Item )
						( (Item) check ).Delete();
					else if ( check is Mobile )
						( (Mobile) check ).Delete();
				}
			}
		}
開發者ID:brodock,項目名稱:genova-project,代碼行數:81,代碼來源:MegaSpawnerOverride.cs


注:本文中的Server.Items.MegaSpawner.CheckAddItem方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。