コード例 #1
0
    public object Call(ScriptObject[] args)
    {
        ScriptString str = args[0] as ScriptString;

        Util.Assert(str != null, m_script, "LoadScript 参数必须是 string");
        return(ScriptManager.GetInstance().LoadFile(str.Value));
    }
コード例 #2
0
            public object Call(ScriptObject[] args)
            {
                ScriptString str = args[0] as ScriptString;

                Util.Assert(str != null, m_script, "require 参数必须是 string");
                return(m_script.LoadSearchPathFile(str.Value));
            }
コード例 #3
0
        static List <MessageField> GetFields(string tableName, ScriptTable table, List <MessageField> Fields, bool cs)
        {
            Fields.Clear();
            var itor = table.GetIterator();

            while (itor.MoveNext())
            {
                string       name = itor.Current.Key as string;
                ScriptString val  = itor.Current.Value as ScriptString;
                if (string.IsNullOrEmpty(name) || val == null)
                {
                    throw new Exception(string.Format("Message:{0} Field:{1} 参数出错 参数模版 \"索引,类型,是否数组=false\"", tableName, name));
                }
                string[] infos = val.Value.Split(',');
                if (infos.Length < 2)
                {
                    throw new Exception(string.Format("Message:{0} Field:{1} 参数出错 参数模版 \"索引,类型,是否数组=false\"", tableName, name));
                }
                bool      array = infos.Length > 2 && infos[2] == "true";
                BasicType type  = GetType(infos[1]);
                Fields.Add(new MessageField()
                {
                    Index      = int.Parse(infos[0]),
                    SourceType = infos[1],
                    Type       = type,
                    Name       = name,
                    TypeName   = type != null ? (cs ? type.CSharpName : type.JavaName) : infos[1],
                    Array      = array
                });
            }
            Fields.Sort((m1, m2) => {
                return(m1.Index.CompareTo(m2.Index));
            });
            return(Fields);
        }
コード例 #4
0
            public object Call(ScriptObject[] args)
            {
                ScriptString str = args[0] as ScriptString;

                Util.Assert(str != null, m_script, "import_type 参数必须是 string");
                return(m_script.LoadType(str.Value));
            }
コード例 #5
0
            public object Call(ScriptObject[] args)
            {
                ScriptString str = args[0] as ScriptString;

                Util.Assert(str != null, "require 参数必须是 string");
                return(m_script.LoadFile(m_script.GetValue("searchpath") + "/" + str.Value));
            }
コード例 #6
0
 public void SetScriptID(int index, int state, int idScript, ScriptString pstrSection)
 {
     m_nType     = ENUM_EVENT_ITEM_TYPE.EVENT_ITEM_TYPE_SCRIPT_ID;
     m_state     = state;
     m_index     = index;
     m_idScript  = idScript;
     m_strString = pstrSection;
 }
コード例 #7
0
 public void AddText(ScriptString pText)
 {
     if (m_yTextCount < SCRIPT_COMMAND.MAX_MISSION_TEXT_COUNT)
     {
         m_aText[m_yTextCount] = pText;
         m_yTextCount++;
     }
 }
コード例 #8
0
            public object Call(ScriptObject[] args)
            {
                ScriptString str = args[0] as ScriptString;

                Util.Assert(str != null, m_script, "push_define 参数必须是 string");
                m_script.PushDefine(str.Value);
                return(null);
            }
コード例 #9
0
            public object Call(ScriptObject[] args)
            {
                ScriptString str = args[0] as ScriptString;

                Util.Assert(str != null, m_script, "load_assembly 参数必须是 string");
                m_script.PushAssembly(Assembly.Load(new AssemblyName(str.Value)));
                return(null);
            }
