forked from circlecloud/tera
		
	@@ -16,19 +16,14 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
 | 
			
		||||
        global.ToLogTrace("ERRR StringFormat ");
 | 
			
		||||
        throw "ERR!!";
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
    var format = StringFormat;
 | 
			
		||||
    if (format.substr(0, 6) === "buffer" && format.length > 6) {
 | 
			
		||||
        ParamValue = parseInt(format.substr(6));
 | 
			
		||||
        format = "buffer";
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
            if (format.substr(0, 3) === "arr" && format.length > 3) {
 | 
			
		||||
    } else if (format.substr(0, 3) === "arr" && format.length > 3) {
 | 
			
		||||
        ParamValue = parseInt(format.substr(3));
 | 
			
		||||
        format = "arr";
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
                if (format.substr(0, 3) === "str" && format.length > 3) {
 | 
			
		||||
    } else if (format.substr(0, 3) === "str" && format.length > 3) {
 | 
			
		||||
        var length = parseInt(format.substr(3));
 | 
			
		||||
        if (data)
 | 
			
		||||
            buf.write(data, buf.len, length);
 | 
			
		||||
@@ -191,9 +186,7 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
 | 
			
		||||
                    for (var i = 0; i < length; i++) {
 | 
			
		||||
                        Write(buf, data[i], formatNext, undefined, WorkStruct);
 | 
			
		||||
                    }
 | 
			
		||||
                    }
 | 
			
		||||
                    else
 | 
			
		||||
                        if (CurFormat === "<") {
 | 
			
		||||
                } else if (CurFormat === "<") {
 | 
			
		||||
                    let length;
 | 
			
		||||
                    if (data)
 | 
			
		||||
                        length = data.length;
 | 
			
		||||
@@ -209,9 +202,7 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    buf.writeUInt32LE(IndexCount, len, 4);
 | 
			
		||||
                        }
 | 
			
		||||
                        else
 | 
			
		||||
                            if (CurFormat === "{") {
 | 
			
		||||
                } else if (CurFormat === "{") {
 | 
			
		||||
                    var attrs = WorkStruct[format];
 | 
			
		||||
                    if (!attrs) {
 | 
			
		||||
                        attrs = GetAttributes(GetMiddleString(format));
 | 
			
		||||
@@ -221,13 +212,11 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
 | 
			
		||||
                        var type = attrs[i];
 | 
			
		||||
                        Write(buf, data[type.Key], type.Value, undefined, WorkStruct);
 | 
			
		||||
                    }
 | 
			
		||||
                            }
 | 
			
		||||
                            else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    throw "Bad write type params: " + format;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
    }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
 | 
			
		||||
@@ -236,29 +225,22 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
 | 
			
		||||
        global.ToLogTrace("ERR StringFormat");
 | 
			
		||||
        throw "ERRR!";
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
    var format = StringFormat;
 | 
			
		||||
    if (format.substr(0, 6) === "buffer") {
 | 
			
		||||
        if (format.length > 6) {
 | 
			
		||||
            ParamValue = parseInt(format.substr(6));
 | 
			
		||||
            format = "buffer";
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
        } else {
 | 
			
		||||
            ParamValue = 0;
 | 
			
		||||
        }
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
            if (format.substr(0, 3) === "arr") {
 | 
			
		||||
    } else if (format.substr(0, 3) === "arr") {
 | 
			
		||||
        if (format.length > 3) {
 | 
			
		||||
            ParamValue = parseInt(format.substr(3));
 | 
			
		||||
            format = "arr";
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
        } else {
 | 
			
		||||
            ParamValue = 0;
 | 
			
		||||
        }
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
                if (format.substr(0, 3) === "str") {
 | 
			
		||||
    } else if (format.substr(0, 3) === "str") {
 | 
			
		||||
        if (format.length > 3) {
 | 
			
		||||
            var length = parseInt(format.substr(3));
 | 
			
		||||
            ret = buf.toString('utf8', buf.len, buf.len + length);
 | 
			
		||||
@@ -270,13 +252,8 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
                        if (nEnd >= 0)
 | 
			
		||||
                            ret = ret.substr(0, i + 1);
 | 
			
		||||
                        else
 | 
			
		||||
                            ret = "";
 | 
			
		||||
                        return ret;
 | 
			
		||||
                    }
 | 
			
		||||
                    else {
 | 
			
		||||
            return nEnd >= 0 ? ret.substr(0, i + 1) : "";
 | 
			
		||||
        } else {
 | 
			
		||||
            ParamValue = 0;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -424,21 +401,15 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
 | 
			
		||||
                    var formatNext = GetMiddleString(format);
 | 
			
		||||
                    let length = Read(buf, "uint32");
 | 
			
		||||
                    for (var i = 0; i < length; i++) {
 | 
			
		||||
                            if (buf.len <= buf.length) {
 | 
			
		||||
                        if (buf.len > buf.length) { break; }
 | 
			
		||||
                        if (bIndexArr) {
 | 
			
		||||
                            var index = Read(buf, "uint32");
 | 
			
		||||
                            ret[index] = Read(buf, formatNext, undefined, WorkStruct, bDisableTime);
 | 
			
		||||
                                }
 | 
			
		||||
                                else {
 | 
			
		||||
                        } else {
 | 
			
		||||
                            ret[i] = Read(buf, formatNext, undefined, WorkStruct, bDisableTime);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                            else
 | 
			
		||||
                                break;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    else
 | 
			
		||||
                        if (LStr === "{") {
 | 
			
		||||
                } else if (LStr === "{") {
 | 
			
		||||
                    var attrs = WorkStruct[format];
 | 
			
		||||
                    if (!attrs) {
 | 
			
		||||
                        attrs = GetAttributes(GetMiddleString(format));
 | 
			
		||||
@@ -449,13 +420,11 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
 | 
			
		||||
                        var type = attrs[i];
 | 
			
		||||
                        ret[type.Key] = Read(buf, type.Value, undefined, WorkStruct, bDisableTime);
 | 
			
		||||
                    }
 | 
			
		||||
                        }
 | 
			
		||||
                        else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    throw "Bad read type params: " + format;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
    }
 | 
			
		||||
    }
 | 
			
		||||
    return ret;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user