当前位置: 首页>>代码示例>>C++>>正文


C++ CreatureEvent类代码示例

本文整理汇总了C++中CreatureEvent的典型用法代码示例。如果您正苦于以下问题:C++ CreatureEvent类的具体用法?C++ CreatureEvent怎么用?C++ CreatureEvent使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了CreatureEvent类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: registerCreatureEvent

bool Creature::registerCreatureEvent(const std::string& name)
{
	CreatureEvent* event = g_creatureEvents->getEventByName(name);
	if(!event) //check for existance
		return false;

	for(CreatureEventList::iterator it = eventsList.begin(); it != eventsList.end(); ++it)
	{
		if((*it) == event) //do not allow registration of same event more than once
			return false;
	}

	if(!hasEventRegistered(event->getEventType())) //there's no such type registered yet, so set the bit in the bitfield
		scriptEventsBitField |= ((uint32_t)1 << event->getEventType());

	eventsList.push_back(event);
	return true;
}
开发者ID:novasdream,项目名称:OpenTibia-EPVP,代码行数:18,代码来源:creature.cpp

示例2: switch

bool CreatureEvents::registerEvent(Event* event, xmlNodePtr p)
{
    CreatureEvent* creatureEvent = dynamic_cast<CreatureEvent*>(event);
    if(!creatureEvent)
        return false;

    switch(creatureEvent->getEventType())
    {
    case CREATURE_EVENT_NONE:
        std::cout << "Error: [CreatureEvents::registerEvent] Trying to register event without type!." << std::endl;
        return false;
        break;
    //events are stored in a std::map
    default:
    {
        m_creatureEvents[creatureEvent->getName()] = creatureEvent;
        return true;
    }
    }
}
开发者ID:carlesgrauvila,项目名称:avesta74,代码行数:20,代码来源:creatureevent.cpp

示例3: registerCreatureEvent

bool Creature::registerCreatureEvent(const std::string& name)
{
	CreatureEvent* event = g_creatureEvents->getEventByName(name);
	if (!event) {
		return false;
	}

	CreatureEventType_t type = event->getEventType();
	if (hasEventRegistered(type)) {
		for (CreatureEvent* creatureEvent : eventsList) {
			if (creatureEvent == event) {
				return false;
			}
		}
	} else {
		scriptEventsBitField |= static_cast<uint32_t>(1) << type;
	}

	eventsList.push_back(event);
	return true;
}
开发者ID:afsdadsfdsa,项目名称:forgottenserver,代码行数:21,代码来源:creature.cpp

示例4: getEventByName

bool CreatureEvents::registerEvent(Event* event, const pugi::xml_node&)
{
	CreatureEvent* creatureEvent = reinterpret_cast<CreatureEvent*>(event);
	if (creatureEvent->getEventType() == CREATURE_EVENT_NONE) {
		std::cout << "Error: [CreatureEvents::registerEvent] Trying to register event without type!" << std::endl;
		return false;
	}

	CreatureEvent* oldEvent = getEventByName(creatureEvent->getName(), false);
	if (oldEvent) {
		//if there was an event with the same that is not loaded
		//(happens when realoading), it is reused
		if (!oldEvent->isLoaded() && oldEvent->getEventType() == creatureEvent->getEventType()) {
			oldEvent->copyEvent(creatureEvent);
		}

		return false;
	} else {
		//if not, register it normally
		m_creatureEvents[creatureEvent->getName()] = creatureEvent;
		return true;
	}
}
开发者ID:Blaggo,项目名称:forgottenserver,代码行数:23,代码来源:creatureevent.cpp


注:本文中的CreatureEvent类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。