Пример #1
0
void executeCommand(enum Commands command, User *bot, ...)
{
    va_list a_list;
    va_start(a_list, bot);
    char *sender, *cmdStr;
    char **parameters;
    switch (command)
    {
        case PONG:
            pong(bot);
            break;
        case PRIVMSG:
            sender = va_arg(a_list, char *);
            cmdStr = va_arg(a_list, char *);
            parameters = va_arg(a_list, char **);
            if (strcmp("speak", cmdStr) == 0 && strcmp("Anthony`", sender) == 0)
                privmsg(bot, sender, parameters[0]);
            else if (strcmp("rolldice", cmdStr) == 0)
                rolldice(bot, sender, atoi(parameters[0]));
            else if (strcmp("die", cmdStr) == 0 && strcmp("Anthony`", sender) == 0)
                killBot(bot);
            else if (strcmp("coolmeter", cmdStr) == 0)
                coolmeter(bot, sender, parameters[0]);
            else if (strcmp("fight", cmdStr) == 0)
                fight(bot, sender, parameters[0], parameters[1]);
            else if (strcmp("getlatestpost", cmdStr) == 0)
                getLatestRlPost(bot, sender);
            break;
    }

    va_end(a_list);
}
Пример #2
0
void Bot::actions()
{
    QString line;
    QStringList list;

    line = bot->readLine();
    list = line.split(" ");

    for (int i = 0; i < list.count(); i++)
    {
        // если player вышел за границы
        if (this->x() < game->dop - pixsize/2 ||
            this->x() > game->scene->width()-game->dop*2 + 20 ||
            this->y() < game->dop - pixsize/2 ||
            this->y() > game->scene->height()-game->dop*2 + 20)
        {
            if (out == false)
            {
                out = true;
                outTime = QTime::currentTime();
                outTimer = outMaxTime;
            }

            if (outTime.msecsTo(QTime::currentTime()) > 1000)
            {
                if (outTimer > 0)
                {
                    outTimer--;
                    outTime = outTime.addSecs(1);
                }
                else
                {
                    // DIE M**********R!
                    out = false;
                    outTimer = outMaxTime;
                    killBot();
                    // BUHAHA
                }
            }
        }
        else
        {
            if (out == true)
            {
                out = false;
                outTimer = outMaxTime;
            }
        }

        if (list[i] == "mf")
            moveForward();
        if (list[i] == "mb")
            moveBack();
        if (list[i] == "rr")
            rotateRight();
        if (list[i] == "rl")
            rotateLeft();
        if (list[i] == "hr")
            headRight();
        if (list[i] == "hl")
            headLeft();
        if (list[i] == "fr")
            fire();
    }

    if (bot->atEnd())
    {
        switch (mode)
        {
            case 0:
                //timer->stop();
                killBot();
            break;

            case 1:
                bot->reset();
            break;
        }
    }

}
Пример #3
0
void Bot::getDmg(int v)
{
    health -= v;
    if (health < 0)
        killBot();
}