Пример #1
0
void CampRegion::onObjectLeave(Object* object) {
    if (object->getType() != ObjType_Player) {
        return;
    }

    if(object->getId() == mOwnerId)	{
        mAbandoned	= true;

        //We want to have this camp die after the owner has been gone longer
        //than he stayed in the camp, with a max of two minutes.
        uint64 mTempCurrentTime = gWorldManager->GetCurrentGlobalTick();

        if((mTempCurrentTime - mSetUpTime) > 120000) {
            mExpiresTime = mTempCurrentTime + 120000;
        } else {
            mExpiresTime = mTempCurrentTime + (mTempCurrentTime - mSetUpTime);
        }
    } else {
        PlayerObject* player = dynamic_cast<PlayerObject*>(object);
        std::string text = "You have left " + this->getCampOwnerName() + "'s camp.";
        gMessageLib->SendSystemMessage(std::wstring(text.begin(), text.end()).c_str(), player);
    }

    removeVisitor(object);
}
Пример #2
0
void City::onObjectLeave(Object* object)
{
	PlayerObject* player = (PlayerObject*)object;

	//if(player->getCityRegionId() == this->getId())
		//player->setCityRegionId(0);

	removeVisitor(object);

	DLOG(INFO) << player->getFirstName().getAnsi() << " left " 
        << mCityName << " (" << mVisitingPlayers.size() << " players in city)";
}