Jump to content

Modmerge Launcher [1.02]


Recommended Posts

  • The title was changed to BETA Modlauncher and Modmerge Software [DL]
  • 1 month later...

@dimitrius154 Do you possibly have some insight on how the lexxer tokenises Sacred 2 data ?

Im pretty sure that "--" is the comment tokenizer until the next end of line (obviously, otherwise the files wouldnt work), but anything else is beyond my knowledge.

"id = 2505," works like "id=2505," I assume ? Any light on the matter would be appreciated.

 

Oh yes, and how hard is Sacred 2 on the order of data ? Can data subcomponents be out of order ? Like the intensity,bonus thing ?

Edited by Charon117
Link to comment

Thx for the info @dimitrius154. I have been thinking about making a complete datastructure for Sacred 2, but I now realise that this requires a bigger effort than I initially thought, and the only gain of that would be speed, which is really not an issue, since you only compile your build very sparsly. I mean also apart from the fact that speed isnt an issue in the first place, since big mods can overwrite the full file, and small ones dont even have a speed issue anyway. Hm.

Basically the idea would be to parse files into datatypes in the form of pair<string, string> where pair.first would hold the pseudo keycode, and pair.second would hold the actual data and then push everything into a SequenceContainer.

Anyway, that would only speed up the Software, which is not necessary at this point, what we need is functionality. Most of the speed can be gained by checking whether or not files are exactly identical, so you avoid copying over complete identical files.

 

Anyway, im trying to make the Modmerge System address subcategories of data, like runSpeed in newCreatureInfo. The best way of doing all of that is to simply make a datastructure inclduing parsers for everything. But thats a Mount Everest of work.

On the other hand I could slowly just add the functionality I want, and wait for people to complain that other files dont have that kind of functionality. That would mean working software for the things people actually have a need for.

 

On 3/13/2020 at 3:29 AM, dimitrius154 said:

@Flix,  I've successfully tested my theory about the blueprint.txt. Notepad breaks it because of the German-specific symbols present. Once those are replaced, the file can be edited in Notepad without becoming unreadable by the game. 

Can you elaborate ?

 

 

---

a couple of days have passed

maybe more

 

Ok, so I created a subdata merge command for the Modmerge System, called MODMERGE = "partial replace". It takes subdata of an data entry and overwrites subdata in the installation file if it exists. Here is an excerpt of a working file:

Quote

 

--// rat units flat MS increase of 50
--// spider units flat MS increase of 50
--// wolf units flat MS increase of 20, excluding werewolfs and wolfriders
--// giantbat units flat MS increase of 50

newCreatureInfo = { --// MODMERGE = "partial replace"
  type         = 5714,
  runSpeed     = 200,
}
mgr.creatureInfoCreate(newCreatureInfo);

newCreatureInfo = { --// MODMERGE = "partial replace"
  type         = 10266,
  runSpeed     = 200,
}
mgr.creatureInfoCreate(newCreatureInfo);

newCreatureInfo = { --// MODMERGE = "partial replace"
  type         = 5145, 
  runSpeed     = 200, --name = "gigantspider_quest_gargantura",
}
mgr.creatureInfoCreate(newCreatureInfo);

 

 

So far it only works for creatureinfo.txt, but files with exactly the same dataformat could get the same with a simple reference to the function. But I won´t do that, so if people want subdata merge functionality they have to request it.

@dimitrius154Regarding that feature, I wanted to ask if Sacred 2 can take data which is out of order. For instance would
 

Quote

newCreatureInfo = {
  type         = 99999,
  runSpeed     = 150,
  fightDistMin = 50,
  fightDistMax = 75,
  gender       = 1,
  agegroup     = 1,
    validEquipSlots = "0",
    defaultSMType = SMT_DEFAULT,
    behaviour     = "WildAnimal",
  hair1Itemtype = 0,
  hair2Itemtype = 0,
  hair3Itemtype = 0,
  hair4Itemtype = 0,
  hair5Itemtype = 0,
  hair6Itemtype = 0,
  tailItemtype  = 0,
    dangerClass   = 1,
  weight        = 150,
    eBloodEffect  = "BLOODFX_RED",
  walkSpeed    = 50, <<<<<<<<<<<<<<<<<<<<<<<<<<<< subdata out of order
}
mgr.creatureInfoCreate(newCreatureInfo);

