コード例 #1
0
    /// <summary>
    /// Entry point for your mod.
    /// </summary>
    public void StartEx(IModLoaderV1 loaderApi, IModConfigV1 modConfig)
    {
        _modLoader = (IModLoader)loaderApi;
        _modConfig = (IModConfig)modConfig;
        _logger    = (ILogger)_modLoader.GetLogger();
        _modLoader.GetController <IReloadedHooks>()?.TryGetTarget(out _hooks !);
#if (IncludeConfig)
        // Your config file is in Config.json.
        // Need a different name, format or more configurations? Modify the `Configurator`.
        // If you do not want a config, remove Configuration folder and Config class.
        var configurator = new Configurator(_modLoader.GetModConfigDirectory(_modConfig.ModId));
        _configuration = configurator.GetConfiguration <Config>(0);
        _configuration.ConfigurationUpdated += OnConfigurationUpdated;
#endif

        // Please put your mod code in the class below,
        // use this class for only interfacing with mod loader.
        _mod = new Mod(new ModContext()
        {
            Logger    = _logger,
            Hooks     = _hooks,
            ModLoader = _modLoader,
            ModConfig = _modConfig,
            Owner     = this,
#if (IncludeConfig)
            Configuration = _configuration,
#endif
        });
    }
コード例 #2
0
ファイル: Program.cs プロジェクト: Tupelov/Game-Patches
        /// <summary>
        /// Entry point for your mod.
        /// </summary>
        public void StartEx(IModLoaderV1 loaderApi, IModConfigV1 modConfig)
        {
#if DEBUG
            // Attaches debugger in debug mode; ignored in release.
            //Debugger.Launch();
#endif

            _modLoader = (IModLoader)loaderApi;
            _modConfig = (IModConfig)modConfig;
            _logger    = (ILogger)_modLoader.GetLogger();
            _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks !);

            // Your config file is in Config.json.
            // Need a different name, format or more configurations? Modify the `Configurator`.
            // If you do not want a config, remove Configuration folder and Config class.
            var configurator = new Configurator(_modLoader.GetModConfigDirectory(_modConfig.ModId));
            _configuration = configurator.GetConfiguration <Config>(0);
            _configuration.ConfigurationUpdated += OnConfigurationUpdated;

            /*
             *      Your mod code starts below.
             *      Visit https://github.com/Reloaded-Project for additional optional libraries.
             */
            _mod = new Mod(_hooks, _logger);
        }
コード例 #3
0
        public unsafe void Start(IModLoaderV1 loader)
        {
            _modLoader    = (IModLoader)loader;
            _logger       = (ILogger)_modLoader.GetLogger();
            _modDirectory = _modLoader.GetDirectoryForModId(ThisModId);

            /* Your mod code starts here. */
            _modLoader.OnModLoaderInitialized += OnModLoaderInitialized;
            _setupColourizer = Task.Run(() =>
            {
                _configurator = new Configurator(_modDirectory);
                _config       = _configurator.GetConfiguration <Config.Config>(0);
                _config.ConfigurationUpdated += configurable =>
                {
                    _config = (Config.Config)configurable;
                    _logger.WriteLine("[Colorizer] Config file changed. Cancelling current effects and applying new.", _logger.ColorGreenLight);
                    lock (_lock)
                    {
                        CancelAll();
                        Initialize();
                    }
                };

                Initialize();
            });
        }
