Changeset 81
- Timestamp:
- 11/19/08 13:32:32 (17 years ago)
- Location:
- trunk/src/game
- Files:
-
- 4 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/game/Creature.h
r44 r81 125 125 CREATURE_FLAG_EXTRA_NO_CRUSH = 0x00000020, // creature can't do crush attacks 126 126 CREATURE_FLAG_EXTRA_NO_XP_AT_KILL = 0x00000040, // creature kill not provide XP 127 CREATURE_FLAG_EXTRA_TRIGGER = 0x00000080, // trigger creature 127 128 CREATURE_FLAG_EXTRA_WORLDEVENT = 0x00004000, // custom flag for world event creatures (left room for merging) 128 129 }; -
trunk/src/game/CreatureAISelector.cpp
r44 r81 61 61 else if(creature->isTotem()) 62 62 ai_factory = ai_registry.GetRegistryItem("TotemAI"); 63 else if(creature->GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER) 64 ai_factory = ai_registry.GetRegistryItem("NullCreatureAI"); 63 65 } 64 66 -
trunk/src/game/Object.cpp
r58 r81 595 595 *data << (m_uint32Values[ index ] & ~UNIT_FLAG_NOT_SELECTABLE); 596 596 } 597 // use modelid_a if not gm, _h if gm for CREATURE_FLAG_EXTRA_TRIGGER creatures 598 else if(index == UNIT_FIELD_DISPLAYID && GetTypeId() == TYPEID_UNIT) 599 { 600 const CreatureInfo* cinfo = ((Creature*)this)->GetCreatureInfo(); 601 if(cinfo->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER) 602 { 603 if(target->isGameMaster()) 604 *data << cinfo->DisplayID_A; 605 else 606 *data << cinfo->DisplayID_H; 607 } 608 else 609 *data << m_uint32Values[ index ]; 610 } 597 611 // hide lootable animation for unallowed players 598 612 else if(index == UNIT_DYNAMIC_FLAGS && GetTypeId() == TYPEID_UNIT) -
trunk/src/game/Unit.cpp
r74 r81 8458 8458 return false; 8459 8459 8460 if(GetTypeId()==TYPEID_UNIT && (((Creature *)this)->GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER)) 8461 return false; 8462 8460 8463 return isAlive() && !hasUnitState(UNIT_STAT_DIED)&& !isInFlight() /*&& !isStealth()*/; 8461 8464 }