Anti-hacking measures in recruit

Discussion in 'NOTD Discussion' started by stanK, Apr 21, 2017.

  1. stanK

    stanK Member

    Hello everyone,

    As you are all aware, the existing report-ban system has been having issues lately. We had a long period of no patches, then reports got ignored for a while.
    In addition, several community members like tantric and vash have actively encouraged hacking.

    For organised players, hackers are a non-issue as they are simply never invited. In pubs however, anyone can join and fuck things up with no restrictions.
    Since no tweaks to report/autoban systems are going to fix this, Me and Pickles brainstormed for a different solution:

    Add a switch "-cg", "-cleangame" to recruit that will disable All weapon mods and most stats/cp bonuses, set the game rating to 1600, and give extra 30 xp + 20 credits on victory.

    This addresses the main motivation to hack directly, and encourages players who want to play recruit games in an organised fashion to do so, without being nagged by some noob who does idiotic things and just doesn't die.

    The switch would take 1 (one) player to activate, any player could do it instead of just players 1 and 2. It takes one player to hack, so it should take one player to negate it.

    Feedback is appreciated, please give your ideas.
    Last edited: Apr 21, 2017
  2. JohnyM

    JohnyM Member

    Sounds silly to me, as it gonna have impact only if other, truly experienced player is in the game. IMO any prevention system shoud be by default in recruit. Also at least vet, should be eazier obtainable, as it is silly to do recruit with 7 ~100k players and one 100exp in lobby. Result is usually rq and rmk with no newb, while in vet mode some would actually stay.
  3. stanK

    stanK Member

    You don't need a "truly experienced" player to type "-cg"... any person can do it, all they need is the desire to play a clean game. Default activation is something that bugged me for a while, and I decided not to add it just yet.

    As for vet -- not related to topic.
  4. JohnyM

    JohnyM Member

    Yea, everyone can do it... if they know about it...
    Saying that something is not related to topic - is not related to topic.
  5. stanK

    stanK Member

    Pretty much like they know about -nc, -a, -sq and so on.
  6. JohnyM

    JohnyM Member

    hint, hint, they dont.
  7. rockz
    • Donator

    rockz Well-Known Member

    I'm OK with this as long as it's only available in recruit.

    Hell mode should do something like this automatically.

    EDIT:

    Stats make a big difference in this game. I don't know how you can possibly cap stats fairly in recruit other than limiting each stat to 2 points (any above are wasted and do nothing). As I've said before, I won't code this, so I'll leave it up to you how to do it elegantly.

    If you insist on making recruit stats different from nightmare stats, you'll have to make sure that recruit stats are stored separately from nightmare stats and will save properly with your bank. Otherwise it will be more of a reason for people to not play, as they have to readjust stat and mods every time they join a recruit, then every time they join a game after recruit.

    I believe stats are applied as behaviors, so you can just put a max cap of 2 in recruit. Not sure how you can remove weapon mods easily.
    Last edited: Apr 21, 2017
  8. stanK

    stanK Member

    We don't need to recode stat storage in banks. We can simply remove extra stat behaviors like u figured out yourself. All it needs is a text in stats window, that tells the player they are capped.
    So if we allow 10 max stats, and the player has 16, then we sequentially remove last 6. -1 to str, -1 to endurance, and so on, until the player has 10 stats left. If they had 9 str and 7 int, that would result to 6 str, and 4 int. If player had just 9 str, that would stay as 9 str.

    For players that may want to store a specific stats, just for the chance of playing -cg recruit -- this is not the point of having a clean game. Point is to give away crazy op banks, and beat pub with a slightly higher xp/cred reward by organizing the team more. One can do that with 0 xp bank.

    As for max number -- i was thinking about 15, its already a significant diff from 44.
  9. rockz
    • Donator

    rockz Well-Known Member

    I don't want to have to redo my stats, or worse, weapon mods.

    I don't see how you will fix the stat storage with the save function written the way it is.

    If you make stats stop working in -cg after you put 2 (or 4) in the stat, that means you can put more in, they just don't do anything.
  10. stanK

    stanK Member

    Thats EXACTLY the idea, and its not worth making anything more complicated than that. All it needs it a way to inform the player that certain number of their stats no longer do anything.
  11. rockz
    • Donator

    rockz Well-Known Member

    I feel like it's simpler to make the maxcap be 2 for the behavior than program in something that reduces maxcap dynamically.
  12. stanK

    stanK Member

    The cap is based on total number of stats, not each stat category, and its simple imo. There is really nothing complicated about the system, which to recap is:

    1) any player types "-cg" or "-cleangame"
    2) weapon mod bonuses are removed
    3) stat point bonuses are reduced to 15 max
    4) class point bonuses are reduced to 10 max
    5) game rating fixed to 1600
    6) extra 30 xp, 20 creds awarded on victory

    Simple and effective.
  13. JohnyM

    JohnyM Member

    Yea, i simply wont play pub ever again.
  14. rockz
    • Donator

    rockz Well-Known Member

    So lets say you have 27 points. You put 9 into str, 9 into int, then 9 into perception.

    Once you hit 6 into int, you'll lose 1 into str (down to 8 max cap). At 9 int, you'll be at 6 str. At 6 Perception, you'll be at 0 str.

    Unless you cap the stats at the 5 minute mark rather than instantly, in which case the player will heal their damage as they lose strength at the 5 minute mark, and it's also confusing to me. I take issue with how difficult this will be to code rather than the balance. It would be 1000x simpler to cap all stats at 3.
  15. stanK

    stanK Member

    Lol rocks, my math doesn't compile for you :D

    Lets go through the algorithm step by step:
    step 1) check if stats <= 15, if yes stop, if no take 1 str and go to step 2.
    step 2) check if stats <= 15, if yes stop, if no take 1 end and go to step 3.
    step 3) check if stats <= 15, if yes stop, if no take 1 agi and go to step 4.
    step 4) check if stats <= 15, if yes stop, if no take 1 per and go to step 5.
    step 5) check if stats <= 15, if yes stop, if no take 1 int and go to step 1.

    At the end of it, you will have 5 str, 5 int, and 5 perc. Period. No side effects, nothing complicated.
    I don't see whats so hard to understand here...

    It will be active in the first 5-10 minutes of the game, cos we don't want ppl to type it after they kill eos just for xp.
    Nothing will be healed once activated, stat heal didn't even work that way. Stats like str/int only affect the max life/energy, and they used to add life/energy when adding, not removing.

    There, i hope this is finally clear about how stats will work.
  16. stanK

    stanK Member

    Oh that's not true, cos you practically never play pub regardless, as you said recruit should be removed completely :D
  17. rockz
    • Donator

    rockz Well-Known Member

    What's the correct order of operations here:

    Option 1)
    9 int, 6 str. Stat points are under 16, so do nothing.
    9 int, 7 str. Stat points are 16, set max stack of all stats to 9, remove 1 max str.
    9 int, 8 str. Stat points are 17, set max stack of all stats to 9, remove 1 max str, 1 max int.
    9 int, 9 str. Stat points are 18, set max stack of all stats to 9, remove 1 max str, 1 max int, 1 max str.

    Option 2)
    9 int, 6 str. Stat points are under 16, set max stack of all stats to 9.
    9 int, 7 str. Stat points are 16, remove 1 max str.
    9 int, 8 str. Stat points are 17, remove 1 max str (cumulative).
    9 int, 9 str. Stat points are 18, remove 1 max str (cumulative).

    Option 3)
    -cg is only available to type after minute 5 after stats are locked.
    any damage sustained during the first 5 minutes is negated when strength decreases by up to 6 points.
    Last edited: Apr 27, 2017
  18. stanK

    stanK Member

    For these 4 cases you got the removal part right. I've no idea what you mean by "set max stack of all stats to 9".

    Option 2) My algorithm doesn't remove 3 str when a person has 9 str, 9 int. Option 1 was right, this one is wrong.

    Option 3)
    I haven't decided on time available yet, but it most certainly WILL NOT BE COUPLED with stat lock. We have enough spaghetti code when unrelated things are tied to each other as it is. The -cg can be activated when recruit is picked.

    This particular part of the implementation, isn't the hard part rocks. The real difficulty is in making it work nice and clean every time someone changes stats or weapon mods. The difficulty comes from the fact that when u pick a weapon mod, it runs a script that recalculates damage of weapons and sets the new values in data. The solution isn't hard to figure out, but a pain in the ass to code as we need an intermediary for value calculation.
  19. rockz
    • Donator

    rockz Well-Known Member

    <CBehaviorBuff id="IntelligenceStat">
    <InfoFlags index="Hidden" value="1"/>
    <EditorCategories value="AbilityorEffectType:Units,Race:Terran"/>
    <MaxStackCount value="9"/>
    <MaxStackCountPerCaster value="9"/>
    <Modification DetectArc="0" RadarArc="0">
    <VitalMaxIncreaseAffectsCurrentArray index="Energy" value="0"/>
    <VitalMaxArray index="Energy" value="5"/>
    <VitalRegenArray index="Energy" value="0.0156"/>
    </Modification>
    </CBehaviorBuff>

    Weapon mods will be slightly easier. Just set an if then condition to ensure -cg is not set and undo the other 7 mods.
  20. stanK

    stanK Member

    It's indeed a simple solution to change the behavior, but I specifically designed an algorithm that would allow for things like 9 inteligence + 2 perception. This is in response to criticism that the player progression must be preserved. Max behavior cap isn't off the table, I would keep it as a last resort failsafe.

Share This Page