コード例 #4
0
        public StageCollection(IModLoader loader)
        {
            _modLoader            = loader;
            _logger               = (ILogger)_modLoader.GetLogger();
            _redirectorController = _modLoader.GetController <IRedirectorController>();
            _initPathHook         = Fun_InitializeSplines.Hook(InitSplineImpl).Activate();
            _getEndPositionHook   = Fun_GetEndPosition.Hook(GetEndPositionImpl).Activate();
            _getBragPositionHook  = Fun_GetIntroPosition.Hook(GetBragPositionImpl).Activate();
            _getStartPositionHook = Fun_GetStartPosition.Hook(GetStartPositionImpl).Activate();

            // Populate Default Stages
            foreach (var stageId in (Stage[])Enum.GetValues(typeof(Stage)))
            {
                // Rail Canyon for Chaotix
                var stage = stageId != Stage.RailCanyonChaotix
                                     ? new DefaultStage(stageId)
                                     : new DefaultStage(Stage.RailCanyon);

                _allStages.Add(stage);
            }

            // Temporary crash workaround for SET objects beyond default limits.
            var crashWorkaround = new[]
            {
                "use32",
                "mov edi, dword [esp + 0x58]", // Take pointer to object list from function parameters.
                "mov [0xA2CF70], dword edi"
            };

            _setLimitCrashWorkaround = SDK.ReloadedHooks.CreateAsmHook(crashWorkaround, 0x43D1EA, AsmHookBehaviour.ExecuteFirst).Activate();
        }
コード例 #5
0
        /// <summary>
        /// Entry point for your mod.
        /// </summary>
        public void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            Logger     = (ILogger)_modLoader.GetLogger();

            _postProcess          = new PostProcess(_modLoader.GetDirectoryForModId(MyModId));
            _modLoader.ModLoaded += ModLoaded;
            SetupController();
        }
コード例 #6
0
        /// <summary>
        /// Entry point for your mod.
        /// </summary>
        public void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            _logger    = (ILogger)_modLoader.GetLogger();
            _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks);

            /* Your mod code starts here. */
            _mod = new Mod(_logger, _hooks);
        }
        /// <summary>
        /// Entry point for your mod.
        /// </summary>
        public void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            _logger    = (ILogger)_modLoader.GetLogger();
            _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks);

            // Your config file is in Config.json.
            _hook = new DInputHook(_hooks);
        }
コード例 #8
0
        /// <summary>
        /// Entry point for your mod.
        /// </summary>
        public async void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            _logger    = (ILogger)_modLoader.GetLogger();
            _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks);

            /* Your mod code starts here. */
            SDK.Init(_hooks);
            _imguiHook = await ImguiHook.Create(RenderTestWindow);
        }
コード例 #9
0
        /// <summary>
        /// Entry point for your mod.
        /// </summary>
        public void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            Logger     = (ILogger)_modLoader.GetLogger();

            /* Your mod code starts here. */
            _xInput = new XInput(_modLoader.GetDirectoryForModId(MyModId));
            _modLoader.ModLoaded += ModLoaded;
            SetupController();
        }
コード例 #10
0
        public void Start(IModLoaderV1 loader)
        {
            #if DEBUG
            Debugger.Launch();
            #endif
            _modLoader = (IModLoader)loader;
            _logger    = (ILogger)_modLoader.GetLogger();

            // Auto-subscribe on loaded redirector.
            _modLoader.ModLoaded += ModLoaded;
            SetupEventFromRedirector();
        }
コード例 #11
0
        public void Start(IModLoaderV1 loader)
        {
            ModLoader = (IModLoader)loader;
            ModLoader.GetController <IReloadedHooks>().TryGetTarget(out var hooks);
            Hooks = hooks;

            /* Your mod code starts here. */
            var logger = (ILogger)ModLoader.GetLogger();

            SDK.Init(Hooks, new PrsInstance());
            _server = new Server(logger);
        }
コード例 #12
0
        public StageCollection(IModLoader loader, IReloadedHooks hooks)
        {
            _modLoader            = loader;
            _logger               = (ILogger)_modLoader.GetLogger();
            _redirectorController = _modLoader.GetController <IRedirectorController>();
            _hooks = new Hooks.Hooks(hooks, InitSplineImpl, GetStartPositionImpl, GetEndPositionImpl, GetBragPositionImpl);

            // Populate Default Stages
            foreach (StageId stageId in (StageId[])Enum.GetValues(typeof(StageId)))
            {
                _allStages.Add(new DefaultStage(stageId));
            }
        }