work ?

If not I have to think about a way to insert subdata in the correct position.

 

Depending on the answers this feature will get online as soon as possible.

Link to comment
9 minutes ago, Charon117 said:

Can you elaborate ?

It is, I guess, a Notepad text formatting defect. It processes German-specific(as it would Turkish, or Hungarian) symbols in a way, that makes the game parcer ignore the '--' - comment delimiter.

9 minutes ago, Charon117 said:

work ?

Actually, I think, it would, since the text markers are in place.

Edited by dimitrius154
Link to comment
7 minutes ago, dimitrius154 said:

Actually, I think, it would, since the text markers are in place.

If it does, I could simply insert subdata anywhere. Not very pretty, but nobodies gonna read it, and if they would read it than they are most likely modders, in which case they can manually correct the order themself. Keep in mind that this is only for cases valid for which the base data doesnt have the corresponding subdata type, which will likely never be the case, but could still happen.

Any way to test this so that we dont have to guess around ?

Link to comment
31 minutes ago, Charon117 said:

Any way to test this so that we dont have to guess around ?

Mixing up entries in the script txt should be enough. Can't spare the time, I'm afraid. Have about 600 animation files to process.

Edited by dimitrius154
Link to comment

Update 1.01: The Modmerge Software now supports the merging of subdata for the creatureinfo,txt.

Example:

Quote

newCreatureInfo = { --// MODMERGE = "partial replace"
  type         = 5714,
  runSpeed     = 200,
}
mgr.creatureInfoCreate(newCreatureInfo);

 

  • Like! 1
Link to comment
4 hours ago, Charon117 said:

supports the merging of subdata

This utility has a potential to become a universal fixing tool. However, is it technically possible to determine missing " " [ ( ) ] { } symbols of a pair within a string with a EOS finisher?

Edited by dimitrius154
Link to comment
59 minutes ago, dimitrius154 said:

This utility has a potential to become a universal fixing tool. However, is it technically possible to determine missing " " [ ( ) ] { } symbols of a pair within a string with a EOS finisher?

The Software has the utility it needs, and the features people want.

In case I havent been clear on this topic:

  • I will only implement things I need.
  • I will only implement things other people want and describe to me. Im not a mind reader, if you want something open your mouth and talk to me. I usually dont bite. The more words you use to describe what you want the better. The more accurate you are, the better.

:)

 

Edit: To clarify what I mean, the Modmerge Software tool is written in C++. It is written in a way that enables and encourages any and all future changes. It is a well designed basis for any and all future changes people might need. It is build on the Manifesto for Agile Software Development, in which is stated that we like to build Software which harneses change for the (competetive) advantage of the user (customer).

Edited by Charon117
Link to comment
17 minutes ago, Charon117 said:

To clarify what I mean, the Modmerge Software tool is written in C++. It is written in a way that enables and encourages any and all future changes. It is a well designed basis for any and all future changes people might need.

Ah, good to know.

21 minutes ago, Charon117 said:

Im not a mind reader, if you want something open your mouth and talk to me. I usually dont bite. The more words you use to describe what you want the better. The more accurate you are, the better

The issue's formal description was as clear and concise, as possible. Scripts fail, unless matching pairs of symbols for certain conventions are present. Those symbols are {} [] () "".  The question was as to whether it's technically possible to trace and repair missing elements of symbol pairs.

18 minutes ago, Charon117 said:

The Software has the utility it needs, and the features people want

I wasn't really asking for the feature. It was a common sense - induced suggestion.

Link to comment

