
bot?
Re: bot?
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.
- yourmistakes
- Knight
- Posts: 695
- Joined: 05 Dec 2009, 06:08
- Location: North Korea
- Contact:
Re: bot?
obviously, mrwho is a bot. elect me for GM and i will ban him. 

Re: bot?
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;
};
{
//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;
};
Re: bot?
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.
I believe the bot checker first came from QOAL's patch. Might be wrong there.
- baseballboy
- Knight
- Posts: 502
- Joined: 04 Jan 2009, 20:04
- Location: USA, North Carolina
Re: bot?
a bit offtopic. but kook, why do you have three terminal shortcuts?




- Attachments
-
- 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.
<o11c> More boobs please.
- baseballboy
- Knight
- Posts: 502
- Joined: 04 Jan 2009, 20:04
- Location: USA, North Carolina
Re: bot?
O_o
BaseBaIIBoy - 99, Zalika - 95, Mou. - 86, baseballboy - 83, Abacus - 82, Laticia - 76
<o11c> More boobs please.
<o11c> More boobs please.
Re: bot?
This tool can detect simple bots. Bots what attacking, and not show other activity. But in this screenshort bot not detected.Crush wrote:What exactly does that tool analyze?
It's look like joke