コード例 #13
0
        public void Start(IModLoaderV1 loader)
        {
            #if DEBUG
            Debugger.Launch();
            #endif
            ModLoader = (IModLoader)loader;
            Logger    = (ILogger)ModLoader.GetLogger();

            /* Your mod code starts here. */
            _postProcess         = new PostProcess(ModLoader.GetDirectoryForModId(MyModId));
            ModLoader.ModLoaded += ModLoaded;
            SetupController();
        }
コード例 #14
0
        /// <summary>
        /// Entry point for your mod.
        /// </summary>
        public void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            _logger    = (ILogger)_modLoader.GetLogger();
            _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks);
            _modLoader.GetController <IReloadedHooksUtilities>().TryGetTarget(out _hooksUtilities);

            /* Your mod code starts here. */
            SDK.Init(_hooks);
            _hook            = new ControllerHook(_hooks);
            _fourPlayerPatch = new FourPlayerPatch(_hooks, _hooksUtilities);
            _modLoader.AddOrReplaceController <IControllerHook>(this, _hook);
        }
コード例 #15
0
ファイル: Program.cs プロジェクト: Sewer56/SA2TeamDark
        public void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            _logger    = (ILogger)_modLoader.GetLogger();

            /* Your mod code starts here. */
            var modFolder     = _modLoader.GetDirectoryForModId(ModId);
            var configurator  = new Configurator(modFolder);
            var configuration = configurator.GetConfiguration <Config>(0);
            var redirector    = _modLoader.GetController <IRedirectorController>();

            _swapper = new CharacterSwapper(_logger, configuration, modFolder, redirector);

            _modLoader.ModLoaded += OnRedirectorLoaded;
        }
コード例 #16
0
        public void Start(IModLoaderV1 loader)
        {
            #if DEBUG
            Debugger.Launch();
            #endif
            ModLoader = (IModLoader)loader;
            Logger    = (ILogger)ModLoader.GetLogger();

            /* Your mod code starts here. */
            string modDirectory = ModLoader.GetDirectoryForModId(MyModId);

            _xInput              = new XInput(modDirectory);
            ModLoader.ModLoaded += ModLoaded;
            SetupController();
        }
コード例 #17
0
        public void Start(IModLoaderV1 loader)
        {
            #if DEBUG
            Debugger.Launch();
            #endif
            ModLoader = (IModLoader)loader;
            Logger    = (ILogger)ModLoader.GetLogger();

            ModLoader.GetController <IReloadedHooks>().TryGetTarget(out ReloadedHooks);
            SDK.SDK.Init(ReloadedHooks, null);

            /* Your mod code starts here. */
            _hook = new ControllerHook(ModLoader.GetDirectoryForModId(ThisModId));
            ModLoader.AddOrReplaceController <IControllerHook>(this, _hook);
        }
コード例 #18
0
        public void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            Logger     = (ILogger)_modLoader.GetLogger();

            // Your config file is in Config.json.
            // Need more configurations? See `_configurator.MakeConfigurations`
            _configurator = new Configurator(_modLoader.GetDirectoryForModId(ModId));
            Configuration = _configurator.GetConfiguration <Config>(0);
            Configuration.ConfigurationUpdated += OnConfigurationUpdated;

            /* Your mod code starts here. */
            _twitchBot.Connect();
            EnableHooks();
        }
コード例 #19
0
    public void Start(IModLoaderV1 loader)
    {
        _modLoader = (IModLoader)loader;

        // Print controls.
        var logger = (ILogger)_modLoader.GetLogger();

        logger.WriteLine(Freecam.Controls);

        // Handle controller hook load and unload.
        _modLoader.ModUnloading += ModUnloading;
        _modLoader.ModLoading   += ModLoading;

        /* Your mod code starts here. */
        Initialize();
    }
