📜 ⬆️ ⬇️

As I continued the business of DotA League

The previous parts (not my authorship): one and two .

Horus Rise


Tims was the author of the bot, and I was the “pro-admin” who doped his code.

One can argue for a long time who owned what, who is right and who is to blame, but the fact remains that one league split into two. The owner of the say-plz brand and the sponsor put me as the sP Dota League admin, and Tims at the same time deployed the RIHL (Russian In-House League). Between the leagues there was a war for the players using any means, except perhaps nuclear weapons.
')
How did the collapse from my point of view
The owner of the domain and say-plz hosting was the team manager and sponsor under the nickname Matrix. He did not know what was going on in the league and did not particularly delve into the details. And after Tims was charged with inappropriate behavior and selling moderator access for money, he had a dialogue with a sponsor in which Tims said something like: “this is my league, I want it, I’m doing it”. Then Matrix asks me - can I pull everything without Tim's participation? I answer him - yes. Well, then Matrix removed the access rights from Thims, making me a new CEO.

After I became the admin, some changes were made to the league policy.

1. No unreasonable bans for personal dislike.
2. Equal punishments for famous players and for beginners. Ban for 14 days for deliberately leaving the game.
3. Instant demoot (from modders to users) of those who abuse their rights - unban friends, or for example, tried to sell students (access to the league) for money.

The continuation of life in Garena


At that time we had two divisions - SP1 and SP2. The first was played by the most advanced and skillful players. There was a problem with this, because there were few SP1 players, many did not want to wait until the game was going to the first division and went to play at SP2. First, the problem was solved in this way - before you go to sp2, you must play sp1 at least once a day. And with the move to the IRC, the rooms were merged, on this later.

The bot, in contrast to the usual games in the first dota, took into account all your statistics. And these were not only victory-defeat-points, but also such a thing as “strick”, i.e. wins in a row. And if 2-3 or even 5 victories in a row in DotA is a normal situation, then 10, 20 is already something out of the ordinary. Our league was such a legendary player Vigoss, who broke absolutely all records, he had 60 (!!!) victories in a row.

And the most interesting thing is that when defeating a player with a streak, the winners were given bonus points. Everyone was looking forward to the moment when Vigoss would lose the crown, and it still happened.

I even found the bot log of this legendary game lasting only 23 minutes:
Game 4629.
Scourges won-63 / + 63.Mode: chall 3x3 ggc, Length 23min Draw / Sent / Scou results: 0/0 / 4PLZ4629.
Sentinels: vigoss sahka Sp->
Scourges: Traffic-Roger Traffic | Dark Traffic | Tunes.
Scourges got 382 points for breaking streak of vigoss; streak of sahka;

The strick was so big (Vigossa and Sashka +55/60) that its name was not even shown. In the bot tims, the names were defined only up to 50, all that above +10 was called simply Holy Shit. No one could even imagine that someone would have a 50+ strick.

Development of a bot under IRC


Garena was not just buggy, but incredibly buggy. For example, there it was possible to run the same bot in two rooms, he responded to messages and worked quite normally. Once, the league was attacked by a mad hacker from Kazakhstan, who somehow could reset the entire room, everyone was playing games and disconnects occurred. It is now if you kicked out, you can just go again and start playing, but not in the first dota. Disconnection - it's all over. Usually the game either continued to go 4x5, or a pre-made save was loaded.

There was no desire to use the not quite reliable StealthBot (if you knew how Tims screwed it to Garena!) And Visual Basic Script, so it was decided to transfer the league to IRC, and write a bot under it. This is how the IHCS league worked, which was the benchmark at that time. I started doing what I like all the programmers who once tried to figure out the code of someone else - RENEW ALL FROM ZERO, you’ll do it yourself perfectly!

So, I had to make a bot for IRC, somehow tie MySQL to it and make it work on the Quakenet server in IRC. It was a path full of pain and suffering. Probably, this is how they become programmers, independently solving some new problem, when even Google cannot give you the answer.

For the IRC platform, I took Eggdrop, by default it was almost nothing, but I only needed support for scripts that were written in the TCL language. The language was, though new to me, but simple enough, without excesses. It was nicer than VBS, and development was generally fine. That's just Eggdrop refused to compile on VPS. Overcoming it, I had to somehow edit the source code to make it work. It was a victory. My first IRC bot wound up and wrote the first phrases on the channel.

Moving IRC to Quakenet Server


At first, a testgame bot was made. This is for those who have not had access to the league, but really wanted to get there. The players entered the channel, waited for the moderator, who starts the game, and then decides who to invite. Usually this channel was spattered with the phrases “GO TG!” And there was nothing for the players to do. In the future, this channel became widely known in narrow circles of the league "sp3", on which it was possible to play and get points (remember that it was precisely because of the statistics of wins-losses the players preferred leagues, in the first dota there was no built-in statistics at all) . At the end of the month, a super final was held among the best players, in which you could immediately get to the main league. Sp3 was quite tube-like, and even some players from the main divisions played on it, when they didn’t want to strain themselves.

