Jump to content

Yekaterina

Community Members
  • Posts

    2.919
  • Joined

  • Last visited

  • Days Won

    48

Everything posted by Yekaterina

  1. I observe their gameplay and compare their macro and micro to known good players and what I would do in that situation. For example, booming can give away a smurf: a new account who reaches 170 population and 10:00 sharp without any extras is obviously a very experienced player behind. Or, if they go straight into abusing certain OP units (as you wouldn't expect new players to know so well which units are OP let alone spam masses of them). Anyone who dances has definitely played A23 - can't be new. Furthermore, they may resemble someone we already know but isn't active at the moment - that person becomes a suspect. However, these are small gameplay features that humans can detect by watching games but quite difficult for bots to know. I think non-obvious smurfs are not harmful anyways, could be someone who lost their account. In that case, playing with a smurf is identical as playing with someone who is usually not very active.
  2. Thank you for your detailed explanation. I think a smurf detection algorithm integrated into the server is a good idea and the server certainly should be able to know the creation date of accounts. My recommendation would be to improve the bots so that they send data about unrated multiplayer games as well, for a more complete player profile. There is one thing which I didn't understand: how can a smurf detection algorithm work on the server side? Smurfs are discovered by players who see a new account playing like experts and talking with 0AD jargons. I'm not sure how the server can tell these details. Furthermore, even if you do install such an algorithm, I would recommend only allowing it to flare up smurf suspects to the moderators instead of pre-emptively taking actions themselves. AIs are quite likely wrong and the lobby would be a mess if it bans a moderator or WFGbot.
  3. I would recommend making mercenaries susceptible to bribing as well. On top of that, I think we can add a feature which converts an enemy unit to our own, for example someone who walks into a crowd of enemy and shout "wololol" and changes the affiliations of units near him.
  4. I was alerted by that detail, and also the fact that I received 3 such invites in a 2 hours interval in each and every channel of all but 2 of the discord servers that I am in. That is always the best solution. Fortunately, I haven't been forced to take that step yet.
  5. I'm no expert at Discord, perhaps the person who got infected can answer your question @Yekaterina
  6. @Darkcity given their historical background, I suggest we make them a special unit which only targets enemy heroes and kills the hero unit in 1 hit, by close quarter poison. Later on we can expand their hit list to champion units and elite units
  7. Solution for infected users: 1. Notify everyone that you are infected. 2. Contact server admins to delete the messages and kick you. 3. Change your password, log out of all of your devices then log back in. The hackers will likely lose access to your account. 4. If this does not work, make an alt account.
  8. @Jethew Goldgrub you can find all music and sound effects in public.zip, in the audio folder. Go to your installation folder, then binaries/ data / mods/public
  9. Seems like you have insufficient access right to open files in a certain directory, perhaps install the game at another location?
  10. @DarkcityI like your method of ranking smurfs, it will reduce the chance of wrong accusations. Problem: local ratings is just a number, sometimes it may be biased or anomalous. I would look closer at micro, eco and general playstyle instead of catching people out based on a single number. In addition, many players do not use local ratings nor would they have enough data for accurate ratings.
  11. Start with 0.5x, try to use control groups, hotkeys and autotrain to save your efforts while doing good micro. Then you can move up the speeds. There is little point going above 1.5x because normally games are at 1x. After you become a pro at 1x speed, I would recommend trying to play on Empire map for more micromanaging practice.
  12. Recently a server named "Family" has been infecting its members with malicious codes which automatically spams all of their server channels and DMs with duplicates of invite links to this server. The infected user will not realise until someone complains to them about spamming. If you see this invitation, please please DO NOT TOUCH IT and mute the user sending it as well as any server moderator. This phishing server is gaining members extremely quickly and the malware is spreading, so please don't help it rampage any further. The link looks like this:
  13. Translation of their points: 1. Acharya chanakya cannot be garrisoned in storehouse, farmsteads, so its bonus cannot be used. 2. Agis has no hero bonus, making him weaker than the others. Can we give him a second chance? 3. Chandragupta has no bonus, give him an additional hero bonus?
  14. 可以把驻扎换成在某范围内有效,比如30米。当然,我们可以给仓库一个驻扎名额。 有人讨论过这个。我个人认为可以给他1500生命值,使得他是一个超强的单个个体。或者我们让他跑得快,可以跳舞。 同理我们可以用A23的想法:一个2400-3000生命值的大象!
  15. I would like to see the following info: Date of creation, Total games played, both TG and rated
  16. See the creation dates of players' accounts
  17. @rossenburg this is my ProfilePage.js Am I looking at the correct file? If so, which line should I change? /** * The profile page enables the player to lookup statistics of an arbitrary player. */ class ProfilePage { constructor(xmppMessages) { this.requestedPlayer = undefined; this.closePageHandlers = new Set(); this.profilePage = Engine.GetGUIObjectByName("profilePage"); this.fetchInput = Engine.GetGUIObjectByName("fetchInput"); this.fetchInput.onPress = this.onPressLookup.bind(this); Engine.GetGUIObjectByName("viewProfileButton").onPress = this.onPressLookup.bind(this); Engine.GetGUIObjectByName("profileBackButton").onPress = this.onPressClose.bind(this, true); this.profilePlayernameText = Engine.GetGUIObjectByName("profilePlayernameText"); this.profileRankText = Engine.GetGUIObjectByName("profileRankText"); this.profileHighestRatingText = Engine.GetGUIObjectByName("profileHighestRatingText"); this.profileTotalGamesText = Engine.GetGUIObjectByName("profileTotalGamesText"); this.profileWinsText = Engine.GetGUIObjectByName("profileWinsText"); this.profileLossesText = Engine.GetGUIObjectByName("profileLossesText"); this.profileRatioText = Engine.GetGUIObjectByName("profileRatioText"); this.profileErrorText = Engine.GetGUIObjectByName("profileErrorText"); this.profileWindowArea = Engine.GetGUIObjectByName("profileWindowArea"); xmppMessages.registerXmppMessageHandler("game", "profile", this.onProfile.bind(this)); } registerClosePageHandler(handler) { this.closePageHandlers.add(handler); } openPage() { this.profilePage.hidden = false; Engine.SetGlobalHotkey("cancel", "Press", this.onPressClose.bind(this)); } onPressLookup() { this.requestedPlayer = this.fetchInput.caption; Engine.SendGetProfile(this.requestedPlayer); } onPressClose() { this.profilePage.hidden = true; for (let handler of this.closePageHandlers) handler(); } onProfile() { let attributes = Engine.GetProfile()[0]; if (this.profilePage.hidden || this.requestedPlayer != attributes.player) return; let profileFound = attributes.rating != "-2"; this.profileWindowArea.hidden = !profileFound; this.profileErrorText.hidden = profileFound; if (!profileFound) { this.profileErrorText.caption = sprintf(translate("Player \"%(nick)s\" not found."), { "nick": escapeText(attributes.player) }); return; } this.profilePlayernameText.caption = escapeText(attributes.player); this.profileRankText.caption = attributes.rank; this.profileHighestRatingText.caption = attributes.highestRating; this.profileTotalGamesText.caption = attributes.totalGamesPlayed; this.profileWinsText.caption = attributes.wins; this.profileLossesText.caption = attributes.losses; this.profileRatioText.caption = ProfilePanel.FormatWinRate(attributes); } }
  18. Is this information saved passed onto all of the clients (players) looking at this profile, or, is it stored only on a central location which the players do not have access rights to?
  19. This movie depicts the Qin dynasty, not Han Dynasty.
  20. @Darkcity select all units, hold down ctrl key and right click anywhere to attack move. This will make all of your units fight. İn settings, disable formation override
  21. So if we make the Aİ play once every turn, it will be more efficient than the best of humans? We can allow the Aİ to autotrain if it is struggling with micro.
  22. İ don't understand why the Aİ idles at all, considering the fact that computers have much higher APM than humans.
  23. This might be a good thing, does it stop poison as well?
  24. @Dizaka @Darkcity the issue is in the code: Civic centres use <ProductionQueue> units/{Civ}/cavalry_javelineer_b THis will only allow the cavalry javelineer of your own Civ to be trained here, be it a Merc or a CS. İf your Civ doesn't have a cavalry javelineer of any kind then you won't be able to train anything. on the other hand, the Carthaginian's embassy use this units/Carthage/cavalry_swordsman_merc_a This specifies that the Carthaginian cavalry will be trained by pointing to a specific template file in the Carthaginian folder. This means the building will be able to train that particular cavalry unit no matter who owns it, as the trainee is Civ independent.
  25. Easiest solution, like @Darkcity proposed: show total number of games played in the lobby INCLUDING non 1v1 games, then date of account creation relative to GMT +0:00 Rating is not important, what's important is to see that the person is experienced, i.e. not cosmic. Examples of where ratings are completely useless: reza-math, FUBAR, SaidRdz If an account is new, then they are either a smurf or a cosmic, so they will not be allowed into 4v4 games. If an old player is returning, we would be able to tell from the date of account creation and the total number of games they played. As someone who has attempted smurfing a dozen times I can tell you the following: 1. Making a new email address is not a difficult task and will not require one to spend any money. 2. In some countries one can buy a new SIM card and hence a new phone number for very low prices. 3. Lobby bans can be bypassed, not very easily but quite do-able. 4. Smurf speculators guess correctly around 50% of the time.
×
×
  • Create New...