コード例 #20
0
        public void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            _modLoader.GetController <IReloadedHooks>().TryGetTarget(out var hooks);
            _modLoader.GetController <IPrsInstance>().TryGetTarget(out var prsInstance);
            Logger = (ILogger)_modLoader.GetLogger();
            SDK.Init(hooks, prsInstance);

            /* Your mod code starts here. */
            var configurator = new Configurator(_modLoader.GetDirectoryForModId("sonicheroes.utils.oneredirector"));
            var config       = configurator.GetConfiguration <Config>(0);

            _oneHook = new OneHook(Logger, config, NativeFunctions.GetInstance(hooks));
            _modLoader.ModLoading   += OnModLoading;
            _modLoader.ModUnloading += OnModUnloading;
        }
コード例 #21
0
        public unsafe void Start(IModLoaderV1 loader)
        {
            _modLoader    = (IModLoader)loader;
            _logger       = (ILogger)_modLoader.GetLogger();
            _modDirectory = _modLoader.GetDirectoryForModId(ThisModId);

            /* Your mod code starts here. */
            _config = Config.Config.FromJson(_modDirectory);
            _config.ToJson(_modDirectory);
            Initialize();

            var configDirectory = Path.GetDirectoryName(Config.Config.FilePath(_modDirectory));
            var fileName        = Path.GetFileName(Config.Config.FilePath(_modDirectory));

            _watcher = new FileSystemWatcher(configDirectory, fileName);
            _watcher.EnableRaisingEvents = true;
            _watcher.Changed            += WatcherOnChanged;
        }
        public void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            _logger    = (ILogger)_modLoader.GetLogger();

            /* Your mod code starts here. */

            // Your config file is in Config.json.
            // Need more configurations? See `_configurator.MakeConfigurations`
            _configurator  = new Configurator(_modLoader.GetDirectoryForModId(ModId));
            _configuration = _configurator.GetConfiguration <Config>(0);
            _configuration.ConfigurationUpdated += OnConfigurationUpdated;

            // Execute mod code.
            _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks);
            _modLoader.GetController <IReloadedHooksUtilities>().TryGetTarget(out _utilities);
            _drawDistanceHook = new DrawDistanceHook(_configuration, _hooks, _utilities);
        }
コード例 #23
0
ファイル: Program.cs プロジェクト: hixio-mh/p4gpc.modloader
        /// <summary>
        /// Entry point for your mod.
        /// </summary>
        public void Start(IModLoaderV1 loader)
        {
            _modLoader = ( IModLoader )loader;
            _logger    = ( ILogger )_modLoader.GetLogger();
            _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks);

            // Your config file is in Config.json.
            // Need a different name, format or more configurations? Modify the `Configurator`.
            // If you do not want a config, remove Configuration folder and Config class.
            var configurator = new Configurator(_modLoader.GetDirectoryForModId(MyModId));

            _configuration = configurator.GetConfiguration <Config>(0);
            _configuration.ConfigurationUpdated += OnConfigurationUpdated;

            /* Your mod code starts here. */
            _P4GPCModLoader = new P4GPCModLoader(_logger, _configuration, _hooks);
            _P4GPCModLoader.Activate();
        }
コード例 #24
0
    /// <summary>
    /// Entry point for your mod.
    /// </summary>
    public async void StartEx(IModLoaderV1 loaderApi, IModConfigV1 modConfig)
    {
        // For more information about this template, please see
        // https://reloaded-project.github.io/Reloaded-II/ModTemplate/
        _modLoader = (IModLoader)loaderApi;
        _modConfig = (IModConfig)modConfig;
        _logger    = (ILogger)_modLoader.GetLogger();

        // Your config file is in Config.json.
        // Need a different name, format or more configurations? Modify the `Configurator`.
        // If you do not want a config, remove Configuration folder and Config class.
        var configurator = new Configurator(_modLoader.GetModConfigDirectory(_modConfig.ModId));

        _configuration = configurator.GetConfiguration <Config>(0);
        _configuration.ConfigurationUpdated += OnConfigurationUpdated;

        // Start the server on another thread so we don't delay startup with JIT overhead.
        _lnlServer = await Task.Run(() => LiteNetLibServer.Create(_logger, _modLoader, _configuration));
    }
