这篇教程C++ GetVehicleInfo函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetVehicleInfo函数的典型用法代码示例。如果您正苦于以下问题:C++ GetVehicleInfo函数的具体用法?C++ GetVehicleInfo怎么用?C++ GetVehicleInfo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetVehicleInfo函数的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: switchvoid Vehicle::ApplyAllImmunities(){ // This couldn't be done in DB, because some spells have MECHANIC_NONE // Vehicles should be immune on Knockback ... _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true); // Mechanical units & vehicles ( which are not Bosses, they have own immunities in DB ) should be also immune on healing ( exceptions in switch below ) if (_me->ToCreature() && _me->ToCreature()->GetCreatureTemplate()->type == CREATURE_TYPE_MECHANICAL && !_me->ToCreature()->isWorldBoss()) { // Heal & dispel ... _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_DISPEL, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); // ... Shield & Immunity grant spells ... _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_IMMUNITY, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_UNATTACKABLE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_ABSORB, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_IMMUNE_SHIELD, true); // ... Resistance, Split damage, Change stats ... _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_DAMAGE_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SPLIT_DAMAGE_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_RESISTANCE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STAT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, true); } // If vehicle flag for fixed position set (cannons), or if the following hardcoded units, then set state rooted // 30236 | Argent Cannon // 39759 | Tankbuster Cannon if ((GetVehicleInfo()->m_flags & VEHICLE_FLAG_FIXED_POSITION) || GetBase()->GetEntry() == 30236 || GetBase()->GetEntry() == 39759) _me->SetControlled(true, UNIT_STATE_ROOT); // Different immunities for vehicles goes below switch (GetVehicleInfo()->m_ID) { // code below prevents a bug with movable cannons case 160: // Strand of the Ancients case 244: // Wintergrasp case 510: // Isle of Conquest case 452: // Isle of Conquest case 543: // Isle of Conquest _me->SetControlled(true, UNIT_STATE_ROOT); // why we need to apply this? we can simple add immunities to slow mechanic in DB _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DECREASE_SPEED, true); break; default: break; }}
开发者ID:FixCore,项目名称:335source,代码行数:56,
示例2: meVehicle::Vehicle(Unit *unit, VehicleEntry const *vehInfo) : me(unit), m_vehicleInfo(vehInfo), m_usableSeatNum(0), m_bonusHP(0){ for (uint32 i = 0; i < MAX_VEHICLE_SEATS; ++i) { if (uint32 seatId = m_vehicleInfo->m_seatID[i]) if (VehicleSeatEntry const *veSeat = sVehicleSeatStore.LookupEntry(seatId)) { m_Seats.insert(std::make_pair(i, VehicleSeat(veSeat))); if (veSeat->IsUsable()) ++m_usableSeatNum; } } // HACKY WAY, We must found a more generic way to handle this // Set inmunities since db ones are rewritten with player's ones switch (GetVehicleInfo()->m_ID) { case 160: me->SetControlled(true, UNIT_STAT_ROOT); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true); case 158: me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_FEAR, true); me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STUN, true); me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_ROOT, true); me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DECREASE_SPEED, true); me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_CONFUSE, true); me->ApplySpellImmune(0, IMMUNITY_ID, 49560, true); // Death Grip jump effect break; default: break; }}
开发者ID:Bootz,项目名称:S6.RO.WoW,代码行数:35,
示例3: switchvoid Vehicle::ApplyAllImmunities(){ // This couldn't be done in DB, because some spells have MECHANIC_NONE // Vehicles should be immune on Knockback ... _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true); // Mechanical units & vehicles ( which are not Bosses, they have own immunities in DB ) should be also immune on healing ( exceptions in switch below ) if (_me->ToCreature() && _me->ToCreature()->GetCreatureTemplate()->type == CREATURE_TYPE_MECHANICAL && !_me->ToCreature()->isWorldBoss()) { // Heal & dispel ... _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_DISPEL, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); // ... Shield & Immunity grant spells ... _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_IMMUNITY, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_UNATTACKABLE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_ABSORB, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_IMMUNE_SHIELD, true); // ... Resistance, Split damage, Change stats ... _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_DAMAGE_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SPLIT_DAMAGE_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_RESISTANCE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STAT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, true); } // Honour non movement flag (4) if (_me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE)) _me->SetControlled(true, UNIT_STATE_ROOT); // Different immunities for vehicles goes below switch (GetVehicleInfo()->m_ID) { // code below prevents a bug with movable cannons case 160: // Strand of the Ancients case 244: // Wintergrasp case 510: // Isle of Conquest case 452: // Isle of Conquest case 543: // Isle of Conquest _me->SetControlled(true, UNIT_STATE_ROOT); // why we need to apply this? we can simple add immunities to slow mechanic in DB _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DECREASE_SPEED, true); break; case 321: // Pilgrims Bount: Chair _me->SetControlled(true, UNIT_STATE_ROOT); break; default: break; }}
开发者ID:shorden,项目名称:Core,代码行数:56,
示例4: UsableSeatNumVehicle::Vehicle(Unit* unit, VehicleEntry const* vehInfo, uint32 creatureEntry) :UsableSeatNum(0), _me(unit), _vehicleInfo(vehInfo), _creatureEntry(creatureEntry), _status(STATUS_NONE){ for (uint32 i = 0; i < MAX_VEHICLE_SEATS; ++i) { if (uint32 seatId = _vehicleInfo->m_seatID[i]) if (VehicleSeatEntry const* veSeat = sVehicleSeatStore.LookupEntry(seatId)) { Seats.insert(std::make_pair(i, VehicleSeat(veSeat))); if (veSeat->CanEnterOrExit()) ++UsableSeatNum; } } // Vehicle Immunities switch (GetVehicleInfo()->m_ID) { case 160: case 116: _me->SetControlled(true, UNIT_STATE_ROOT); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true); case 117: case 324: case 158: case 79: case 106: _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_DISPEL, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_FEAR, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STUN, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_ROOT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DECREASE_SPEED, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_CONFUSE, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_GRIP, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_ID, 13810, true); // Frost Trap _me->ApplySpellImmune(0, IMMUNITY_ID, 55741, true); // Desecration Rank 1 _me->ApplySpellImmune(0, IMMUNITY_ID, 68766, true); // Desecration Rank 2 break; default: break; } // Set or remove correct flags based on available seats. Will overwrite db data (if wrong). if (UsableSeatNum) _me->SetFlag(UNIT_NPC_FLAGS, (_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK)); else _me->RemoveFlag(UNIT_NPC_FLAGS, (_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK)); InitMovementInfoForBase();}
开发者ID:bromacia,项目名称:TrinityCore-3.3.5a,代码行数:55,
示例5: _meVehicle::Vehicle(Unit* unit, VehicleEntry const* vehInfo, uint32 creatureEntry) : _me(unit), _vehicleInfo(vehInfo), _usableSeatNum(0), _creatureEntry(creatureEntry){ for (uint32 i = 0; i < MAX_VEHICLE_SEATS; ++i) { if (uint32 seatId = _vehicleInfo->m_seatID[i]) if (VehicleSeatEntry const* veSeat = sVehicleSeatStore.LookupEntry(seatId)) { Seats.insert(std::make_pair(i, VehicleSeat(veSeat))); if (veSeat->CanEnterOrExit()) ++_usableSeatNum; } } // HACKY WAY, We must found a more generic way to handle this // Set inmunities since db ones are rewritten with player's ones switch (GetVehicleInfo()->m_ID) { case 160: case 116: case 452: case 453: case 510: _me->SetControlled(true, UNIT_STATE_ROOT); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true); case 117: case 324: case 158: case 79: case 106: _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_DISPEL, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_FEAR, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STUN, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_ROOT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DECREASE_SPEED, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_CONFUSE, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_GRIP, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_ID, 13810, true); // Frost Trap _me->ApplySpellImmune(0, IMMUNITY_ID, 55741, true); // Desecration Rank 1 _me->ApplySpellImmune(0, IMMUNITY_ID, 68766, true); // Desecration Rank 2 break; default: break; } InitMovementInfoForBase();}
开发者ID:bahajan95,项目名称:flame-core,代码行数:52,
示例6: GetVehicleInfovoid Vehicle::InitMovementInfoForBase(){ uint32 vehicleFlags = GetVehicleInfo()->m_flags; if (vehicleFlags & VEHICLE_FLAG_NO_STRAFE) _me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_NO_STRAFE); if (vehicleFlags & VEHICLE_FLAG_NO_JUMPING) _me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_NO_JUMPING); if (vehicleFlags & VEHICLE_FLAG_FULLSPEEDTURNING) _me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_FULL_SPEED_TURNING); if (vehicleFlags & VEHICLE_FLAG_ALLOW_PITCHING) _me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING); if (vehicleFlags & VEHICLE_FLAG_FULLSPEEDPITCHING) _me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_FULL_SPEED_PITCHING);}
开发者ID:MICHAL53Q,项目名称:TrinityCore,代码行数:15,
示例7: switchvoid Vehicle::ApplyAllImmunities(){ // This couldn't be done in DB, because some spells have MECHANIC_NONE // Vehicles should be immune on Knockback ... _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true); // Mechanical units & vehicles ( which are not Bosses, they have own immunities in DB ) should be also immune on healing ( exceptions in switch below ) if (_me->ToCreature() && _me->ToCreature()->GetCreatureInfo()->type == CREATURE_TYPE_MECHANICAL && !_me->ToCreature()->isWorldBoss()) { // Heal & dispel ... _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_DISPEL, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); // ... Shield & Immunity grant spells ... _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_IMMUNITY, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_UNATTACKABLE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_ABSORB, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_IMMUNE_SHIELD , true); // ... Resistance, Split damage, Change stats ... _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_DAMAGE_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SPLIT_DAMAGE_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_RESISTANCE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STAT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, true); } // Different immunities for vehicles goes below switch (GetVehicleInfo()->m_ID) { case 160: _me->SetControlled(true, UNIT_STAT_ROOT); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DECREASE_SPEED, true); break; default: break; }}
开发者ID:Bootz,项目名称:Stage6JUNK,代码行数:43,
示例8: GetVehicleInfouint16 Vehicle::GetExtraMovementFlagsForBase() const{ uint16 movementMask = MOVEMENTFLAG2_NONE; uint32 vehicleFlags = GetVehicleInfo()->m_flags; if (vehicleFlags & VEHICLE_FLAG_NO_STRAFE) movementMask |= MOVEMENTFLAG2_NO_STRAFE; if (vehicleFlags & VEHICLE_FLAG_NO_JUMPING) movementMask |= MOVEMENTFLAG2_NO_JUMPING; if (vehicleFlags & VEHICLE_FLAG_FULLSPEEDTURNING) movementMask |= MOVEMENTFLAG2_FULL_SPEED_TURNING; if (vehicleFlags & VEHICLE_FLAG_ALLOW_PITCHING) movementMask |= MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING; if (vehicleFlags & VEHICLE_FLAG_FULLSPEEDPITCHING) movementMask |= MOVEMENTFLAG2_FULL_SPEED_PITCHING; sLog->outDebug("Vehicle::GetExtraMovementFlagsForBase() returned %u", movementMask); return movementMask;}
开发者ID:B3NNY,项目名称:TrinityCore,代码行数:19,
示例9: ASSERTbool Vehicle::AddPassenger(Unit *unit, int8 seatId){ if (unit->GetVehicle() != this) return false; // don't allow vehicles in arena if (unit->GetTypeId() == TYPEID_PLAYER && unit->GetMap()->IsBattleArena()) return false; SeatMap::iterator seat; if (seatId < 0) // no specific seat requirement { for (seat = m_Seats.begin(); seat != m_Seats.end(); ++seat) if (!seat->second.passenger && seat->second.seatInfo->IsUsable()) break; if (seat == m_Seats.end()) // no available seat return false; } else { seat = m_Seats.find(seatId); if (seat == m_Seats.end()) return false; if (seat->second.passenger) seat->second.passenger->ExitVehicle(); ASSERT(!seat->second.passenger); } sLog.outDebug("Unit %s enter vehicle entry %u id %u dbguid %u seat %d", unit->GetName(), me->GetEntry(), m_vehicleInfo->m_ID, me->GetGUIDLow(), (int32)seat->first); seat->second.passenger = unit; if (seat->second.seatInfo->IsUsable()) { ASSERT(m_usableSeatNum); --m_usableSeatNum; if (!m_usableSeatNum) { if (me->GetTypeId() == TYPEID_PLAYER) me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PLAYER_VEHICLE); else me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); } } if (seat->second.seatInfo->m_flags && !(seat->second.seatInfo->m_flags & VEHICLE_SEAT_FLAG_UNK11)) { switch (GetVehicleInfo()->m_ID) { case 342: //Ignis case 335: //XT-002 case 380: //Kologarn's Right Arm break; default: unit->addUnitState(UNIT_STAT_ONVEHICLE); break; } } unit->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); VehicleSeatEntry const *veSeat = seat->second.seatInfo; unit->m_movementInfo.t_pos.m_positionX = veSeat->m_attachmentOffsetX; unit->m_movementInfo.t_pos.m_positionY = veSeat->m_attachmentOffsetY; unit->m_movementInfo.t_pos.m_positionZ = veSeat->m_attachmentOffsetZ; unit->m_movementInfo.t_pos.m_orientation = 0; unit->m_movementInfo.t_time = 0; // 1 for player unit->m_movementInfo.t_seat = seat->first; if (me->GetTypeId() == TYPEID_UNIT && unit->GetTypeId() == TYPEID_PLAYER && seat->first == 0 && seat->second.seatInfo->m_flags & VEHICLE_SEAT_FLAG_CAN_CONTROL) { if (!me->SetCharmedBy(unit, CHARM_TYPE_VEHICLE)) ASSERT(false); if (VehicleScalingInfo const *scalingInfo = sObjectMgr.GetVehicleScalingInfo(m_vehicleInfo->m_ID)) { Player *plr = unit->ToPlayer(); float averageItemLevel = plr->GetAverageItemLevel(); if (averageItemLevel < scalingInfo->baseItemLevel) averageItemLevel = scalingInfo->baseItemLevel; averageItemLevel -= scalingInfo->baseItemLevel; m_bonusHP = uint32(me->GetMaxHealth() * (averageItemLevel * scalingInfo->scalingFactor)); me->SetMaxHealth(me->GetMaxHealth() + m_bonusHP); me->SetHealth(me->GetHealth() + m_bonusHP); } } if (me->IsInWorld()) { unit->SendMonsterMoveTransport(me); if (me->GetTypeId() == TYPEID_UNIT) { if (me->ToCreature()->IsAIEnabled) me->ToCreature()->AI()->PassengerBoarded(unit, seat->first, true); // update all passenger's positions//.........这里部分代码省略.........
开发者ID:Bootz,项目名称:S6.RO.WoW,代码行数:101,
示例10: switchvoid Vehicle::ApplyAllImmunities(){ // This couldn't be done in DB, because some spells have MECHANIC_NONE // Vehicles should be immune on Knockback ... _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true); // Mechanical units & vehicles ( which are not Bosses, they have own immunities in DB ) should be also immune on healing ( exceptions in switch below ) if (_me->ToCreature() && _me->ToCreature()->GetCreatureInfo()->type == CREATURE_TYPE_MECHANICAL && !_me->ToCreature()->isWorldBoss()) { // Heal & dispel ... _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_DISPEL, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); // ... Shield & Immunity grant spells ... _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_IMMUNITY, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_UNATTACKABLE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_ABSORB, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_IMMUNE_SHIELD, true); // ... Resistance, Split damage, Change stats ... _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_DAMAGE_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SPLIT_DAMAGE_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_RESISTANCE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STAT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, true); } // Different immunities for vehicles goes below switch (GetVehicleInfo()->m_ID) { // code below prevents a bug with movable cannons case 160: // Strand of the Ancients case 244: // Wintergrasp case 510: // Isle of Conquest _me->SetControlled(true, UNIT_STATE_ROOT); // why we need to apply this? we can simple add immunities to slow mechanic in DB _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DECREASE_SPEED, true); break; // Wintergrasp Siege Engine -- need to remove general knockback immunity here case 117: case 324: _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, false); _me->ApplySpellImmune(0, IMMUNITY_ID, 50652, true); // Ram - used by Wintergrasp Demolisher _me->ApplySpellImmune(0, IMMUNITY_ID, 61391, true); // Typhoon - Rank 1 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 61390, true); // Typhoon - Rank 2 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 61388, true); // Typhoon - Rank 3 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 61387, true); // Typhoon - Rank 4 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 53227, true); // Typhoon - Rank 5 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 51490, true); // Thunderstorm - Rank 1 - Shaman talent _me->ApplySpellImmune(0, IMMUNITY_ID, 59156, true); // Thunderstorm - Rank 2 - Shaman talent _me->ApplySpellImmune(0, IMMUNITY_ID, 59158, true); // Thunderstorm - Rank 3 - Shaman talent _me->ApplySpellImmune(0, IMMUNITY_ID, 59159, true); // Thunderstorm - Rank 4 - Shaman talent _me->ApplySpellImmune(0, IMMUNITY_ID, 11113, true); // Blast Wave - Rank 1 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 13018, true); // Blast Wave - Rank 2 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 13019, true); // Blast Wave - Rank 3 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 13020, true); // Blast Wave - Rank 4 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 13021, true); // Blast Wave - Rank 5 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 27133, true); // Blast Wave - Rank 6 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 33933, true); // Blast Wave - Rank 7 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 42944, true); // Blast Wave - Rank 8 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 42945, true); // Blast Wave - Rank 9 - Mage talent break; // Wintergrasp Demolisher -- need to remove general knockback immunity here case 106: _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, false); _me->ApplySpellImmune(0, IMMUNITY_ID, 51678, true); // Ram - used by Wintergrasp Siege Engine _me->ApplySpellImmune(0, IMMUNITY_ID, 61391, true); // Typhoon - Rank 1 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 61390, true); // Typhoon - Rank 2 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 61388, true); // Typhoon - Rank 3 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 61387, true); // Typhoon - Rank 4 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 53227, true); // Typhoon - Rank 5 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 51490, true); // Thunderstorm - Rank 1 - Shaman talent _me->ApplySpellImmune(0, IMMUNITY_ID, 59156, true); // Thunderstorm - Rank 2 - Shaman talent _me->ApplySpellImmune(0, IMMUNITY_ID, 59158, true); // Thunderstorm - Rank 3 - Shaman talent _me->ApplySpellImmune(0, IMMUNITY_ID, 59159, true); // Thunderstorm - Rank 4 - Shaman talent _me->ApplySpellImmune(0, IMMUNITY_ID, 11113, true); // Blast Wave - Rank 1 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 13018, true); // Blast Wave - Rank 2 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 13019, true); // Blast Wave - Rank 3 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 13020, true); // Blast Wave - Rank 4 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 13021, true); // Blast Wave - Rank 5 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 27133, true); // Blast Wave - Rank 6 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 33933, true); // Blast Wave - Rank 7 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 42944, true); // Blast Wave - Rank 8 - Mage talent _me->ApplySpellImmune(0, IMMUNITY_ID, 42945, true); // Blast Wave - Rank 9 - Mage talent break; // Battleground Demolisher -- need to remove general knockback immunity here case 158: _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, false); _me->ApplySpellImmune(0, IMMUNITY_ID, 61391, true); // Typhoon - Rank 1 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 61390, true); // Typhoon - Rank 2 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 61388, true); // Typhoon - Rank 3 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 61387, true); // Typhoon - Rank 4 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 53227, true); // Typhoon - Rank 5 - Druid talent _me->ApplySpellImmune(0, IMMUNITY_ID, 51490, true); // Thunderstorm - Rank 1 - Shaman talent _me->ApplySpellImmune(0, IMMUNITY_ID, 59156, true); // Thunderstorm - Rank 2 - Shaman talent//.........这里部分代码省略.........
开发者ID:tharaca,项目名称:TrinityCore,代码行数:101,
示例11: switchvoid Vehicle::ApplyAllImmunities(){ // This couldn't be done in DB, because some spells have MECHANIC_NONE // Vehicles should be immune on Knockback ... //_me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); //_me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true); // Mechanical units & vehicles ( which are not Bosses, they have own immunities in DB ) should be also immune on healing ( exceptions in switch below ) if (_me->ToCreature() && _me->ToCreature()->GetCreatureTemplate()->type == CREATURE_TYPE_MECHANICAL && !_me->ToCreature()->isWorldBoss()) { // Heal & dispel ... _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_MAX_HEALTH, true); // Xinef _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_DISPEL, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); // ... Shield & Immunity grant spells ... _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_IMMUNITY, true); //_me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_UNATTACKABLE, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_IMMUNE_SHIELD, true); if (_me->GetZoneId() == BATTLEFIELD_WG_ZONEID || _me->ToCreature()->GetDBTableGUIDLow() || (_me->FindMap() && _me->FindMap()->Instanceable())) _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_ABSORB, true); // ... Resistance, Split damage, Change stats ... _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_DAMAGE_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SPLIT_DAMAGE_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_RESISTANCE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STAT, true); // Taunt _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, true); } // Different immunities for vehicles goes below switch (GetVehicleInfo()->m_ID) { case 160: //Isle of conquest turret case 244: //Wintergrasp turret case 510: // Isle of Conquest case 452: // Isle of Conquest case 543: // Isle of Conquest //_me->SetControlled(true, UNIT_STATE_ROOT); //me->AddUnitMovementFlag(MOVEMENTFLAG_ROOT); //me->SetSpeed(MOVE_TURN_RATE, 0.7f); //me->SetSpeed(MOVE_PITCH_RATE, 0.7f); //me->m_movementInfo.flags2=59; _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DECREASE_SPEED, true); break; // Ulduar vehicles, remove immunities used in flame leviathan spells case 335: case 336: case 338: _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, false); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_ABSORB, false); break; default: break; }}
开发者ID:Helias,项目名称:azerothcore-wotlk,代码行数:63,
注:本文中的GetVehicleInfo函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GetVelocity函数代码示例 C++ GetVehicle函数代码示例 |