Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - treborx555

Pages: [1]
1
New Projects / Re: Shadow Champions (Mastery Mod) - WNG
« on: 25 December 2020, 10:37:52 »
WNG is active on his discord. I can tell him to check these forums if you need him?

2
Art Manager / Re: Is there a better art manager?
« on: 10 August 2019, 14:52:25 »
Yup, np! I thought of making it as command line only but i don't know how i'd make it so it can take any extra c# code in files added by users (the only reason i'd switch to command line is to allow others to add scripts without installing a new program like unity)

I assume it could be done with python, but i hate python

3
Art Manager / Re: Is there a better art manager?
« on: 10 August 2019, 09:12:44 »
I made a unity based modding tool that can easily automate things, i think you'd want this.

https://github.com/RobertSkalko/Grim-Dawn-Modding-Tool

(i really need to rename it)

Basically, you click open folder, put all game records in the records folder (make sure you dont copy the records path too so it doesnt look like "records/records/.."
Then copy mod records over the game one's in case you want to modify the mod too.

Go to unity, open project, and create a new c# script, extend from ToolButton.

Now just look at how i did my other tools. Just set the filepath and object predicates. Like if you're sure all the items are under an "item" folder, this means it would eliminate 90% of files and make it that much faster.

TQObject is the .dbr file loaded with it's contents inside a dictionary, it also has the filepath variable. It contains a lot of helper methods.

You just need 2 methods btw, GetAllObjectsInRecordsPath, and WriteToOutput.

getobjects by default uses your class's predicates and the default records location.

Oh right, you override Action(). That's what happens when you click the button in the program.

So, you click button > loops over all the files > checks file path predicate > loads the object > checks object predicate > adds to list > you modify the list > you output the whole list or make a new one and output that.

Besides not having to manually edit thousands of files and write complicated regexes. You can also update your mods in just a button click + add these modifications to any mod that exists. Say you want diablo immortal mod. But you also want legendaries to drop with affixes. Well just extract the diablo mod after the game records and click a button! Then just compile it with art manager. (if you just merged a mod with legendary affixes and the diablo mod, there'd be conflicts and the new diablo items wouldnt drop with affixes, but with my method, everything would work)

4
New Projects / Re: [WIP] Shadow Champions (Mastery Mod) - WNG
« on: 03 August 2019, 14:27:07 »
Posting here in case you miss the private message. I want to be in the beta/discord, thanks!

On another topic, what would pair well with an Aqua mastery as main dmg source? Seems witchcraft is good cus it 1/3rd of it are cold spells. Or some supporting mastery like time/life

5
Modifications / Re: Scripts to modify masses of .dbrs
« on: 16 February 2019, 21:09:23 »
I actually made my mod 99% with scripts.

I used unity game engine to create the UI cus i already worked with it recently.

Spent most of the time optimizing file loading and editing so it doesn't take minutes. Though idk how efficient it is on weak pcs.

It's on my github. It's called grim dawn cus i first used it there. But then i went to play titan quest so i used it here too cus the .dbr files are the same.

It works by creating a "tool button"

Code: [Select]
namespace GrimDawnModdingTool
{
    public class ToolTQAdjustPotionCosts : ToolButton
    {
        public override string Name { get => "ToolTQAdjustPotionCosts"; }
        public override string Description { get; }

        protected override void Action()
        {
            float multi = float.Parse(Save.Instance.InputCommand);

            List<GrimObject> list = new List<GrimObject>(FileManager.GetObjectsFromAllFilesInPath(Path.Combine(Save.Instance.FilesToEditPath, "records"), true).Where(x => x.FilePath.Contains("oneshot") && x.Dict.ContainsKey("Class") && x.Dict["Class"].Contains("OneShot_Potion")));

            var newlist = new List<GrimObject>();

            foreach (GrimObject obj in list) {
                foreach (var key in obj.Dict.Keys.ToList()) {
                    if (key.Contains("itemCost")) {
                        obj.Dict["itemCost"] = (multi * float.Parse(obj.Dict["itemCost"])) + "";
                    }
                }

                newlist.Add(obj);
            }

            FileManager.WriteCopy(Save.Instance.OutputPath, newlist);
        }
    }
}

So key notes, derive your class from tool button because i search all the classes and any that derive from it will be in the UI as a button to click.

FileManager has methods to load dbr files into objects i called GrimObject. These objects have filepath and a dictionary of the text values.

It contains 2 most important methods, GetObjectsFromAllFilesInPath and WriteCopy.

The last thing is the Save class. The Save.instance variable contains stuff like the inputted command, game path, output path etc.

link to unity project  (you need to install unity and then import this project to use it for now)
https://github.com/RobertSkalko/Grim-Dawn-Modding-Tool

link to all the scripts i did to make my mods
https://github.com/RobertSkalko/Grim-Dawn-Modding-Tool/tree/master/Assets/Scripts/Tools

I didn't clean the code much. It's actually a fork of the tool i used to mod soldak games which used a different file format.

Hope it helps!

6
New Projects / Re: [WIP] Shadow Champions (Mastery Mod) - WNG
« on: 16 February 2019, 10:16:45 »
As a cold mage enthusiast, i'm eagerly awaiting the water mastery!

Made acc just now

Pages: [1]

SimplePortal 2.3.7 © 2008-2024, SimplePortal