示例#1
0
 public byte* getObjVarString(int serial, byte* varName)
 {
     string varname = StringPointerUtils.GetAsciiString(varName);
     string value = MockObjVarAttachments.GetString(serial, varname);
     if (value == null)
         return null;
     return bytePtrFactory.MakePointerToTempString(value);
 }
示例#2
0
        public unsafe bool hasScript(int serial, byte* scriptName)
        {
            ItemObject item;
            if (!World.TryGetItem(serial, out item))
                return false;

            return MockScriptAttachments.Has(serial, StringPointerUtils.GetAsciiString(scriptName));
        }
示例#3
0
        public unsafe int setObjVarLocation(int serial, byte* name, Location* value)
        {
            if (!Exists(serial)) return 0;

            string varname = StringPointerUtils.GetAsciiString(name);
            Location varvalue = *value;
            MockObjVarAttachments.AddAttachment(serial, VariableType.Location, varname, varvalue);
            return 1;
        }
示例#4
0
        public unsafe int setObjVarInt(int serial, byte* name, int value)
        {
            if (!Exists(serial)) return 0;

            string varname = StringPointerUtils.GetAsciiString(name);

            MockObjVarAttachments.AddAttachment(serial, VariableType.Integer, varname, value);
            return 1;
        }
示例#5
0
        unsafe public static string getObjVarString(int serial, string name)
        {
            byte *chars;

            fixed(byte *pName = ASCIIEncoding.ASCII.GetBytes(name))
            chars = Core.getObjVarString(serial, pName);

            return(StringPointerUtils.GetAsciiString(chars));
        }
示例#6
0
        public unsafe bool detachScript(int serial, byte* scriptName)
        {
            ItemObject item;
            if (!World.TryGetItem(serial, out item))
                return false;

            MockScriptAttachments.Remove(serial, StringPointerUtils.GetAsciiString(scriptName));
            
            return true;
        }
示例#7
0
        public unsafe byte* addScript(int serial, byte* scriptName, int executeCreation)
        {
            if(!Exists(serial))
                return bytePtrFactory.ItemNotFound;

            string script = StringPointerUtils.GetAsciiString(scriptName);
            if (!MockScriptAttachments.IsValidScriptName(script))
                return bytePtrFactory.InvalidScriptClass;

            MockScriptAttachments.AddScript(serial, script);
            return null;
        }
示例#8
0
        /// <summary>
        /// Add script by name to object
        /// </summary>
        /// <param name="serial">The serial of the object to add script to</param>
        /// <param name="scriptName">the name of the script without extension</param>
        /// <param name="executeCreation">Should the creation method of the script be called?</param>
        /// <returns>Error message or null if successful</returns>
        unsafe public static string addScript(int serial, string scriptName, bool executeCreation = true)
        {
            fixed(byte *pName = ASCIIEncoding.ASCII.GetBytes(scriptName))
            {
                byte *result = Core.addScript(serial, pName, executeCreation ? 1 : 0);

                if (result == null)
                {
                    return(null);
                }
                return(StringPointerUtils.GetAsciiString(result));
            }
        }
示例#9
0
        public unsafe int setObjVarString(int serial, byte *name, byte *value)
        {
            if (!Exists(serial))
            {
                return(0);
            }

            string varname  = StringPointerUtils.GetAsciiString(name);
            string varvalue = StringPointerUtils.GetAsciiString(value);

            MockObjVarAttachments.AddAttachment(serial, VariableType.String, varname, varvalue);
            return(1);
        }
示例#10
0
 public bool getObjVarLocation(int serial, byte* varName, Location* locationResult)
 {
     string varname = StringPointerUtils.GetAsciiString(varName);
     Location value;
     if (MockObjVarAttachments.GetLocation(serial, varname, out value))
     {
         *locationResult = value;
         return true;
     }
     else
     {
         *locationResult = new Location();
         return false;
     }
 }
示例#11
0
 public int getObjVarInt(int serial, byte* varName)
 {
     string varname = StringPointerUtils.GetAsciiString(varName);
     return MockObjVarAttachments.GetInt(serial, varname);
 }
示例#12
0
 public bool hasObjVarOfType(int serial, byte* varName, VariableType varType)
 {
     string varname = StringPointerUtils.GetAsciiString(varName);
     return MockObjVarAttachments.Has(serial, varType, varname);
 }
示例#13
0
 public void removeObjVar(int serial, byte* varName)
 {
     string varname = StringPointerUtils.GetAsciiString(varName);
     MockObjVarAttachments.Remove(serial, varname);
 }
示例#14
0
        public string ReadAsciiStringNull(int start)
        {
            byte *pStr = pData + start;

            return(StringPointerUtils.GetAsciiString(pStr));
        }
示例#15
0
 /// <summary>
 /// Read a fixed length string from the packet buffer
 /// </summary>
 /// <param name="start">Index in buffer to begin reading</param>
 /// <param name="length">The length of the string</param>
 /// <returns>The string read</returns>
 public string ReadAsciiStringFixed(int start, int length)
 {
     length = Math.Min(start + length, Length) - start;
     return(StringPointerUtils.GetAsciiString(pData + start, length));
 }