コード例 #10
0
        protected override void ProcessString(ITerminalNode @string)
        {
            base.ProcessString(@string);

            var name2 = new HashSet <string>
            {
                "add_character_modifier.name",
                "character_event.name",
                "create_character.name",
                "defined_text.name",
                "has_game_rule.name",
                "option.name",
                "per_attribute.name",
                "add_province_modifier.name"
            };

            ScriptString s = this.Strings.Last();

            if (IdManager.IgnoreValues.Contains(s.Value) ||
                IdManager.IgnoreValueRegex.IsMatch(s.Value) ||
                !IdManager.StringKeys.Any(keyPattern => s.Key.Path.LastStep.EqualsWildcard(keyPattern)) ||
                name2.Contains(s.Key.Path.LastTwoSteps))
            {
                return;
            }

            string translation = this.translator(s);

            if (translation != null)
            {
                string str = @string.GetText();
                string begin;

                begin = str[0] == '\'' ? "\'" : "\"";

                string end = "";

                int i = str.Length - 1;
                while (i >= 0 && char.IsWhiteSpace(str[i]))
                {
                    end = str[i] + end;
                    i--;
                }

                if (str[i] == '\'')
                {
                    end = '\'' + end;
                }
                else
                {
                    end = '"' + end;
                }

                translation = begin + translation + end;

                this.Rewriter.Replace(@string.Symbol, translation);
            }
        }
コード例 #11
0
 public object Call(ScriptObject[] args)
 {
     if (args[0].IsString)
     {
         ScriptString sstr = args[0] as ScriptString;
         return(m_Script.DoString(sstr.Value));
     }
     return(m_Script.Null);
 }
