本文整理汇总了C++中Zone::getZoneName方法的典型用法代码示例。如果您正苦于以下问题:C++ Zone::getZoneName方法的具体用法?C++ Zone::getZoneName怎么用?C++ Zone::getZoneName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zone
的用法示例。
在下文中一共展示了Zone::getZoneName方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getZoneName
int LuaSceneObject::getZoneName(lua_State* L) {
Zone* zone = realObject->getZone();
String name = "";
if (zone != NULL) {
name = zone->getZoneName();
}
lua_pushstring(L, name.toCharArray());
return 1;
}
示例2: handleObjectMenuSelect
int EventPerkDeedImplementation::handleObjectMenuSelect(CreatureObject* player, byte selectedID) {
if (selectedID == 20) {
if (generated) {
return 1;
}
Zone* zone = player->getZone();
if (zone == NULL) {
return 1;
}
PlanetManager* planetManager = zone->getPlanetManager();
if (planetManager == NULL) {
return 1;
}
EventPerkDeedTemplate* deedTemplate = cast<EventPerkDeedTemplate*>(getObjectTemplate());
if (deedTemplate == NULL) {
return 1;
}
if (zone->getZoneName().contains("space_")) {
player->sendSystemMessage("@event_perk:not_in_space"); // You may not deploy a Rental in space. Return to the ground first.
return 1;
}
if (!deedTemplate->isAllowedZone(zone->getZoneName())) {
player->sendSystemMessage("@event_perk:not_on_this_planet"); // You cannot deploy this rental on this planet. Examine the deed to determine the intended planet for this rental.
return 1;
}
if (!isASubChildOf(player)) {
player->sendSystemMessage("@event_perk:from_inventory_only"); // This rental must be in your inventory in order to be deployed.
return 1;
}
if (player->getParent() != NULL) {
player->sendSystemMessage("@event_perk:not_inside"); // You cannot deploy a Rental indoors. You must move outside.
return 1;
}
if (player->isInCombat()) {
player->sendSystemMessage("@event_perk:not_in_combat"); // You cannot deploy a Rental while in combat.
return 1;
}
if (player->isSwimming()) {
player->sendSystemMessage("@event_perk:not_while_swimming"); // You cannot deploy a Rental while swimming.
return 1;
}
ManagedReference<CityRegion*> city = player->getCityRegion().get();
if (city != NULL) {
if (city->isClientRegion()) {
player->sendSystemMessage("@event_perk:not_in_municipal_zone"); // You may not place a Rental in a municipal zone.
return 1;
}
if (city->isZoningEnabled() && !city->hasZoningRights(player->getObjectID())) {
player->sendSystemMessage("@event_perk:no_zoning_rights"); // You must have zoning rights to place a Rental in this city.
return 1;
}
}
int x = player->getWorldPositionX();
int y = player->getWorldPositionY();
int nearbyPerks = 0;
TerrainManager* terrainManager = planetManager->getTerrainManager();
if ( terrainManager == NULL || terrainManager->getHighestHeightDifference(x - 10, y - 10, x + 10, y + 10) > 15.0) {
player->sendSystemMessage("@event_perk:bad_area"); // This rental could not be deployed due to the surrounding terrain. Please move to another area and try again.
return 1;
}
SortedVector<ManagedReference<QuadTreeEntry* > >* closeObjects = player->getCloseObjects();
if (closeObjects == NULL) {
error("Player has NULL closeObjectsVector in EventPerkDeedImplementation::handleObjectMenuSelect");
return 1;
}
for (int i = 0; i < closeObjects->size(); ++i) {
SceneObject* obj = cast<SceneObject*>(closeObjects->get(i).get());
if (obj == NULL) {
continue;
}
SharedObjectTemplate* objectTemplate = obj->getObjectTemplate();
if (objectTemplate == NULL) {
continue;
}
float radius = objectTemplate->getNoBuildRadius();
if (obj->isLairObject() && player->isInRange(obj, radius)) {
player->sendSystemMessage("@event_perk:too_close_lair"); // You cannot place a Rental this close to a lair.
//.........这里部分代码省略.........
示例3: startForaging
void ForageManagerImplementation::startForaging(CreatureObject* player, int forageType) {
if (player == NULL)
return;
Locker playerLocker(player);
int actionCostForage = 50;
int mindCostShellfish = 100;
int actionCostShellfish = 100;
//Check if already foraging.
Reference<Task*> pendingForage = player->getPendingTask("foraging");
if (pendingForage != NULL) {
if (forageType == ForageManager::SHELLFISH)
player->sendSystemMessage("@harvesting:busy");
else
player->sendSystemMessage("@skl_use:sys_forage_already"); //"You are already foraging."
return;
}
// Check if mounted
if (player->isRidingMount()) {
player->sendSystemMessage("@error_message:survey_on_mount"); // You cannot perform that action while mounted on a creature or driving a vehicle.
return;
}
//Check if player is inside a structure.
if (player->getParentID() != 0) {
if (forageType == ForageManager::SHELLFISH)
player->sendSystemMessage("@harvesting:inside");
else
player->sendSystemMessage("@skl_use:sys_forage_inside"); //"You can't forage inside a structure."
return;
}
//Check if a player is swimming for shellfish harvesting
if (forageType == ForageManager::SHELLFISH && player->isSwimming()){
player->sendSystemMessage("@harvesting:swimming");
return;
}
//Check if player is in water for shellfish harvesting
if (forageType == ForageManager::SHELLFISH && !player->isInWater()){
player->sendSystemMessage("@harvesting:in_water");
return;
}
//Check for action and deduct cost.
if (forageType == ForageManager::SHELLFISH){
//Adjust costs based upon player's Focus and Quickness
int mindCost = player->calculateCostAdjustment(CreatureAttribute::FOCUS, mindCostShellfish);
int actionCost = player->calculateCostAdjustment(CreatureAttribute::QUICKNESS, actionCostShellfish);
if (player->getHAM(CreatureAttribute::MIND) < mindCost + 1 || player->getHAM(CreatureAttribute::ACTION) < actionCost + 1)
return;
else {
player->inflictDamage(player, CreatureAttribute::MIND, mindCost, false, true);
player->inflictDamage(player, CreatureAttribute::ACTION, actionCost, false, true);
}
}
else {
//Adjust action cost based upon a player's Quickness
int actionCost = player->calculateCostAdjustment(CreatureAttribute::QUICKNESS, actionCostForage);
if (player->getHAM(CreatureAttribute::ACTION) >= actionCost + 1)
player->inflictDamage(player, CreatureAttribute::ACTION, actionCost, false, true);
else {
player->sendSystemMessage("@skl_use:sys_forage_attrib"); //"You need to rest before you can forage again."
return;
}
}
//Collect player's current position.
float playerX = player->getPositionX();
float playerY = player->getPositionY();
ManagedReference<ZoneServer*> zoneServer = player->getZoneServer();
//Queue the foraging task.
Zone* zone = player->getZone();
if (zone == NULL)
return;
Reference<Task*> foragingEvent = new ForagingEvent(player, forageType, playerX, playerY, zone->getZoneName());
player->addPendingTask("foraging", foragingEvent, 8500);
if(forageType == ForageManager::LAIR){
player->sendSystemMessage("You begin to search the lair for creatures"); //"You begin to search the lair for creatures."
}
else{
player->sendSystemMessage("@skl_use:sys_forage_start"); //"You begin to search the area for goods."
}
player->doAnimation("forage");
}