示例#1
0
void IdlePluginImpl::idle(int seconds)
{
  int status = ChatClient::channel()->status().value();
  int diff = seconds - m_autoAway; // Уведомления могут приходить не каждую секунду.
  if ((diff >= 0 && diff <= 1) && status != Status::AutoAway) {
    away();
  }
  else if (seconds == 0 && status == Status::AutoAway)
    away(false);
}
示例#2
0
// Return euclidean distance to farthest escorted hostage.
// Return -1 if no hostage is following us.
float CCSBot::GetRangeToFarthestEscortedHostage() const
{
	FarthestHostage away(this);

	g_pHostages->ForEachHostage(away);

	return away.m_farRange;
}
示例#3
0
void Player::ladderChange(bool n)
{
    if (!isLoggedIn())
        return;//INV BEHAV
    if (state()[LadderEnabled] == n) {
        return;
    }
    state().setFlag(LadderEnabled, n);
    relay().notifyOptionsChange(id(), away(), n);
}
示例#4
0
文件: TREE.CPP 项目: newmen/seasons
void Tree::Stvol(const Point* begin, const Point* end, const int& color)
{
    if(begin->Range(end) < size/6.2) // !!!
    {
        Divis(begin, end, color);
        setcolor(color);
        return;
    }

    Point middle(begin, end, 1-Fi);

    Point* p1 = new Point(begin, begin->Range(end)/55, begin->AngleX(end)+M_PI_2);
    Point* p2 = new Point(begin, begin->Range(end)/55, begin->AngleX(end)-M_PI_2);

    if(middle.Range(&sun) > center.Range(&sun))
    {
        setcolor(color1);
        setfillstyle(1, color1);
    }
    else
    {
        setcolor(color2);
        setfillstyle(1, color2);
    }

    int* mass = new int[6];

    mass[0] = p1->GetX();
    mass[1] = p1->GetY();

    mass[2] = p2->GetX();
    mass[3] = p2->GetY();

    mass[4] = end->GetX();
    mass[5] = end->GetY();

    fillpoly(3, mass);

    delete[] mass;
    delete p2;
    delete p1;

    Stvol(&middle, end, color);

    int krnd = (RND() < 0.5) ? -1 : 1;

    // ranznos vetki 1
    double* temp1 = new double((begin->Range(end) < size/16) ?
                               0 : (1/Fi)*random(16*(int)(begin->Range(end)/size))/begin->Range(end));

    middle.Position(begin, end, 1 - Fi + krnd * *temp1);

    delete temp1;

    // zadanie vetki 1
    double angle = M_PI_2*(random(80)+10)/100 + M_PI_2;
    Point away(&middle, middle.Range(end), angle);

    Stvol(&middle, &away, color);

    // ranznos vetki 2
    double* temp2 = new double((begin->Range(end) < size/16) ?
                               0 : (1/Fi)*random(16*(int)(begin->Range(end)/size))/begin->Range(end));

    middle.Position(begin, end, 1 - Fi - krnd * *temp2);

    delete temp2;

    // zadanie vetki 1
    angle = M_PI_2*(random(80)+10)/100 - M_PI_2;
    away.Position(&middle, middle.Range(end), -angle);

    Stvol(&middle, &away, color);
}
示例#5
0
static int back_hook(int argc, char *argv[])
{
	away(0);
	return 0;
}
示例#6
0
static int away_hook(int argc, char *argv[])
{
	away(1);
	return 0;
}