//------------------------------------------------------------------------ void CVehicleDamageBehaviorCameraShake::ShakeClient(float angle, float shift, float duration, float frequency) { IActorSystem *pActorSystem = gEnv->pGame->GetIGameFramework()->GetIActorSystem(); assert(pActorSystem); EntityId clientId = g_pGame->GetIGameFramework()->GetClientActorId(); for (TVehicleSeatId seatId = InvalidVehicleSeatId + 1; seatId != m_pVehicle->GetLastSeatId(); seatId++) { if (IVehicleSeat *pSeat = m_pVehicle->GetSeatById(seatId)) { EntityId passengerId = pSeat->GetPassenger(); if (passengerId == clientId) { CActor *pActor = static_cast<CActor *>(pActorSystem->GetActor(passengerId)); if(pActor) { pActor->CameraShake(angle, shift, duration, frequency, Vec3(0.0f, 0.0f, 0.0f), 5, "VehicleDamageBehaviorCameraShake"); } } } } }
int CScriptBind_Actor::CameraShake(IFunctionHandler *pH,float amount,float duration,float frequency,Vec3 pos) { CActor *pActor = GetActor(pH); if (!pActor) return pH->EndFunction(); const char* source = ""; if (pH->GetParamType(5) != svtNull) pH->GetParam(5, source); pActor->CameraShake(amount,0,duration,frequency,pos,0,source); return pH->EndFunction(); }