GithubHelp home page GithubHelp logo

Comments (12)

MedievalSp avatar MedievalSp commented on June 16, 2024 3

@Pipole26 https://drive.google.com/uc?id=1An6ICPxGdCFop-CFkDPbFe90ZoHyYpQD

Here is my fork https://github.com/MedievalSp/Deceive

Disclaimer: This is not officially supported by the owner of the project. Any patch of Deceive will overwrite this file.

Cheers,

from deceive.

MedievalSp avatar MedievalSp commented on June 16, 2024 2

I found a workaround to make deceiver work and keep the language settings... It turns out that what forces the languages overrides in LeagueClientSettings.yaml is the dumb RiotClient.exe launching the LeagueClient.exe

So the idea is simple: let Deceive launch and hook to RiotClient.exe WITHOUT the game parameter, then the code launches a LeagueClient.exe instance. Not very stylish, but this works fine on my end.

From Line 135 in StartupHandler.cs:

        // Step 4: Launch Riot Client (+game)
        var startArgs = new ProcessStartInfo { FileName = riotClientPath, Arguments = $"--client-config-url=\"http://127.0.0.1:{proxyServer.ConfigPort}\"" };

        // *** Modification Starts *** //
        // This argument causes RiotClient to autostart LOL causing custom languages settings to get blown up.
        //if (launchProduct is not null)
        //    startArgs.Arguments += $" --launch-product={launchProduct} --launch-patchline={gamePatchline}";

        //Pass any custom params used in deceive.exe --riot-client-params=""
        if (riotClientParams is not null)
            startArgs.Arguments += $" {riotClientParams}";

        // Pass any custom params used in deceive.exe --game-params=""
        if (gameParams is not null)
            startArgs.Arguments += $" -- {gameParams}";

        Trace.WriteLine($"About to launch Riot Client with parameters:\n{startArgs.Arguments}");
        var riotClient = Process.Start(startArgs);

        // Get LeagueClient.exe path
        var LeagueClientPath = riotClientPath.Replace("Riot Client/RiotClientServices.exe", "League of Legends/LeagueClient.exe");

        // Nasty, but the only way I could get this to work was to wait for the actual Riot Client to complete bootstrapping
        await Task.Delay(2000);

        // Launch LeagueClient manually without any params. This method preserves the language settings in LeagueClientSettings.yaml
        Process.Start(LeagueClientPath);
        
        // *** Modification Ends *** //

        // Kill Deceive when Riot Client has exited, so no ghost Deceive exists.
        if (riotClient is not null)
        {
            ListenToRiotClientExit(riotClient);

        }

Proof of concept: this is LAN server with English language.

image

from deceive.

Pipole26 avatar Pipole26 commented on June 16, 2024 1

I believe this is happening every time you close RiotClientServices.exe, using Deceive or not. Riot did something.

So for example, you need to always use the shortcut with the locale change (e.g "C:\Riot Games\League of Legends\LeagueClient.exe" --locale=en_US) at least one time until you close the Riot services again (like restarting PC).

Deceive always closes Riot services before opening, so it's impossible to use right now.

Hopefully there's a fix or something, appreciate the work.

from deceive.

Pipole26 avatar Pipole26 commented on June 16, 2024 1

@MedievalSp thanks a lot

from deceive.

9999Problems avatar 9999Problems commented on June 16, 2024 1

@MedievalSp Thank you! 🤗

from deceive.

9999Problems avatar 9999Problems commented on June 16, 2024

Same happened to me, posted today at discord also. 😅

from deceive.

MedievalSp avatar MedievalSp commented on June 16, 2024

Same here. I used the method of changing LeagueClientSettings.yaml and it worked flawlessly until yesterday. The only way I could think is if Deceive adds the locale argument while opening leagueclient.exe.

from deceive.

molenzwiebel avatar molenzwiebel commented on June 16, 2024

Deceive doesn't do anything to locale, so I suspect that this is some weird Riot Client-related issue.

You can pass the locale argument using Deceive instead: --riot-client-params="--locale en_US" or --game-params="--locale en_US" should work. Please try that and let me know if you see any success.

from deceive.

MedievalSp avatar MedievalSp commented on June 16, 2024

Unfortunately, the Parameter option seems disabled now. It does not works for me calling LegueClient.exe with a parameter NOR using Deceive.exe parameters.

The only method that works for me is modifying the LeagueClientSettings.yaml locale.

   globals:
        locale: "en_US"
        region: "LA1"
...
        locales:
        - "en_US"

Then I must launch LeagueClient.exe without any parameters (Just doubleclick the exe) and the stupid game comes in English.

This setting persists across restarts, but as soon as I use Deceive, it reverts to Spanish 🤔

Can Deceive be instructed to launch LeagueClient.exe directly without any parameters at all to emulate the above?

Thanks!

from deceive.

Pipole26 avatar Pipole26 commented on June 16, 2024

Deceive doesn't do anything to locale, so I suspect that this is some weird Riot Client-related issue.

You can pass the locale argument using Deceive instead: --riot-client-params="--locale en_US" or --game-params="--locale en_US" should work. Please try that and let me know if you see any success.

Yes Riot changed something that resets the language settings every time Riot services are closed now (so you need to use the shortcut method again) and Deceive closes the Riot services before opening.

You mean like "C:\Riot Games\League of Legends\Deceive.exe" --riot-client-params="--locale en_US"?

It didn't work for both of them. The client opens, but in its native language.

from deceive.

Pipole26 avatar Pipole26 commented on June 16, 2024

Can you make it available for download, please? I don't know how to compile.

from deceive.

aizuon avatar aizuon commented on June 16, 2024

@Pipole26 https://drive.google.com/uc?id=1An6ICPxGdCFop-CFkDPbFe90ZoHyYpQD

Here is my fork https://github.com/MedievalSp/Deceive

Disclaimer: This is not officially supported by the owner of the project. Any patch of Deceive will overwrite this file.

Cheers,

could you merge the latest version's commit to your fork?

from deceive.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.