} else if (npc) { if (npc->isHuman()) {
} else if (npc) { if (npc->isHuman())
	bool responsed(cUOSocket *socket, cUORxTarget *target) {		if (!isCharSerial(target->serial())) {			socket->clilocMessage(1005442);		} else {			P_PLAYER leader = dynamic_cast<P_PLAYER>(World::instance()->findChar(this->player));			P_CHAR character = World::instance()->findChar(target->serial());			P_NPC npc = dynamic_cast<P_NPC>(character);			P_PLAYER player = dynamic_cast<P_PLAYER>(character);			if (!leader || (leader->party() && leader->party()->leader() != leader)) {				socket->clilocMessage(1005453);			} else if (leader->party() && leader->party()->members().count() + leader->party()->canidates().count() >= 10) {				socket->clilocMessage(1008095);			// NPC targetted			} else if (npc) {				if (npc->isHuman()) {					socket->clilocMessage(1005443, 0, npc->saycolor(), 3, npc);				} else {					socket->clilocMessage(1005444);				}			} else if (leader == player) {				socket->clilocMessage(1005439);			} else if (player && player->party() && player->party() == leader->party()) {				socket->clilocMessage(1005440);			} else if (player && leader->party() && leader->party()->canidates().contains(player)) {				socket->clilocMessage(1005440);			} else if (player && player->party()) {				socket->clilocMessage(1005441);			} else if (player && player->socket()) {				if (!leader->party()) {					new cParty(leader);					leader->party()->update();				}				player->socket()->clilocMessageAffix(1008089, 0, leader->name(), 0x3b2, 3, 0, false, true);				leader->party()->addCanidate(player);				socket->log(LOG_TRACE, QString("Invited '%1' to join his party.\n").arg(player->account()->login()));				// Send a party invitation request				cUOTxPartyInvitation invitation;				invitation.setSerial(leader->serial());				player->socket()->send(&invitation);				// Attach a tempeffect that'll cancel the invitation after ten seconds				TempEffects::instance()->insert(new cPartyCancelInvitation(leader->serial(), player->serial()));			}		}		return true;	}