void ResourceManagerImplementation::createResourceSpawn(CreatureObject* playerCreature, const String& restype) { Locker _locker(_this.get()); ResourceSpawn* resourceSpawn = resourceSpawner->manualCreateResourceSpawn(restype); if (resourceSpawn != NULL) { StringBuffer buffer; buffer << "Spawned " << resourceSpawn->getName() << " of type " << resourceSpawn->getType(); playerCreature->sendSystemMessage(buffer.toString()); } else { playerCreature->sendSystemMessage("Could not create spawn " + restype); } }
void ResourceManagerImplementation::createResourceSpawn(CreatureObject* playerCreature, const UnicodeString& args) { Locker _locker(_this.getReferenceUnsafeStaticCast()); ResourceSpawn* resourceSpawn = resourceSpawner->manualCreateResourceSpawn(playerCreature, args); if (resourceSpawn != NULL) { StringBuffer buffer; buffer << "Spawned " << resourceSpawn->getName() << " of type " << resourceSpawn->getType(); playerCreature->sendSystemMessage(buffer.toString()); } else { playerCreature->sendSystemMessage("Could not create resource spawn, invalid arguments"); } }
int SurveyMissionObjectiveImplementation::notifyObserverEvent(MissionObserver* observer, uint32 eventType, Observable* observable, ManagedObject* arg1, int64 arg2) { if (eventType == ObserverEventType::SURVEY) { ManagedReference<CreatureObject*> player = getPlayerOwner(); ManagedReference<MissionObject*> mission = this->mission.get(); if (player == NULL || mission == NULL) { return 0; } ResourceSpawn* sampledSpawn = cast<ResourceSpawn*>( arg1); if (sampledSpawn == NULL) { return 0; } int sampledDensity = (int)arg2; if (sampledSpawn->getSurveyMissionSpawnFamilyName() == spawnFamily && (sampledDensity >= efficiency)) { Vector3 startPosition; startPosition.setX(mission->getStartPositionX()); startPosition.setY(mission->getStartPositionY()); float distance = startPosition.distanceTo(player->getWorldPosition()); if (distance > 1024.0f) { complete(); return 1; } else { StringIdChatParameter stringId("mission/mission_generic", "survey_too_close"); stringId.setDI(1024); stringId.setDF(distance); player->sendSystemMessage(stringId); return 0; } } else { return 0; } } dropObserver(observer, true); updateToDatabase(); return 1; }