コード例 #1
0
void Creature::addEventWalk(bool firstStep)
{
	cancelNextWalk = false;

	if (getStepSpeed() <= 0) {
		return;
	}

	if (eventWalk != 0) {
		return;
	}

	int64_t ticks = getEventStepTicks(firstStep);

	if (ticks <= 0) {
		return;
	}

	// Take first step right away, but still queue the next
	if (ticks == 1) {
		g_game.checkCreatureWalk(getID());
	}

	eventWalk = g_scheduler.addEvent(createSchedulerTask(
	                                     std::max<int64_t>(SCHEDULER_MINTICKS, ticks), boost::bind(&Game::checkCreatureWalk, &g_game, getID())));
}
コード例 #2
0
void Creature::addEventWalk()
{
	if(eventWalk)
		return;

	int64_t ticks = getEventStepTicks();
	if(ticks > 0)
		eventWalk = Scheduler::getInstance().addEvent(createSchedulerTask(ticks,
			boost::bind(&Game::checkCreatureWalk, &g_game, getID())));
}
コード例 #3
0
ファイル: creature.cpp プロジェクト: Ablankzin/server
void Creature::addEventWalk()
{
	if(eventWalk == 0){
		//std::cout << "addEventWalk() - " << getName() << std::endl;

		int64_t ticks = getEventStepTicks();
		if(ticks > 0){
			eventWalk = g_scheduler.addEvent(createSchedulerTask(
				ticks, boost::bind(&Game::checkCreatureWalk, &g_game, getID())));
		}
	}
}
コード例 #4
0
ファイル: creature.cpp プロジェクト: Azuen/RealOTX-7.72
void Creature::addEventWalk(bool firstStep/* = false*/)
{
	cancelNextWalk = false;
	if(getStepSpeed() < 1 || eventWalk)
		return;

	int64_t ticks = getEventStepTicks(firstStep);
	if(ticks < 1)
		return;

	if(ticks == 1)
		g_game.checkCreatureWalk(getID());

	eventWalk = Scheduler::getInstance().addEvent(createSchedulerTask(std::max((int64_t)SCHEDULER_MINTICKS, ticks),
		boost::bind(&Game::checkCreatureWalk, &g_game, id)));
}