Пример #1
0
        public static void LoadScriptConfig(object script)
        {
            ScriptOptionContainer opts = ScriptInterface.Instance.Config = new ScriptOptionContainer();
            Type      t                = script.GetType();
            FieldInfo storageField     = t.GetField("OptionsStorage");
            FieldInfo optsField        = t.GetField("Options");
            FieldInfo dontPreconfField = t.GetField("DontPreconfigure");

            if (optsField != null)
            {
                opts.Options.AddRange((List <IOption>)optsField.GetValue(script));
            }
            if (storageField != null)
            {
                opts.Storage = (string)storageField.GetValue(script);
            }
            if (dontPreconfField != null)
            {
                _configured[opts.Storage] = (bool)dontPreconfField.GetValue(script);
            }
            else if (optsField != null)
            {
                _configured[opts.Storage] = false;
            }
            opts.SetDefaults();
            opts.Load();
        }
Пример #2
0
        public ScriptInterface()
        {
            Options   = new ScriptOptions();
            Wait      = new ScriptWait();
            Player    = new ScriptPlayer();
            Monsters  = new ScriptMonsters();
            Inventory = new ScriptInventory();
            Bank      = new ScriptBank();
            Map       = new ScriptMap();
            Quests    = new ScriptQuests();
            Shops     = new ScriptShops();
            Skills    = new ScriptSkills();
            Runtime   = new ScriptRuntimeVars();
            Stats     = new ScriptBotStats();
            Events    = new ScriptEvents();
            Config    = new ScriptOptionContainer();
            Drops     = new ScriptDrops();

            FlashUtil.FlashCall += HandleFlashCall;

            _timerThread = new Thread(_TimerThread)
            {
                Name = "Script Timer"
            };
        }
Пример #3
0
        public static void LoadScriptConfig(object script)
        {
            ScriptOptionContainer opts = ScriptInterface.Instance.Config = new ScriptOptionContainer();
            Type      t                = script.GetType();
            FieldInfo storageField     = t.GetField("OptionsStorage");
            FieldInfo optsField        = t.GetField("Options");
            FieldInfo multiOptsField   = t.GetField("MultiOptions");
            FieldInfo dontPreconfField = t.GetField("DontPreconfigure");

            if (multiOptsField != null)
            {
                List <FieldInfo> multiOpts = new List <FieldInfo>();
                foreach (string optField in (string[])multiOptsField.GetValue(script))
                {
                    FieldInfo fi = t.GetField(optField);
                    if (fi != null)
                    {
                        multiOpts.Add(fi);
                    }
                }
                foreach (FieldInfo opt in multiOpts)
                {
                    List <IOption> parsedOpt = (List <IOption>)opt.GetValue(script);
                    parsedOpt.ForEach(o => o.Category = opt.Name);
                    opts.MultipleOptions.Add(opt.Name, parsedOpt);
                }
            }
            if (optsField != null)
            {
                opts.Options.AddRange((List <IOption>)optsField.GetValue(script));
            }
            if (storageField != null)
            {
                opts.Storage = (string)storageField.GetValue(script);
            }
            if (dontPreconfField != null)
            {
                _configured[opts.Storage] = (bool)dontPreconfField.GetValue(script);
            }
            else if (optsField != null)
            {
                _configured[opts.Storage] = false;
            }
            opts.SetDefaults();
            opts.Load();
        }