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]
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)
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
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
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
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