这篇教程C++ GetWeapon函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetWeapon函数的典型用法代码示例。如果您正苦于以下问题:C++ GetWeapon函数的具体用法?C++ GetWeapon怎么用?C++ GetWeapon使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetWeapon函数的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: GetWeapon//--------------------------------------------void CLaser::TurnOnLaser(bool manual /*= false*/){ CWeapon* pParentWeapon = GetWeapon(); if(pParentWeapon == NULL) return; m_laserHelperFP.clear(); const SAccessoryParams *params = GetWeapon()->GetAccessoryParams(GetEntity()->GetClass()); if (params) m_laserHelperFP = params->attach_helper; int slot = pParentWeapon->IsOwnerFP() ? eIGS_FirstPerson: eIGS_ThirdPerson; CActor* pOwner = pParentWeapon->GetOwnerActor(); GetGameObject()->EnableUpdateSlot(this, eIUS_General); if (pOwner && pOwner->IsPlayer()) pParentWeapon->SetFiringLocator(this); m_laserBeam.TurnOnLaser(); //Turn off crosshair if (pParentWeapon->IsOwnerClient()) { pParentWeapon->SetCrosshairMode(CWeapon::eWeaponCrossHair_ForceOff); pParentWeapon->FadeCrosshair(0.0f, g_pGame->GetUI()->GetCVars()->hud_Crosshair_laser_fadeOutTime); }}
开发者ID:Kufusonic,项目名称:Work-in-Progress-Sonic-Fangame,代码行数:27,
示例2: GetAmmoCountvoid CSpammer::UpdateLoadIn(float frameTime){ const int currentAmmoCount = GetAmmoCount(); const bool infiniteAmmo = (GetClipSize() < 0); if ((!infiniteAmmo) && (m_numLoadedRockets >= currentAmmoCount)) { GetWeapon()->PlayAction(GetFragmentIds().empty_clip); StopFire(); return; } const SSpammerParams& params = GetShared()->spammerParams; const float loadInTime = 1.0f / (params.loadInRate / 60.0f); m_timer -= frameTime; while (m_timer < 0.0f && m_numLoadedRockets < params.maxNumRockets) { m_timer += loadInTime; AddTarget(); GetWeapon()->PlayAction(GetFragmentIds().cock); } if (m_numLoadedRockets != m_targetsAssigned.GetNumLockOns()) { EntityId nextTarget = GetNextLockOnTarget(); if (nextTarget != 0) m_targetsAssigned.LockOn(nextTarget); }}
开发者ID:PiratesAhoy,项目名称:HeartsOfOak-Core,代码行数:31,
示例3: GetWeaponvoid CCinematicInput::UpdateWeapons(){ CWeapon* pPrimaryWeapon = GetWeapon(eWeapon_Primary); CWeapon* pSecondaryWeapon = GetWeapon(eWeapon_Secondary); const bool doUpdate = (pPrimaryWeapon != NULL) || (pSecondaryWeapon != NULL); if (doUpdate) { const CCamera& camera = gEnv->pSystem->GetViewCamera(); const Vec3 viewPosition = camera.GetPosition(); const Vec3 viewDirection = camera.GetViewdir(); // Update raycast if (m_aimingRayID == 0) { IEntity *pIgnoredEntity = gEnv->pEntitySystem->GetEntity(m_weapons[eWeapon_Primary].m_parentId); IEntity *pIgnoredEntity2 = gEnv->pEntitySystem->GetEntity(m_weapons[eWeapon_Secondary].m_parentId); int ignoreCount = 0; IPhysicalEntity *pIgnoredEntityPhysics[2] = { NULL, NULL }; if (pIgnoredEntity) { pIgnoredEntityPhysics[ignoreCount] = pIgnoredEntity->GetPhysics(); ignoreCount += pIgnoredEntityPhysics[ignoreCount] ? 1 : 0; } if (pIgnoredEntity2 && (pIgnoredEntity2 != pIgnoredEntity)) { pIgnoredEntityPhysics[ignoreCount] = pIgnoredEntity2->GetPhysics(); ignoreCount += pIgnoredEntityPhysics[ignoreCount] ? 1 : 0; } m_aimingRayID = g_pGame->GetRayCaster().Queue( RayCastRequest::HighestPriority, RayCastRequest(viewPosition, viewDirection * CINEMATIC_INPUT_MAX_AIM_DISTANCE, ent_all|ent_water, rwi_stop_at_pierceable|rwi_ignore_back_faces, pIgnoredEntityPhysics, ignoreCount), functor(*this, &CCinematicInput::OnRayCastDataReceived)); } // Update weapon orientation const Vec3 aimTargetPosition = viewPosition + (viewDirection * m_aimingDistance); if (pPrimaryWeapon != NULL) { UpdateWeaponOrientation( pPrimaryWeapon->GetEntity(), aimTargetPosition ); } if (pSecondaryWeapon != NULL) { UpdateWeaponOrientation( pSecondaryWeapon->GetEntity(), aimTargetPosition ); } }}
开发者ID:danielasun,项目名称:dbho-GameSDK,代码行数:54,
示例4: GetCurrentWeaponSlotvoid CPedSA::SetCurrentWeaponSlot ( eWeaponSlot weaponSlot ){ if ( weaponSlot < WEAPONSLOT_MAX ) { eWeaponSlot currentSlot = GetCurrentWeaponSlot (); if ( weaponSlot != GetCurrentWeaponSlot () ) { CWeapon * pWeapon = GetWeapon ( currentSlot ); if ( pWeapon ) RemoveWeaponModel ( pWeapon->GetInfo ( WEAPONSKILL_STD )->GetModel () ); CPedSAInterface * thisPed = (CPedSAInterface *)this->GetInterface(); // set the new weapon slot thisPed->bCurrentWeaponSlot = weaponSlot; // is the player the local player? CPed * pPed = pGame->GetPools()->GetPedFromRef ( (DWORD)1 ); //if ( pPed == this && thisPed->pPlayerInfo ) //{ DWORD dwThis = (DWORD)this->GetInterface(); if ( pPed == this ) { ((CPlayerInfoSA *)pGame->GetPlayerInfo())->GetInterface()->PlayerPedData.m_nChosenWeapon = weaponSlot; DWORD dwFunc = FUNC_MakeChangesForNewWeapon_Slot; _asm { mov ecx, dwThis push weaponSlot call dwFunc } }
开发者ID:ntauthority,项目名称:openvice,代码行数:33,
示例5: GetWeaponvoid WBCompEldHands::ShowWeaponHUD() const{ WBEntity* const pWeapon = GetWeapon(); ASSERT( pWeapon ); WBCompEldWeapon* const pWeaponComponent = GET_WBCOMP( pWeapon, EldWeapon ); ASSERT( pWeaponComponent ); STATIC_HASHED_STRING( HUD ); STATIC_HASHED_STRING( WeaponIcon ); { WB_MAKE_EVENT( SetWidgetImage, NULL ); WB_SET_AUTO( SetWidgetImage, Hash, Screen, sHUD ); WB_SET_AUTO( SetWidgetImage, Hash, Widget, sWeaponIcon ); WB_SET_AUTO( SetWidgetImage, Hash, Image, pWeaponComponent->GetWeaponIcon() ); WB_DISPATCH_EVENT( WBWorld::GetInstance()->GetEventManager(), SetWidgetImage, NULL ); } { WB_MAKE_EVENT( SetWidgetHidden, NULL ); WB_SET_AUTO( SetWidgetHidden, Hash, Screen, sHUD ); WB_SET_AUTO( SetWidgetHidden, Hash, Widget, sWeaponIcon ); WB_SET_AUTO( SetWidgetHidden, Bool, Hidden, false ); WB_DISPATCH_EVENT( WBWorld::GetInstance()->GetEventManager(), SetWidgetHidden, NULL ); }}
开发者ID:MinorKeyGames,项目名称:Eldritch,代码行数:27,
示例6: PlayerUse//-----------------------------------------------------------------------------// Purpose: Called every usercmd by the player PreThink//-----------------------------------------------------------------------------void CBasePlayer::ItemPreFrame(){ // Handle use events PlayerUse(); CBaseCombatWeapon *pActive = GetActiveWeapon(); // Allow all the holstered weapons to update for ( int i = 0; i < WeaponCount(); ++i ) { CBaseCombatWeapon *pWeapon = GetWeapon( i ); if ( pWeapon == NULL ) continue; if ( pActive == pWeapon ) continue; pWeapon->ItemHolsterFrame(); } if ( gpGlobals->curtime < m_flNextAttack ) return; if (!pActive) return;#if defined( CLIENT_DLL ) // Not predicting this weapon if ( !pActive->IsPredicted() ) return;#endif pActive->ItemPreFrame();}
开发者ID:EspyEspurr,项目名称:game,代码行数:38,
示例7: Activatevoid CFireMode::Activate(bool activate){ const int numPlugins = m_plugins.size(); for (int i = 0; i < numPlugins; i++) { m_plugins[i]->Activate(activate); } for (TFireModeListeners::Notifier notifier(m_listeners); notifier.IsValid(); notifier.Next()) { notifier->OnFireModeActivated(activate); } if (GetWeapon()->GetOwnerId()) { if (m_pWeapon->IsSelected()) { UpdateMannequinTags(activate); } } else { UpdateMannequinTags(activate); }}
开发者ID:aronarts,项目名称:FireNET,代码行数:26,
示例8: GetWeapon//------------------------------------------------------------------------int CScriptBind_Weapon::SetAmmoCount(IFunctionHandler *pH){ CWeapon *pWeapon = GetWeapon(pH); if (!pWeapon) return pH->EndFunction(); IFireMode* pFireMode = GetRequestedFireMode(pWeapon, pH); if (pFireMode) { if (pH->GetParamType(2) != svtNumber) return pH->EndFunction(); const char *ammoName = 0; if (pH->GetParamType(1) == svtString) pH->GetParam(1, ammoName); IEntityClass* pAmmoType = pFireMode->GetAmmoType(); if (ammoName) pAmmoType = gEnv->pEntitySystem->GetClassRegistry()->FindClass(ammoName); int ammo = 0; pH->GetParam(2, ammo); pWeapon->SetAmmoCount(pAmmoType, ammo); } return pH->EndFunction();}
开发者ID:kitnet,项目名称:crynegine,代码行数:31,
示例9: ProcessEvent void ProcessEvent( EFlowEvent event, SActivationInfo *pActInfo ) { if(eFE_Activate == event) { const bool bAttach = IsPortActive(pActInfo, EIP_ATTACH); const bool bDetach = IsPortActive(pActInfo, EIP_DETACH); if (!bAttach && !bDetach) return; IActor* pActor = GetActor(pActInfo); if (pActor == 0) return; const string& className = GetPortString(pActInfo, EIP_WEAPON); CWeapon* pWeapon = static_cast<CWeapon*> ( className.empty() ? GetWeapon(pActor) : GetWeapon(pActor, className.c_str()) ); if (pWeapon != 0) { ItemString acc = ItemString(GetPortString(pActInfo, EIP_ACCESSORY)); if (bAttach && pWeapon->GetAccessory(acc) == 0) { pWeapon->SwitchAccessory(acc); ActivateOutput(pActInfo, EOP_ATTACHED, true); } else if (bDetach && pWeapon->GetAccessory(acc) != 0) { pWeapon->SwitchAccessory(acc); ActivateOutput(pActInfo, EOP_DETACHED, true); } } } }
开发者ID:RenEvo,项目名称:dead6,代码行数:32,
示例10: CHANGED_NETWORK_STATEvoid CC4Projectile::Arm(bool arm){ if(arm != m_armed) { m_armed = arm; if(gEnv->bServer) { CHANGED_NETWORK_STATE(this, ASPECT_C4_STATUS); if(CWeapon* pWeapon = GetWeapon()) { CHANGED_NETWORK_STATE(pWeapon, CC4::ASPECT_DETONATE); } } if(m_pStatObj) { m_pStatObj->SetMaterial(arm ? m_pArmedMaterial : m_pDisarmedMaterial); } if(m_pLightSource) { UpdateLight(0.f, true); } }}
开发者ID:Xydrel,项目名称:Infected,代码行数:27,
示例11: AutoShootHelper//------------------------------------------------------------------------int CScriptBind_Weapon::AutoShoot(IFunctionHandler *pH, int shots, bool autoReload){ struct AutoShootHelper : public IWeaponEventListener { AutoShootHelper(int n, bool autoreload): m_nshots(n), m_reload(autoreload) {}; virtual ~AutoShootHelper() {}; int m_nshots; bool m_reload; virtual void OnShoot(IWeapon *pWeapon, EntityId shooterId, EntityId ammoId, IEntityClass* pAmmoType, const Vec3 &pos, const Vec3 &dir, const Vec3 &vel) {}; virtual void OnStartFire(IWeapon *pWeapon, EntityId shooterId) {}; virtual void OnStopFire(IWeapon *pWeapon, EntityId shooterId) {}; virtual void OnStartReload(IWeapon *pWeapon, EntityId shooterId, IEntityClass* pAmmoType) {}; virtual void OnEndReload(IWeapon *pWeapon, EntityId shooterId, IEntityClass* pAmmoType) {}; virtual void OnSetAmmoCount(IWeapon *pWeapon, EntityId shooterId) {} virtual void OnOutOfAmmo(IWeapon *pWeapon, IEntityClass* pAmmoType) { if (m_reload) pWeapon->Reload(false); else { pWeapon->StopFire(); pWeapon->RemoveEventListener(this); } }; virtual void OnReadyToFire(IWeapon *pWeapon) { if (!(--m_nshots)) { pWeapon->StopFire(); pWeapon->RemoveEventListener(this); } else { pWeapon->StartFire(); pWeapon->StopFire(); } }; virtual void OnPickedUp(IWeapon *pWeapon, EntityId actorId, bool destroyed){} virtual void OnDropped(IWeapon *pWeapon, EntityId actorId){} virtual void OnMelee(IWeapon* pWeapon, EntityId shooterId){} virtual void OnStartTargetting(IWeapon *pWeapon) {} virtual void OnStopTargetting(IWeapon *pWeapon) {} virtual void OnSelected(IWeapon *pWeapon, bool select) {} virtual void OnFireModeChanged(IWeapon *pWeapon, int currentFireMode) {} virtual void OnZoomChanged(IWeapon* pWeapon, bool zoomed, int idx) {} }; CWeapon *pWeapon = GetWeapon(pH); if (!pWeapon) return pH->EndFunction(); pWeapon->AddEventListener(new AutoShootHelper(shots, autoReload), __FUNCTION__); // FIXME: possible small memory leak here. pWeapon->StartFire(); pWeapon->StopFire(); return pH->EndFunction();}
开发者ID:kitnet,项目名称:crynegine,代码行数:61,
示例12: GetLastWeaponCBaseCombatWeapon* CSDKPlayer::GetLastWeapon(){ // This is pretty silly, but I'd rather mess around with stock Valve code as little as possible.#ifdef CLIENT_DLL CBaseCombatWeapon* pLastWeapon = BaseClass::GetLastWeapon();#else CBaseCombatWeapon* pLastWeapon = BaseClass::Weapon_GetLast();#endif if (pLastWeapon && pLastWeapon != GetActiveWeapon()) return pLastWeapon; CWeaponSDKBase* pHeaviest = NULL; CWeaponSDKBase* pBrawl = NULL; for (int i = 0; i < WeaponCount(); i++) { if (!GetWeapon(i)) continue; if (GetWeapon(i) == GetActiveWeapon()) continue; CWeaponSDKBase* pSDKWeapon = dynamic_cast<CWeaponSDKBase*>(GetWeapon(i)); if (!pSDKWeapon) continue; if (pSDKWeapon->GetWeaponID() == SDK_WEAPON_BRAWL) { pBrawl = pSDKWeapon; continue; } if (!pHeaviest) { pHeaviest = pSDKWeapon; continue; } if (pHeaviest->GetWeight() < pSDKWeapon->GetWeight()) pHeaviest = pSDKWeapon; } if (!pHeaviest) pHeaviest = pBrawl; return pHeaviest;}
开发者ID:jlwitthuhn,项目名称:DoubleAction,代码行数:47,
示例13: GetWeaponvoid CAutoDefenseClass::Update (CInstalledDevice *pDevice, CSpaceObject *pSource, int iTick, bool *retbSourceDestroyed, bool *retbConsumedItems)// Update//// Update device { if (pDevice->IsReady() && pDevice->IsEnabled()) { int i; // Look for a target CSpaceObject *pBestTarget = NULL; Metric rBestDist2 = MAX_INTERCEPT_DISTANCE * MAX_INTERCEPT_DISTANCE; for (i = 0; i < pSource->GetSystem()->GetObjectCount(); i++) { CSpaceObject *pObj = pSource->GetSystem()->GetObject(i); if (pObj && pObj->GetCategory() == CSpaceObject::catMissile && pObj->GetSource() != pSource && (pObj->GetSource() == NULL || pSource->IsEnemy(pObj->GetSource()))) { CVector vRange = pObj->GetPos() - pSource->GetPos(); Metric rDistance2 = vRange.Dot(vRange); if (rDistance2 < rBestDist2) { pBestTarget = pObj; rBestDist2 = rDistance2; } } } // If we found a target, try to shoot at it if (pBestTarget) { CDeviceClass *pWeapon = GetWeapon(); if (pWeapon) { int iFireAngle; if (pWeapon->IsWeaponAligned(pSource, pDevice, pBestTarget, &iFireAngle)) { pDevice->SetFireAngle(iFireAngle); pWeapon->Activate(pDevice, pSource, pBestTarget, iFireAngle, retbSourceDestroyed, retbConsumedItems); pDevice->SetActivationDelay(m_iRechargeTicks); } } } } }
开发者ID:alanhorizon,项目名称:Transport,代码行数:59,
示例14: RemoveListener virtual void RemoveListener(EntityId weaponId, IWeaponEventListener* pListener) { if (!(weaponId && pListener)) return; if (IWeapon* pWeapon = GetWeapon(weaponId)) pWeapon->RemoveEventListener(pListener); }
开发者ID:aronarts,项目名称:FireNET,代码行数:8,
示例15: AddListener virtual void AddListener(EntityId weaponId, IWeaponEventListener* pListener) { if (!(weaponId && pListener)) return; if (IWeapon* pWeapon = GetWeapon(weaponId)) pWeapon->AddEventListener(pListener, __FUNCTION__); }
开发者ID:aronarts,项目名称:FireNET,代码行数:8,
示例16: //------------------------------------------------------------------------CRocket::~CRocket(){ //LAW might be dropped automatically (to be sure that works in MP too) if(CWeapon* pWeapon = GetWeapon()) { if(pWeapon->IsAutoDroppable()) pWeapon->AutoDrop(); }}
开发者ID:mrwonko,项目名称:CrysisVR,代码行数:10,
示例17: GetWeaponvoid UBurstFiremode::HandleFire(){ if (!IsFiring()) return; //If we aren't firing anymore, don't fire a shot BurstsRemaining--; GetWeapon()->FireShot(); if (BurstsRemaining > 0) { //get the time until the next shot float FireTime = (1.0f / GetWeapon()->GetActiveFiremodeData().RoundsPerMinute) * 60.0f; FTimerHandle handle; GetWorld()->GetTimerManager().SetTimer(handle, this, &UBurstFiremode::HandleFire, FireTime, false); } }
开发者ID:8-Ball,项目名称:Empires2,代码行数:19,
示例18: GetWeaponCWeapon * CPedSA::GetWeapon ( eWeaponType weaponType ){ if ( weaponType < WEAPONTYPE_LAST_WEAPONTYPE ) { CWeapon* pWeapon = GetWeapon ( pGame->GetWeaponInfo ( weaponType )->GetSlot () ); if ( pWeapon->GetType () == weaponType ) return pWeapon; } return NULL;}
开发者ID:ntauthority,项目名称:openvice,代码行数:10,
注:本文中的GetWeapon函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GetWeaponDamageRange函数代码示例 C++ GetWatchdog函数代码示例 |