public static SubPacket buildPacket(uint playerActorId, uint targetActorId, string conditionName, List <LuaParam> luaParams) { byte[] data = new byte[PACKET_SIZE - 0x20]; using (MemoryStream mem = new MemoryStream(data)) { using (BinaryWriter binWriter = new BinaryWriter(mem)) { binWriter.Write((UInt32)playerActorId); binWriter.Write((UInt32)targetActorId); binWriter.Write((Byte)0x5); binWriter.Write((Byte)0x87); binWriter.Write((Byte)0xDC); binWriter.Write((Byte)0x75); binWriter.Write((UInt32)0x30400000); binWriter.Write(Encoding.ASCII.GetBytes(conditionName), 0, Encoding.ASCII.GetByteCount(conditionName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(conditionName)); binWriter.Seek(0x30, SeekOrigin.Begin); LuaUtils.writeLuaParams(binWriter, luaParams); } } return(new SubPacket(OPCODE, playerActorId, playerActorId, data)); }
public static SubPacket buildPacket(uint playerActorID, uint targetActorID, List <LuaParam> luaParams) { byte[] data = new byte[PACKET_SIZE - 0x20]; using (MemoryStream mem = new MemoryStream(data)) { using (BinaryWriter binWriter = new BinaryWriter(mem)) { LuaUtils.writeLuaParams(binWriter, luaParams); } } return(new SubPacket(OPCODE, playerActorID, targetActorID, data)); }
public static SubPacket buildPacket(uint sourceId, uint targetId, uint actorId, uint textOwnerActorId, ushort textId, byte log, List <LuaParam> lParams) { int lParamsSize = findSizeOfParams(lParams); byte[] data; ushort opcode; if (lParamsSize <= 0x8) { data = new byte[SIZE_GAMEMESSAGE_WITH_ACTOR2 - 0x20]; opcode = OPCODE_GAMEMESSAGE_WITH_ACTOR2; } else if (lParamsSize <= 0x10) { data = new byte[SIZE_GAMEMESSAGE_WITH_ACTOR3 - 0x20]; opcode = OPCODE_GAMEMESSAGE_WITH_ACTOR3; } else if (lParamsSize <= 0x20) { data = new byte[SIZE_GAMEMESSAGE_WITH_ACTOR4 - 0x20]; opcode = OPCODE_GAMEMESSAGE_WITH_ACTOR4; } else { data = new byte[SIZE_GAMEMESSAGE_WITH_ACTOR5 - 0x20]; opcode = OPCODE_GAMEMESSAGE_WITH_ACTOR5; } using (MemoryStream mem = new MemoryStream(data)) { using (BinaryWriter binWriter = new BinaryWriter(mem)) { binWriter.Write((UInt32)actorId); binWriter.Write((UInt32)textOwnerActorId); binWriter.Write((UInt16)textId); binWriter.Write((UInt16)log); LuaUtils.writeLuaParams(binWriter, lParams); if (lParamsSize <= 0x14 - 12) { binWriter.Seek(0x14, SeekOrigin.Begin); binWriter.Write((UInt32)8); } } } return(new SubPacket(opcode, sourceId, targetId, data)); }
public static SubPacket buildPacket(uint sourceActorID, uint targetActorID, string objectName, string className, List <LuaParam> initParams) { byte[] data = new byte[PACKET_SIZE - 0x20]; using (MemoryStream mem = new MemoryStream(data)) { using (BinaryWriter binWriter = new BinaryWriter(mem)) { int value1 = 0x00; //Instance ID? int value2 = 0x3040; binWriter.Write((Int16)value1); binWriter.Write((Int16)value2); binWriter.Write(Encoding.ASCII.GetBytes(objectName), 0, Encoding.ASCII.GetByteCount(objectName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(objectName)); binWriter.BaseStream.Seek(0x24, SeekOrigin.Begin); binWriter.Write(Encoding.ASCII.GetBytes(className), 0, Encoding.ASCII.GetByteCount(className) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(className)); binWriter.BaseStream.Seek(0x44, SeekOrigin.Begin); LuaUtils.writeLuaParams(binWriter, initParams); } } return(new SubPacket(OPCODE, sourceActorID, targetActorID, data)); }
public static SubPacket buildPacket(uint playerActorID, uint eventOwnerActorID, string eventStarter, string callFunction, List <LuaParam> luaParams) { byte[] data = new byte[PACKET_SIZE - 0x20]; int maxBodySize = data.Length - 0x80; using (MemoryStream mem = new MemoryStream(data)) { using (BinaryWriter binWriter = new BinaryWriter(mem)) { binWriter.Write((UInt32)playerActorID); binWriter.Write((UInt32)eventOwnerActorID); binWriter.Write((Byte)5); binWriter.Write(Encoding.ASCII.GetBytes(eventStarter), 0, Encoding.ASCII.GetByteCount(eventStarter) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(eventStarter)); binWriter.Seek(0x29, SeekOrigin.Begin); binWriter.Write(Encoding.ASCII.GetBytes(callFunction), 0, Encoding.ASCII.GetByteCount(callFunction) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(callFunction)); binWriter.Seek(0x49, SeekOrigin.Begin); LuaUtils.writeLuaParams(binWriter, luaParams); } } return(new SubPacket(OPCODE, playerActorID, playerActorID, data)); }