本文整理汇总了C++中Reference::awardExperience方法的典型用法代码示例。如果您正苦于以下问题:C++ Reference::awardExperience方法的具体用法?C++ Reference::awardExperience怎么用?C++ Reference::awardExperience使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Reference
的用法示例。
在下文中一共展示了Reference::awardExperience方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createPrototype
void CraftingSessionImplementation::createPrototype(int clientCounter, bool createItem) {
ManagedReference<CraftingTool*> craftingTool = this->craftingTool.get();
ManagedReference<CreatureObject*> crafter = this->crafter.get();
ManagedReference<ManufactureSchematic*> manufactureSchematic = this->manufactureSchematic.get();
if (manufactureSchematic == NULL) {
sendSlotMessage(clientCounter, IngredientSlot::NOSCHEMATIC);
return;
}
if (prototype == NULL) {
sendSlotMessage(clientCounter, IngredientSlot::PROTOTYPENOTFOUND);
return;
}
Locker locker(_this.get());
Locker locker2(manufactureSchematic);
if (manufactureSchematic->isAssembled()
&& !manufactureSchematic->isCompleted()) {
closeCraftingWindow(clientCounter);
String xpType = manufactureSchematic->getDraftSchematic()->getXpType();
int xp = manufactureSchematic->getDraftSchematic()->getXpAmount();
if (createItem) {
startCreationTasks(manufactureSchematic->getComplexity() * 2, false);
} else {
// This is for practicing
startCreationTasks(manufactureSchematic->getComplexity() * 2, true);
xp *= 1.05f;
}
Reference<PlayerManager*> playerManager = crafter->getZoneServer()->getPlayerManager();
playerManager->awardExperience(crafter, xpType, xp, true);
manufactureSchematic->setCompleted();
} else {
closeCraftingWindow(clientCounter);
sendSlotMessage(clientCounter, IngredientSlot::WEIRDFAILEDMESSAGE);
}
cancelSession();
}