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); }
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; } } }
void Bot::getDmg(int v) { health -= v; if (health < 0) killBot(); }