Jump to content

DarkPaapi

Members
  • Posts

    50
  • Joined

  • Last visited

Posts posted by DarkPaapi

  1. Hello Everyone

     

    Im here onec again, and this time to give you a Core Area Overhaul.

     

    Reign of the Core: Xsotan Threat and the Defenders of Faith

     

    20170416084053_1.jpg

     

    I was petty much get disapointed about the difficult what the game can provide. So start to work on a way to change it. "The Core need to be like a Dungeon!" As they said.

     

    And here we go....

     

    Xsotan Threat feature includes elevated difficult inside Core ring, near linear improve in firepower for Xsotans. It can be insanely difficult and unforgiving. (Just as I like it)

     

    Of course the resident factions need to survive!

     

    Defenders of Faith give a chance to them. All defencing forces have extra damage too. If a faction is not friendly i recon jump as soon as you can!

     

    First what i need to say its far from perfect. Im not an expert so its takes time.

     

    Known Issue: - It can happen they drop their custom weapon, i minimalised the chance and working on a better way to prevent it happening.

     

    It have been made for Rusty's Galaxy Server, and its using an extended version. Only server side need to have this modification, but it can be used on Single Player games as well.

     

    I created a file build in control modul where you can adjuct the starting damage and climb towards centre.

    On default as soon as you pass the Core ring the enemys have 7k Omicron and going up to 100k near 0:0.

     

    Huge thanks for Devious for the advices like: "I think is a bit too high... Since you don't hear them they just cut you right up..."

     

    Install:

     

    To use it don't need to start a new galaxy BUT the already visited sectors inside Core area most likely fall on the first wave of enemies... Sorry about that... (The Light will guild their soul to a better place Brothers)

     

    Need to make a backup from steamapps/common/avorion/data/scipts/lid folder !

     

    The zip contains 2 files (shipgenerator.lua and xsotan.lua) unfortunatly its overwriting the main game files.

     

    Just drop the zip file content inside steamapps/common/avorion

     

    Unisnstall:

     

    Restore the files from backup

     

    Coution! It will not delete the enemys who already there so those sectors are still Dangerous (if you are not strong enough to get them)

     

    Enjoy.

    Regin_of_the_Core_v0.5.zip

  2. One of the modules adds +% to shield recharge? meaning it takes longer?

     

    It's an extra for recharging amount, so the shield is coming back up faster if it's not have been hit for a certain time. But it will be nerfed since its quiet a lot what is giving right now.

     

    Edit: I will change the description too since its confusing. Thanks Wilponderoci.

  3. Laserzwei is just released his station complex mod (what is amazing) but i want to go with this one as well for single stations.

    Since he was much further ahead with the idea of useing the power as constans for production, i dont want to go to the same direction.

    So i going along with volume.

     

    Made some observation on the game mechanism.

     

    For my test i created a ship, give it a name (what i can remember for 10 secunds), jumped into build mode and make a save. Alt-Tab and took a look into the games saved ships. Opened up the file what just have been made.

     

    <?xml version="1.0" encoding="utf-8"?>
    <auto_2682239530652318457 accumulateHealth="true" convex="false">
    <item parent="-1" index="0" maxDurability="32" currentDurability="32">
    	<block lowerX="-1" lowerY="-1" lowerZ="-1" upperX="1" upperY="1" upperZ="1" index="1" material="0" look="1" up="3" color="ffbfaea3"/>
    </item>
    </auto_2682239530652318457>

     

    Than go back inside and changed the block iron hull to iron engine, than save.

     

    <?xml version="1.0" encoding="utf-8"?>
    <auto_2682658513304140150 accumulateHealth="true" convex="false">
    <item parent="-1" index="0" maxDurability="16" currentDurability="16">
    	<block lowerX="-1" lowerY="-1" lowerZ="-1" upperX="1" upperY="1" upperZ="1" index="3" material="0" look="1" up="3" color="bfbfbfbf"/>
    </item>
    </auto_2682658513304140150>

     

    The differences between the two is the auto_xxx what could be the saved template index, color what i dont realy care and there is the index for the block. I did the change a few more times and the index number is always different so that one is controls what type of block it is (Hull, engine, generator, shield etc)

     

    And theres the lowerX,Y,Z and upperX,Y,Z wich ones are coordinates from the ship center point.

    So if i want to get a certen block type volume or surface area in a contruction, what i need to do is do some math. upperX - lowerX give me the x side of the cube of coure if the coorinates are off from the main 0 point i need to do a criteria to never be negative. And its looks like if x < 0 than x = x * (-1) so it will be always a positive number.

     

    Doing the same with Y and Z. and than X * Y * Z = Volume, for surface 2 * ((X * Y) + (X * Z) + (Y * Z)) = Surface.

     

    So i have a certean block type Volume and Surface area inside a contruction.

     

    My questsion is, is it posible to make a script what can take out certean information from the xml plan file, do the math. Than compare them whit a given stats and when the threthold is meet for example the Entity is contains V volume of I index of block, rise the value.

     

    If yes it could be way to add production amouth if a certean volume of specified block contanied by the Entity. And display it in UI

     

    Of course it need to make it triggered when the plan is saved. Down side if blocks getting destroyed its not updating the input.

     

    Maybe the base probram is useing something similar to add stats for an entity. But do it real time. If entity contains this block whith that blockindex, than "addMultiplyableBias(StatsBonuses.ArbitraryTurrets, Volume)" the turrets just an example. But dont know just guessing.

  4. Yes Pob they a little bit OP since I gave Legendary or Rare grade stats as an extra. But the game it self is unfair in a way because you can get multiples from one key. It just helps a bit in a way to not jump in and out of the inventory and look for a specific modul in the junk what you looted in the last encounter. But you are right, should be nerfed a bit.

  5. btw are you using hte cia malware version and do you trust that new versions are not infected?

     

    This is why i using paid licence Antivirus programs. Of course there is planty of backdoors on the windows system, Linux is better for programing for sure, but I rather take the risk and playing than waiting years for port, and Im not doing this for living. If its bothers you I can take the notpad thing down from the description. Its realy doesnt matter.

     

    Petty and Common modules support something like 20 or 25 crew.

     

    If the random number what i used is 0 its just give you the base options, in the new one i added an extra factor so if the rarity going up its supports more.

     

    Sometimes, I find rarer Robotic Crew modules that do not support any more crew than less valuable versions, with the only difference being that the rare version requires a bit less energy. (Though, rarely, it might actually require more energy.)

     

    Tha answer is efficiency. As the rarity going up, the used energy per added bonus crew is going down. There is some exceptions, i call them unlucky finds.

     

    And it would be awesome if we could find Exotic and Legendary versions that support in excess of 500 crew, maybe even more than 1000.

     

    Its could be a good idea, if its balanced. Thank you.

  6. Where it says xx.yyGW Free, it shows the excess power.

     

    Thanks for the answer.

     

    Sadly I still can't increase energy consumption let alone show it in the energy overview. I actually have to reduce the energy production. But it works good enough!

     

    Nice move give a negative statbonus for generated energy, yeah its same as rising the consumption.

    Expecialy like this part "--adding 1 Turret per 600,000 net worth of the complex" its quiet usefull for big stations.

    Plus the way you done it is brilliant.

  7. That one is lightyears better than my scratch for sure, congratulation mate.

    Totaly different way to solve the problem whit the not so player frienly vanila ones, and nicely done.

    (Maybe a bit to Compl3X for beginers tho :) )

     

    Q: Its looking for produced power amouth to run right?

  8. We just need to be able to make player stations different sizes!

     

    Yes thats one way, the first one what is come to my mind too, but i like to build and dont see point to buy another station just because i want more production :) its like buying a new computer in every year because its a bit faster :D I dont need Mac thank you...

     

    Edit: I was wrong again, its prety good idea. Create an option to upgrade the existing ones for money and goods. To do this just need to create one more option in the interaction window, or in the stations UI...

     

    Edit 2: But for that you don't need to rise the size/volume neither...

     

    Edit 3: expect if you can make a check on the entities plan is it contains a certain template (like the pre-generated solar panel what already have one) and instead of time step its event triggered, its limits creativity but saving performance.... And its still can be tricked like building up the station, upgrade, and than deconstruct the extra, ending up with a 1 x 1 x 1 cube of XXL factory

  9. Yes both of you are right, looked it up and its true, I was wrong its truly random and relying on probablity, apologies for it.

     

    Thats the part what was confused me:

     

        -- set title
        if station.title == "" then
            station.title = "Factory"%_t
    
            local size = ""
            if factorySize == 1 then size = "S /* Size, as in S, M, L, XL etc.*/"%_t
            elseif factorySize == 2 then size = "M /* Size, as in S, M, L, XL etc.*/"%_t
            elseif factorySize == 3 then size = "L /* Size, as in S, M, L, XL etc.*/"%_t
            elseif factorySize == 4 then size = "XL /* Size, as in S, M, L, XL etc.*/"%_t
            elseif factorySize == 5 then size = "XXL /* Size, as in S, M, L, XL etc.*/"%_t
            end
    
            local name, args = formatFactoryName(production, size)
    
            local station = Entity()
            station:setTitle(name, args)
    
            local arms = factorySize
    
            if string.match(production.factory, "Solar") then
                addSolarPanels(station, arms)
            end
    
            if string.match(production.factory, "Mine") then
                addAsteroid(station)
            end
    
            if string.match(production.factory, "Farm") or string.match(production.factory, "Ranch") then
    
                local x = 4 + math.floor(factorySize * 2.5)
                local y = 5 + factorySize * 4
    
                addFarmingCenters(station, arms, x, y)
            end
    
            if string.match(production.factory, "Factory")
                or string.match(production.factory, "Manufacturer")
                or string.match(production.factory, "Extractor") then
    
                local x = 4 + math.floor(factorySize * 1.5)
                local y = 5 + factorySize * 2
    
                addProductionCenters(station, arms, x, y)
            end
    
            if string.match(production.factory, "Collector") then
                addCollectors(station, arms)
            end
    
        end
    
        initializeTrading(bought, sold)
    end
    

     

    Since its giving the factory a title (S, M, L etc), and than if im right its expending the station after Goods type and factorySize. Edit: So the factorySize is random, maxNumProductions is random to since

    production = {}
    maxNumProductions = 2
    ...
    maxNumProductions = data.maxNumProductions
    factorySize = data.maxNumProductions - 1

     

     

    Try cloning an XXL Solar Power Plant, and you'll see what we mean.

    I tried it. If you cloning something in the game is cloning everyting, included the random numbers too so it will be execly the same. Excep if its not contains the math.randomseed(seed) part. I find that one out when i created a modul and every time i loaded the save it have different stats.

     

    But back to the point, heres the problem what Lazerwei mentioned befor, i cant go after the volume becouse its abusable with stone and hologram. If i going after the size what are pregenerated elements, its need to be execly the same and could be highly performance hungry. So probably just one way left, try to ask for a certain BlockType Volume inside an Entity. I think i seen them in the documentation.

     

    Edit : For Power Plant it shoud be easier because need to look up for the produced energy amouth, it can be generator or solar panel doesnt matter i think.

     

     

  10. The game actually does do this.

     

    Depending on the size of the station you will have more max production slots, so they will produce more.

     

    An XL station will run 4 productions (might be XXL), whereas an S station will only run 1.

     

    The game is not deciding the production amouth from size, its doing it in the opposive way. Looking up the sector and the surraunding sectors needs and give a production amouth for the station. Of course there is a random factor in it too. Name generator is looking for the amouth too, and than start to generate the volume, number of arms etc. This is why player stations are always geting the size S. its doesn't matter how big is the ship what was used as a foundation, or how big you build that station.

  11. The biggest problem with changing the productionsize (internal name) is not the actual changing, but knowing when to change. Actively checking if a Block changed or registering events onBlockplanChanged/onBlockDestroyed are too resourcehungry atm.

    function getUpdateInterval()
        return 120 --2 minutes for save performance
    end 

    This would also cause the productioncycle to take at least 2 minutes (currently 15seconds with 2 parallel cycles).

     

    Using Volume as a Balancer is a realy bad Idea. You can use Holographic or Stone blocks to very cheaply generate lots of Volume.

     

    Thank you very much

     

    Yes the first one is true, realy changeing the cycle, so its scrap

     

    The second one is true as well, it can be abused easely, but its still better than checking the actual change on blocks because of the performance isues just as you said. So its not that bad idea, the game is already using volume as a balancer in many ways.

  12. Hello guys.

     

    The vanila game is not doing it so, I tring on a mod what changing the produced goods amouth on Player stations related to volume, like the NPC factories S, M, L, XL, XXL.

     

     

    Its might be look like and can be added into the facroy.lua

     

    --SCRAP--

    - Get an timestep when the the program checking the size of the player own stations in the sector.

    function getUpdateInterval()
        return 120 --2 minutes for save performance
    end 

     

    - When its updates checking the actual size of the stations and do the changes.

    function update(timeStep)
    
    -- Heres the part what i stucked with ---
    
    local station = Entity(xxx)   -- need to call down the stations faction index
    local player = Player(xxx)   -- need to call down the players faction index
    
    local maxNumProductions = factorySize + 1 -- number of the base producted goods what is 2 on size S
    
    local volume = station.getVolume -- get the volume of the station
    
    -- its starting from size S so dont need that one
    local scaleM = 6000
    local scaleL = 12000
    local scaleXL = 20000
    local scaleXXL = 32000
    
    
    for _,  --station index-- in pairs(--player index--) do -- just do the changes on the player owned stations, realy not sure about it
    
    if scaleM < volume < scaleL than --size M
    maxNumProductions = maxNumProductions + 1
    elseif scaleL < volume < scaleXL than --sizeL
    maxNumProductions = maxNumProductions + 2
    elseif scalexL < volume < scaleXXL than -- sizeXL
    maxNumProductions = maxNumProductions + 3
    elseif volume > scaleXL than -- sizeXXL
    maxNumProductions = maxNumProductions + 4
    end
    end
    
    end

     

    The volume check is "could be good" because if something is taking down half of the station (ramming NPC) the production is falling back too.

     

    Im not sure my logic is good or not, but probably not... Just learning how to do magic... sorry about it.

     

     

     

×
×
  • Create New...