bool Player::setAttackedCreature(Creature* creature)
{
if(!Creature::setAttackedCreature(creature))
{
sendCancelTarget();
return false;
}
if(chaseMode == CHASEMODE_FOLLOW && creature)
{
if(followCreature != creature)
{
//chase opponent
setFollowCreature(creature);
}
}
else
setFollowCreature(NULL);
if(creature)
{
g_dispatcher.addTask(createTask(
boost::bind(&Game::checkCreatureAttack, &g_game, getID())));
}
return true;
}
bool Player::setAttackedCreature(Creature* creature)
{
if(!Creature::setAttackedCreature(creature))
{
sendCancelTarget();
return false;
}
if(chaseMode == CHASEMODE_FOLLOW && creature)
{
if(followCreature != creature)
{
//chase opponent
setFollowCreature(creature);
}
}
else
setFollowCreature(NULL);
if(creature)
{
g_scheduler.addEvent(createSchedulerTask(1000,
boost::bind(&Game::checkCreatureAttack, &g_game, getID())));
}
return true;
}
g_scheduler.addEvent(createSchedulerTask(1000,
boost::bind(&Game::checkCreatureAttack, &g_game, getID())));
Scheduler::getInstance().addEvent(createSchedulerTask(1000,
boost::bind(&Game::checkCreatureAttack, &g_game, getID())));