コード例 #12
0
        public override void Read(ref List <ScriptLine> list, ref int start, ref int end, ref ScriptString function)
        {
            var wilds = new List <ScriptWild> {
                new ScriptWord(new ScriptString("if", Program.ScriptsFolder + "60302262020"))
            };

            end--;
            var  stack = new Stack <string>();
            bool expectingCondition   = true;
            bool expectingInstruction = false;

            while (++end < function.Length)
            {
                char chr = (char)function[end];

                // Skip whitespaces, since the parsing is done mostly done in the separate loops below.
                if (char.IsWhiteSpace(chr))
                {
                    continue;
                }

                if (expectingCondition)
                {
                    // <<Expecting Condition>>
                    if (chr == '(')
                    {
                        stack.Push("(\\)");
                    }
                    else
                    {
                        throw new Compiler.SyntaxException("Expected '(...)' after keyword 'if'.", Compiler.CurrentScriptTrace);
                    }
                    start = end;
                    // Find the end of the condition parenthesies.
                    while (++end < function.Length)
                    {
                        chr = (char)function[end];
                        if (ScriptLine.IsBlockCharStart(chr, out string block))
                        {
                            // Start a new block.
                            stack.Push(block);
                        }
                        else if (ScriptLine.IsBlockCharEnd(chr, out block))
                        {
                            // End the current block.
                            string b = stack.Pop();
                            if (block != b)
                            {
                                throw new Compiler.SyntaxException($"Expected '{b[2]}', but got '{block[2]}'.", Compiler.CurrentScriptTrace);
                            }
                            if (stack.Count == 0) /* <<End of Conditional>> */ break {
                                ;
                            }
                        }
                    }
                    // Get the full conditional as a string.
                    ScriptString s = function[start..(end + 1)];
コード例 #13
0
 public object Call(ScriptObject[] args)
 {
     if (args[0].IsString)
     {
         ScriptString str = args[0] as ScriptString;
         return(m_Script.LoadSearchPathFile(str.Value));
     }
     return(m_Script.Null);
 }
コード例 #14
0
            public object Call(ScriptObject[] args)
            {
                ScriptString str = args[0] as ScriptString;

                if (str == null)
                {
                    throw new ExecutionException("import_type 参数必须是 string");
                }
                return(m_script.LoadType(str.Value));
            }
コード例 #15
0
        private ScriptObject ParseEval(CodeEval eval)
        {
            ScriptString str = this.ResolveOperand(eval.EvalObject) as ScriptString;

            if (str == null)
            {
                throw new ExecutionException(this.m_script, "Eval参数必须是一个字符串");
            }
            return(this.m_script.LoadString("", str.Value, this, false));
        }
コード例 #16
0
        ScriptObject ParseEval(CodeEval eval)
        {
            ScriptString obj = ResolveOperand(eval.EvalObject) as ScriptString;

            if (obj == null)
            {
                throw new ExecutionException(m_script, "Eval参数必须是一个字符串");
            }
            return(m_script.LoadString("", obj.Value, this, false));
        }
コード例 #17
0
            public object Call(ScriptObject[] args)
            {
                ScriptString str = args[0] as ScriptString;

                if (str == null)
                {
                    throw new ExecutionException("load_assembly 参数必须是 string");
                }
                m_script.PushAssembly(Assembly.Load(str.Value));
                return(null);
            }
コード例 #18
0
        public void SetLightColor(ScriptNumber lightId, ScriptString value)
        {
            Logger.InfoFormat("Setting light #{0} color to '{1}'", lightId, value);
            var cgPoint = HueColorConverter.XyFromColor(value.ToPrimitiveString().Replace(" ", ""));

            _lightService.SetLightStateAsync(lightId.ToPrimitiveInt32(), new
            {
                on = true,  // cannot modify color when light is off
                xy = new[] { cgPoint.x, cgPoint.y }
            });
        }
コード例 #19
0
        ScriptObject ParseAssign(CodeAssign assign)
        {
            if (assign.AssignType == TokenType.Assign)
            {
                var ret = ResolveOperand(assign.value);
                SetVariable(assign.member, ret);
                return(ret);
            }
            else
            {
                ScriptObject obj = GetVariable(assign.member);
                ScriptString str = obj as ScriptString;
                if (str != null)
                {
                    if (assign.AssignType == TokenType.AssignPlus)
                    {
                        return(str.AssignPlus(ResolveOperand(assign.value)));
                    }
                    else
                    {
                        throw new ExecutionException("string类型只支持[+=]赋值操作");
                    }
                }
                ScriptNumber num = obj as ScriptNumber;
                if (num != null)
                {
                    ScriptNumber right = ResolveOperand(assign.value) as ScriptNumber;
                    if (right == null)
                    {
                        throw new ExecutionException("[+= -=...]值只能为 number类型");
                    }
                    switch (assign.AssignType)
                    {
                    case TokenType.AssignPlus:
                        return(num.AssignPlus(right));

                    case TokenType.AssignMinus:
                        return(num.AssignMinus(right));

                    case TokenType.AssignMultiply:
                        return(num.AssignMultiply(right));

                    case TokenType.AssignDivide:
                        return(num.AssignDivide(right));

                    case TokenType.AssignModulo:
                        return(num.AssignModulo(right));
                    }
                }
                throw new ExecutionException("[+= -=...]左边值只能为number或者string");
            }
        }
コード例 #20
0
    public bool Read(ref NetInputBuffer iStream)
    {
        if (iStream.ReadUint(ref m_idNPC) != sizeof(uint))
        {
            return(false);
        }

        if (iStream.ReadInt(ref m_idScript) != sizeof(int))
        {
            return(false);
        }

        if (iStream.ReadInt(ref m_idMission) != sizeof(int))
        {
            return(false);
        }

        if (iStream.ReadByte(ref m_yTextCount) != sizeof(byte))
        {
            return(false);
        }

        if (iStream.ReadInt(ref m_IsPush) != sizeof(int))
        {
            return(false);
        }

        for (byte i = 0; i < m_yTextCount; i++)
        {
            m_aText[i] = new ScriptString();
            if (!m_aText[i].Read(ref iStream))
            {
                return(false);
            }
        }

        if (iStream.ReadByte(ref m_yBonusCount) != sizeof(byte))
        {
            return(false);
        }

        for (byte i = 0; i < m_yBonusCount; i++)
        {
            m_aBonus[i] = new SMissionBonus();
            if (!m_aBonus[i].Read(ref iStream))
            {
                return(false);
            }
        }

        return(true);
    }
コード例 #21
0
        public ScriptString SendNotificationToUser(ScriptNumber priority, ScriptString user, ScriptString title, ScriptString message, ScriptString sound)
        {
            var response = PushMessage(
                user.ToPrimitiveString(),
                title.ToPrimitiveString(),
                priority.ToPrimitiveInt32(),
                message.ToPrimitiveString(),
                sound.ToPrimitiveString()
                );

            ProcessResponse(response);

            return(new ScriptString(response.ErrorMessage ?? response.Content));
        }
コード例 #22
0
        private static string?TranslateString(ScriptString @string)
        {
            string?translation = null;  //DB.TranslatedStrings.Get(@string.Value, @string.Key.Path);

            if (translation != null)
            {
                IdManager.Transleated.AddLast(translation);
            }
            else
            {
                IdManager.NotTransleated.AddLast(@string.Value);
            }

            return(translation);
        }
コード例 #23
0
    public bool Read(ref NetInputBuffer iStream)
    {
        if (iStream.ReadUint(ref m_idNPC) != sizeof(uint))
        {
            return(false);
        }
        if (iStream.ReadInt(ref m_idScript) != sizeof(int))
        {
            return(false);
        }
        if (iStream.ReadInt(ref m_idMission) != sizeof(int))
        {
            return(false);
        }
        if (iStream.ReadInt(ref m_bDone) != sizeof(int))
        {
            return(false);
        }
        if (iStream.ReadByte(ref m_yTextCount) != sizeof(byte))
        {
            return(false);
        }

        for (int i = 0; i < m_yTextCount; i++)
        {
            m_aText[i] = new ScriptString();
            m_aText[i].Read(ref iStream);
        }

        if (iStream.ReadByte(ref m_yDemandCount) != sizeof(byte))
        {
            return(false);
        }

        for (int i = 0; i < m_yDemandCount; i++)
        {
            m_aDemandItem[i] = new SMissionBonusItem();
            m_aDemandItem[i].Read(ref iStream);
        }

        return(true);
    }
コード例 #24
0
ファイル: Misc.cs プロジェクト: rotators/fomono
 public void RadioMessage(ushort channel, string text)
 {
     var ss = new ScriptString(text);
     Global_RadioMessage(channel, ss.ThisPtr);
 }
コード例 #25
0
 public virtual void Say(Say how_say, string text, params object[] args)
 {
     var ss = new ScriptString(string.Format(text, args));
     Crit_Say(thisptr, (byte)how_say, ss.ThisPtr);
 }
コード例 #26
0
ファイル: AnyData.cs プロジェクト: rotators/fomono
 public bool Set(string name, int[] data)
 {
     var ss = new ScriptString(name);
     return Global_SetAnyData(ss.ThisPtr, new IntArray(data).ThisPtr);
 }
コード例 #27
0
ファイル: Map.NativeMethods.cs プロジェクト: rotators/fomono
 public virtual void PlaySound(string sound_name, ushort hx, ushort hy, uint radius)
 {
     var ss = new ScriptString(sound_name);
     Map_PlaySoundRadius(thisptr, ss.ThisPtr, hx, hy, radius);
 }
コード例 #28
0
 public ScriptField(string alias, string type, Access access, Usage usage, ScriptObject declarer, ScriptString phrase, Compiler.Scope scope)
     : this(alias, type, access, usage, declarer, new ScriptWild(ScriptLine.GetWilds(phrase).Array, "(\\)", ' '), scope)
 {
 }
コード例 #29
0
ファイル: Map.NativeMethods.cs プロジェクト: rotators/fomono
 public virtual void SetText(ushort hx, ushort hy, uint color, string text)
 {
     var ss = new ScriptString(text);
     Map_SetText(thisptr, hx, hy, color, ss.ThisPtr);
 }
コード例 #30
0
ファイル: Logging.cs プロジェクト: rotators/fomono
 public void Log(string s)
 {
     var ss = new ScriptString(s + Environment.NewLine);
     Global_Log(ss.ThisPtr);
 }
コード例 #31
0
 public virtual void ShowScreen(Screen screen_type, uint param, string func_name)
 {
     var ss = new ScriptString(func_name);
     Cl_ShowScreen(thisptr, (int)screen_type, param, ss.ThisPtr);
 }
コード例 #32
0
 public void Send(ScriptString data)
 {
     this.Send(data.ToPrimitiveString());
 }
コード例 #33
0
 public virtual void Say(Say how_say, string text)
 {
     var ss = new ScriptString(text);
     Crit_Say(thisptr, (byte)how_say, ss.ThisPtr);
 }
コード例 #34
0
 public void SetText(ScriptString pstrSection)
 {
     m_nType     = ENUM_EVENT_ITEM_TYPE.EVENT_ITEM_TYPE_TEXT;
     m_strString = pstrSection;
 }
コード例 #35
0
 public void SetSection(ScriptString pstrSection)
 {
     m_nType     = ENUM_EVENT_ITEM_TYPE.EVENT_ITEM_TYPE_SECTION;
     m_strString = pstrSection;
 }
コード例 #36
0
 public virtual void SayMsg(Say how_say, ushort text_msg, uint str_num, string lexems)
 {
     var ss = new ScriptString(lexems);
     Crit_SayMsgLex(thisptr, (byte)how_say, text_msg, str_num, ss.ThisPtr);
 }
コード例 #37
0
ファイル: Tests.cs プロジェクト: wladimiiir/vault112
        public static void Tests_GlobalFunctions()
        {
            var module_ = ScriptEngine.GetModule("test", asEGMFlags.asGM_ALWAYS_CREATE);
            module_.AddScriptSection("GlobalFunctions", @"
            int One()
            {
            return 1;
            }
            bool SomeTest(int i)
            {
            return i % 2 == 0;
            }
            float Square(float x)
            {
            return x * x;
            }
            int RefFunc(string& s)
            {
            return s.length();
            }
            int HandleFunc(string@ s)
            {
            return s.length();
            }
            shared interface IFoo
            {
            int get_Prop();
            }
            class CFoo : IFoo
            {
            CFoo(int i) { this.i = i; }
            int i;
            int get_Prop() { return i; }
            }
            IFoo@ GetAsInterface(int i) { return CFoo(i); }
            CFoo@ GetNull() { return null; }
            ");
            module_.Build();

            dynamic module = module_ as dynamic;
            assert (module.One() == 1, "Calling parameterless function");
            assert (module.SomeTest(2), "Calling func returning true");
            assert (!module.SomeTest(3), "Calling func returning false");
            assert (module.Square(1.2f) == 1.44f, "Calling float function");

            var s = new ScriptString("hello");
            assert (module.RefFunc(s) == 5, "Calling byref function");
            assert (module.HandleFunc(s) == 5, "Calling handle function");

            assert (module.GetAsInterface(2) != null, "Calling function returning script object");
            assert(module.GetNull() == null, "Caling null returning function");
        }
コード例 #38
0
ファイル: Misc.cs プロジェクト: rotators/fomono
 public void RadioMessageMsg(ushort channel, ushort text_msg, uint str_num, string lexems)
 {
     var ss = new ScriptString(lexems);
     Global_RadioMessageMsgLex(channel, text_msg, str_num, ss.ThisPtr);
 }
コード例 #39
0
ファイル: Map.NativeMethods.cs プロジェクト: rotators/fomono
 public virtual void PlaySound(string sound_name)
 {
     var ss = new ScriptString(sound_name);
     Map_PlaySound(thisptr, ss.ThisPtr);
 }
コード例 #40
0
 public virtual void PlaySound(string sound_name, bool send_self)
 {
     var ss = new ScriptString(sound_name);
     Crit_PlaySound(thisptr, ss.ThisPtr, send_self);
 }
コード例 #41
0
ファイル: Map.NativeMethods.cs プロジェクト: rotators/fomono
 public virtual void SetTextMsgLex(ushort hx, ushort hy, uint color, ushort text_msg, uint str_num, string lexems)
 {
     var ss = new ScriptString(lexems);
     Map_SetTextMsgLex(thisptr, hx, hy, color, text_msg, str_num, ss.ThisPtr);
 }
コード例 #42
0
ファイル: Logging.cs プロジェクト: rotators/fomono
 public void Log(string s, params object[] args)
 {
     var ss = new ScriptString(string.Format(s + Environment.NewLine, args));
     Global_Log(ss.ThisPtr);
 }
コード例 #43
0
ファイル: AnyData.cs プロジェクト: rotators/fomono
 public void Erase(string name)
 {
     var ss = new ScriptString(name);
     Global_EraseAnyData(ss.ThisPtr);
 }
コード例 #44
0
ファイル: Map.NativeMethods.cs プロジェクト: rotators/fomono
 public virtual bool SetScript(string script)
 {
     var ss = new ScriptString(script);
     return Map_SetScript(thisptr, ss.ThisPtr);
 }
コード例 #45
0
ファイル: AnyData.cs プロジェクト: rotators/fomono
 public bool Get(string name, IntArray data)
 {
     var ss = new ScriptString(name);
     return Global_GetAnyData(ss.ThisPtr, data.ThisPtr);
 }
コード例 #46
0
    //譜面読み込み
    void SonglistReadin()
    {
        TextAsset textasset = new TextAsset();

        textasset = Resources.Load("SONGS/" + SongKeyword + "." + SongHard, typeof(TextAsset)) as TextAsset;
        string TextLines = textasset.text;

        TextLines = ScriptString.RemoveSlash(TextLines);    //コメントの場所を取り除く
        //TextLines = ScriptString.RemoveSpace(TextLines);    //スペースがある場所を取り除く
        TextLines = ScriptString.RemoveTab(TextLines);      //タッブがある場所を取り除く
        TextLines = ScriptString.RemoveEnter(TextLines);    //複数のエンターの場所を取り除く
        string[] s = TextLines.Split('\n');

        drbfile.onpuWeightCount = 0;

        for (int i = 0; i < s.Length; i++)
        {
            //空き行を抜く
            if (s[i] == "")
            {
                continue;
            }
            //命令行を認識
            if (s[i].Substring(0, 1) == "#")
            {
                //OFFSET認識
                if (s[i].Substring(0, Mathf.Min(s[i].Length, "#OFFSET".Length)) == "#OFFSET")
                {
                    string ss = s[i];
                    ss             = ss.Replace("#OFFSET=", "");
                    ss             = ss.Replace(";", "");
                    drbfile.offset = float.Parse(ss);
                }
                //BEAT認識
                if (s[i].Substring(0, Mathf.Min(s[i].Length, "#BEAT".Length)) == "#BEAT")
                {
                    string ss = s[i];
                    ss           = ss.Replace("#BEAT=", "");
                    ss           = ss.Replace(";", "");
                    drbfile.beat = float.Parse(ss);
                }
                //BPM_NUMBER認識
                //if (s[i].Substring(0, "#BPM_NUMBER".Length) == "#BPM_NUMBER")
                //{
                //    string ss = s[i];
                //    ss = ss.Replace("#BPM_NUMBER=", "");
                //    ss = ss.Replace(";", "");
                //    drbfile.bpms = new List<BPMS>();
                //}
                //SCN認識
                //if (s[i].Substring(0, "#SCN".Length) == "#SCN")
                //{
                //    string ss = s[i];
                //    ss = ss.Replace("#SCN=", "");
                //    ss = ss.Replace(";", "");
                //    drbfile.scns = new List<SCNS>();
                //}
                //BPM [i]認識
                if (s[i].Substring(0, Mathf.Min(s[i].Length, ("#BPM [" + drbfile.bpms.Count + "]").Length)) == ("#BPM [" + drbfile.bpms.Count + "]"))
                {
                    string ss  = s[i];
                    string ss2 = s[i + 1];
                    ss  = ss.Replace("#BPM [" + drbfile.bpms.Count + "]=", "");
                    ss  = ss.Replace(";", "");
                    ss2 = ss2.Replace("#BPMS[" + drbfile.bpms.Count + "]=", "");
                    ss2 = ss2.Replace(";", "");
                    BPMS bpms = new BPMS();
                    bpms.bpm  = float.Parse(ss);
                    bpms.bpms = float.Parse(ss2);
                    drbfile.bpms.Add(bpms);
                }
                //SC [i]認識
                if (s[i].Substring(0, Mathf.Min(s[i].Length, ("#SC [" + drbfile.scns.Count + "]").Length)) == ("#SC [" + drbfile.scns.Count + "]"))
                {
                    string ss  = s[i];
                    string ss2 = s[i + 1];
                    ss  = ss.Replace("#SC [" + drbfile.scns.Count + "]=", "");
                    ss  = ss.Replace(";", "");
                    ss2 = ss2.Replace("#SCI[" + drbfile.scns.Count + "]=", "");
                    ss2 = ss2.Replace(";", "");
                    SCNS sc = new SCNS();
                    sc.sc  = float.Parse(ss);
                    sc.sci = float.Parse(ss2);
                    drbfile.scns.Add(sc);
                }

                //NoteDesigner認識;
                if (s[i].Substring(0, Mathf.Min(s[i].Length, "#NDNAME".Length)) == "#NDNAME")
                {
                    string ss = s[i];
                    ss             = ss.Replace("#NDNAME=", "");
                    ss             = ss.Replace(";", "");
                    ss             = ss.Replace("\'", "");
                    drbfile.ndname = ss;
                }
            }
            //ノーツ行を認識
            else
            {
                //Notesデータ取得
                string   ss   = s[i].Replace("<", "");
                string[] sss  = ss.Substring(0, ss.Length - 2).Split('>');
                TheOnpu  onpu = new TheOnpu();
                onpu.id   = int.Parse(sss[0]);
                onpu.kind = int.Parse(sss[1]);
                if (onpu.kind == 12)
                {
                    onpu.kind = 6;
                }
                if (onpu.kind == 8)
                {
                    onpu.kind = 7;
                }
                onpu.ichi     = float.Parse(sss[2]);
                onpu.pos      = float.Parse(sss[3]);
                onpu.width    = float.Parse(sss[4]);
                onpu.nsc      = sss[5];
                onpu.isnadnsc = sss[5].Contains(":");
                if (!onpu.isnadnsc)
                {
                    onpu.insc = float.Parse(sss[5]);
                }
                onpu.insc   = onpu.insc == 0.0f ? 1.0f : onpu.insc;
                onpu.parent = int.Parse(sss[6]);
                if (sss.Length > 7)
                {
                    onpu.mode = sss[7];
                }
                else
                {
                    onpu.mode = "n";
                }
                if (onpu.mode == "P")
                {
                    onpu.isnadnsc = true;
                }

                //ミラー処理
                if (GameMirror)
                {
                    onpu.pos = 16 - onpu.pos - onpu.width;
                    if (onpu.kind == 13 || onpu.kind == 14)
                    {
                        onpu.kind = onpu.kind == 13 ? 14 : 13;
                    }
                }

                drbfile.onpu.Add(onpu);

                drbfile.onpuWeightCount += OnpuWeight[onpu.kind];
            }
        }
    }
コード例 #47
0
ファイル: AnyData.cs プロジェクト: rotators/fomono
 public bool IsAnyData(string name)
 {
     var ss = new ScriptString(name);
     return Global_IsAnyData(ss.ThisPtr);
 }
コード例 #48
0
 public virtual bool Misc_SetScript(string func_name)
 {
     var ss = new ScriptString(func_name);
     return NpcPlane_Misc_SetScript(thisptr, ss.ThisPtr);
 }
コード例 #49
0
ファイル: Tests.cs プロジェクト: wladimiiir/vault112
 public static void asAssert(bool cond, IntPtr msg)
 {
     var ss = new ScriptString(msg);
     Assert(cond, ss.ToString());
 }
コード例 #50
0
 public void SendLine(ScriptString data)
 {
     this.Send(data.ToPrimitiveString() + this._newLineString);
 }
コード例 #51
0
 public virtual void RunClientScript(string func_name, int p0, int p1, int p2, string p3, IntArray p4)
 {
     var func_name_ = new ScriptString(func_name);
     var p3_ = p3 != null ? new ScriptString(p3) : null;
     Cl_RunClientScript(thisptr, func_name_.ThisPtr, p0, p1, p2,
         p3_ != null ? p3_.ThisPtr : IntPtr.Zero,
         p4 != null ? p4.ThisPtr : IntPtr.Zero);
 }
コード例 #52
0
 public void SendBytes(ScriptString hexData)
 {
     this.SendBytes(this.hexStringToByteArray((string)hexData));
 }
コード例 #53
0
ファイル: Item.NativeMethods.cs プロジェクト: rotators/fomono
 public virtual void SetLexems(string lexems)
 {
     var ss = new ScriptString(lexems);
     Item_SetLexems(thisptr, ss.ThisPtr);
 }