public new void PacketBytesToClass( byte[] data)
	{
		Type infotype = this.GetType();
		FieldInfo headerinfo = null;

		int index = ParsePacketHeader( data);
		
		// nSkillBookCnt
		byte[] skillBookCnt = new byte[ sizeof( Int32)];
		headerinfo = infotype.GetField( "nSkillBookCnt", BINDING_FLAGS_PIG);
		Buffer.BlockCopy( data, index, skillBookCnt, 0, sizeof( Int32));
		headerinfo.SetValue( this, BitConverter.ToInt32( skillBookCnt, 0));
		index += sizeof( Int32);
		
		AsUserInfo.Instance.resettedSkills.Clear();
		
		// body
		body = new body2_SC_SKILLBOOK_LIST[ nSkillBookCnt];
		for( int i = 0; i < nSkillBookCnt; i++)
		{
			body[i] = new body2_SC_SKILLBOOK_LIST();
			byte[] tmpData = new byte[ body2_SC_SKILLBOOK_LIST.size];
			Buffer.BlockCopy( data, index, tmpData, 0, tmpData.Length);
			body[i].ByteArrayToClass( tmpData);
			index += body2_SC_SKILLBOOK_LIST.size;
			
			AsUserInfo.Instance.resettedSkills.Add( body[i].nSkillBookTableIdx, body[i]);
		}
	}
Beispiel #2
0
	public void AddLearnSkill(body_SC_SKILL_LEARN_RESULT _learn)
	{
//		eCLASS __class = AsUserInfo.Instance.GetCurrentUserEntity().GetProperty<eCLASS>(eComponentProperty.CLASS);
		SkillView view = new SkillView(_learn.sSkill.nSkillTableIdx, _learn.sSkill.nSkillLevel);
//		view.SetSkillBookRecordByClass(__class);
		
		Tbl_Skill_Record record = AsTableManager.Instance.GetTbl_Skill_Record(view.nSkillTableIdx);
		if(record.Skill_Type == eSKILL_TYPE.Base)
			return;
		
		if(m_dicCurSkill.ContainsKey(_learn.sSkill.nSkillTableIdx) == true)
		{
			m_dicCurSkill.Remove(_learn.sSkill.nSkillTableIdx);
		}
		m_dicCurSkill.Add(_learn.sSkill.nSkillTableIdx, view);
		SortCurSkill();
		
		if(m_dicNotSetting.ContainsKey(_learn.sSkill.nSkillTableIdx) == true)
		{
			m_dicNotSetting.Remove(_learn.sSkill.nSkillTableIdx);
		}
		m_dicNotSetting.Add(_learn.sSkill.nSkillTableIdx, view);
		SortNotSetting();
		
		//	add resettedSkills
		if( AsUserInfo.Instance.resettedSkills.ContainsKey( _learn.nSkillBookIdx ) == false )
		{
			body2_SC_SKILLBOOK_LIST _skillBookList = new body2_SC_SKILLBOOK_LIST();
			_skillBookList.nSkillBookTableIdx = _learn.nSkillBookIdx;
			AsUserInfo.Instance.resettedSkills.Add( _learn.nSkillBookIdx , _skillBookList);
		}
		
		AddSkillByType(view, true);
		
		if( record.Skill_Type != eSKILL_TYPE.Command && record.Skill_Type != eSKILL_TYPE.Passive )
			ItemMgr.HadItemManagement.QuickSlot.SetLearnSkill( _learn.sSkill.nSkillTableIdx, _learn.sSkill.nSkillLevel );
		
		if(AsHudDlgMgr.Instance.IsOpenedSkillBook == true)
		{
			ResetDicNotSettingData();
			AsHudDlgMgr.Instance.skillBookDlg.RefreshSkillBookDlg();			
		}
	}