Что бы ты знал, я это знаю. И знаю очень давноПойми что за тебя здесь никто ничего делать не будет или за денежку иди ищи себе кодера.
Ок, не уточнил. Там ссылка на мой вопрос, а под ним код. Ссылка. Кпц как мы тупим...Выше код как бы. Ты вообще смотрел?
@artemka3112, это не код?Выдает всегда нулKotlin:fun getMouseOver(partialTicks: Float, distance: Double, canBeCollidedWith: Boolean): Entity? { val mc = Minecraft.getMinecraft() var pointedEntity: Entity? = null var rayTrace: RayTraceResult? if(mc.renderViewEntity != null) { if(mc.world != null) { rayTrace = mc.renderViewEntity!!.rayTrace(distance, partialTicks) val positionVec = mc.renderViewEntity!!.positionVector var distanceToVec3 = distance if(rayTrace != null) { distanceToVec3 = rayTrace.hitVec.distanceTo(positionVec) } val lookVec = mc.renderViewEntity!!.getLook(partialTicks) val posDistVec = positionVec.addVector(lookVec.x * distance, lookVec.y * distance, lookVec.z * distance) var tempVec: Vec3d? = null val boxExpand = 1.0 val entities = mc.world.getEntitiesWithinAABBExcludingEntity(mc.renderViewEntity, mc.renderViewEntity!!.renderBoundingBox.expand(lookVec.x * distance, lookVec.y * distance, lookVec.z * distance).expand(boxExpand, boxExpand, boxExpand)) var vecInsideDist = distanceToVec3 for(i in entities.indices) { val entity = entities[i] if(!canBeCollidedWith || entity.canBeCollidedWith()) { val borderSize = entity.collisionBorderSize.toDouble() val expEntityBox = entity.renderBoundingBox.expand(borderSize, borderSize, borderSize) val calculateInterceptPos = expEntityBox.calculateIntercept(positionVec, posDistVec) if(expEntityBox.contains(positionVec)) { if(0.0 < vecInsideDist || vecInsideDist == 0.0) { pointedEntity = entity tempVec = if(calculateInterceptPos == null) positionVec else calculateInterceptPos.hitVec vecInsideDist = 0.0 } } else if(calculateInterceptPos != null) { val calcInterceptPosDist = positionVec.distanceTo(calculateInterceptPos.hitVec) if(calcInterceptPosDist < vecInsideDist || vecInsideDist == 0.0) { if(entity === mc.renderViewEntity!!.ridingEntity && !entity.canRiderInteract()) { if(vecInsideDist == 0.0) { pointedEntity = entity tempVec = calculateInterceptPos.hitVec } } else { pointedEntity = entity tempVec = calculateInterceptPos.hitVec vecInsideDist = calcInterceptPosDist } } } } } if(pointedEntity != null && (vecInsideDist < distanceToVec3 || rayTrace == null)) { return pointedEntity } } } return null }
Это не то что я скидывал. Смотри внимательнее. Я делал ссылку на свой воп@artemka3112, это не код?
fun getVec3(viewEntity: Entity?, tick: Float, traceDistance: Double): Double {
return getVec3(viewEntity, viewEntity!!.positionVector, tick, traceDistance, 0, 0.0)
}
private fun getVec3(viewEntity: Entity?, startPosition: Vec3d, tick: Float, traceDistance: Double, count: Int, offset: Double): Double {
var count = count
if(count++ <= 20 && traceDistance - offset > 0.0) {
val vec31 = viewEntity!!.getLook(tick)
val vec32 = startPosition.addVector(vec31.x * (traceDistance - offset), vec31.y * (traceDistance - offset), vec31.z * (traceDistance - offset))
val objectMouseOver = viewEntity.world.rayTraceBlocks(startPosition, vec32)
if(objectMouseOver != null) {
val blockState = viewEntity.world.getBlockState(objectMouseOver.blockPos)
val block = blockState.block
if(block.javaClass.name.contains("BlockFrame")) {
return objectMouseOver.hitVec.distanceTo(viewEntity.positionVector)
}
return if(!block.getMaterial(blockState).isOpaque) {
getVec3(viewEntity, objectMouseOver.hitVec.addVector(vec31.x, vec31.y, vec31.z), tick, traceDistance, count, objectMouseOver.hitVec.distanceTo(startPosition))
} else objectMouseOver.hitVec.distanceTo(viewEntity.positionVector)
}
return traceDistance
}
return traceDistance
}
fun getEntityItem(parDistance: Double, tick: Float): EntityItem? {
var parDistance = parDistance
try {
var entity: EntityItem? = null
val viewEntity = Minecraft.getMinecraft().renderViewEntity
parDistance = getVec3(viewEntity, tick, parDistance)
var closest = parDistance
val playerPosition: Vec3d
val lookFarCord: Vec3d
if(viewEntity != null) {
val worldObj = viewEntity.world
val objectMouseOver = viewEntity.rayTrace(parDistance, 0.5f)
playerPosition = viewEntity.positionVector
if(objectMouseOver != null) {
parDistance = getVec3(viewEntity, tick, parDistance)
}
val dirVec = viewEntity.lookVec
lookFarCord = playerPosition.addVector(dirVec.x * parDistance, dirVec.y * parDistance, dirVec.z * parDistance)
val a = ArrayList(worldObj.getEntitiesWithinAABB(EntityItem::class.java, viewEntity.boundingBox.expand(dirVec.x * parDistance, dirVec.y * parDistance, dirVec.z * parDistance)))
for(targetedEntity in a) {
if(targetedEntity != null) {
val precheck = viewEntity.getDistance(targetedEntity)
val mopElIntercept = targetedEntity.boundingBox.calculateIntercept(playerPosition, lookFarCord)
if(mopElIntercept != null && precheck < closest) {
entity = targetedEntity
closest = precheck.toDouble()
}
}
}
}
if(entity != null) return entity
} catch (localThrowable: Throwable) {
}
return null
}
mc.pointedEntity
. Пробуй, должно работать.