/// <summary> /// /// </summary> internal UserInventoryDataAck( ROSEMobile character ) : base( 0x716, 1126/*6 + 1120*/ ) { WriterStream.Write( (ushort)1126/*6 + 1120*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô ////////////////////////////////////////////////////////////////////////// // low Zulies WriterStream.Write( (uint)0x00 ); // High Zulies WriterStream.Write( (uint)0x00 ); for ( int iIndex = 0; iIndex < 140; iIndex++ ) { WriterStream.Write( (uint)character.m_Items[iIndex].BuildItemHead() ); WriterStream.Write( (uint)character.m_Items[iIndex].BuildItemData() ); } }
/// <summary> /// /// </summary> internal UserQuestDataAck( ROSEMobile character ) : base( 0x71B, 0 /*6 + ?*/ ) { WriterStream.Write( (ushort)0 /*6 + ?*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô ////////////////////////////////////////////////////////////////////////// for ( int iIndex = 0; iIndex < 0x32; iIndex++ ) WriterStream.Write( (byte)0x0 ); int l_iActiveQuestCount = 0; //for ( int iIndex = 0; iIndex < thisclient->MyQuest.size( ); iIndex++ ) //{ //if ( myquest->active ) //{ // WriterStream.Write( (ushort)0x0 ); // # Quest ID // WriterStream.Write( (uint)0x0 ); // Time // WriterStream.Write( (uint)0x0 ); // for ( int iIndex2 = 0; iIndex2 < 0x14; iIndex2++ ) // WriterStream.Write( (byte)0x0 ); // for ( int iIndex3 = 0; iIndex3 < 5; iIndex3++ ) // { // //if ( myquest->thisquest->CItem[j] != 0 && myquest->items[j] != 0 ) // //{ // // CItem item; // // item.itemnum = myquest->thisquest->CItem[j]; // // item.itemtype = 13; // // item.count = 1; // // WriterStream.Write( (uint)BuildItemHead( item ) ); // // WriterStream.Write( (uint)myquest->items[j] ); // //} // //else // { // WriterStream.Write( (uint)0x00000000 ); // WriterStream.Write( (uint)0x00000000 ); // } // } // WriterStream.Write( (uint)0x00000000 ); // WriterStream.Write( (uint)0x00000000 ); // l_iActiveQuestCount++; //} // if ( l_iActiveQuestCount >= 10 ) // break; //} for ( int iIndex = l_iActiveQuestCount; iIndex < 10; iIndex++ ) for ( int iIndex2 = 0; iIndex2 < 0x4E; iIndex2++ ) WriterStream.Write( (byte)0x00 ); // Made Quest? for ( int iIndex = 0; iIndex < 84; iIndex++ ) WriterStream.Write( (byte)0x00 ); // Whish list Credits to Caali for ( int iIndex = 0; iIndex < 30; iIndex++ ) { WriterStream.Write( (uint)0x00000000 ); //Item Head WriterStream.Write( (uint)0x00000000 ); //Item Data } ////////////////////////////////////////////////////////////////////////// WriterStream.Seek( 0, SeekOrigin.Begin ); WriterStream.Write( (ushort)WriterStream.Length ); // ×ֶδóС }
/// <summary> /// /// </summary> internal Unknown0x07D5Ack( ROSEMobile character ) : base( 0x7D5, 26 /*6 + 20*/ ) { WriterStream.Write( (ushort)26 /*6 + 20*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô ////////////////////////////////////////////////////////////////////////// WriterStream.Write( (uint)character.m_iCharacterGuid ); WriterStream.Write( (ushort)character.m_iClientID ); WriterStream.Write( (ushort)character.m_iMaxHP ); WriterStream.Write( (ushort)character.m_iCurrentHP ); WriterStream.Write( (uint)0x01000000 ); WriterStream.Write( (uint)0x0000000F ); WriterStream.Write( (ushort)0x1388 ); }
/// <summary> /// /// </summary> internal UserInformationAck( ROSEMobile character ) : base( 0x715, 0 /*6 + ?*/ ) { WriterStream.Write( (ushort)0 /*6 + ?*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô ////////////////////////////////////////////////////////////////////////// WriterStream.Write( (byte)character.m_iSex ); // GENDER 1=FEMALE 0=MALE WriterStream.Write( (ushort)character.m_posMapID ); // MAP WriterStream.Write( (float)( character.X* 100 ) ); // X POS WriterStream.Write( (float)( character.Y * 100 ) ); // Y POS WriterStream.Write( (ushort)0x0000 ); WriterStream.Write( (uint)character.m_iFace ); // FACE TYPE WriterStream.Write( (uint)character.m_iHairStyle ); // HAIR TYPE WriterStream.Write( (ushort)character.m_Items[2].m_iItemID ); // CAP WriterStream.Write( (ushort)character.m_Items[2].BuildItemRefine() ); // CAP REFINE WriterStream.Write( (ushort)character.m_Items[3].m_iItemID ); // BODY WriterStream.Write( (ushort)character.m_Items[3].BuildItemRefine() ); // BODY REFINE WriterStream.Write( (ushort)character.m_Items[5].m_iItemID ); // GLOVES WriterStream.Write( (ushort)character.m_Items[5].BuildItemRefine() ); // GLOVES REFINE WriterStream.Write( (ushort)character.m_Items[6].m_iItemID ); // BOOTS WriterStream.Write( (ushort)character.m_Items[6].BuildItemRefine() ); // BOOTS REFINE WriterStream.Write( (ushort)character.m_Items[1].m_iItemID ); // FACE WriterStream.Write( (ushort)character.m_Items[1].BuildItemRefine() ); // FACE REFINE WriterStream.Write( (ushort)character.m_Items[4].m_iItemID ); // BACK WriterStream.Write( (ushort)character.m_Items[4].BuildItemRefine() ); // BACK REFINE WriterStream.Write( (ushort)character.m_Items[7].m_iItemID ); // WEAPON WriterStream.Write( (ushort)character.m_Items[7].BuildItemRefine() ); // WEAPON REFINE WriterStream.Write( (ushort)character.m_Items[8].m_iItemID ); // SUBWEAPON WriterStream.Write( (ushort)character.m_Items[8].BuildItemRefine() ); // SUBWEAPON REFINE WriterStream.Write( (byte)0x0 ); WriterStream.Write( (ushort)0x140F ); WriterStream.Write( (ushort)character.m_iClassID ); //JOB WriterStream.Write( (byte)0x0 ); WriterStream.Write( (ushort)0x0 ); WriterStream.Write( (ushort)character.m_iStrength ); // STR WriterStream.Write( (ushort)character.m_iDexterity ); // DEX WriterStream.Write( (ushort)character.m_iIntellect ); // INT WriterStream.Write( (ushort)character.m_iConvergence ); // CON WriterStream.Write( (ushort)character.m_iCharm ); // CHA WriterStream.Write( (ushort)character.m_iSense ); // SEN WriterStream.Write( (ushort)character.m_iCurrentHP ); // HP WriterStream.Write( (ushort)character.m_iCurrentMP ); // MP WriterStream.Write( (ushort)character.m_iExperience ); // EXP WriterStream.Write( (ushort)0x0); WriterStream.Write( (ushort)character.m_iLevel ); // LEVEL WriterStream.Write( (ushort)character.m_iStatusPoint ); // STAT POINTS WriterStream.Write( (ushort)character.m_iSkillPoint ); // SKILL POINTS WriterStream.Write( (ushort)0x6464 ); for ( int iIndex = 0; iIndex < 37; iIndex++ ) WriterStream.Write( (byte)0x0 ); // UNKNOWN WriterStream.Write( (ushort)character.m_iStamina ); // STAMINA for ( int iIndex = 0; iIndex < 326; iIndex++ ) WriterStream.Write( (byte)0x0 ); // UNKNOWN for ( int iIndex = 0; iIndex < 60; iIndex++ ) WriterStream.Write( (ushort)0 ); // CLASS SKILLS //WriterStream.Write( (ushort)character.m_iClassSkills[iIndex].m_iClassSkillID + character.m_iClassSkills[iIndex].m_iLevel - 1 ); // CLASS SKILLS for ( int iIndex = 0; iIndex < 260; iIndex++ ) WriterStream.Write( (ushort)0x0 ); // UNKNOWN for ( int iIndex = 0; iIndex < 42; iIndex++ ) WriterStream.Write( (ushort)character.m_iBasicSkills[iIndex] ); // BASIC SKILLS for ( int iIndex = 0; iIndex < 48; iIndex++ ) WriterStream.Write( (ushort)character.m_iQuickBar[iIndex] ); // QUICKBAR WriterStream.Write( (uint)character.m_iCharacterGuid ); // CHARACTER GUID for ( int iIndex = 0; iIndex < 80; iIndex++ ) WriterStream.Write( (byte)0x0 ); // UNKNOWN WriterStream.WriteAsciiNull( character.m_strCharacter ); // CHARACTER NAME ////////////////////////////////////////////////////////////////////////// WriterStream.Seek( 0, SeekOrigin.Begin ); WriterStream.Write( (ushort)WriterStream.Length ); // ×ֶδóС }
/// <summary> /// /// </summary> public UserDiedAck( ROSEMobile character ) : base( 0x07A8, 58 /*6 + 52 */) { WriterStream.Write( (ushort)58 /*6 + 52*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô WriterStream.Write( (ushort)character.m_iClientID ); WriterStream.Write( (ushort)character.m_posMapID ); WriterStream.Write( (float)character.X * 100 ); WriterStream.Write( (float)character.Y * 100 ); if ( character.m_stance == 0x04 ) WriterStream.Write( (ushort)0x0201 ); else WriterStream.Write( (ushort)0x0001 ); for ( int iIndex = 0; iIndex < 15; iIndex++ ) { // Clean Buffs } }
/// <summary> /// /// </summary> /// <param name="netState"></param> /// <param name="monsterMobile"></param> public static void pakSpawnMonster( NetState netState, ROSEMobile monsterMobile ) { }
/// <summary> /// /// </summary> public ShoutAck( ROSEMobile character, string strMessage ) : base( 0x0785, 0 /*6 + ?*/ ) { WriterStream.Write( (ushort)0 /*6 + ?*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô ////////////////////////////////////////////////////////////////////////// WriterStream.WriteAsciiNull( character.m_strCharacter ); WriterStream.WriteAsciiNull( strMessage ); ////////////////////////////////////////////////////////////////////////// WriterStream.Seek( 0, SeekOrigin.Begin ); WriterStream.Write( (ushort)WriterStream.Length ); // ×ֶδóС }
/// <summary> /// /// </summary> public SpawnNPCAck( ROSEMobile character ) : base( 0x791, 51 /*6 + 45*/ ) { WriterStream.Write( (ushort)51 /*6 + 45*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô ////////////////////////////////////////////////////////////////////////// WriterStream.Write( (ushort)character.m_iClientID ); WriterStream.Write( (float)character.X * 100 ); WriterStream.Write( (float)character.Y * 100 ); WriterStream.Write( (float)character.X * 100 ); WriterStream.Write( (float)character.Y * 100 ); WriterStream.Write( (sbyte)0x00 ); WriterStream.Write( (ushort)0x0000 ); WriterStream.Write( (ushort)0x0000 ); WriterStream.Write( (ushort)0x03E8 ); WriterStream.Write( (ushort)0x0000 ); WriterStream.Write( (ushort)0x0001 ); WriterStream.Write( (ushort)0x0000 ); WriterStream.Write( (ushort)0x0000 ); WriterStream.Write( (ushort)0x0000 ); WriterStream.Write( (ushort)character.npctype ); if ( character.dialogid != 0) WriterStream.Write( (ushort)character.dialogid ); else WriterStream.Write( (ushort)character.npctype - 900 ); WriterStream.Write( (float)character.Direction ); WriterStream.Write( (ushort)0x0000 ); }
/// <summary> /// /// </summary> public ChangeStanceAck( ROSEMobile character ) : base( 0x782, 9 /*6 + 3*/ ) { WriterStream.Write( (ushort)9 /*6 + 3*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô WriterStream.Write( (ushort)character.m_iClientID ); WriterStream.Write( (byte)character.m_stance ); WriterStream.Write( (ushort)character.mspeed ); }
/// <summary> /// /// </summary> public NormalChatAck( ROSEMobile character, string strMessage ) : base( 0x783, 0 /*6 + ?*/ ) { WriterStream.Write( (ushort)0 /*6 + ?*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô WriterStream.Write( (ushort)character.m_iClientID ); WriterStream.WriteAsciiNull( strMessage ); }
/// <summary> /// /// </summary> public DoEmoteAck( ushort iUshort1, ushort iUshort2, ROSEMobile character ) : base( 0x781, 12 /*6 + 6*/ ) { WriterStream.Write( (ushort)12 /*6 + 6*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô WriterStream.Write( (ushort)iUshort1 ); WriterStream.Write( (ushort)iUshort2 ); WriterStream.Write( (ushort)character.m_iClientID ); }
/// <summary> /// /// </summary> public StopCharAck( ROSEMobile character ) : base( 0x0770, 18 /*6 + 12*/ ) { WriterStream.Write( (ushort)18 /*6 + 12*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô WriterStream.Write( (ushort)character.m_iClientID ); // USER ID WriterStream.Write( (float)( character.X * 100 ) ); // POSITION X WriterStream.Write( (float)( character.Y * 100 ) ); // POSITION Y WriterStream.Write( (ushort)0x0000 ); // POSITION Z (NOT USED) }
/// <summary> /// /// </summary> public WeightAck( ROSEMobile character, long iWeight ) : base( 0x0762, 9 /*6 + 3 */) { WriterStream.Write( (ushort)9 /*6 + 3*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô WriterStream.Write( (ushort)character.m_iClientID ); WriterStream.Write( (byte)iWeight ); }
/// <summary> /// /// </summary> /// <param name="character"></param> /// <returns></returns> public int BuildBuffs( ROSEMobile character ) { byte buff1 = 0; byte buff2 = 0; byte buff3 = 0; byte buff4 = 0; // Build Debuffs and Buffs // Up if ( character.Attack_up != 0xff ) //A_ATTACK: buff2 += character.ATTACK_UP; if ( character.Defense_up != 0xff ) //A_DEFENSE: buff2 += character.DEFENSE_UP; if ( character.Accury_up != 0xff ) //A_ACCUR: buff3 += character.HITRATE_UP; if ( character.Dash_up != 0xff ) //A_DASH: buff1 += character.DASH_UP; if ( character.Haste_up != 0xff ) //A_HASTE: buff2 += character.HASTE_UP; if ( character.HP_up != 0xff ) //A_HP: buff1 += character.HP_UP; if ( character.MP_up != 0xff ) //A_MP: buff1 += character.MP_UP; if ( character.Critical_up != 0xff ) //A_CRITICAL: buff1 += character.CRITICAL_UP; if ( character.Dodge_up != 0xff ) //A_DODGE: buff1 += character.DODGE_UP; // Down if ( character.Attack_down != 0xff ) // A_ATTACK: buff2 += character.ATTACK_DOWN; if ( character.Defense_down != 0xff ) //A_DEFENSE: buff2 += character.DEFENSE_DOWN; if ( character.Accury_down != 0xff ) //A_ACCUR: buff3 += character.HITRATE_DOWN; if ( character.Dash_down != 0xff ) //A_DASH: buff1 += character.DASH_DOWN; if ( character.Haste_down != 0xff ) //A_HASTE: buff2 += character.HASTE_DOWN; if ( character.HP_down != 0xff ) //A_HP: buff1 += 0; if ( character.MP_down != 0xff ) //A_MP: buff1 += 0; if ( character.Critical_down != 0xff ) //A_CRITICAL: buff1 += character.CRITICAL_DOWN; if ( character.owner != 0 ) buff3 += character.SUMMON; return ( buff1 * 0x01 ) + ( buff2 * 0x100 ) + ( buff3 * 0x10000 ) + ( buff4 * 0x1000000 ); }
/// <summary> /// /// </summary> internal Unknown0x0753Ack( ROSEMobile character ) : base( 0x753, 52 /*6 + 46*/ ) { WriterStream.Write( (ushort)52 /*6 + 46*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô ////////////////////////////////////////////////////////////////////////// WriterStream.Write( (ushort)character.m_iClientID ); // USER ID WriterStream.Write( (ushort)character.m_iCurrentHP ); // CURRENT HP WriterStream.Write( (ushort)character.m_iCurrentMP ); // CURRENT MP WriterStream.Write( (uint)character.m_iExperience ); // CURRENT EXP WriterStream.Write( (uint)0x00000000 ); // LVL EXP (UNSUSED) //[economy] WriterStream.Write( (ushort)0x0063 ); // World Rate WriterStream.Write( (byte)0x70 ); WriterStream.Write( (byte)0x69 ); WriterStream.Write( (byte)0x68 ); WriterStream.Write( (byte)0x67 ); WriterStream.Write( (ushort)0x0062 ); // Town rate WriterStream.Write( (byte)0x61 ); // misc rate WriterStream.Write( (byte)0x32 ); // 1 WriterStream.Write( (byte)0x32 ); // 2 WriterStream.Write( (byte)0x32 ); // 3 WriterStream.Write( (byte)0x32 ); // 4 WriterStream.Write( (byte)0x32 ); // 5 WriterStream.Write( (byte)0x32 ); // 6 WriterStream.Write( (byte)0x32 ); // 7 WriterStream.Write( (byte)0x32 ); // 8 WriterStream.Write( (byte)0x32 ); // 9 WriterStream.Write( (byte)0x32 ); // 10 WriterStream.Write( (byte)0x32 ); // 11 if (character.m_posMapData.pvp == true) WriterStream.Write( (ushort)0x0001 ); // player vs player map else WriterStream.Write( (ushort)0x0000 ); // non player vs player map WriterStream.Write( (ushort)0x0000 ); // ? // This 3 are to the world time (night/day...) WriterStream.Write( (byte)character.m_iCurrentWorldTime ); WriterStream.Write( (byte)0xDE ); WriterStream.Write( (ushort)0x0008 ); // this change something in the mapicon (time) if ( character.m_posMapData.pvp == true ) { WriterStream.Write( (ushort)0x0000 ); // red icon (map) WriterStream.Write( (ushort)0x0005 ); // red icon (map) } else { WriterStream.Write( (ushort)0x0002 ); // white icon (map) WriterStream.Write( (ushort)0x0000 ); // white icon (map) } }
/// <summary> /// /// </summary> public SpawnMonsterAck( ROSEMobile character ) : base( 0x792, 45 /*6 + 39*/ ) { WriterStream.Write( (ushort)45 /*6 + 39*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô ////////////////////////////////////////////////////////////////////////// WriterStream.Write( (ushort)character.m_iClientID ); WriterStream.Write( (float)character.X * 100 ); WriterStream.Write( (float)character.Y * 100 ); WriterStream.Write( (float)character.m_DestinePoint3D.X * 100 ); WriterStream.Write( (float)character.m_DestinePoint3D.Y * 100 ); if ( character.Hits <= 0 ) { WriterStream.Write( (ushort)0x0003 ); WriterStream.Write( (ushort)0x0000 ); } else if ( character.targetid != 0 ) { WriterStream.Write( (ushort)0x0002 ); WriterStream.Write( (ushort)character.targetid ); } else if ( character.X != character.m_DestinePoint3D.X || character.Y != character.m_DestinePoint3D.Y ) { WriterStream.Write( (ushort)0x0001 ); WriterStream.Write( (ushort)0x0000 ); } else { WriterStream.Write( (ushort)0x0000 ); WriterStream.Write( (ushort)0x0000 ); } WriterStream.Write( (sbyte)0x00 ); WriterStream.Write( (uint)character.Hits ); if ( character.owner == 0 && character.m_posMapData.pvp ) WriterStream.Write( (uint)0x00000064 ); // Hostil µÐ¶Ô else WriterStream.Write( (uint)0x00000000 ); // Friendly ÅóÓÑ WriterStream.Write( (uint)BuildBuffs( character ) ); WriterStream.Write( (ushort)character.montype ); WriterStream.Write( (ushort)0x0000 ); if ( character.owner != 0 ) { WriterStream.Write( (ushort)character.owner ); WriterStream.Write( (ushort)0x0000 ); //id del skill (si es summon de skill) } }
/// <summary> /// /// </summary> internal Unknown0x0762Ack( ROSEMobile character ) : base( 0x762, 9 /*6 + 3*/ ) { WriterStream.Write( (ushort)9 /*6 + 3*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô ////////////////////////////////////////////////////////////////////////// WriterStream.Write( (ushort)character.m_iClientID ); // USER ID WriterStream.Write( (sbyte)0x01 ); // SOMETHING TO DO WITH WEIGHT }
/// <summary> /// /// </summary> public MoveCharAck( ROSEMobile character ) : base( 0x079A, 22 /*6 + 16*/) { WriterStream.Write( (ushort)22 /*6 + 16*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô ////////////////////////////////////////////////////////////////////////// WriterStream.Write( (ushort)character.m_iClientID ); // USER ID WriterStream.Write( (ushort)character.targetid ); // TARGET WriterStream.Write( (ushort)character.mspeed ); // MSPEED WriterStream.Write( (float)( character.X * 100 ) ); // POSITION X WriterStream.Write( (float)( character.Y * 100 ) ); // POSITION Y WriterStream.Write( (ushort)0x0000 ); // POSITION Z (NOT USED) }
/// <summary> /// /// </summary> internal Unknown0x0782Ack( ROSEMobile character ) : base( 0x782, 9 /*6 + 3*/ ) { WriterStream.Write( (ushort)9 /*6 + 3*/ ); // ×ֶδóС WriterStream.Write( (ushort)base.PacketID ); // ×ֶαàºÅ WriterStream.Write( (ushort)0x00 ); // ×ֶα£Áô ////////////////////////////////////////////////////////////////////////// WriterStream.Write( (ushort)character.m_iClientID ); WriterStream.Write( (sbyte)character.m_iSense ); }
/// <summary> /// /// </summary> /// <param name="newNetState"></param> public static void NetState_InitializeNetState( NetState newNetState ) { if ( newNetState.EncoderSeed == null && newNetState.ExtendData == null ) { // 初始化客户端加密的数据种子 newNetState.EncoderSeed = m_CryptTableBuffers.AcquireBuffer(); Buffer.BlockCopy( ROSECrypt.Instance().CryptTableBuffer, 0, newNetState.EncoderSeed, 0, ROSECrypt.Instance().CryptTableBuffer.Length ); ROSEMobile l_ROSEMobile = new ROSEMobile(); newNetState.Mobile = l_ROSEMobile; l_ROSEMobile.Player = true; l_ROSEMobile.NetState = newNetState; WorldServerExtendData l_ExtendData = new WorldServerExtendData(); l_ExtendData.ROSEMobile = l_ROSEMobile; newNetState.ExtendData = l_ExtendData; } else Debug.WriteLine( "ProcessNet.MessagePump_ProcessReceive(...) - newNetState.Seed != null error!" ); }
/// <summary> /// /// </summary> /// <param name="netState"></param> /// <param name="npcMobile"></param> public static void pakSpawnNPC( NetState netState, ROSEMobile npcMobile ) { }