Then the main bot was transferred to the IRC platform. Instead of two separate divisions with different chat rooms, it was decided to make one general chat, but with a gradation of players. The SP1 players were highlighted in blue, SP2 had no color.

In addition, I have significantly updated the role system. Instead of the hierarchy of the form Player -> Host -> Moderator -> Voucher -> Admin, I made 3 branches - players, moderators and voucher. Everyone could have completely different access, and it was very convenient. Voucher ceased to be "cool moderators", and their duties did not include the consideration of complaints, they were engaged only in invites new players.

For fun I added the team ".dnodoty", which brought the player with the least points in the league. According to some version, it was after the introduction of this command that the phrase “you bottom” became popular, but few knew where it came from.

The points calculation system was also improved. In the Tims bot, the ratio of the points of your team and the team of the enemy was considered; the smaller yours, the more you gave if you won. I changed it and did that it takes into account not your team, but only your glasses. Because of this, it has become easier to get out of a low rating, and more difficult to occupy high places. Later I added one more thing - the dependence of experience on reputation.

About censorship and reputation
The league was such a thing - censure. With the help of the bot and the command .censure <nick> <reason> any player could give it to anyone, even just like that. If you give it away, you and your goal and reputation will be removed. If you start issuing them to everyone in a row - you risk losing it yourself.

Reputation initially did not affect anything, it was about 50 units, and the censorship shot 3. If it ended, you received a ban for 3 days, and the reputation again became equal to 50. The next ban was already for 6 days, and so on + 3 for each.

Then I introduced some coefficients, if you had little reputation - the number of points you received for winning decreased by up to 40%. Players have become much more careful about their behavior.

Although, and jokes with it were too. There was one legendary person under the nickname MarcoDeLacrosso, he wrote with a mixture of kAPSLOK and a GENUAL text and sometime spaces. He called everyone schoolchildren, even before it was considered an insult. At the same time, Marco behaved quite adequately, but after the game EVERYONE considered it his duty to give him censorship. When he flew to the ban due to lack of reputation, he waited several weeks to start playing again. During this time, many already had time to miss him, asking when he would be banned.

Compared to the bot in Garena, which continually fell off, and the league just got up, Eggdrop was reliable as a Kalashnikov assault rifle. The bot was on the channel 24 hours a day, 7 days a week. No one could ever put it. With a few exceptions.

One particularly spirited player received a ban and began to threaten us to put. And if the ip bot was hidden, then the site of the league was in the public domain. Hosting was kindly provided by a friend, because we didn’t need a lot of resources. In general, after a 10-gigabit DDoS, I was left without hosting. Like my friend who just sent a hoster.

I found some inexpensive VPS on the American site, the funny thing is that after a month they did not begin to demand payment, everything worked as before. This went on for a whole year, until they at one moment chopped off the server. I assumed that sooner or later this should happen, and simply restored backups on another server.

Web projects


Since on the league, in fact, all the teams were displayed through the bot in text form, sometimes it was inconvenient. For example, you need to look at all the games of a particular player, and with whom he played. Through a bot, it would take forever to display a list of games, then display each one, and so on. Due to the fact that the data was stored in MySQL, it was quite easy to display all this on the site. The first version on Perl was made by one of the administrators under the nickname Tycooon.

But after I rewrote the bot, I also had to rewrite the site. Tycooon took Ruby on Rails, which was very fashionable at the time, but it never completed the site. I realized that I had to take it myself. Getting started learning Rails as the first web framework (without PHP experience) was much more difficult than writing an IRC bot. For some reason, I cared about users with javascript turned off, my code looked as terrible as possible. It was completely incomprehensible to me how associations work, when to write includes: people, and when includes: person. But all this I successfully decided, and the site was launched to the delight of the players.

The site made a very convenient filing of complaints, the player could hide his nickname from moderators or other players in order to avoid bias. It was possible to quickly see which of the moderators is working, and who is not doing anything. Each closed complaint was counted, and the moderators literally snatched them from each other to get a +1 in the statistics.

Sunset league


Under my leadership, the league lasted about 4-5 years. Up until the release of Dota 2, and in it, as you know, the statistics were already in the client. By that time, I had practically no longer been interested in games, I was involved in this project because I was interested. Most of the players moved to the second pillbox, and the league was simply not needed. These were very funny and interesting times, and I absolutely do not regret that I spent time on it.

I do not know how my fate would turn if DotA passed by me. Thanks to her, I am now a Ruby on Rails developer in a Moscow company, and I really like what I do. At the end of this story, I hope it was interesting to read :)

Source: https://habr.com/ru/post/316958/


All Articles