本文整理汇总了C++中GameObject::GetGOData方法的典型用法代码示例。如果您正苦于以下问题:C++ GameObject::GetGOData方法的具体用法?C++ GameObject::GetGOData怎么用?C++ GameObject::GetGOData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameObject
的用法示例。
在下文中一共展示了GameObject::GetGOData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleGameObjectSetScaleCommand
static bool HandleGameObjectSetScaleCommand(ChatHandler* handler, char const* args)
{
// number or [name] Shift-click form |color|Hgameobject:go_id|h[name]|h|r
char* id = handler->extractKeyFromLink((char*)args, "Hgameobject");
if (!id)
return false;
uint32 guidLow = atoi(id);
if (!guidLow)
return false;
GameObject* object = NULL;
if (GameObjectData const* gameObjectData = sObjectMgr->GetGOData(guidLow))
object = handler->GetObjectGlobalyWithGuidOrNearWithDbGuid(guidLow, gameObjectData->id);
if (!object)
{
handler->PSendSysMessage(LANG_COMMAND_OBJNOTFOUND, guidLow);
handler->SetSentErrorMessage(true);
return false;
}
char* scale_temp = strtok(NULL, " ");
if (!scale_temp)
{
handler->SendSysMessage(LANG_BAD_VALUE);
handler->SetSentErrorMessage(true);
return false;
}
float scale = atof(scale_temp);
if (scale <= 0.0f)
{
scale = object->GetGOInfo()->size;
const_cast<GameObjectData*>(object->GetGOData())->size = -1.0f;
}
else
{
const_cast<GameObjectData*>(object->GetGOData())->size = scale;
}
object->SetObjectScale(scale);
object->DestroyForNearbyPlayers();
object->UpdateObjectVisibility();
object->SaveToDB();
handler->PSendSysMessage("Set %s scale to %f", object->GetGUID().ToString(), scale);
return true;
}