コード例 #25
0
        /// <summary>
        /// Entry point for your mod.
        /// </summary>
        public async void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            _logger    = (ILogger)_modLoader.GetLogger();
            _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks);

            /* Your mod code starts here. */
            SDK.Init(_hooks, s => { _logger.WriteLine(s); });
            await ImguiHook.Create(RenderTestWindow, new ImguiHookOptions()
            {
                EnableViewports        = true,
                IgnoreWindowUnactivate = true,
                Implementations        = new List <IImguiHook>()
                {
                    new ImguiHookDx9(),
                    new ImguiHookDx11()
                }
            }).ConfigureAwait(false);
        }
コード例 #26
0
        public void Start(IModLoaderV1 loader)
        {
            _modLoader     = (IModLoader)loader;
            _reloadedHooks = _modLoader.GetController <IReloadedHooks>();
            Logger         = (ILogger)_modLoader.GetLogger();

            /* Your mod code starts here. */
            Logger.WriteLine($"[SteamHook] Checking for {SteamAppId.FileName}.");
            if (!SteamAppId.Exists())
            {
                Logger.WriteLine($"[SteamHook] Does not exist, dropping {SteamAppId.FileName}.");
                SteamAppidDropper.DropSteamId();
            }
            else
            {
                Logger.WriteLine($"[SteamHook] Exists, not overwriting.");
            }

            _steamHook = new SteamHook(_reloadedHooks);
        }
コード例 #27
0
        public void Start(IModLoaderV1 loader)
        {
            _modLoader = (IModLoader)loader;
            _logger    = (ILogger)_modLoader.GetLogger();

            /* Your mod code starts here. */
            // Load mod asynchronously during the same time other mods load. (Newtonsoft.Json is slow on first run)
            // Then wait if necessary if mod loader is done with other mods.
            _modLoader.OnModLoaderInitialized += OnModLoaderInitialized;
            _setupPhysicsSwap = Task.Run(() =>
            {
                _modDirectory = _modLoader.GetDirectoryForModId(ThisModId);
                _config       = Config.FromJson(_modDirectory);
                _physicsMod   = new PhysicsMod();
                _physicsMod.ApplyFromConfig(_config);

                string filePath = Config.GetFilePath(_modDirectory);
                _watcher        = new FileSystemWatcher(Path.GetDirectoryName(filePath), Path.GetFileName(filePath));
                _watcher.EnableRaisingEvents = true;
                _watcher.Changed            += WatcherOnChanged;
            });
        }
コード例 #28
0
        /// <summary>
        /// Entry point for your mod.
        /// </summary>
        public void Start(IModLoaderV1 loader)
        {
            //Debugger.Launch();
            _modLoader = (IModLoader)loader;
            _logger    = (ILogger)_modLoader.GetLogger();
            _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks);

            // Your config file is in Config.json.
            // Need a different name, format or more configurations? Modify the `Configurator`.
            // If you do not want a config, remove Configuration folder and Config class.
            var configurator = new Configurator(_modLoader.GetDirectoryForModId(MyModId));

            _configuration = configurator.GetConfiguration <Config>(0);
            _configuration.ConfigurationUpdated += OnConfigurationUpdated;

            /* Your mod code starts here. */
            _memory = new Memory();
            using var thisProcess = Process.GetCurrentProcess();
            int baseAddress = thisProcess.MainModule.BaseAddress.ToInt32();

            _utils   = new Utils(_configuration, _logger, baseAddress);
            _xpShare = new XpShare(_utils, _memory, _hooks, _configuration);
        }