Welcome to Keen Software House Forums! Log in or Sign up to interact with the KSH community.
  1. You are currently browsing our forum as a guest. Create your own forum account to access all forum functionality.

SESE NoGrief plugin

Discussion in 'Multiplayer' started by rexxar, Jan 6, 2016.

Thread Status:
This last post in this thread was made more than 31 days old.
  1. rexxar Senior Engineer

    Messages:
    1,532
    I've been hard at work, so here's my first pass at the NoGrief plugin! https://github.com/rexxar-tc/NoGrief/releases/tag/v1.0.0.53

    I've only got one feature implemented right now, and that is Exclusion Zones. This lets you set up a sphere around your ship or station, and nobody is allowed inside unless you say so! Here's all the settings:
    • AllowAdmins: Anyone who is an admin on the server is allowed to enter the zone. TransportAdd applies to users admins bring with them.
    • AllowedEntities: The EntityID of all ships allowed in the zone go in this list. You can add items manually, but it also gets populated automatically during setup and if TransportAdd is enabled.
    • AllowedPlayers: Same as AllowedEntities, but with SteamID of players instead.
    • Enabled: This is obvious.
    • EntityID: This is the EntityID of the ship or station that the zone is centered on. You can get this number from the entity tab in SESE, or by using the /getid chat command ingame.
    • ExclusionMessage: This is a chat message the server sends to any player that is kicked out of your exclusion zone.
    • ExclusionRadius: The radius, in meters, around your ship/station that is protected. Please note that there is a 100m buffer zone outside of this radius. Players in the buffer zone get a warning message from the server, but nothing happens until they enter the actual exclusion zone.
    • TransportAdd: If you turn this on, anything brought into the exclusion zone will be added permanently to the allowed lists. This means that if your friends aren't on the allowed list, but are sat in a ship you're piloting, once they cross the boundary, they will be added to the AllowedPlayers list. If the ship isn't on the allowed entities list, but is piloted by someone who is allowed inside, it will be added to the AllowedEntities list.
    About zone setup: When the server starts up, or you add a new zone mid-game, the plugin looks at all the ships inside your exclusion zone and adds them to the AllowedEntities list. It also finds players owning a majority of blocks on those ships and adds them to the AllowedPlayers list.

    When a player enters the boundary zone, whether inside a ship or just using their jetpack, they will be sent a notification that they're approaching an exclusion zone. If they continue through the boundary, they will be sent another warning message and be teleported back the direction they came in. In the case of a ship, and player onboard will see the message, and the whole ship gets teleported.

    Floating objects like rocks or components, as well as missiles will be deleted as soon as they cross from the boundary zone into the exclusion zone. I haven't found a way to stop bullets just yet, but I'm looking into it.

    If you have an exclusion zone set on a ship, it will be disabled while the ship is moving.

    I'm sure the first question you'll have is about allowing factions into your zones. I had the same idea, but I'm not sure how I want to implement it just yet. I wanted to get this out first so you guys can test it and give feedback.

    Also important to note: This requires the Essentials client side mod to work:http://steamcommunity.com/sharedfiles/filedetails/?id=559202083 I just updated it with some new features, the most important being the ability to teleport ships and players.

    Please give it a try and let me know what you think! I welcome any and all feedback!
     
    • Like Like x 4
  2. PhoenixTheSage Junior Engineer

    Messages:
    677
    :tu:

    I might have a few ways to use dis :stare:
     
  3. rexxar Senior Engineer

    Messages:
    1,532
    I can't decide how to do factions. I could look at the allowed player list and see what factions they're in, but if a player changes factions, the new faction will have permission and the old one won't. I don't particularly like that behavior. Another option is to look at the ship/station the exclusion zone is centered on. I'd load the factions from players who own blocks on that grid. It's a little better, but still has the same problem as loading factions from the player list.

    I could possibly have a textbox for you to type the name of an allowed faction, but then I have to write a bunch of code to handle text entry and figure out what to do if the user types the name wrong. Besides, I'd prefer something more dynamic.

    Any thoughts?
     
  4. kittle Senior Engineer

    Messages:
    1,086
    what about projectiles ... ?
    what happens when I sit outside the protection zone and shoot in?

    Same question for throwing rocks
     
  5. rexxar Senior Engineer

    Messages:
    1,532
     
  6. Wizlawz Master Engineer

    Messages:
    3,028
    i subbed to it, also tried the SE Server Extender and extracted as instructed, but something went wrong i think, where does this one go? same folder as the SESE?

    also do you have to be running a server for this to work as the SESE seems to lead into that direction, so how can i use it as a player on a server? that server has to have it?
     
  7. rexxar Senior Engineer

    Messages:
    1,532
    Since this is a plugin for SESE, you have to be running SESE to use it. i.e., this is installed on a dedicated server. If you're having trouble setting up SESE, there is a thread linked in my signature that can help you. To install this plugin, go to the mods folder for your server instance, create a new folder called NoGrief, and put the downloaded DLL inside it. Same instructions as installing the Essentials plugin.

    Exclusion zones are not configurable by players. Right now the only way to set it up is with the GUI. At some point it will have a chat setup system, but even then it will only be available to admins. The whole idea here is to protect things like faction outposts, trading centers, secret admin bases, that sort of thing. It's a very powerful tool and I don't really see any reason a player would need access to it. I don't know about anyone else, but I certainly wouldn't want to give my players the ability to just teleport each other around.

    Which isn't to say there won't be player tools in this plugin, this is just the first of many features I have planned. For instance, the next thing I'm working on is new player protection. For the first few days or # of logins, a player's base and any ships they have parked near it will be invincible while they're offline. There's a lot of rules involved in there, including number of blocks in your station, number of ships parked and how many blocks they have...

    For regular players, there will be optional offline protection; your base and ships will take 25% damage or something while you're offline, with similar rules to the new player protection. Not worked out the numbers on this one, but you get the idea.
     
    • Informative Informative x 1
  8. Wizlawz Master Engineer

    Messages:
    3,028
    ahhh i was not really interested in teleporting players but my interest was more for the sphere,..... much like those for a POS =Player Owned Station= in EVE ONLINE, you need a password to enter it, otherwise you are not getting in without some real effort.

    so i thought i could protect my ship / base(s) etc while off line as a client not as a Server or Admin.

    so i was like hel ye, jest what i was looking for, sorry to be disappointed now.....do you think you could do a client side one you can take to servers, i am not talking about teleporting players around like an Admin, although if it only teleports them outside the vicinity of the sphere instead of a password (unless you can make it to use a pw) i am cool with that.

    jest looking for a little extra precautionary protection while off line is all.

    when in EVE if you are in a ship and you log out it teleports your ship to far unknown reaches of space.....usually.... if you could do something like that i would be cool with that as well, or "cloak" the clients ship until they return online.

    is any of that doable ?
     
  9. rexxar Senior Engineer

    Messages:
    1,532
    The plugin as it is now could be turned into a standalone mod relatively easily. You'd have to replace the network stuff, but the hard part is the scan logic, and that's already done. However, I'm not at all interested in doing that. School is starting, so I've only got so much time, and I've got a lot more planned for this plugin. It will be a lot easier to accomplish what I want by continuing to develop NoGrief as a SESE plugin, since I'm very familiar with the limitations of the SESE API. If I were to move to a standalone mod, I'd have to work within the limitations of the SE ModAPI, and I don't have any sense of what is and isn't possible in there. SESE gives access to a lot of very powerful functions that you can't get in the normal ModAPI. All my code is open source, so if someone was interested in porting exclusion zones to a mod, they're welcome to it.

    That said, a password to get into the protection zone is a fantastic idea. You could have multiple passwords, too; some would only grant you access, others could add you to the allowed list permanently... Welp, there goes my weekend.
     
  10. Wizlawz Master Engineer

    Messages:
    3,028
    ahhhhh, ok cool.

    [​IMG]
     
  11. AutoMcD Senior Engineer

    Messages:
    2,369
    Cool idea
     
  12. rexxar Senior Engineer

    Messages:
    1,532
  13. Dax23333 Junior Engineer

    Messages:
    657
    This looks like a brilliant idea! I'm glad someone is doing a thing for the people who don't want thier whole game time to be in a warzone.

    With regards to stopping the bullets, could you make the exclusion zone large enough so that turrets don't lock onto what is in the middle and bullets despawn before they get there? I don't think a 1km exclusion zone would be too unreasonable.
     
  14. rexxar Senior Engineer

    Messages:
    1,532
    You set the size of the exclusion zone yourself, and there isn't really any restriction on it.
     
  15. Ced23Ric Apprentice Engineer

    Messages:
    103
    Rexxar, as someone with a literal two dozen factions and PvP opt-in, I would love for you to give us a "/exclusion faction [non case senstive tag]" functionality. It would be stellar.
     
  16. rexxar Senior Engineer

    Messages:
    1,532
    I need to work on some other junk before I can start on the chat system, but here's an update that includes factions https://github.com/rexxar-tc/NoGrief/releases/tag/v1.0.0.60

    I haven't tested it, but it should work.
     
  17. rexxar Senior Engineer

    Messages:
    1,532
    Back on the horse: https://github.com/rexxar-tc/NoGrief/releases/tag/v1.0.0.78

    New feature: Protection Zones!

    It's pretty straightforward, you pick a ship and a radius, and anything inside that sphere will be completely invulnerable.

    There are two extra options: MaxGridCount and MaxGridSize.

    MaxGridSize can be used to protect only grids under a certain number of blocks, and MaxGridCount protects only a certain number of grids. Currently the server doesn't sent a message to pilots of ships that don't meet those criteria, but that should be coming soon.
     
  18. AutoMcD Senior Engineer

    Messages:
    2,369
    Cool idea. Is max count limited per faction or global?
     
  19. rexxar Senior Engineer

    Messages:
    1,532
    Per protection zone.
     
  20. rexxar Senior Engineer

    Messages:
    1,532
    Long time no update! https://github.com/rexxar-tc/NoGrief/releases/tag/v1.0.0.96

    This update adds the ability to limit the size of grids that may be spawned into the world. The idea is to stop people spawning massive 100k block grids in order to tank the server.

    I've only done minimal testing with this, so please use and abuse it!
     
  21. Stollie Apprentice Engineer

    Messages:
    136
  22. rexxar Senior Engineer

    Messages:
    1,532
    Since it was last updated in January, it won't work anymore.
     
Thread Status:
This last post in this thread was made more than 31 days old.