Пример #1
0
 def _clampToArenaBB(self):
     bb = BigWorld.player().arena.arenaType.boundingBox
     pos2D = _clampPoint2DInBox2D(
         bb[0], bb[1],
         Math.Vector2(self._planePosition.x, self._planePosition.z))
     self._planePosition.x = pos2D[0]
     self._planePosition.z = pos2D[1]
Пример #2
0
 def __updateMatrix(self):
     bb = BigWorld.player().arena.arenaType.boundingBox
     pos2D = _clampPoint2DInBox2D(bb[0], bb[1], Math.Vector2(self.__planePosition.x, self.__planePosition.z))
     self.__planePosition.x = pos2D[0]
     self.__planePosition.z = pos2D[1]
     collPoint = BigWorld.wg_collideSegment(BigWorld.player().spaceID, self.__planePosition + Math.Vector3(0, 1000.0, 0), self.__planePosition + Math.Vector3(0, -250.0, 0), 3)
     heightFromPlane = 0.0 if collPoint is None else collPoint[0][1]
     self._matrix.translation = self.__planePosition + Vector3(0, heightFromPlane + self.__height, 0)
Пример #3
0
 def __updateMatrix(self):
     bb = BigWorld.player().arena.arenaType.boundingBox
     pos2D = _clampPoint2DInBox2D(bb[0], bb[1], Math.Vector2(self.__planePosition.x, self.__planePosition.z))
     self.__planePosition.x = pos2D[0]
     self.__planePosition.z = pos2D[1]
     collPoint = BigWorld.wg_collideSegment(BigWorld.player().spaceID, self.__planePosition + Math.Vector3(0, 1000.0, 0), self.__planePosition + Math.Vector3(0, -250.0, 0), 3)
     self.__heightFromPlane = 0.0 if collPoint is None else collPoint[0][1]
     self._matrix.translation = self.__planePosition + Vector3(0, self.__heightFromPlane + self.__height, 0)
     return
Пример #4
0
    def onStrategicAimingSystemUpdateMatrix(self, aim):
        player = BigWorld.player()
        descr = player.vehicleTypeDescriptor
        bb = BigWorld.player().arena.arenaType.boundingBox
        pos2D = _clampPoint2DInBox2D(
            bb[0] - Math.Vector2(200.0, 200.0),
            bb[1] + Math.Vector2(200.0, 200.0),
            Math.Vector2(aim._StrategicAimingSystem__planePosition.x,
                         aim._StrategicAimingSystem__planePosition.z))
        aim._StrategicAimingSystem__planePosition.x = pos2D[0]
        aim._StrategicAimingSystem__planePosition.z = pos2D[1]

        playerPos = player.getOwnVehiclePosition()

        if not self._lastModeWasSniper:
            collPoint = BigWorld.wg_collideSegment(
                BigWorld.player().spaceID,
                aim._StrategicAimingSystem__planePosition +
                Math.Vector3(0, 1000.0, 0),
                aim._StrategicAimingSystem__planePosition +
                Math.Vector3(0, -1000.0, 0), 3)
            aim._StrategicAimingSystem__planePosition.y = 0.0 if collPoint is None else collPoint[
                0][1]
            self._initialDistance = (Math.Vector3(
                aim._StrategicAimingSystem__planePosition.x, playerPos.y,
                aim._StrategicAimingSystem__planePosition.z) -
                                     playerPos).length + 0.01

        distance = (Math.Vector3(aim._StrategicAimingSystem__planePosition.x,
                                 playerPos.y,
                                 aim._StrategicAimingSystem__planePosition.z) -
                    playerPos).length + 0.01
        heightFactor = distance / self._initialDistance

        aimPoint = Math.Vector3(
            aim._StrategicAimingSystem__planePosition.x,
            playerPos.y * (1.0 - heightFactor) +
            aim._StrategicAimingSystem__planePosition.y * heightFactor,
            aim._StrategicAimingSystem__planePosition.z)

        self.calcTrajectoryProperties(aimPoint)
        aim._matrix.translation, self._shellVelocity = self._finalPathPoint, self._finalPathShellVelocity

        self._lastModeWasSniper = True
