Added sit.sk

This commit is contained in:
Profitroll 2024-03-24 17:43:54 +01:00
parent c54c581bcf
commit 5b8a95320c
Signed by: profitroll
GPG Key ID: FA35CAB49DACD3B2
1 changed files with 154 additions and 0 deletions

154
scripts/sit.sk Normal file
View File

@ -0,0 +1,154 @@
on join:
if {%player%::sit} is not set:
set {%player%::sit} to true
function contains(list: objects, check: object) :: boolean:
loop {_list::*}:
if loop-value is {_check}:
return true
return false
command /position:
trigger:
loop 1000 times:
send "%x of velocity of player%"
wait 1 tick
command /sit [<text>]:
trigger:
player's world is not "world-you-dont-want-sit-working"
set {_cont} to true
loop all entities in radius 1.1 around location of block below player:
if loop-entity is a pig:
send "&6 Система &8| &7Хтось вже сидить на цьому місці (можливо, ви самі)" to player
stop
{_cont} is set
if x of velocity of player or z of velocity of player is not 0:
send "&6 Система &8| &7Не можна сідати під час руху."
stop
if y of velocity of player is less than -0.09:
send "&6 Система &8| &7Не можна сідати під час руху."
stop
else if y of velocity of player is more than -0.07:
send "&6 Система &8| &7Не можна сідати під час руху."
stop
if vehicle of player is set:
send "&6 Система &8| &7Не можна сісти знову, ви вже сидите." to player
stop
set {_spawnloc} to location of player
set y-coordinate of {_spawnloc} to y-coordinate of {_spawnloc}-0.9
spawn 1 pig at {_spawnloc}
set name of last spawned pig to "&fСидіння"
set {_pig} to spawned pig
set health of {_pig} to 1
Add "{NoAI:1}" to entity nbt of {_pig}
Add "{NoGravity:1}" to entity nbt of {_pig}
Add "{Invulnerable:1}" to entity nbt of {_pig}
Add "{Silent:1}" to entity nbt of {_pig}
apply potion of invisibility without any particles to {_pig} for 9 days
make the player ride {_pig}
on death:
name of victim is "&fСидіння"
clear drops
on vehicle exit:
name of vehicle of player is "&fСидіння":
delete vehicle of player
set {_w} to world of player
set {_loc} to location of player
set y-coordinate of {_loc} to y-coordinate of {_loc}+0.6
wait a tick
{_w} is player's world
teleport player to {_loc}
command /togglesit:
trigger:
if {%player%::sit} is true:
set {%player%::sit} to false
send "&6 Налаштування &8| &7Сидіння при кліку на сходах &cвимкнено&7."
else:
set {%player%::sit} to true
send "&6 Налаштування &8| &7Сидіння при кліку на сходах &aувімкнено&7."
on rightclick:
if player is not sneaking:
if clicked block is set:
if minecraft name of clicked block is "minecraft:oak_stairs" or "minecraft:stone_stairs" or "minecraft:brick_stairs" or "minecraft:stone_brick_stairs" or "minecraft:nether_brick_stairs" or "minecraft:sandstone_stairs" or "minecraft:spruce_stairs" or "minecraft:birch_stairs" or "minecraft:jungle_stairs" or "minecraft:quartz_stairs" or "minecraft:acacia_stairs" or "minecraft:dark_oak_stairs" or "minecraft:red_sandstone_stairs" or "minecraft:purpur_stairs":
if {%player%::sit} is true:
if data value of clicked block is between 0 and 3:
if block above event-block is air:
set {_cont} to true
loop all entities in radius 1.1 around location of block below player:
if loop-entity is a pig:
send "&6 Система &8| &7Хтось вже сидить на цьому місці (можливо, ви самі)" to player
stop
{_cont} is set
if y of velocity of player is less than -0.09:
send "&6 Система &8| &7Не можна сідати під час руху."
stop
else if y of velocity of player is more than -0.07:
send "&6 Система &8| &7Не можна сідати під час руху."
stop
if vehicle of player is set:
send "&6 Система &8| &7Не можна сісти знову, ви вже сидите." to player
stop
if "%clicked block%" contains "southward":
set {_stairloc} to -180
else if "%clicked block%" contains "westward":
set {_stairloc} to -90
else if "%clicked block%" contains "northward":
set {_stairloc} to 0
else:
set {_stairloc} to 90
set {_location} to location of the clicked block
set {_location}'s pitch to 0
set {_location}'s yaw to {_stairloc}
teleport player to {_location}
wait 2 ticks
set {_spawnloc} to location of player
set y-coordinate of {_spawnloc} to y-coordinate of {_spawnloc}-0.9
spawn 1 pig at {_spawnloc}
set name of last spawned pig to "&fСидіння"
set {_pig} to spawned pig
set health of {_pig} to 1
Add "{NoAI:1}" to entity nbt of {_pig}
Add "{NoGravity:1}" to entity nbt of {_pig}
Add "{Invulnerable:1}" to entity nbt of {_pig}
Add "{Silent:1}" to entity nbt of {_pig}
apply potion of invisibility without any particles to {_pig} for 9 days
make the player ride {_pig}
else:
send "&6 Система &8| &7Місце для сидіння заблоковано зверху."
stop
else:
send "&6 Система &8| &7Не можна сісти догори дригом."
stop
on load:
send formatted "&6 Система &8| &7Модуль &aсидіння &7завантажено." to console