Hello Charon, I have followed a bit your tools discussions but honestly, I don't understand a word on how we can use your ModMerge Software. It's very unclear for me (sorry, I'm surely not as smart as you are).

I've looked your presentation video. Can we use regular mods with your tools? (are the mods on Nexus supported for example?)

Why is it better than JSGME? Can't we do the same with this last one?

For Diablo 2 Fallen for example, is it instalable with your software and what mods could we add to it for example, that we can't with JSGME?

I don't doubt your tool to be very powerfull but it seems to me very complicated to apply. Maybe just a matter of use. Thank you very much.

Link to comment
8 hours ago, dimitrius154 said:

The issue's formal description was as clear and concise, as possible. Scripts fail, unless matching pairs of symbols for certain conventions are present. Those symbols are {} [] () "".  The question was as to whether it's technically possible to trace and repair missing elements of symbol pairs.

First and foremost I dont want the Modmerge Software to automatically repair the authors files. Thats contrary to the stated goal of the Modmerge Software. The Modmerge Software is based on the trust that the mod author knows what he is doing. Any sort of auto repair mechanism will just limit the authors possibilities, and reduce the responsibility of the mod author.

You will definitely not be able to sneak in auto repair, or auto anything. A mod authors mistake will still be a mod authors mistake, and the Software will fail because of the mod authors mistake, not because the Software didnt work as intended ( crashing is intended behaviour ).

 

With that out of the way I have to ask you what you want to achieve. I can write a bug checking Software for automatic bug checking if you want to. But then I need to know more than what you just wrote.

 

Onto the technical details. I assume what you are talking about is scope. And ofcourse you can do that. If the scope is limited to the same line it doesnt even require thinking, If you are talking about string spaghetti you need a parser.

Now to the replacing part. If its just a missing bracket, than easy peezy. If it includes to also repair wrong data you would need standard data to draw from, but anythings possible really.

 

You just have to convice me that its worth my time. That is you have to describe how such software would make your own life easier.

Link to comment
5 hours ago, desm said:

Hello Charon, I have followed a bit your tools discussions but honestly, I don't understand a word on how we can use your ModMerge Software. It's very unclear for me (sorry, I'm surely not as smart as you are).

Well I cant downgrade my brain, but we can always sit down with the people to work out a format everybody involved in understands.

 

 

5 hours ago, desm said:

I've looked your presentation video. Can we use regular mods with your tools? (are the mods on Nexus supported for example?)

[] You can use all present mods. The Modmerge Software has been carefully developed to support ALL current mods in existence. Even the future update of the Addendum is already supported.
   Then again, all you would do with mods which are not dedicated Modmerge Software Compatible [MSC] is a costly overwrite. For that instance I added the the OVERWRITE feature. Its a simple copy and overwrite function. I dont know how the Sacred Fallen folder is called, but if we assume its called "Sacred Fallen" than you can rename the folder to "OVERWRITE Sacred Fallen" in your mod library, point the Modmerge Software to it, and it will be the same as if you manually copied everything over.

 

 

5 hours ago, desm said:

Why is it better than JSGME? Can't we do the same with this last one?

It is better than JSGME because all GME does is is make a mirror of your game setup.

Consider following example. Lets say I just want to have a teeny tiny change in my game setup. I want to lower the minimum speed from 50% to 30%, and increase the maximum allowed speed in the game to 450%. IF you are using GME all you can do is copy over a whole file. Uhm ... ... ... how does that work out ? The only thing you can do is after you installed 1 mod to make all other changes per hand. With 2 changes that doesnt sound too shaby ... but the longer you play the more individual preferences you accumulate, no ? What about hundreds of tiny changes across dozents of files. Still wanna do that per hand ?

Take a look at my recent release: 

All it does is embody said ideas in 2 files, which take the following form:
balance.txt:

Quote

local newBalanceValues = {
  SpeedMin = 300,
  SpeedMax = 4500,
mgr.setBalanceValues(newBalanceValues);

creatureinfo.txt excerpt:

Quote

newCreatureInfo = { --// MODMERGE = "partial replace"
  type         = 11405,
  runSpeed     = 200,
}
mgr.creatureInfoCreate(newCreatureInfo);

newCreatureInfo = { --// MODMERGE = "partial replace"
  type         = 5544,
  runSpeed     = 260,
}
mgr.creatureInfoCreate(newCreatureInfo);

newCreatureInfo = { --// MODMERGE = "partial replace"
  type         = 5145, 
  runSpeed     = 200, --name = "gigantspider_quest_gargantura",

If it wouldnt be for the Modmerge System I would have to make 49 changes in the creatureinfo,txt everytime Flix brings out a new EE version. And he recently brought out quite a few versions of EE, and shows no signs of stopping.

 

5 hours ago, desm said:

For Diablo 2 Fallen for example, is it instalable with your software and what mods could we add to it for example, that we can't with JSGME?

Like in the example above, for max speed just add "OVERWRITE" anywhere in the folders name and it will do so.

Additionally you can use following assets which have been written in the designated MSC format:

http://darkmatters.org/forums/index.php?/topic/23962-sacred-2-boss-farms-msc/
http://darkmatters.org/forums/index.php?/topic/23995-sacred-2-readable-console-msc/
http://darkmatters.org/forums/index.php?/topic/23996-sacred-2-mob-farms-msc/
http://darkmatters.org/forums/index.php?/topic/23994-sacred-2-disable-splash-msc/
http://darkmatters.org/forums/index.php?/topic/24023-sacred-2-diverse-movement-speed-msc/

 

 

I can make a video about why I need the Modmerge Software to upgrade from EE2.2 to EE2.4, and still preserve all the individual changes I made, without having to redo them manually.

 

Cheers :)

Edited by Charon117
Link to comment

Thank you very much for the clearance Charon. Yes it sounds very good, it's kinda of a "mod manager"?

Justly I was interesting in adding Diverse Movement Speed to Diablo 2 Fallen, I will see when I feel it. Thanks again.

Link to comment

@desm>it's kinda of a "mod manager"?

It is exactly a Mod Manager, just that it doesnt build the game when you start it up, but only when you want to recompile your current build.

 

>Justly I was interesting in adding Diverse Movement Speed to Diablo 2 Fallen, I will see when I feel it. Thanks again.

Better talk with @Flix first about it. Diverse Movement Speed increases movement speed based on newCreatureInfo type id. DMS is based off vanilla/EE type ids. SacredFallen might have assigned such ids to different creatures. But dont worry, the worst that can happen is that the wrong creatures become faster all of a sudden ><.

Link to comment
  • 2 weeks later...

Very cool. A little bit tricky but awesome.

"I believe I can fly, I believe I can mod Sacred to my own taste...." :D. Thanks Charon!

  • Like! 1
Link to comment
  • 3 weeks later...
On 3/30/2020 at 8:48 PM, desm said:

Very cool. A little bit tricky but awesome.

"I believe I can fly, I believe I can mod Sacred to my own taste...." :D. Thanks Charon!

How? I have been playing this game like 8/9 years but I dont know a :eek: I would like someone who cant teach me how to get real cheated weapons at level 2 or those swords who looks pretty good like star wars etc I would like to have help :(

Discord: T-F Adriiian.S.P#1847

Link to comment
  • 3 months later...

Hello Charon117.

I used your tool to merge 2 mods and I have some problems when mrging them .

These are the mods I want to merge :

Serious Texture and Spells (Only want to merge the spells)

Rotating Blades Of Light

 

The problem is that when I merge the 2 mods only the second one works , I am not overwriting the files , the combat art pictures change but the effect and descritpion do no change for the first mod that is merged. 

Also I want to unlock the portals and had no succes Unlock Portals, BTW when merging the spells mod I noticed that one portal was removed from the map and the mob 

number have increased .

 

What I want is to merge the 2 spell mods , unlock all the portals avaible(CM Patch included) and some increased mob density because I liked it.

Thank you for your attention and great job  

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...
Please Sign In or Sign Up