quint8 cPlayer::notoriety( P_CHAR pChar ) // Gets the notoriety toward another char { // 0x01 Blue, 0x02 Green, 0x03 Grey, 0x05 Orange, 0x06 Red, 0x07 Yellow quint8 result; if ( isInvulnerable() ) { return 7; } if ( isIncognito() ) { return 1; // Always Innocent } if ( isPolymorphed() && !isHuman() ) { return 3; // Polymorph Defaults to Grey Name } // Guilds override kills if ( guild_ && pChar != this ) { P_PLAYER player = dynamic_cast<P_PLAYER>( pChar ); if ( player && player->guild_ ) { // Same Guild => Green if ( player->guild_ == guild_ || guild_->isAllied(player->guild_) ) { return 0x02; } else if ( guild_->isAtWar(player->guild_) ) { return 0x05; } } } if ( pChar->kills() > Config::instance()->maxkills() ) { result = 0x06; // 6 = Red -> Murderer } else if ( account_ ) { if ( isCriminal() ) result = 0x03; else if ( karma_ < -2000 ) result = 0x06; else if ( karma_ < 0 ) result = 0x03; else result = 0x01; } else { // Everything else result = 0x03; } return result; }
Q_UINT8 cPlayer::notoriety( P_CHAR pChar ) // Gets the notoriety toward another char { // Player is incognito if ( isIncognito() ) { return 0x03; } // 0x01 Blue, 0x02 Green, 0x03 Grey, 0x05 Orange, 0x06 Red, 0x07 Yellow Q_UINT8 result; if ( isInvulnerable() ) { return 7; } // Guilds override kills if ( guild_ && pChar != this ) { P_PLAYER player = dynamic_cast<P_PLAYER>( pChar ); if ( player && player->guild_ ) { // Same Guild => Green if ( player->guild_ == guild_ ) { return 0x02; } // TODO: Enemy Guilds, Allied Guilds } } if ( pChar->kills() > Config::instance()->maxkills() ) { result = 0x06; // 6 = Red -> Murderer } else if ( account_ ) { if ( isCriminal() ) result = 0x03; else if ( karma_ < -2000 ) result = 0x06; else if ( karma_ < 0 ) result = 0x03; else result = 0x01; } else { // Everything else result = 0x03; } return result; }
/*! Make someone criminal. */ void cPlayer::makeCriminal() { if ( !isGMorCounselor() ) { // Murderers dont become criminal, they already are! if ( !this->isMurderer() ) { // Notify us if we're not already a criminal if ( socket_ && !isCriminal() ) { socket_->clilocMessage( 500167 ); // You are now a criminal! } setCriminalTime( Server::instance()->time() + Config::instance()->crimtime() * MY_CLOCKS_PER_SEC ); changed_ = true; } } }