Staredit Network > Forums > SC1 UMS Mapmaking Assistance > Topic: [SOLVED] Banning certain players
[SOLVED] Banning certain players
This topic is locked. You can no longer write replies here.
Sep 8 2011, 6:29 am
By: Ice Baby  

Sep 8 2011, 6:29 am Ice Baby Post #1



Is it possible for a map to detect a certain account name and ban them from thr game? If so how?



None.

Sep 8 2011, 7:10 am jjf28 Post #2

Cartography Artisan

In theory, yes Player Name EUD haven't seen it in practice.

Once you detect the players name simply give the player a mineral, and they will desync.

Shortfalls: doesen't cover macs, isn't guarenteed on windows... and they can simply alias if they catch on.



TheNitesWhoSay - Clan Aura - github

Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.

Sep 8 2011, 7:10 am Azrael Post #3



Yes, this is definitely possible. You would use EUDs to detect the player name as a condition, then give them defeat/kill their units/desync them/all of the above/whatever for the action.

I don't know the addresses you need off the top of my head, although there is an EUD Database. There is also a guide regarding EUDs here. Especially useful to you are Chapter 3 and Chapter 7, since you'll need to convert their name into a usable number first.

In order to convert their name into a number, you can use the manual method listed there, or one of the resources linked to that does it for you. I always use this program, but for just a single name it may be quicker for you to use this or this.

You will end up with multiple numbers, since the name is longer than 4 characters, and StarCraft breaks text up into blocks that are 4 characters long. If the person's name is 10 characters, you will end up with 3 numbers (first four letters, next four letters, then last two letters). You may want to consider only doing full 4 letter blocks (so if their name is 7 letters long, just check the first 4 letters; if their name is 10 characters long, just check the first 8). This will still likely only ever affect your intended target, unless the beginning of their name is a clan tag or something, and will certainly be easier for you.

As for getting the actual memory addresses that will store these numbers, if you can't find them in the EUD DB, it's not hard to get them yourself. Get a name spoofer to change your name to the name you want to ban (you should do this regardless since you'll want to test your triggers after you're done), then play the map by yourself as Player 1, and search the memory for each number with a program like ArtMoney. This will give you the memory addresses for Player 1. Repeat this process for Player 2, Player 3, etc. You'll have to make one trigger for each player slot, and each trigger will need one condition for every 4 letters you're detecting in the player's name.

Anyways, then you'll have your conditions, you'll just need your action. There's a whole slew of things you can throw at them. The memory address that stores player names is shared, so you can actually do whatever you want to them and it won't cause desync. You could kill all their units, or subtly handicap them, or make it impossible for them to win, or force them to keep unallying their team at regular intervals, or have them lose vision of their own units, or have any other random misfortune befall them throughout the game. You can also just purposely desync them so they drop and then try to crash them and then give them defeat for good measure.

Keep in mind that if they spoof a different name, it will not affect them.

Edit:

Quote from jjf28
Once you detect the players name simply give the player a mineral, and they will desync.

Player names can be detected from global addresses.

This is not theory, by the way. I have previously implemented a system that could detect when I was playing and altered the game accordingly.

Post has been edited 1 time(s), last time on Sep 8 2011, 7:18 am by Azrael.Wrath.




Sep 10 2011, 8:38 pm Roy Post #4

An artist's depiction of an Extended Unit Death

Quote from name:Azrael.Wrath
Edit:

Quote from jjf28
Once you detect the players name simply give the player a mineral, and they will desync.

Player names can be detected from global addresses.

