Example #1
0
	void NpcAppear(byte[] _packet)
    {
//		AsNotify.Log( "NpcAppear");

        AS_SC_NPC_APPEAR_1 appear = new AS_SC_NPC_APPEAR_1();
        appear.PacketBytesToClass(_packet);

        AsEntityManager.Instance.NpcAppear(appear);
    }
Example #2
0
	public void NpcAppear( AS_SC_NPC_APPEAR_1 _appear)
	{
		List<AS_SC_NPC_APPEAR_2> listAppear = new List<AS_SC_NPC_APPEAR_2>();
		listAppear.AddRange( _appear.body);
		listAppear.Sort( AsUtil.DistanceCompare);

		foreach( AS_SC_NPC_APPEAR_2 apr in listAppear)
		{
			AS_SC_NPC_APPEAR_2 appear = apr;
			if( true == m_dicNpcEntity_SessionId.ContainsKey( appear.nNpcIdx))
			{
				Debug.LogError( "[AsEntityManager]NpcAppear: already created character. id = " + appear.nNpcIdx);
				continue;
			}

			// check in game event 
			if (AsInGameEventManager.instance.CheckEventViewNpc(apr.nNpcTableIdx))
			{
				if (AsInGameEventManager.instance.CheckRunningEventviewNpc(apr.nNpcTableIdx))
				{
					AsInGameEventManager.instance.AddNpcAppear(apr);
					continue;
				}
			}

			//create
			NpcAppearData creationData = new NpcAppearData( appear);

			switch( creationData.npcType_)
			{
			case eNPCType.Monster:
				AsEntityManager.Instance.CreateNpcEntity( "Monster", creationData);
				break;
			case eNPCType.NPC:
			case eNPCType.Portal:
				AsEntityManager.Instance.CreateNpcEntity( "Npc", creationData);
				break;
			case eNPCType.Object:
				{
					if( 0 == appear.nObjectStatus)
					{
						AsNpcEntity npcEntity = AsEntityManager.Instance.CreateNpcEntity( "Object", creationData);
						npcEntity.SetProperty( eComponentProperty.GROUP_INDEX, appear.nNpcGroupIdx);
						npcEntity.SetProperty( eComponentProperty.LINK_INDEX, appear.nNpcLinkIdx);

						if( ( 0 < appear.nNpcGroupIdx) && ( null != npcEntity))
							ObjSteppingMgr.Instance.InsertObjStepping( appear.nNpcGroupIdx, appear.nNpcLinkIdx, npcEntity);
					}
				}
				break;
			case eNPCType.Collection:
				{
					AsNpcEntity npcEntity = AsEntityManager.Instance.CreateNpcEntity( "Collection", creationData);
					npcEntity.SetProperty( eComponentProperty.COLLECTOR_IDX, appear.nCollector);
				}
				break;
			}
		}
	}