bot?

Talk about anything, including games and servers not affiliated with The Mana World.
Post Reply
User avatar
kook
Novice
Novice
Posts: 93
Joined: 11 Mar 2009, 05:30

bot?

Post by kook »

Image
Image
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Re: bot?

Post by Crush »

What exactly does that tool analyze?
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
User avatar
kook
Novice
Novice
Posts: 93
Joined: 11 Mar 2009, 05:30

Re: bot?

Post by kook »

thats what i have no idea about
Image
User avatar
yourmistakes
Knight
Knight
Posts: 695
Joined: 05 Dec 2009, 06:08
Location: North Korea
Contact:

Re: bot?

Post by yourmistakes »

obviously, mrwho is a bot. elect me for GM and i will ban him. :P
User avatar
Cotillion
Novice
Novice
Posts: 180
Joined: 31 Oct 2008, 02:56

Re: bot?

Post by Cotillion »

virtual void playersUpdated()
{
//debugChatTab->chatLog("upd");

signalBeforeUpdate();

freeWidgets();
mPlayers.clear();
if (actorSpriteManager && config.getValueBool("enableBotCheker", true))
{
std::set<ActorSprite*> beings = actorSpriteManager->getAll();
ActorSprites::iterator i = beings.begin();
for (ActorSprites::const_iterator i = beings.begin(); i != beings.end(); i++)
{
Being *being = dynamic_cast<Being*>(*i);

if (being && being->getType() == Being::PLAYER && being != player_node
&& being->getName() != "")
{
mPlayers.push_back(being);
}
}
}

unsigned int curTime = cur_time;
// set up widgets
for (unsigned int r = 0; r < mPlayers.size(); ++r)
{
std::string name = mPlayers.at(r)->getName();
gcn::Widget *widget = new Label(name);
mWidgets.push_back(widget);

if (mPlayers.at(r)->getAttackTime() != 0)
widget = new Label(toString(curTime - mPlayers.at(r)->getAttackTime()));
else
widget = new Label(toString(curTime - mPlayers.at(r)->getTestTime()) + "?");
mWidgets.push_back(widget);

if (mPlayers.at(r)->getTalkTime() != 0)
widget = new Label(toString(curTime - mPlayers.at(r)->getTalkTime()));
else
widget = new Label(toString(curTime - mPlayers.at(r)->getTestTime()) + "?");
mWidgets.push_back(widget);

if (mPlayers.at(r)->getMoveTime() != 0)
widget = new Label(toString(curTime - mPlayers.at(r)->getMoveTime()));
else
widget = new Label(toString(curTime - mPlayers.at(r)->getTestTime()) + "?");
mWidgets.push_back(widget);

std::string str;
bool talkBot = false;
bool moveBot = false;
bool attackBot = false;
bool otherBot = false;

if (curTime - mPlayers.at(r)->getTestTime() > 2 * 60)
{
int attack = curTime - (mPlayers.at(r)->getAttackTime()
? mPlayers.at(r)->getAttackTime() : mPlayers.at(r)->getTestTime());
int talk = curTime - (mPlayers.at(r)->getTalkTime()
? mPlayers.at(r)->getTalkTime() : mPlayers.at(r)->getTestTime()) - attack;
int move = curTime - (mPlayers.at(r)->getMoveTime()
? mPlayers.at(r)->getMoveTime() : mPlayers.at(r)->getTestTime()) - attack;
int other = curTime - (mPlayers.at(r)->getOtherTime()
? mPlayers.at(r)->getMoveTime() : mPlayers.at(r)->getOtherTime()) - attack;

if (attack < 2 * 60)
attackBot = true;

// attacking but not talking more than 2 minutes
if (talk > 2 * 60 && talk > 2 * 60)
{
talkBot = true;
str += toString((talk) / 60) + " ";
}

// attacking but not moving more than 2 minutes
if (move > 2 * 60 && move > 2 * 60)
{
moveBot = true;
str += toString((move) / 60);
}

// attacking but not other activity more than 2 minutes
if (move > 2 * 60 && other > 2 * 60)
{
otherBot = true;
}
}

if (str.length() > 0)
{
if (attackBot && talkBot && moveBot && otherBot)
{
str = "bot!! " + str;
}
else if (attackBot && talkBot && moveBot)
{
str = "bot! " + str;
}
else if (talkBot && moveBot)
{
str = "bot " + str;
}
else if (talkBot || moveBot)
{
str = "bot? " + str;
}
}
else
{
str = "ok";
}

widget = new Label(str);
mWidgets.push_back(widget);

}

signalAfterUpdate();
}

virtual void updateModelInRow(int row _UNUSED_)
{
}


virtual gcn::Widget *getElementAt(int row, int column) const
{
return mWidgets[WIDGET_AT(row, column)];
}

virtual void freeWidgets()
{
for (std::vector<gcn::Widget *>::const_iterator it = mWidgets.begin();
it != mWidgets.end(); it++)
{
delete *it;
}

mWidgets.clear();
}

protected:
std::vector<Being*> mPlayers;
std::vector<gcn::Widget*> mWidgets;
};
User avatar
Cotillion
Novice
Novice
Posts: 180
Joined: 31 Oct 2008, 02:56

Re: bot?

Post by Cotillion »

Not my code. Just pulled 4144 source, and posted the logic.

I believe the bot checker first came from QOAL's patch. Might be wrong there.
User avatar
baseballboy
Knight
Knight
Posts: 502
Joined: 04 Jan 2009, 20:04
Location: USA, North Carolina

Re: bot?

Post by baseballboy »

a bit offtopic. but kook, why do you have three terminal shortcuts?
:?: :?: :?:
Attachments
Screenshot-1.png
Screenshot-1.png (10.57 KiB) Viewed 1812 times
BaseBaIIBoy - 99, Zalika - 95, Mou. - 86, baseballboy - 83, Abacus - 82, Laticia - 76

<o11c> More boobs please.
User avatar
kook
Novice
Novice
Posts: 93
Joined: 11 Mar 2009, 05:30

Re: bot?

Post by kook »

to remind me im dying from cancer
Image
User avatar
baseballboy
Knight
Knight
Posts: 502
Joined: 04 Jan 2009, 20:04
Location: USA, North Carolina

Re: bot?

Post by baseballboy »

O_o
BaseBaIIBoy - 99, Zalika - 95, Mou. - 86, baseballboy - 83, Abacus - 82, Laticia - 76

<o11c> More boobs please.
User avatar
kook
Novice
Novice
Posts: 93
Joined: 11 Mar 2009, 05:30

Re: bot?

Post by kook »

actually its not launcher but app switcher
Image
4144
Knight
Knight
Posts: 965
Joined: 03 Aug 2009, 11:57

Re: bot?

Post by 4144 »

Crush wrote:What exactly does that tool analyze?
This tool can detect simple bots. Bots what attacking, and not show other activity. But in this screenshort bot not detected.
It's look like joke :)
Post Reply