本文整理汇总了C++中ManagedReference::addSkillMod方法的典型用法代码示例。如果您正苦于以下问题:C++ ManagedReference::addSkillMod方法的具体用法?C++ ManagedReference::addSkillMod怎么用?C++ ManagedReference::addSkillMod使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ManagedReference
的用法示例。
在下文中一共展示了ManagedReference::addSkillMod方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addSkillMods
void CraftingSessionImplementation::addSkillMods() {
ManagedReference<ManufactureSchematic*> manufactureSchematic = this->manufactureSchematic.get();
ManagedReference<TangibleObject*> prototype = this->prototype.get();
ManagedReference<DraftSchematic*> draftSchematic = manufactureSchematic->getDraftSchematic();
VectorMap<String, int>* skillMods = draftSchematic->getDraftSchematicTemplate()->getSkillMods();
for (int i = 0; i < skillMods->size(); i++) {
VectorMapEntry<String, int> mod = skillMods->elementAt(i);
if (prototype->isWearableObject()) {
WearableObject* wearable = prototype.castTo<WearableObject*>();
VectorMap<String, int>* wearableMods = wearable->getWearableSkillMods();
if (wearableMods->contains(mod.getKey())) {
int oldValue = wearableMods->get(mod.getKey());
int newValue = mod.getValue() + oldValue;
if (newValue > 25)
newValue = 25;
wearableMods->put(mod.getKey(), newValue);
continue;
}
}
prototype->addSkillMod(SkillModManager::WEARABLE, mod.getKey(), mod.getValue(), false);
}
}
示例2: addSkillMods
void CraftingSessionImplementation::addSkillMods() {
ManagedReference<ManufactureSchematic*> manufactureSchematic = this->manufactureSchematic.get();
ManagedReference<TangibleObject*> prototype = this->prototype.get();
ManagedReference<DraftSchematic*> draftSchematic = manufactureSchematic->getDraftSchematic();
VectorMap<String, int>* skillMods = draftSchematic->getDraftSchematicTemplate()->getSkillMods();
for (int i = 0; i < skillMods->size(); i++) {
VectorMapEntry<String, int> mod = skillMods->elementAt(i);
prototype->addSkillMod(SkillModManager::WEARABLE, mod.getKey(), mod.getValue(), false);
}
}
示例3: handleCharacterBuilderSelectItem
//.........这里部分代码省略.........
player->clearBuffs(true);
ghost->setFoodFilling(0);
ghost->setDrinkFilling(0);
} else {
player->sendSystemMessage("Not within combat.");
}
} else if (templatePath.beginsWith("crafting_apron_")) {
//"object/tangible/wearables/apron/apron_chef_s01.iff"
//"object/tangible/wearables/ithorian/apron_chef_jacket_s01_ith.iff"
uint32 itemCrc = ( player->getSpecies() != CreatureObject::ITHORIAN ) ? 0x5DDC4E5D : 0x6C191FBB;
ManagedReference<WearableObject*> apron = zserv->createObject(itemCrc, 2).castTo<WearableObject*>();
if (apron == NULL) {
player->sendSystemMessage("There was an error creating the requested item. Please contact customer support with this issue.");
ghost->addSuiBox(cbSui);
player->sendMessage(cbSui->generateMessage());
error("could not create frog crafting apron");
return;
}
apron->createChildObjects();
if (apron->isWearableObject()) {
uint32 bitmask = apron->getOptionsBitmask() | OptionBitmask::YELLOW;
apron->setOptionsBitmask(bitmask, false);
UnicodeString modName = "(General)";
apron->addSkillMod(SkillModManager::WEARABLE, "general_assembly", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "general_experimentation", 25);
if(templatePath == "crafting_apron_armorsmith") {
modName = "(Armorsmith)";
apron->addSkillMod(SkillModManager::WEARABLE, "armor_assembly", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "armor_experimentation", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "armor_repair", 25);
} else if(templatePath == "crafting_apron_weaponsmith") {
modName = "(Weaponsmith)";
apron->addSkillMod(SkillModManager::WEARABLE, "weapon_assembly", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "weapon_experimentation", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "weapon_repair", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "grenade_assembly", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "grenade_experimentation", 25);
} else if(templatePath == "crafting_apron_tailor") {
modName = "(Tailor)";
apron->addSkillMod(SkillModManager::WEARABLE, "clothing_assembly", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "clothing_experimentation", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "clothing_repair", 25);
} else if(templatePath == "crafting_apron_chef") {
modName = "(Chef)";
apron->addSkillMod(SkillModManager::WEARABLE, "food_assembly", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "food_experimentation", 25);
} else if(templatePath == "crafting_apron_architect") {
modName = "(Architect)";
apron->addSkillMod(SkillModManager::WEARABLE, "structure_assembly", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "structure_experimentation", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "structure_complexity", 25);
} else if(templatePath == "crafting_apron_droid_engineer") {
modName = "(Droid Engineer)";
apron->addSkillMod(SkillModManager::WEARABLE, "droid_assembly", 25);
apron->addSkillMod(SkillModManager::WEARABLE, "droid_experimentation", 25);
示例4: setSkillMods
void LootManagerImplementation::setSkillMods(TangibleObject* object, LootItemTemplate* templateObject, int level, float excMod) {
if (!object->isWeaponObject() && !object->isWearableObject())
return;
VectorMap<String, int>* skillMods = templateObject->getSkillMods();
VectorMap<String, int> additionalMods;
bool yellow = false;
if (System::random(skillModChance / excMod) == 0) {
// if it has a skillmod the name will be yellow
yellow = true;
int modCount = 1;
int roll = System::random(100);
if(roll > (100 - excMod))
modCount += 2;
if(roll < (5 * excMod))
modCount += 1;
for(int i = 0; i < modCount; ++i) {
//Mods can't be lower than -1 or greater than 25
int max = MAX(-1, MIN(25, round(0.1f * level + 3)));
int min = MAX(-1, MIN(25, round(0.075f * level - 1)));
int mod = System::random(max - min) + min;
if(mod == 0)
mod = 1;
String modName = getRandomLootableMod( object->getGameObjectType() );
if( !modName.isEmpty() )
additionalMods.put(modName, mod);
}
}
if (yellow) {
uint32 bitmask = object->getOptionsBitmask() | OptionBitmask::YELLOW;
object->setOptionsBitmask(bitmask, false);
}
if (object->isWearableObject()) {
ManagedReference<WearableObject*> wearableObject = cast<WearableObject*>(object);
for (int i = 0; i < additionalMods.size(); i++) {
wearableObject->addSkillMod(SkillModManager::WEARABLE, additionalMods.elementAt(i).getKey(), additionalMods.elementAt(i).getValue());
}
for (int i = 0; i < skillMods->size(); i++) {
wearableObject->addSkillMod(SkillModManager::WEARABLE, skillMods->elementAt(i).getKey(), skillMods->elementAt(i).getValue());
}
} else if (object->isWeaponObject()) {
ManagedReference<WeaponObject*> weaponObject = cast<WeaponObject*>(object);
for (int i = 0; i < additionalMods.size(); i++) {
weaponObject->addSkillMod(SkillModManager::WEARABLE, additionalMods.elementAt(i).getKey(), additionalMods.elementAt(i).getValue());
}
for (int i = 0; i < skillMods->size(); i++) {
weaponObject->addSkillMod(SkillModManager::WEARABLE, skillMods->elementAt(i).getKey(), skillMods->elementAt(i).getValue());
}
}
}