Jump to content

alfuken

Members
  • Posts

    14
  • Joined

  • Last visited

Everything posted by alfuken

  1. I'd like to bump this post since the issue is really worrying. On servers with high load it's too easy to loose a ship due to this game design flaw; and overall making player killable while he is unable to take any actions is a bad design...
  2. Yeah, you can do that, of course. But system slots provide already existing scale, while for mass you'll have to come up with some arbitrary scale... although limiting velocity based on mass surely makes more sense.
  3. It seems like there is no limitation on the sign of the multiplier, but if you want to, for example, reduce some attribute by half, you'll have to use multiplier 0.5, so, basically, resulting value is existing value multiplied by what you'll pass as an argument to the function addMultiplier . Since here I'm passing 0.0, so any value multiplied by zero is zero. Yes, that applies to any entity that returns true for the function isShip , including NPC. Actually, I don't know if they do have slots, that's something that needs to be checked. But since slot count depends on processing power, calculator can be changed to use processing power instead. Or volume. Or weight. Or whatever. Keep in mind that this piece of code is only applied when entity is initialised/loaded in game. I don't know what will happen if you try to change your ship plan, or attach an engine booster system, etc. — this needs to be accounted for and programmed accordingly. This script is just a proof of concept, an example of how speed limitation can be effectively achieved.
  4. Duh, that's the point of dedicated PDC ships! If you make fighters unkillable by dedicated AA ships, what's the point of those then?? Besides, even a non-dedicated cruiser should be able to handle a squad or two of fighters, otherwise PD weapons are useless. And on sandwich ships, game mechanics counts blocks railgun charge have passed, thus nothing is stopping you from: a) making 10 layers of 0.001 thick armour plates; b) same 10 layers of stone and 1 layer of armour; or c) an armour plate and 10 thin layers of cheap blank hull behind it. This may only change if rail shots will be made all-penetrating through the whole ship, but that would be too overpowered thing to do.
  5. OK, here's what I've came up with so far: File name: data/scripts/entity/init.lua Code: function traffic_police(entity) -- for some weird reason (bug?), maxVelocity is smaller that actual value, -- so it needs to be multiplied by 2.5; probably programmed by some murican... local initial_top_speed = Engine(entity).maxVelocity*2,5 local tier = ShipSystem(entity).numSlots -- we start off at 600m/s max, and loose 20m/s for each system slot of the ship -- that means 500m/s max with 5 slots, 400m/s with 10 slots, 300m/s with 15 slots local max_speed = 60 - tier*2 -- yes, speed also have to be set divided by ten, another bug? -- new speed shouldn't be higher than the one provided by engines local new_speed = math.min(initial_top_speed, max_speed) -- reset to zero entity.addMultiplier(entity, StatsBonuses.Velocity, 0.0) entity.addAbsoluteBias(entity, StatsBonuses.Velocity, new_speed) -- as you might have noticed, these two methods demand entity as first argument - contrary to what the Documentation says. 3 bugs in 1 piece of code, how bout that!? print(entity.name .. " - " .. Engine(entity).maxVelocity * 2.5) end if onServer() then local entity = Entity() if entity.isShip traffic_police(entity) end end This code is only applied when Entity is initialized, it's dirty and needs to be updated to re-apply after ship plan change, system install/remove, etc, but as a proof of concept it works.
  6. I think I've actually found a way... kind of. With the help of addMultiplier(StatsBonuses.Velocity, 0.0) you can set ship speed to zero, and then with addAbsoluteBias(StatsBonuses.Velocity, 5.0) you can set desired ship max speed in decametres (for some reason providing 5 there increased speed by 50m/s, and 123 - by 1230m/s. Now the difficult part is to find out what was ship's max speed before the change, so we don't give it more speed than it had before...
  7. Just my 5¢ on this topic... Smells like EVEOnline ;) Though I can already predict that the only thing that will be used to add to shield resistance is vs plasma and vs electric. And that's it. No point in adding anything else. Best defence is, as always: run if you're getting your S kicked. and we'll end up with ham sandwich ships with two plates of armour and tasty insides. Oh, and don't forget to cover them with 0.0001 thick layer of trinium stone, to render the tesla/ligtning guns useless. That's if you'll manage to get to the distance close enough to actually aim at those squishy blocks between the armour sandwich. Most fights happen on a far greater distance than that of an aimed fire. IMO, fighters just need the ability to boost, like big ships do, and that will solve all the speed issues with fighters. I think this can be implemented via modding, by using Entity.addMultiplier() All can be done via modding. Though a lot of the points mentioned are really worth looking into, I'd say resistance subject is quite useless in reality of Avorion. Shields are only need to be hardened against anti-shield type of damage, hull - against anti-hull. Which, basically, is a plain increase of effective HP of said systems. Might as well just plug a shield extender instead.
  8. I'd like to request to expose adding and altering of "Components" of the "Entity". Right now there is no way to add or alter a component of a ship. One can only add components when creating a ship via "ShipDescriptor". On "Entity" object you can only check if component exists, but you can't access that component. Reasoning behind this: a lot of the balancing issues in game are related to extremely high ship speeds: basically all ships in the game can simply outrun fighters, torpedoes, missiles and even cannon shots - and that is... well... illogical, to say the least. This issue is causing a wide array of weapons practically unusable. I wanted to make a mod that would either disable "boost" ability of the "Engine" component of every single ship, or limit the ship speed via "DirectFlightPhysics" component based on ship size. Turns out you can not permanently alter the "Engine" component of already created ship (hence can't disable boost), nor you can't add a "DirectFlightPhysics" component to a ship (was thinking about using it's maxVelocity property). Altering ship creation methods is not an option since it's done in so many different places in the code, that it would be an utter mess. Hence the request: a bit more freedom of control over the created entities - expose adding/removing/setting/altering of Components on an Entity. And/or ability to get an "EntityDescriptor" instance of existing Entity in order to alter the underlying Entity.
  9. Whoa, didn't actually expected a developer seeing this, but that makes me happy. :) But really, it's shouldn't be too hard to implement this, right? BTW, while you're on it, maybe create a QOL improvement ticket/story to change function "function Entity createShip(Faction faction, string name, BlockPlan plan, Matrix position, var arrivalType)" to make "arrivalType" be "EntityArrivalType.Jump" by default? Will be a bit more immersive that way, huh?
  10. OK, seems like it's not possible at the current level of API implementation. Best option would be to just disable the boost ability for all ships, but you can't get the Engine component of an existing ship, because Entity API only allows to check if Component is present in Entity, but doesn't allow adding it, which is utter BS. You also can't add DirectFlightPhysics component for the same reason, and the only accessible property of "velocity" is dynamic, so it would require checking current ship velocity every game tick and adjusting it which is a horrible idea. This topic may be closed. :(
  11. Hm... wasn't able to find it anywhere... Anyway, DirectFlightPhysics seems to be the thing, but I can't find a way to hook it up to ship creation event. :/ Theoretically, it looks like this: Before any ship is added to a game, get the DirectFlightPhysics component, alter maxVelocity, and put it back, but I have found no way to catch the ship creation event, and no way to check if Entity is a ship... :/
  12. Action in the sector begins immediately after jump, but the player is unable to react until client loads the sector. This leads to cases when you jump into a sector, get ambushed by pirates, and helplessly peer on loading screen for 5-10 seconds, just to see your ship already being torn to pieces. Also, "Press Space to continue" option is completely and totally useless and even harmful, because it leads the player to believe his ship is safe until player is ready to continue. This can be disabled, I know, but it's still a great source of WTFs per hour. I believe player ships should not be added to the sector at all until player screen loads to the state where player can perform actions. I'm not talking about making ship invincible, but instead just load the sector, and when loading screen in through (or player have pressed "Space" button) ship is added to the sector via warp-in mechanics, like with the NPS ships. Shouldn't be that hard to implement, huh?..
  13. Basically, what the subject says. Is there a way to enforce the upper limit of all, both player built and NPC ships in game? Most of the balance problems in this game come from the fact that all of the ships are just flying faster that most ammunition in the game. A ship, which easily outruns fighters, torpedoes, missiles, cannon shots and even machineguns is total and utter bull-poo. So. is there a way to limit that somehow via mods?
  14. get a laser, they have 100% accuracy and never miss.
×
×
  • Create New...