本文整理汇总了C++中CreatureObject::getFirstName方法的典型用法代码示例。如果您正苦于以下问题:C++ CreatureObject::getFirstName方法的具体用法?C++ CreatureObject::getFirstName怎么用?C++ CreatureObject::getFirstName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CreatureObject
的用法示例。
在下文中一共展示了CreatureObject::getFirstName方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleNpcTargetReceivesDamage
int BountyMissionObjectiveImplementation::handleNpcTargetReceivesDamage(ManagedObject* arg1) {
CreatureObject* target = NULL;
target = cast<CreatureObject*>(arg1);
ManagedReference<MissionObject* > mission = this->mission.get();
ManagedReference<CreatureObject*> owner = getPlayerOwner();
if (owner != NULL && target != NULL && target->getFirstName() == owner->getFirstName() &&
target->isPlayerCreature() && objectiveStatus == HASBIOSIGNATURESTATUS) {
updateMissionStatus(mission->getMissionLevel());
String diffString = "easy";
if (mission->getMissionLevel() == 3) {
diffString = "hard";
} else if (mission->getMissionLevel() == 2) {
diffString = "medium";
}
target->getZoneServer()->getChatManager()->broadcastMessage(npcTarget, "@mission/mission_bounty_neutral_" + diffString + ":m" + String::valueOf(mission->getMissionNumber()) + "v", 0, 0, 0);
return 1;
}
return 0;
}
示例2: sendBaselinesTo
void ManufactureSchematicImplementation::sendBaselinesTo(SceneObject* player) {
ManagedReference<DraftSchematic* > draftSchematic = this->draftSchematic;
if (!player->isPlayerCreature() || draftSchematic == NULL)
return;
CreatureObject* playerCreature = cast<CreatureObject*>( player);
ManufactureSchematicObjectMessage3* msco3;
if(prototype != NULL)
msco3 = new ManufactureSchematicObjectMessage3(_this.getReferenceUnsafeStaticCast(), playerCreature->getFirstName());
else
msco3 = new ManufactureSchematicObjectMessage3(getObjectID(), complexity, playerCreature->getFirstName());
player->sendMessage(msco3);
// MSCO6
ManufactureSchematicObjectMessage6* msco6 =
new ManufactureSchematicObjectMessage6(getObjectID(), draftSchematic->getClientObjectCRC());
player->sendMessage(msco6);
// MSCO8
ManufactureSchematicObjectMessage8* msco8 =
new ManufactureSchematicObjectMessage8(getObjectID());
player->sendMessage(msco8);
// MSCO9
ManufactureSchematicObjectMessage9* msco9 =
new ManufactureSchematicObjectMessage9(getObjectID());
player->sendMessage(msco9);
}
示例3: makeLeader
void GroupManager::makeLeader(GroupObject* group, CreatureObject* player, CreatureObject* newLeader) {
// Pre: player locked
// Post: player locked
player->unlock();
try {
group->wlock();
if (group->getLeader() != player) {
player->sendSystemMessage("@group:must_be_leader");
group->unlock();
player->wlock();
return;
}
if (!group->hasMember(newLeader) || !newLeader->isPlayerCreature()) {
group->unlock();
player->wlock();
return;
}
group->makeLeader(newLeader);
String firstNameLeader;
firstNameLeader = "[Offline player]";
if (newLeader->isPlayerCreature()) {
CreatureObject* playerLeader = cast<CreatureObject*>( newLeader);
if (playerLeader->isOnline())
firstNameLeader= playerLeader->getFirstName();
}
StringIdChatParameter message;
message.setStringId("group", "new_leader"); // %TU is now the group leader.
message.setTU(newLeader);
for (int i = 0; i < group->getGroupSize(); i++) {
Reference<CreatureObject*> play = ( group->getGroupMember(i)).castTo<CreatureObject*>();
if (play->isPlayerCreature())
play->sendSystemMessage(message);
}
group->unlock();
} catch (...) {
group->unlock();
player->wlock();
throw;
}
player->wlock();
}
示例4: handleNpcTargetKilled
void BountyMissionObjectiveImplementation::handleNpcTargetKilled(ManagedObject* arg1) {
CreatureObject* attacker = NULL;
attacker = cast<CreatureObject*>(arg1);
ManagedReference<MissionObject* > mission = this->mission.get();
ManagedReference<CreatureObject*> owner = getPlayerOwner();
if (owner == NULL)
return;
if (attacker != NULL && attacker->getFirstName() == owner->getFirstName() &&
attacker->isPlayerCreature()) {
//Target killed by player, complete mission.
complete();
} else {
//Target killed by other player, fail mission.
owner->sendSystemMessage("@mission/mission_generic:failed"); // Mission failed
abort();
removeMissionFromPlayer();
}
}
示例5: sendTo
void StructurePermissionList::sendTo(CreatureObject* creature, const String& listName) {
ZoneServer* zoneServer = creature->getZoneServer();
ReadLocker locker(&lock);
if (!idPermissionLists.contains(listName)) {
return;
}
PermissionListCreateMessage* listMsg = new PermissionListCreateMessage(listName);
SortedVector<uint64>* list = &idPermissionLists.get(listName);
Vector<uint64> invalidIDs;
for (int i = 0; i < list->size(); ++i) {
Reference<SceneObject*> object = zoneServer->getObject(list->get(i));
if (object != NULL && object->isPlayerCreature()) {
CreatureObject* player = object.castTo<CreatureObject*>();
String name = player->getFirstName();
listMsg->addName(name);
} else if (object != NULL && object->isGuildObject()) {
GuildObject* guild = object.castTo<GuildObject*>();
String name = "guild:" + guild->getGuildAbbrev();
listMsg->addName(name);
} else {
invalidIDs.add(list->get(i));
}
}
for (int i = 0; i < invalidIDs.size(); i++) {
list->drop(invalidIDs.get(i));
}
listMsg->generateMessage();
creature->sendMessage(listMsg);
}
示例6: reportStructureStatus
void StructureManager::reportStructureStatus(CreatureObject* creature,
StructureObject* structure) {
ManagedReference<PlayerObject*> ghost = creature->getPlayerObject();
if (ghost == NULL)
return;
//Close the window if it is already open.
ghost->closeSuiWindowType(SuiWindowType::STRUCTURE_STATUS);
ManagedReference<SuiListBox*> status = new SuiListBox(creature,
SuiWindowType::STRUCTURE_STATUS);
status->setPromptTitle("@player_structure:structure_status_t"); //Structure Status
status->setPromptText(
"@player_structure:structure_name_prompt "
+ structure->getDisplayedName()); //Structure Name:
status->setUsingObject(structure);
status->setOkButton(true, "@refresh");
status->setCancelButton(true, "@cancel");
status->setCallback(new StructureStatusSuiCallback(server));
ManagedReference<SceneObject*> ownerObject = server->getObject(
structure->getOwnerObjectID());
if (ownerObject != NULL && ownerObject->isCreatureObject()) {
CreatureObject* owner = cast<CreatureObject*>(ownerObject.get());
status->addMenuItem(
"@player_structure:owner_prompt " + owner->getFirstName());
}
uint64 declaredOidResidence = ghost->getDeclaredResidence();
ManagedReference<BuildingObject*> declaredResidence =
server->getObject(declaredOidResidence).castTo<BuildingObject*>();
if (declaredResidence == structure) {
status->addMenuItem("@player_structure:declared_residency"); //You have declared your residency here.
}
if (structure->isPrivateStructure() && !structure->isCivicStructure()) {
status->addMenuItem("@player_structure:structure_private"); //This structure is private
} else {
status->addMenuItem("@player_structure:structure_public"); //This structure is public
}
status->addMenuItem(
"@player_structure:condition_prompt "
+ String::valueOf(structure->getDecayPercentage()) + "%");
if (!structure->isCivicStructure()) {
// property tax
float propertytax = 0.f;
if(!structure->isCivicStructure() && structure->getCityRegion() != NULL){
ManagedReference<CityRegion*> city = structure->getCityRegion().get();
if(city != NULL){
propertytax = city->getPropertyTax()/ 100.f * structure->getMaintenanceRate();
status->addMenuItem(
"@city/city:property_tax_prompt : "
+ String::valueOf(ceil(propertytax))
+ " cr/hr");
}
}
// maintenance
float secsRemainingMaint = 0.f;
if( structure->getSurplusMaintenance() > 0 ){
float totalrate = (float)structure->getMaintenanceRate() + propertytax;
secsRemainingMaint = ((float)structure->getSurplusMaintenance() / totalrate)*3600;
}
status->addMenuItem(
"@player_structure:maintenance_pool_prompt "
+ String::valueOf( (int) floor( (float) structure->getSurplusMaintenance()))
+ " "
+ getTimeString( (uint32)secsRemainingMaint ) );
status->addMenuItem(
"@player_structure:maintenance_rate_prompt "
+ String::valueOf(structure->getMaintenanceRate())
+ " cr/hr");
status->addMenuItem(
"@player_structure:maintenance_mods_prompt "
+ structure->getMaintenanceMods());
}
if (structure->isInstallationObject() && !structure->isGeneratorObject() && !structure->isCivicStructure()) {
InstallationObject* installation = cast<InstallationObject*>(structure);
float secsRemainingPower = 0.f;
if( installation->getSurplusPower() > 0 ){
secsRemainingPower = ((float)installation->getSurplusPower() / (float)installation->getBasePowerRate())*3600;
}
status->addMenuItem(
"@player_structure:power_reserve_prompt "
+ String::valueOf( (int) installation->getSurplusPower())
+ " "
//.........这里部分代码省略.........
示例7: canAddObject
int PlayerContainerComponent::canAddObject(SceneObject* sceneObject, SceneObject* object, int containmentType, String& errorDescription) {
CreatureObject* creo = dynamic_cast<CreatureObject*>(sceneObject);
if (object->isTangibleObject() && containmentType == 4) {
TangibleObject* wearable = cast<TangibleObject*>( object);
SharedTangibleObjectTemplate* tanoData = dynamic_cast<SharedTangibleObjectTemplate*>(wearable->getObjectTemplate());
Vector<uint32>* races = tanoData->getPlayerRaces();
String race = creo->getObjectTemplate()->getFullTemplateString();
if (!races->contains(race.hashCode())) {
errorDescription = "You lack the necessary requirements to wear this object";
return TransferErrorCode::PLAYERUSEMASKERROR;
}
if (creo->isPlayerCreature()) {
if (!wearable->isNeutral()) {
ManagedReference<PlayerObject*> playerObject = creo->getPlayerObject();
if (wearable->isImperial() && (playerObject->getFactionStatus() == FactionStatus::ONLEAVE || !creo->isImperial())) {
errorDescription = "You lack the necessary requirements to wear this object";
return TransferErrorCode::PLAYERUSEMASKERROR;
}
if (wearable->isRebel() && (playerObject->getFactionStatus() == FactionStatus::ONLEAVE || !creo->isRebel())) {
errorDescription = "You lack the necessary requirements to wear this object";
return TransferErrorCode::PLAYERUSEMASKERROR;
}
}
}
}
if (object->isArmorObject() && containmentType == 4) {
PlayerManager* playerManager = sceneObject->getZoneServer()->getPlayerManager();
if (!playerManager->checkEncumbrancies(dynamic_cast<CreatureObject*>(sceneObject), cast<ArmorObject*>( object))) {
errorDescription = "You lack the necessary secondary stats to equip this item";
return TransferErrorCode::NOTENOUGHENCUMBRANCE;
}
}
if (object->isRobeObject() && containmentType == 4) {
ManagedReference<RobeObject*> robe = cast<RobeObject*>( object);
String skillRequired = robe->getSkillRequired();
if (!creo->hasSkill(skillRequired) && skillRequired != ""){
errorDescription = "You are not eligible to wear this robe.";
return TransferErrorCode::PLAYERUSEMASKERROR;
}
}
if (object->isWeaponObject() && containmentType == 4) {
ManagedReference<WeaponObject*> weapon = cast<WeaponObject*>( object);
int bladeColor = weapon->getBladeColor();
if (weapon->isJediWeapon()){
if (bladeColor == 31) {
errorDescription = "@jedi_spam:lightsaber_no_color";
return TransferErrorCode::PLAYERUSEMASKERROR;
}
if (weapon->getCraftersName() != creo->getFirstName()) {
errorDescription = "@jedi_spam:not_your_lightsaber";
return TransferErrorCode::PLAYERUSEMASKERROR;
}
}
}
return ContainerComponent::canAddObject(sceneObject, object, containmentType, errorDescription);
}
示例8: canAddObject
int PlayerContainerComponent::canAddObject(SceneObject* sceneObject, SceneObject* object, int containmentType, String& errorDescription) {
CreatureObject* creo = dynamic_cast<CreatureObject*>(sceneObject);
if (object->isTangibleObject() && containmentType == 4) {
TangibleObject* wearable = cast<TangibleObject*>( object);
SharedTangibleObjectTemplate* tanoData = dynamic_cast<SharedTangibleObjectTemplate*>(wearable->getObjectTemplate());
Vector<uint32>* races = tanoData->getPlayerRaces();
String race = creo->getObjectTemplate()->getFullTemplateString();
if (!races->contains(race.hashCode())) {
errorDescription = "You lack the necessary requirements to wear this object";
return TransferErrorCode::PLAYERUSEMASKERROR;
}
if (creo->isPlayerCreature()) {
if (!wearable->isNeutral()) {
ManagedReference<PlayerObject*> playerObject = creo->getPlayerObject();
if (wearable->isImperial() && (playerObject->getFactionStatus() == FactionStatus::ONLEAVE || !creo->isImperial())) {
errorDescription = "You lack the necessary requirements to wear this object";
return TransferErrorCode::PLAYERUSEMASKERROR;
}
if (wearable->isRebel() && (playerObject->getFactionStatus() == FactionStatus::ONLEAVE || !creo->isRebel())) {
errorDescription = "You lack the necessary requirements to wear this object";
return TransferErrorCode::PLAYERUSEMASKERROR;
}
}
}
}
if (object->isArmorObject() && containmentType == 4) {
PlayerManager* playerManager = sceneObject->getZoneServer()->getPlayerManager();
if (!playerManager->checkEncumbrancies(dynamic_cast<CreatureObject*>(sceneObject), cast<ArmorObject*>( object))) {
errorDescription = "You lack the necessary secondary stats to equip this item";
return TransferErrorCode::NOTENOUGHENCUMBRANCE;
}
}
if (object->isWearableObject() && containmentType == 4) {
ManagedReference<WearableObject*> wearable = cast<WearableObject*>( object);
SharedTangibleObjectTemplate* wearableData = dynamic_cast<SharedTangibleObjectTemplate*>(wearable->getObjectTemplate());
Vector<String> skillsRequired = wearableData->getCertificationsRequired();
if (skillsRequired.size() > 0) {
bool hasSkill = false;
for (int i = 0; i < skillsRequired.size(); i++) {
String skill = skillsRequired.get(i);
if (!skill.isEmpty() && creo->hasSkill(skill)) {
hasSkill = true;
break;
}
}
if (!hasSkill) {
errorDescription = "@error_message:insufficient_skill"; // You lack the skill to use this item.
return TransferErrorCode::PLAYERUSEMASKERROR;
}
}
}
if (object->isWeaponObject() && containmentType == 4) {
ManagedReference<WeaponObject*> weapon = cast<WeaponObject*>( object);
int bladeColor = weapon->getBladeColor();
if (weapon->isJediWeapon()){
if (bladeColor == 31) {
errorDescription = "@jedi_spam:lightsaber_no_color";
return TransferErrorCode::PLAYERUSEMASKERROR;
}
if (weapon->getCraftersName() != creo->getFirstName()) {
errorDescription = "@jedi_spam:not_your_lightsaber";
return TransferErrorCode::PLAYERUSEMASKERROR;
}
}
}
return ContainerComponent::canAddObject(sceneObject, object, containmentType, errorDescription);
}
示例9: broadcastMessage
void ChatManagerImplementation::broadcastMessage(CreatureObject* player, const UnicodeString& message, uint64 target, uint32 moodid, uint32 mood2) {
Zone* zone = player->getZone();
PlayerObject* myGhost = NULL;
bool godMode = false;
if (zone == NULL)
return;
int language = 0;
String firstName;
if (player->isPlayerCreature() /*|| !((Player *)player)->isChatMuted() */) {
CreatureObject* playerCreature = cast<CreatureObject*>(player);
if (playerCreature)
{
firstName = playerCreature->getFirstName().toLowerCase();
myGhost = playerCreature->getPlayerObject();
}
if (myGhost)
language = myGhost->getLanguageID();
}
if (myGhost)
{
if (myGhost->hasGodMode())
godMode = true;
}
StringIdChatParameter* param = NULL;
if (message[0] == '@' && message.indexOf(":") != -1) {
param = new StringIdChatParameter(message.toString());
}
CloseObjectsVector* closeObjects = (CloseObjectsVector*) player->getCloseObjects();
SortedVector<QuadTreeEntry*> closeEntryObjects(200, 50);
if (closeObjects != NULL) {
closeObjects->safeCopyTo(closeEntryObjects);
} else {
player->info("Null closeobjects vector in ChatManager::broadcastMessage", true);
zone->getInRangeObjects(player->getWorldPositionX(), player->getWorldPositionY(), 128, &closeEntryObjects, true);
}
float range = defaultSpatialChatDistance;
float specialRange = spatialChatDistances.get(mood2);
if (specialRange != -1) {
range = specialRange;
}
try {
for (int i = 0; i < closeEntryObjects.size(); ++i) {
SceneObject* object = cast<SceneObject*>(closeEntryObjects.get(i));
if (player->isInRange(object, range)) {
//Notify observers that are expecting spatial chat.
if (object->getObserverCount(ObserverEventType::SPATIALCHATRECEIVED)) {
ManagedReference<ChatMessage*> chatMessage = new ChatMessage();
chatMessage->setString(message.toString());
EXECUTE_TASK_3(object, chatMessage, player, {
if (player_p == NULL || object_p == NULL)
return;
Locker locker(object_p);
SortedVector<ManagedReference<Observer*> > observers = object_p->getObservers(ObserverEventType::SPATIALCHATRECEIVED);
for (int oc = 0; oc < observers.size(); oc++) {
Observer* observer = observers.get(oc);
Locker clocker(observer, object_p);
if (observer->notifyObserverEvent(ObserverEventType::SPATIALCHATRECEIVED, object_p, chatMessage_p, player_p->getObjectID()) == 1)
object_p->dropObserver(ObserverEventType::SPATIALCHATRECEIVED, observer);
}
});
}
if (object->isPlayerCreature()) {
CreatureObject* creature = cast<CreatureObject*>(object);
PlayerObject* ghost = creature->getPlayerObject();
if (ghost == NULL)
continue;
if (!ghost->isIgnoring(firstName) || godMode) {
SpatialChat* cmsg = NULL;
if (param == NULL) {
cmsg = new SpatialChat(player->getObjectID(), creature->getObjectID(), message, target, moodid, mood2, language);
} else {
cmsg = new SpatialChat(player->getObjectID(), creature->getObjectID(), *param, target, moodid, mood2);
}
creature->sendMessage(cmsg);
}
}
else if( object->isPet() ){
//.........这里部分代码省略.........