Пример #1
0
    void OtherCharAppear(byte[] _packet)
    {
//        AsNotify.Log("OtherCharAppear");

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

        AsEntityManager.Instance.OtherCharAppear(appear);
    }
Пример #2
0
	public void OtherCharAppear( AS_SC_OTHER_CHAR_APPEAR_1 _appear)//game process
	{
		for( int i = 0; i < _appear.nCharCnt; ++i)
		{
			AS_SC_OTHER_CHAR_APPEAR_2 appear = _appear.body[i];

			if( false == m_dicUserEntity_UniqueId.ContainsKey( appear.nCharUniqKey))
			{
				//create
				OtherCharacterAppearData creationData = new OtherCharacterAppearData( appear);
				AsUserEntity entity = AsEntityManager.Instance.CreateUserEntity( "OtherUser", creationData, true, true);
				entity.SetRePosition( entity.transform.position);
				
				_PetProc( entity, creationData);

				Msg_OtherUserMoveIndicate moveInfo = new Msg_OtherUserMoveIndicate( creationData.sessionKey_,
					creationData.uniqKey_, creationData.curPosition_, creationData.destPosition_, eMoveType.Normal);
				entity.HandleMessage( moveInfo);

				if( appear.bProgress)
				{
					entity.ShowProductImg( appear.bProgress);
				}
				else if( 0 != appear.nCollectIdx)
				{
					body_SC_COLLECT_INFO info = new body_SC_COLLECT_INFO();
					info.nCollectNpcIdx = appear.nCollectIdx;
					info.nCollectorUniqKey = appear.nCharUniqKey;
					info.nCollectorSession = appear.nSessionIdx;
					info.eCollectState = ( int)eCOLLECT_STATE.eCOLLECT_STATE_START;
					entity.HandleMessage( new Msg_CollectInfo( info));
				}

				//party
				entity.PartyIdx = appear.nPartyIdx;
				entity.ShowPartyPR( appear.bPartyNotice, System.Text.UTF8Encoding.UTF8.GetString( appear.szPartyNotice));
			}
			else
			{
				AsUserEntity entity = m_dicUserEntity_UniqueId[appear.nCharUniqKey];

				if( entity.CheckShopOpening() == true)
				{
					OtherCharacterAppearData creationData = new OtherCharacterAppearData( appear);
					entity.SetCreationData( creationData);
					entity.SetRePosition( entity.transform.position);
					entity.ShowProductImg( appear.bProgress);

					if( 0 != appear.nCollectIdx)
					{
						body_SC_COLLECT_INFO info = new body_SC_COLLECT_INFO();
						info.nCollectNpcIdx = appear.nCollectIdx;
						info.nCollectorUniqKey = appear.nCharUniqKey;
						info.nCollectorSession = appear.nSessionIdx;
						info.eCollectState = ( int)eCOLLECT_STATE.eCOLLECT_STATE_START;
						entity.HandleMessage( new Msg_CollectInfo( info));
					}
				}
				else
				{
					Debug.LogError( "[AsEntityManager]OtherCharAppear: already created character. id = " + appear.nCharUniqKey);
					continue;
				}
			}
		}
	}