Skip to content

Commit 7109b33

Browse files
committed
fix raycast faq
1 parent 543c1dc commit 7109b33

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

assets/faqs/рейкаст/рейкаст.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# Выдаём сущности временный тег raycaster, чтоб рейкаст не мог столкнуться с тем, кто его запустил
1515
tag @s add raycaster
1616
# Выставляем количество шагов рейкаста. В этом примере сделаем максимальную длину рейкаста - 100 блоков, а каждый шаг рейкаста будет длиной в 0.1 блок, поэтому 100/0.1=1000
17-
[35mscoreboard [34mplayers set [36m@s [0mraycast [32m1000
17+
[35mscoreboard [34mplayers set [36m#distance [0mraycast [32m1000
1818
# Выставляем позицию запуска рейкаста на глазах сущности и запускаем основную функцию рейкаста
1919
execute at @s anchored eyes positioned ^ ^ ^ run function namespace:raycast/ray
2020
# Убираем временный тег
@@ -25,26 +25,26 @@
2525
{mcf}`raycast/ray.mcf`:
2626
```ansi
2727
# Убираем единицу из скорборда шагов рейкаста. Когда число достигнет нуля, рейкаст перестанет идти дальше.
28-
[35mscoreboard [34mplayers remove [36m@s [0mraycast [32m1
28+
[35mscoreboard [34mplayers remove [36m#distance [0mraycast [32m1
2929
# Если блок на текущем расположении не является тем, что в теге (группе) namespace:raycast_ignore, то тогда запускается функция столкновения с блоком.
3030
execute unless block ~ ~ ~ namespace:raycast_ignore run function namespace:raycast/hit_block
3131
# Если текущее расположение находится внутри хитбокса любой сущности из тега (группы) namespace:raycast_entities (кроме самого запускателя рейкаста), то запустить функцию столкновения с сущностью.
3232
execute as @e[type=namespace:raycast_entities,dx=0,limit=1] positioned ~-0.99 ~-0.99 ~-0.99 if entity @s[dx=0] run function namespace:raycast/hit_entity
3333
# Здесь можно писать ещё команды, которые будут запускаться на каждом шагу луча. Для примера заспавним партикл:
3434
particle composter ~ ~ ~ 0 0 0 0 1
3535
# Если скорборд шагов рейкаста равен 1 или больше, то передвинуться немного вперёд и запустить эту же функцию снова.
36-
[35mexecute [34mif score [36m@s [0mraycast [34mmatches [32m1[35m.. [34mpositioned [32m^ ^ ^0.1 [34mrun [35mfunction [33mnamespace:raycast/ray
36+
[35mexecute [34mif score [36m#distance [0mraycast [34mmatches [32m1[35m.. [34mpositioned [32m^ ^ ^0.1 [34mrun [35mfunction [33mnamespace:raycast/ray
3737
```
3838
4. В функциях `raycast/hit_block` и `raycast/hit_entity` обязательно нужно написать команду обнуления скорборда шагов рейкаста, а дальше можно писать команды, которые будут запускаться при столкновении с блоком и сущностью соответственно:
3939
{mcf}`raycast/hit_block.mcf`:
4040
```ansi
41-
[35mscoreboard [34mplayers set [36m@a[33m[[37mtag[34m=[32mraycaster[33m] [0mraycast [32m0
41+
[35mscoreboard [34mplayers set [36m#distance [0mraycast [32m0
4242
# Дальше свои команды... Например спавн молнии:
4343
summon lightning_bolt ~ ~ ~
4444
```
4545
{mcf}`raycast/hit_entity.mcf`:
4646
```ansi
47-
[35mscoreboard [34mplayers set [36m@a[33m[[37mtag[34m=[32mraycaster[33m] [0mraycast [32m0
47+
[35mscoreboard [34mplayers set [36m#distance [0mraycast [32m0
4848
# Дальше свои команды... Например нанесение урона:
4949
damage @s 5
5050
```

0 commit comments

Comments
 (0)