Пример #5
0
    def onStrategicAimingSystemUpdateMatrix(self, aim):
        player = BigWorld.player( )
        descr = player.vehicleTypeDescriptor
        bb = BigWorld.player().arena.arenaType.boundingBox
        pos2D = _clampPoint2DInBox2D(bb[0] - Math.Vector2( 200.0, 200.0 ), bb[1] + Math.Vector2( 200.0, 200.0 ), Math.Vector2(aim._StrategicAimingSystem__planePosition.x, aim._StrategicAimingSystem__planePosition.z))
        aim._StrategicAimingSystem__planePosition.x = pos2D[0]
        aim._StrategicAimingSystem__planePosition.z = pos2D[1]

        playerPos = player.getOwnVehiclePosition()
    
        if not self._lastModeWasSniper:
            collPoint = BigWorld.wg_collideSegment(BigWorld.player().spaceID, aim._StrategicAimingSystem__planePosition + Math.Vector3(0, 1000.0, 0), aim._StrategicAimingSystem__planePosition + Math.Vector3(0, -1000.0, 0), 3)
            aim._StrategicAimingSystem__planePosition.y = 0.0 if collPoint is None else collPoint[0][1]
            self._initialDistance = ( Math.Vector3( aim._StrategicAimingSystem__planePosition.x, playerPos.y, aim._StrategicAimingSystem__planePosition.z ) - playerPos ).length + 0.01

        distance = ( Math.Vector3( aim._StrategicAimingSystem__planePosition.x, playerPos.y, aim._StrategicAimingSystem__planePosition.z ) - playerPos ).length + 0.01
        heightFactor = distance / self._initialDistance

        aimPoint = Math.Vector3( aim._StrategicAimingSystem__planePosition.x, playerPos.y * (1.0 - heightFactor) + aim._StrategicAimingSystem__planePosition.y * heightFactor, aim._StrategicAimingSystem__planePosition.z )

        self.calcTrajectoryProperties(aimPoint)
        aim._matrix.translation, self._shellVelocity = self._finalPathPoint, self._finalPathShellVelocity

        self._lastModeWasSniper = True
Пример #6
0
def StrategicAimingSystem_updateMatrix(self):
    global gSPGSniperEnabled
    if not gSPGSniperEnabled:
        if self._lastModeWasSniper:
            self._StrategicAimingSystem__planePosition.x = self._matrix.translation.x
            self._StrategicAimingSystem__planePosition.y = 0.0
            self._StrategicAimingSystem__planePosition.z = self._matrix.translation.z

        oldStrategicAimingSystem_updateMatrix(self)
        self._lastModeWasSniper = False
        return

    player = BigWorld.player()
    descr = player.vehicleTypeDescriptor

    bb = BigWorld.player().arena.arenaType.boundingBox
    pos2D = _clampPoint2DInBox2D(
        bb[0] - Math.Vector2(200.0, 200.0), bb[1] + Math.Vector2(200.0, 200.0),
        Math.Vector2(self._StrategicAimingSystem__planePosition.x,
                     self._StrategicAimingSystem__planePosition.z))
    self._StrategicAimingSystem__planePosition.x = pos2D[0]
    self._StrategicAimingSystem__planePosition.z = pos2D[1]

    playerPos = player.getOwnVehiclePosition()

    if not self._lastModeWasSniper:
        collPoint = BigWorld.wg_collideSegment(
            BigWorld.player().spaceID,
            self._StrategicAimingSystem__planePosition +
            Math.Vector3(0, 1000.0, 0),
            self._StrategicAimingSystem__planePosition +
            Math.Vector3(0, -1000.0, 0), 3)
        self._StrategicAimingSystem__planePosition.y = 0.0 if collPoint is None else collPoint[
            0][1]
        self._initialDistance = (Math.Vector3(
            self._StrategicAimingSystem__planePosition.x, playerPos.y,
            self._StrategicAimingSystem__planePosition.z) -
                                 playerPos).length + 0.01

    distance = (
        Math.Vector3(self._StrategicAimingSystem__planePosition.x, playerPos.y,
                     self._StrategicAimingSystem__planePosition.z) -
        playerPos).length + 0.01
    heightFactor = distance / self._initialDistance

    turretYaw, gunPitch = getShotAngles(
        descr, player.getOwnVehicleMatrix(), (0, 0),
        Math.Vector3(
            self._StrategicAimingSystem__planePosition.x,
            playerPos.y * (1.0 - heightFactor) +
            self._StrategicAimingSystem__planePosition.y * heightFactor,
            self._StrategicAimingSystem__planePosition.z), True)
    #gunPitchLimits = calcPitchLimitsFromDesc(turretYaw, descr.gun['pitchLimits'])
    currentGunMat = AimingSystems.getPlayerGunMat(turretYaw, gunPitch)
    clientShotStart = currentGunMat.translation
    clientShotVec = currentGunMat.applyVector(
        Math.Vector3(0, 0, descr.shot['speed']))

    self._matrix.translation, self._shellVelocity = _getGunMarkerPosition(
        clientShotStart, clientShotVec)
    self._lastModeWasSniper = True