This is not theory, by the way. I have previously implemented a system that could detect when I was playing and altered the game accordingly.
They can also be detected locally, which the address jjf28 referenced does. If you use 0x0057EE9C, you can desync a player easily based on name. (The addresses you're thinking of are located in the Active Player Structures.)

To make a trigger that drop-bans anyone with the name "ImaHacker," you'd just need to do this:
Trigger
Players
  • All Players
  • Conditions
  • Memory at Death Table + -11570 is exactly 1214344521
  • Memory at Death Table + -11569 is exactly 1701536609
  • Memory at Death Table + -11568 is exactly 114
  • Actions
  • End scenario in defeat for current player.


  • If you're looking to ban a player from a game based on their exact name, this option does a great job. Keep in mind that these kinds of triggers will not work if:

    1. The player spoofs, like mentioned above
    2. The player changes the casing (uppercase/lowercase) on their name
    3. The player is using a Mac, like mentioned above




    Sep 10 2011, 8:48 pm Azrael Post #5



    You can make it work regardless of their computer or operating system by doing it with global addresses. Of course, such a system would also drop mac-users :awesome:

    Anyways, bypassing it is ridiculously easy, and if the target figures out it's just him being dropped (which is likely not going to take long), then it's only a matter of time before he tries any number of things that will result in it no longer working on him.

    This is why I suggested using global addresses, and having it alter the game in a way that results in the target being unable to win, but making it much more subtle so that he either doesn't realize what's going on or he doesn't realize it's consistently happening to just him.

    Alternatively, the original poster could make it so that the person is only dropped if both he and the target are in the game. He could do this in addition to the previously mentioned solution.

    I'm not saying he can't do it using a local address, just that for his purposes (trying to screw over a specific player) there may be better methods to employ.




    Sep 10 2011, 8:59 pm Roy Post #6

    An artist's depiction of an Extended Unit Death

    Quote from name:Azrael.Wrath
    You can make it work regardless of their computer or operating system by doing it with global addresses. Of course, such a system would also drop mac-users :awesome:
    Quote from name:Azrael.Wrath
    This is why I suggested using global addresses...
    Quote from name:Azrael.Wrath
    I'm not saying he can't do it using a local address, just that for his purposes (trying to screw over a specific player) there may be better methods to employ.
    Err, no, not exactly. Any EUD written for a PC is not going to work the same way for a Mac, regardless if the address is local or global. The only difference in using a local address is that you can drop the player directly, whereas if you use a global address, you have to do more work if you want to desync them.

    If he wanted to employ your subtle change idea, he would have to use a global address, because a local one would simply drop the player.




    Sep 10 2011, 9:11 pm Azrael Post #7



    Quote from Roy
    Quote from name:Azrael.Wrath
    You can make it work regardless of their computer or operating system by doing it with global addresses. Of course, such a system would also drop mac-users :awesome:
    Err, no, not exactly. Any EUD written for a PC is not going to work the same way for a Mac, regardless if the address is local or global.

    The point is that global addresses have the benefit of being shared by everyone, and everyone else has a PC. Even if the player is using a Mac, the six other players are using a PC, and they can detect his name via global addresses and then simultaneously perform an action which will cause him to desync. The triggers for it wouldn't be any more complicated either. As previously stated, such a system would also drop anyone using a Mac along with him.

    Quote from Roy
    If he wanted to employ your subtle change idea, he would have to use a global address, because a local one would simply drop the player.

    This is why I suggested using global addresses.




    Sep 10 2011, 9:55 pm Roy Post #8

    An artist's depiction of an Extended Unit Death

    Quote from name:Azrael.Wrath
    The point is that global addresses have the benefit of being shared by everyone, and everyone else has a PC. Even if the player is using a Mac, the six other players are using a PC, and they can detect his name via global addresses and then simultaneously perform an action which will cause him to desync. The triggers for it wouldn't be any more complicated either. As previously stated, such a system would also drop anyone using a Mac along with him.
    Oh, I see. But that would be more complicated, wouldn't it? You'd have to have one universal trigger for each player address (to run something to drop all Mac players), followed by one trigger designed to cause a local event for each player for their address (to initiate the drop of a PC player), followed by a single trigger to drop any player running the local event. For seven players, that would be a running total of 15 triggers, as opposed to the single trigger I posted above.

    Your system will cause any Mac players to drop from the game, even if they are innocent, whereas mine would do nothing to them even if they did have the name Ice Baby wants to ban. Seeing how the original post sounds more like a premise to just ban-on-site (perhaps to deal with a hacker), my solution is safer and simpler, at the cost of not being as exhaustive as yours. If the person is running on a Mac, you may as well just have a ban system in the map, because Macs don't have any hacks written for 1.16.1. The chances of this are negligible, though.

    Anyway, Ice Baby, if the topic isn't solved yet, could you kindly provide more details on what you're trying to accomplish?




    Sep 11 2011, 12:29 am Azrael Post #9



    Quote from Roy
    Oh, I see. But that would be more complicated, wouldn't it? You'd have to have one universal trigger for each player address (to run something to drop all Mac players), followed by one trigger designed to cause a local event for each player for their address (to initiate the drop of a PC player), followed by a single trigger to drop any player running the local event. For seven players, that would be a running total of 15 triggers, as opposed to the single trigger I posted above.

    You need seven triggers, one for each player. Each one is basically identical to the others, with slightly modified memory addresses to take into account the different player slot.

    For example, to drop me, the first one would basically be

    Trigger
    Players
  • Player 2
  • Player 3
  • Player 4
  • Player 5
  • Player 6
  • Player 7
  • Conditions
  • Player 1 is Azrael
  • Actions
  • Add 1 Mineral for Current Player


  • The fact it drops mac-users is just an unavoidable side-effect. However, it would only drop them when that specific person is playing, the rest of the time it would be fine. Considering this, I think it is a total non-issue. It is better to make the trigger have a higher chance of being successful for such an incredibly low risk of it ever negatively impacting someone else.

    Alternatively, you could make the same 7 triggers for all players, have it set a death count to indicate they are playing, and then use that death count to turn on whatever terrible debilitating things you want to happen to them.




    Sep 11 2011, 1:59 am Roy Post #10

    An artist's depiction of an Extended Unit Death

    Quote from name:Azrael.Wrath
    For example, to drop me, the first one would basically be

    Trigger
    Players
  • Player 2
  • Player 3
  • Player 4
  • Player 5
  • Player 6
  • Player 7
  • Conditions
  • Player 1 is Azrael
  • Actions
  • Add 1 Mineral for Current Player
  • Yes, that drops all Mac players, and if Player 1 is Azrael, players 2-7 get a mineral. This does not make Player 1 drop, because you are reading from a global address; Player 1's game is still in synchronization. If you want to discuss this, PM me.




    Sep 11 2011, 2:24 am Azrael Post #11



    Oh right, I was thinking if he was on a Mac, but what if he isn't :awesome: His PC would think they should get their precious mineral. Well, it's not hard to modify, you can simply change it so instead of giving everyone else a mineral, it just gives him a mineral (or creates a burrowed zergling or something, whatever). Then you add one additional trigger for him that detects if this happens, along with reading some local data (like his name from the other address), and then performs an action that causes him to desync.

    So not 7 triggers, but 8. This will work on him regardless of his system, if he's in the game then he'll definitely drop.

    And thank you for offering your time, but I don't really need to discuss it :P I understand the mechanics behind EUDs well enough, the fault lied in being in a hurry and typing up the example too quickly without thinking about it at all.




    Sep 19 2011, 4:34 am Ice Baby Post #12



    Quote from Roy

    Anyway, Ice Baby, if the topic isn't solved yet, could you kindly provide more details on what you're trying to accomplish?

    I still cant get it to work :( i tried it with my name and its not doing anything



    None.

    Sep 19 2011, 1:43 pm Roy Post #13

    An artist's depiction of an Extended Unit Death

    Post the EUD trigger and we can help explain what may have gone wrong.




    Sep 19 2011, 2:24 pm Ice Baby Post #14



    Trigger
    Players
  • All Players
  • Conditions
  • Memory at death table +-11570 is exactly 1113940809
  • Memory at death table +-11569 is exactly 544825953
  • Actions
  • End scenario in defeat for current player


  • This is to ban myself if i try to play the game.

    Any ideas on why it wont worj? Is this the wrong trigger?

    Post has been edited 1 time(s), last time on Sep 19 2011, 5:55 pm by Ice Baby.



    None.

    Sep 19 2011, 11:06 pm Roy Post #15

    An artist's depiction of an Extended Unit Death

    You don't need to add padding for this address. The player's name does not end with a space. Therefore, the second condition's value should be 7955041, not 544825953.




    Sep 20 2011, 12:32 am Ice Baby Post #16



    Will this end the game for everyone? Or just me



    None.

    Sep 20 2011, 1:16 am Roy Post #17

    An artist's depiction of an Extended Unit Death

    It's using a local address, so the trigger will only run for you.

    If you want it to apply to all players, refer to Azrael's posts.




    Sep 20 2011, 1:40 am Azrael Post #18



    It's reading an address that is only storing your name on your computer. For everyone else, it will read their name instead and leave them be. Assuming your target is on a PC, the end result is that the game will end for him and he will be dropped from the game simultaneously. Everyone else in the game will see him drop, but be unaffected themselves.




    Sep 20 2011, 1:41 am Ice Baby Post #19



    Quote from Roy
    It's using a local address, so the trigger will only run for you.

    If you want it to apply to all players, refer to Azrael's posts.


    Oh so it wont work in a multiplayer game if someone else spoofs my account?



    None.

    Sep 20 2011, 1:42 am Azrael Post #20



    If they spoof your name exactly then it will trigger on them and behave as previously described.




    Options
      Back to forum
    Please log in to reply to this topic or to report it.
    Members in this topic: None.
    [02:26 pm]
    UndeadStar -- Vrael, since the ad messages get removed, you look like a total madman for someone that come late
    [2024-5-02. : 1:19 pm]
    Vrael -- IM GONNA MANUFACTURE SOME SPORTBALL EQUIPMENT WHERE THE SUN DONT SHINE BOY
    [2024-5-02. : 1:35 am]
    Ultraviolet -- Vrael
    Vrael shouted: NEED SOME SPORTBALL> WE GOT YOUR SPORTBALL EQUIPMENT MANUFACTURING
    Gonna put deez sportballs in your mouth
    [2024-5-01. : 1:24 pm]
    Vrael -- NEED SOME SPORTBALL> WE GOT YOUR SPORTBALL EQUIPMENT MANUFACTURING
    [2024-4-30. : 5:08 pm]
    Oh_Man -- https://youtu.be/lGxUOgfmUCQ
    [2024-4-30. : 7:43 am]
    NudeRaider -- Vrael
    Vrael shouted: if you're gonna link that shit at least link some quality shit: https://www.youtube.com/watch?v=uUV3KvnvT-w
    Yeah I'm not a big fan of Westernhagen either, Fanta vier much better! But they didn't drop the lyrics that fit the situation. Farty: Ich bin wieder hier; nobody: in meinem Revier; Me: war nie wirklich weg
    [2024-4-29. : 6:36 pm]
    RIVE -- Nah, I'm still on Orange Box.
    [2024-4-29. : 4:36 pm]
    Oh_Man -- anyone play Outside the Box yet? it was a fun time
    [2024-4-29. : 12:52 pm]
    Vrael -- if you're gonna link that shit at least link some quality shit: https://www.youtube.com/watch?v=uUV3KvnvT-w
    [2024-4-29. : 11:17 am]
    Zycorax -- :wob:
    Please log in to shout.


    Members Online: X405