Jump to content

Charon117

Sacred Game Modder
  • Posts

    325
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by Charon117

  1. 23 minutes ago, dimitrius154 said:

    As far, as I know, only the Addendum uses a custom autoexec.txt

    As far as the .diff states it, this files controls what files are even getting taken for the current gamesession.

    It first seems to load up general textures.

    Then shared data between server and client, which dont necessarily have to be in the "shared" folder.

    Then client only stuff.
    Can I deactivate the splash screen there ?

    And lastly server only stuff.

    This file looks so highly sensitive that I suggest it to be copyable only.

    41 minutes ago, dimitrius154 said:

    local newBehaviour = {} looks like a constructor.

    Is everything working in the file as expected ? There doesnt seem to be an constructor for the behaviour above, which begs the question.

    If new behaviour is inserted should it be below or above  the constructor ?

     

    57 minutes ago, dimitrius154 said:

    Well, it's supposed to generate texture mipmaps for items and creatures. It also appears to play a role in new game/load game procedure. It can also, supposedly,  be utilized to enable game session logging. No modmerge functionality is foreseen.

    Due to the assumed sensibility I suggest making it copyable only.

     

    Check that out. The first

    scaling    =

    actualy has a tab before the =, but all others have one white space. Congratulations.

  2. 12 hours ago, Flix said:

    The game does NOT accept additional Token Bonuses.

    There is no chance that somebody would want to have additional modmerging functionality to add entries ?

     

    • autoexec.txt: What kind of modmerge functionality is wished for here ?
       
    • behaviour.txt: "name         =" is the identifier ? There is also a cute local newBehaviour = {} in the middle
       
    • Somebody explain genMipMapInfo.txt to me, and what kind of modmerge functionality it would need.
       
    • heightmap.txt: "mgr.defineScaling( NUMBER," is the identifier ?
       
    • landscape.txt: Similarily to weather.txt this seems to simply spawn a landscape mask for coordinates. Should we take the "mgr.defineLandscape(SEC POS," as unique identifier ?
       
    Quote

    I doubt this is pertinent, but in current D2F 13 and upcoming EE 2.3 (whenever it's released) I sorted everything under mgr.defineSpell( alphabetically so I could browse the list easier.

    I guess sorting won't really matter.  D2F's blueprint.txt is also custom sorted by type of item.

    :thumbsup:

     

    @dimitrius154 @Flix

  3. Welcome to itemtype.txt, ill just quickly merge 332k lines. Or not. Maybe take a seat until its ready. Coffee ?

    264 pre compiler optimised seconds later ...

    Still not bad for a file which takes up 30 percent space of all EE text files.

    Optimised time is 97 seconds. For 10 mb it could be better, could be worse.

     

    • material.txt: "mgr.createMaterial(NUMBER;" is the unique identifier ?
       
    • spells.txt: "mgr.defineSpell( "NAME"," and "mgr.addTokenBonus( {"NAME"," are the unique identifiers ?
       
    • staticinfo.txt is empty ?
       
    • typification.txt: "mgr.createTypification(NUMBER," is the unique identifier ?

     

    @Flix @dimitrius154

    • books.txt: I assume BOOK_TYPE + NUMBER is the unique identifier.
      Btw I always tried to read that "BOOK_ORCISH_INTRODUCTION" thing, but never could. Does it even exist ?
       
    • creatureinfo.txt:   I assume "type         ="  to be the unique identifier
       
    • defines.txt is getting used ?
       
    • iteminfo.txt: "type           =" is the unique identifier ?
       
    • itemtype.txt: "mgr.typeCreate(NUMBER," is the unique identifier ?

     

    @Flix @dimitrius154 Thx for the help.

  4. Im sorry, I still have to come back to the total_density issue. Does anybody know if how total_density works ? If total density only checks the total number of creatures in sector pos + layermap_id we can make a triple identifier build. But if it counts creatures inserted from previous layermap_ids its a different story.

     

    Edit: Can I assume "Pfad" in waypoints to be the unique identifier ? It seems to be except for "Pfad_Wache2_Gabelung", which doesnt contain data.

    Edit2: I assume "dbid =" to be the unique identifier for weaponpool.txt. No dublicates exist.

    Edit3: weather.txt seems to be written in a similar fashion than spawn.txt. A simply fashion of "spawning" weather. In what kind of way would it be desired to get merged, if at all ?

    Edit4: worldobjecthints.txt is empty.

    Edit5: "mgr.addWorldObject( NUMBER," seems to be the identifier for worldobjects.txt, but there are a few dublicates:

     

    mgr.addWorldObject( 1051307088, {
    mgr.addWorldObject( 1011816865, {
    mgr.addWorldObject( 1019605033, {
    mgr.addWorldObject( 1051305930, {
    mgr.addWorldObject( 1051650490, {
    mgr.addWorldObject( 1023656262, {
    mgr.addWorldObject( 1023656067, {
    mgr.addWorldObject( 1023656231, {
    mgr.addWorldObject( 1023656067, {
    mgr.addWorldObject( 1023656262, {
    mgr.addWorldObject( 1023656231, {
    mgr.addWorldObject( 1023656231, {
    mgr.addWorldObject( 1023656067, {
    mgr.addWorldObject( 1023656262, {
    mgr.addWorldObject( 1023656067, {
    mgr.addWorldObject( 1023656262, {
    mgr.addWorldObject( 1023656231, {
    mgr.addWorldObject( 1023656262, {
    mgr.addWorldObject( 1023656067, {
    mgr.addWorldObject( 1023656231, {

    @Refresh @Flix @dimitrius154.

  5. 31 minutes ago, dimitrius154 said:

    [EDIT]: I've long struggled with the unfortunate limitations of content upload. Why is it, that I'm allowed to upload only 2 megabytes? Also, the image upload interface does not seem to support the https protocol, while every major portal out there generates https links.:crazy:

    Yes, thats a very frustrating limitation. Every time somebody wants to upload a fullscreen image they have to compress it with an image processing software.

    I always thought this was to save space on the servers. But thats not the only drawbacks the forum has. Just one of them.

  6. If people havent figured it out yet, the last number in a position is most likely the azimuth.

    Following example strenghtens this claim:

    Quote

    mgr.addMapPos {
        merchantType = 4,
        position = {
          x = 146300.00,
          y = 62350.00,
          z = 0.00,
          layer = 0,
          orientation = 1.000,
        },
    }

     

  7. 9 hours ago, dimitrius154 said:

    Thing is, there's none around. The German colleagues have mentioned, the devs have actually lost their notes at some point I the past. What I do is veritable reverse-engineering of the Assembler code.

    Oh. oh. I thought we had .. a little more than that. I get the picture now.

    9 hours ago, dimitrius154 said:

    Hmm, dunno why we need all files. Blueprint.txt, surface.txt, behaviour.txt, itemtype.txt, iteminfo.txt, creatures.txt, creatureinfo.txt, drop.txt, spells.txt, animation.txt fit the last entry criterion.

    Because the software should be 110% of the best quality. If some files differ in their behaviour reverse searching wouldnt cover everything.

     

    So the base files will be searched for backwards now, to guarantee modding content to be actual taken by the game, even if the file has dublicated entries. Merging files will still be read from the top, so the last entry will take precedence as well.

    Both dublicated entries in base and merge files shouldnt happen, but if they do, we got em covered. The ideal state would be clean files for everybody, but we need a medium to get us there, so the modmerge system will be able to work with clean and dirty files alike. It especially covers situations like:

    • An yet unknown file has dublicates, which no special rule has been written for.
    • Merging dirty files with dirty files, like upgrading from EE 2.1 to EE2.2. And other situations.
  8. I am currently having an issue. It is the "What if any file has dublicates ?" problem. While I can write extensive cleanup programs for individual files it doesnt solve the question whether some random base files might have dublicates. This obviously should be avoided by base file authors, but again, doesnt answer the question. Sooooooooooooooooooooooooooo ...

    1) I could write a generic cleanup program which checks the base file for dublicates and cleans them up in one fellow swoop. The big downside of this is that such cleanup programs are very expensive in resources, and would take 80% of the the total time to search for dublicates which might not even exist. I mean after you´ve gone once over all your files they definitely dont exist anymore.

    2) Solution number 2 would be to outsource such a cleanup program which users would have to use before using the modmergse software. Im very averse to this solution, as relying on the user is generally not a good strategy. Software is there to adapt to humans, not to make humans adapt to software.

    3) Number 3 would be to cleanup the community database. But that again would not really answer the question when somebody digs up a dirty file from somewhere else.

    4) Dimitrius mentioned that if dublicates exist the last entry takes precedence. If that would be the case for all txt files than the software could simply modifiy the last entry it finds, instead of the first one. This would be a very elegant solution as it would take up zero additional resources, and still reliably produce the proper modmerge effect. So I would ask Dimitrius to look into the Sacred 2 source code and make some reliable checks whether or not somebody without a reasonable doubt could say that the last dublicated entry takes predence over all other ones for at least 99% of files.

  9. 12 minutes ago, dimitrius154 said:

    I'd say it's preferable.

    Im surprised by this answer, as I thought it would be more important to preserve the current data format. Can you tell me in what way you want to merge the dublicated entries ?

    On 12/31/2019 at 5:38 PM, Charon117 said:

     

    Quote

    mgr.addSpawn (61,13,0,{ -- Butwald Augen |||     layermap_id = 3,
    mgr.addSpawn (11,51,0,{ -- Orc Bear Groupspawn |||     layermap_id = 1,
    mgr.addSpawn (58,54,0,{ -- Weihnachtsbaeume |||     layermap_id = 3,
    mgr.addSpawn (58,54,0,{ -- Weihnachtsbaeume |||     layermap_id = 2,
    mgr.addSpawn (58,55,0,{ -- Weihnachtsbaeume |||     layermap_id = 3,
    mgr.addSpawn (58,55,0,{ -- Weihnachtsbaeume |||     layermap_id = 2,
    mgr.addSpawn (58,56,0,{ -- Weihnachtsbaeume |||     layermap_id = 3,
    mgr.addSpawn (58,56,0,{ -- Weihnachtsbaeume |||     layermap_id = 2,
    mgr.addSpawn (59,55,0,{ -- Weihnachtsbaeume |||     layermap_id = 3,
    mgr.addSpawn (59,55,0,{ -- Weihnachtsbaeume |||     layermap_id = 2,
    mgr.addSpawn (59,56,0,{ -- Weihnachtsbaeume |||     layermap_id = 3,
    mgr.addSpawn (59,56,0,{ -- Weihnachtsbaeume |||     layermap_id = 2,

     

  10. I need a decision about spawn.txt. Do we want to facilitate dublicated sector pos + layermap_id entries by allowing the modmerge system to deal with such entries, or do we, as the community, want to push single entries only, by forcing a preprocessed merge in one way or another ?

     

    Edit: Can I assume that "name" is unique for triggerarea.txt ?

    Edit2: Can I assume that "name" is unique for triggervolumes.txt ?

  11. 49 minutes ago, Flix said:

    DOT does not work in Sacred 2 like in say, Titan Quest or other games with DOT is set amount spread over a duration.  In games like that,  increasing the duration would just make it take longer to inflict the same amount of damage.  Decreasing the duration would make it inflict the same payload, only quicker.

    Damage over Time: Fire -X%: Reduces Burn duration (as well as total damage: for example, if incoming DoT was to inflict 250 damage for 5 seconds it would be decreased by "Damage over time:x -65%" to two seconds - 250 damage dealt by the first pulse and 187 damage a second later, summing up to 437 damage which is 35% of initial 1250).

    http://www.sacredwiki.org/index.php/Sacred_2:Damage_over_time:_Fire

     

    Insert "There can only be one" meme here.

  12. 7 minutes ago, Flix said:

    I understood Damage Over Time -X% to only reduce the damage parameter.

    As far as the wiki describes it, and as far as empirical evidence suggests is that -DOTT% cuts of damage at the end. Here is an example. Lets say you do 1000 true DOT. This gets split over 5 seconds ( maybe over the duration which is specified in "et_duration_sec"). So 200 damage for 5 pulses. If you now have -50DOTT% the damage gets changed to 200 - 200 - 100.

    While I would like -DOTT% to also reduce all types of DOT, only testing will yield accurate results, I think.

  13. 1 hour ago, Flix said:

    That part is correct.

    Its not correct. The DOT page in itself is correct, but the linking to it from Spell Resistance is not. Check "DME&DoT duration, % (skill mastery required)".

     

    1 hour ago, Flix said:

    Slowing effects, root, chance to freeze, chance to weaken, possibly more, all get duration and intensity reduced. 

    AND intensity ? As far as I read it only the duration gets reduced.

     

    1 hour ago, Flix said:

    Also remember DOT -X% only reduces the damage, while DME -X% also reduces duration.

    I think you are mixing something up here. Getting confused by the many DOT types around.

    There is true DOT damage, which reduction works that damage gets reduced starting from the end. The characteristics of that is that its 5 pulses -% of -DOT%. Like I asked earlier, its unclear in which way -DOT% and -DME% work together.

    Then there is pseudo DOT which actually is only damage for as long as the status is active. Burn, Freeze, Bleed, etc ... -DME% reduces the duration of the status, which means less damage, but it doesnt actually reduce damage. If burn gets constantly triggered there is no damage reduction at all.

    The main question to answer would be:

    • Does -DME% actually reduce true DOT ?
    • Does -DOTT% actually reduce DME damage ?

     

    1 hour ago, Flix said:

    This game has a lot going on, more than it needs to really.

    Hotter than a sausage in a frying pan.

  14. @Flix Ok that confuses me profoundly now. I thought DOT and DME were 2 different distinctive effects.

    1. So the wiki page is wrong again and it doesnt reduce ACTUAL DOT. Just DME DOT. If you follow the DOT link provided it includes

    "Build-in Damage Over Time. It is caused by some Spell Damage Based Combat Arts with 100% chance (DoT is also indicated on CA's tooltip)."

    which you say is wrong. Somebody might update that.

    2. -DOTT% is pretty op than, no ? The only exclusive part DME gets is root and debuff then ?

     

    Why do I need private counselling sessions to understand the wiki ? Every time I visit the wiki page I get the wrong idea.

  15. 41 minutes ago, Flix said:

    Not quite, the spider spit isn't "Chance for Poison" or any kind of secondary effect, it's Poison DOT which would be alleviated by a green potion or the modifier "Damage Over Time -X%".

    Oooooooooooooooooooooooooooooooooooh, I was hallucinating. I thought -DE% would decrease DOT. So that means its not competing with Spell Resistant mastery ? Not directly anyways.

    So -DOTT% would be the better alternative ? To -DE% ? Hm ... so since skill mastery decreases DOTT as well as DE it is always the better choice ? Given you want to invest in it ?

  16. 7 minutes ago, Flix said:

    Detrimental Magic Effects -X% is subject to diminishing returns so it will never reach -100%.  As I understand it, it reduces both the intensity and duration of the effects.  Beyond that, I would love to know for sure the specifics on just what other effects it reduces aside from the 5 secondary damage effects.

    As far as the wiki states it DOT gets its damage reduced exactly equally to -DE%, and damage gets cut off starting from the 5th pulse to the first one. Other effects get their duration reduced, which for the secondary effects means less damage. The most important part is propably the reduction of root duration. -DE% seems extremely useful to me, especially given the jankiness of the hp bar update process. As an example if you get -80DE% than you can run through the spider forest scott free, as it means - 80% damage. But also all the other effects means a lot of effective damage reduction.

    But the wiki doesnt directly phrase it as -DE%, so the question is whether or not it straight up stacks, or is a different effect. For instance if you have -50DE%, and "theoretically" also 50% mastery bonus, does it cut the 5 seconds duration in half, because the second half of the duration doesnt even exist anymore due to -50DE%. Or does it cut the remaining 2.5 seconds into a 1.25 second duration ?

     

    18 minutes ago, Flix said:

    I guess you would want to merge the duplicates in spawn.txt if you really have to. 

    Well, I have been thinking about that, and the proper question here would be how the game merges dublicated entries, especially total_density. Does the game fill up an area with the specified entries until total_density is reached ? With the relative number relation ? Lets say you have an dublicated entry with total_density = 30, and the next one with total_density = 50. Does the game then first fill up the area until 30 is reached, and then takes the second entry and fills up the area until 50 is reached ?

    As far as I read the entries lower layermap_id seems to have lower density, but there are also exceptions, which might or might not just be errors on Ascarons part.

    As it looks, the most logical conclusion is that that all layermap_id form a group, with the max total value of total_density.

     

    Anyway, my point is just this: There is no problem in interpreting all sector pos + layermap_id as a group, and merge it as a group. So all dublicated entries would get interpreted as a group, and swapped out as a group, with the plus being that it would work with the current data. The question is whether or not we want to encourage modders to make dublicated entries, or if it is worth the risk, since nobody knows how the entries are getting merged.

  17. 10 minutes ago, dimitrius154 said:

    Yes, it is. It means, that detrimental effect duration in question is cut to the percentage shown. The description text is confusing. 

    That means it doesnt stack with -DE% ? If I have -50DE%, and then spell resistant mastery of 65% the total decrease is 0.5 * 0.35 = 82.5% reduction ? Or does it simply cap the DOT duration ? Does the mastery actually have influence on the damage ? Questions over questions.

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