您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GetVehicleInfo函数代码示例

51自学网 2021-06-01 21:17:30
  C++
这篇教程C++ GetVehicleInfo函数代码示例写得很实用,希望能帮到您。

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

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

示例1: switch

void 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: me

Vehicle::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: switch

void 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: UsableSeatNum

Vehicle::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: _me

Vehicle::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: GetVehicleInfo

void 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: switch

void 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: GetVehicleInfo

uint16 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: ASSERT

bool 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: switch

void 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: switch

void 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函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。