108 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名:PacketClass.nut
 | |
| 路径:BaseClass/PacketClass/PacketClass.nut
 | |
| 创建日期:2024-04-07	16:59
 | |
| 文件用途:数据包类
 | |
| */
 | |
| class Packet extends Base_C_Object {
 | |
| 
 | |
|     //传参就构造 不传就new一个新包
 | |
|     constructor(...) {
 | |
|         if (vargv.len() > 0) {
 | |
|             base.constructor(vargv[0]);
 | |
|         } else {
 | |
|             local Buf = Sq_New_Point(0x20000);
 | |
|             Sq_CallFunc(S_Ptr("0x858DD4C"), "void", ["pointer"], Buf);
 | |
|             base.constructor(Buf);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function Put_Header(a, b) {
 | |
|         Sq_CallFunc(S_Ptr("0x80CB8FC"), "int", ["pointer", "int", "int"], this.C_Object, a, b);
 | |
|         // Sq_Packet_Put_header(this.C_Object, a, b);
 | |
|     }
 | |
| 
 | |
|     function Put_Byte(Value) {
 | |
|         Sq_CallFunc(S_Ptr("0x80CB920"), "int", ["pointer", "int"], this.C_Object, Value);
 | |
|         // Sq_Packet_Put_byte(this.C_Object, Value);
 | |
|     }
 | |
| 
 | |
|     function Put_Short(Value) {
 | |
|         Sq_CallFunc(S_Ptr("0x80D9EA4"), "int", ["pointer", "int"], this.C_Object, Value);
 | |
|         // Sq_Packet_Put_short(this.C_Object, Value);
 | |
|     }
 | |
| 
 | |
|     function Put_Int(Value) {
 | |
|         Sq_CallFunc(S_Ptr("0x80CB93C"), "int", ["pointer", "int"], this.C_Object, Value);
 | |
|         // Sq_Packet_Put_int(this.C_Object, Value);
 | |
|     }
 | |
| 
 | |
|     function Put_Binary(Value) {
 | |
|         local StrPoint = Str_Ptr(Value);
 | |
|         Sq_CallFunc(S_Ptr("0x811DF08"), "int", ["pointer", "pointer", "int"], this.C_Object, StrPoint, Value.len());
 | |
|         // Sq_Packet_Put_binary(this.C_Object, Value);
 | |
|     }
 | |
| 
 | |
|     function Put_BinaryEx(Str, Len) {
 | |
|         Sq_CallFunc(S_Ptr("0x811DF08"), "int", ["pointer", "pointer", "int"], this.C_Object, Str, Len);
 | |
|         //Sq_Packet_Put_binaryex(this.C_Object, Str, Len);
 | |
|     }
 | |
| 
 | |
|     function Put_BinaryEx_M(Str, Len) {
 | |
|         // Sq_Packet_Put_binaryex(this.C_Object, Str, Len);
 | |
|         Sq_CallFunc(S_Ptr("0x811DF08"), "int", ["pointer", "pointer", "int"], this.C_Object, Str, Len);
 | |
|     }
 | |
| 
 | |
|     function Put_Str(Str, Len) {
 | |
|         Sq_CallFunc(S_Ptr("0x81B73E4"), "int", ["pointer", "pointer", "int"], this.C_Object, Str, Len);
 | |
|     }
 | |
| 
 | |
|     function Finalize(Value) {
 | |
|         Sq_Packet_Finalize(this.C_Object, Value);
 | |
|     }
 | |
| 
 | |
|     function Send(SUser) {
 | |
|         Sq_Packet_Send(SUser.C_Object, this.C_Object);
 | |
|     }
 | |
| 
 | |
| 
 | |
| 
 | |
|     function GetByte() {
 | |
|         local data = Memory.alloc(1);
 | |
|         if (Sq_CallFunc(S_Ptr("0x858CF22"), "int", ["pointer", "pointer"], this.C_Object, data.C_Object)) {
 | |
|             return data.readS8();
 | |
|         }
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     function GetShort() {
 | |
|         local data = Memory.alloc(2);
 | |
|         if (Sq_CallFunc(S_Ptr("0x858CFC0"), "int", ["pointer", "pointer"], this.C_Object, data.C_Object)) {
 | |
|             return data.readS16();
 | |
|         }
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     function GetInt() {
 | |
|         local data = Memory.alloc(4);
 | |
|         if (Sq_CallFunc(S_Ptr("0x858D27E"), "int", ["pointer", "pointer"], this.C_Object, data.C_Object)) {
 | |
|             return data.readS32();
 | |
|         }
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     function GetBinary(len) {
 | |
|         local data = Memory.alloc(len);
 | |
|         if (Sq_CallFunc(S_Ptr("0x858D3B2"), "int", ["pointer", "pointer"], this.C_Object, data.C_Object)) {
 | |
|             return data;
 | |
|         }
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     function Delete() {
 | |
|         Sq_CallFunc(S_Ptr("0x858DE80"), "void", ["pointer"], this.C_Object);
 | |
|         Sq_Delete_Point(this.C_Object);
 | |
|         // Sq_Packet_Delete(this.C_Object);
 | |
|     }
 | |
| 
 | |
| } |