本文整理汇总了C++中ZObject::GetRefID方法的典型用法代码示例。如果您正苦于以下问题:C++ ZObject::GetRefID方法的具体用法?C++ ZObject::GetRefID怎么用?C++ ZObject::GetRefID使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ZObject
的用法示例。
在下文中一共展示了ZObject::GetRefID方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: stop_building_event
void ZServer::stop_building_event(ZServer *p, char *data, int size, int player) {
int ref_id;
ZObject *obj;
//good packet?
if (size != sizeof(int))
return;
ref_id = *(int*) data;
obj = p->GetObjectFromID(ref_id, p->object_list);
if (!obj)
return;
//is this a building that can build?
unsigned char ot, oid;
obj->GetObjectID(ot, oid);
if (ot != BUILDING_OBJECT)
return;
if (!(oid == FORT_FRONT || oid == FORT_BACK || oid == ROBOT_FACTORY || oid == VEHICLE_FACTORY))
return;
//is the team business kosher?
if (obj->GetOwner() == NULL_TEAM)
return;
if (p->player_info[player].team != obj->GetOwner())
return;
//logged in?
//if(p->psettings.require_login && !p->player_info[player].logged_in)
if (p->LoginCheckDenied(player)) {
p->SendNews(player, "stop production error: login required, please type /help", 0, 0, 0);
return;
}
//ignored?
if (p->player_info[player].ignored) {
p->SendNews(player, "stop production error: player currently ignored", 0, 0, 0);
return;
}
//stop it!!!
if (obj->StopBuildingProduction()) {
//now let us tell everyone the building's new state
p->RelayBuildingState(obj);
//tell the person who did it
computer_msg_packet send_data;
send_data.ref_id = obj->GetRefID();
send_data.sound = COMP_MANUFACTURING_CANCELED_SND;
p->server_socket.SendMessage(player, COMP_MSG, (char*) &send_data, sizeof(computer_msg_packet));
}
}