Jump to content

DeltaUniform

Members
  • Content Count

    3
  • Joined

  • Last visited

Community Reputation

3 Neutral

About DeltaUniform

  • Rank
    On the Coast
  1. DeltaUniform

    Loot Spawn by Peek Volume

    Hello DayZ Community & (hopefully) Devs Need to give admins more control over their server. I understand why whitelisting, kick/ban-on-join, password protecting, etc, are detrimental to the game, but I believe you could achieve the same thing by implementing an item spawning system that is based on the number of players on the server. Certain items that are uncommon or rare should only be rare in proportion to the competition. IE: certain items do not spawn unless the 20, 30, 40 player thresholds have been reached; and then despawn or decompose X number of minutes after the player threshold has been inversely reached (ie: the 30th player logs off, there are now 29 players on, countdown begins for rare loot despawn on player threshold 30 items (ie: downed helicopters, heavy weapons)). What this does is prevents server admins from being able to rent a server as a personal loot stage, as things such as whitelisting, kick/ban on join, and perpetual restarts will be worthless if you lack the player numbers to spawn the gear you're looking for. You can then allow whitelisting, passwords, etc, all you want and maintain a fair playing environment. Enjoy... feedback welcome
  2. DeltaUniform

    My 2 bits

    Trust? Really?
  3. DeltaUniform

    My 2 bits

    First and foremost, preventing hacks is easy, mostly dependent on how much thought was put into detection when the game was designed. Detecting an individual who has been hacked is even easier. It's a handful of if statements in a handful of functions that are called in a handful of other functions. These are expanded on and optimized as more and more hacks and exploits are learned. The jist: detectHack(_EVENT iEvent) { /**** * Detect a hack involving a player death * TODO: Make each if statement a separate method **** if(iEvent == _MURDER) { PlayerData *victim; PlayerData *lastmurderer; (_EVENTDEST)victim = iEvent.getDestination(); (_EVENTSRC)lastmurderer = iEvent.getSource(); if(distance(victim,lastmurderer) > _MAX_MURDER_DISTANCE) { // flag murderer's profile murder anomoly +1 // all hackers are innocent until proven guilty, and we have a function for that hFlag(murderer, _MURDER_ANOMOLY, A_MAX_DIST); // reset player to last known status before the time the event occured resetPlayer(victim, iEvent->getTimeStamp); } if(distance(victim,lastmurderer) > getMaxWeaponDistance(murderer->getWeapon()) { hFlag(murderer, _MURDER_ANOMOLY, A_MAX_WEAP_DIST); resetPlayer(victim, iEvent->getTimeStamp); } if(lastmurderer.getAttributes(prev, 10)->isInvisible() == true) { // Get the murderer's status last report to server start 1ms before event // if the player was invisible, flag invisible murder anomly and resurrect hFlag(murderer, _MURDER_INVISIBLE, A_INVISIBLE_PLAYER); resetPlayer(victim, iEvent->getTimeStamp); } and another and another and another and as more hacks are created, more if statements and methods will be created } Your methods investigate every murder. Your server keeps track of player status every loop, caches this status for about 5 minutes, and you write methods who can use the last 5 minutes of events to see if what just happened is even possible. First you wait for a key event... such as a player was just murdered, you call a given set of functions to investigate the death. If the death wasn't possible, flag the hacker and reset the victim. You have another set of events that happen every 5 seconds, checking for ghost connections, and other anomolies you have another set of events you run periodically to check for instance... did this player go from 2000 blood to 12000 blood and not eat anything? how many times has another player reported shooting this player? etc Etc... Eventually you end up with a pretty complete set of checks and balances. Why oh why would you develop a multiplayer game without putting checks and balances such as this into place?
×