#Base Core Skript

1 messages · Page 1 of 1 (latest)

jade citrus
#

yo im tryna make a skript where the player can place a certain block and when he places it, its his base core and if someone breaks that core it kills the player that placed it

#
    if player's tool is a respawn anchor named "&bBase Core":
        if {CorePlaced::%player's uuid%} is false:
            set {CorePlaced::Loc::%player's name%} to location of event-block
            set {CorePlaced::Player::%player's uuid%} to location of event-block
            set {blocks::%player's name%} to player's name
            set {CorePlaced::Loc::%player's uuid%} to location of event-block
            send title "&bBase core placed!" with subtitle "&7You have placed your base core, Protect with your life!"
            loop reversed 3 times:
                play sound "block.anvil.place"
                wait 1 second
            play sound "block.beacon.activate"

on break:
    send "1" to player
    if {CorePlaced::Loc::%player's uuid%} contains location of event-block:
        send "2" to player
        cancel event
        send action bar "&7You cannot break your own core!" to player
        play sound "entity.villager.no"
        stop
    
    if {CorePlaced::Loc::%player's name%} contains location of event-block:
        send "3" to player
        remove location of event-block from {CoresPlaced::List}
        console command "kill %{blocks::%player's name%}%"
        send "test" to {blocks::%player's name%}``` currently stuck on how to kill that player.
it also doesn't send "3"
slow badge
#

okay, i think you over-engineered this a bit.

  • Lines 4, 5, 7: You don't need 3 seperate variables for this, one will work. Also confused as to why you set {CorePlaced::%player's uuid%} to a location, but check for a boolean. Just check if it is not set
  • Line 6: This line is useless; it only linds the player's name to the player's name, it doesnt mention the location at all.
  • The best option would be to set an NBT tag here, set a string tag for the block to the player's UUID
  • Line 9: The reversed does absolutely nothing here
  • lines 16, 23: You are using the contains condition, which needs a list. You should be checking if the var = event-location. Alternatively, you could just check for an NBT tag on the broken block. The less variables easting up storage space the better.
  • Line 23: You are checking the variable for the player who is breaking. So yeah, that will never pass.
  • Line 25: That's not a list, you need to have ::* at the end. But you never added abything to the list in the first place.
  • Line 26: Again, the variable in the command here would be for the player who is breaking it, not the player who placed it. Also, never use console commands for things like this, skript has a kill effect. Just take the tag set to the player's UUID and then parse that as a player and kill it.

Here's a bit of info on lists and NBT tags:
https://sovdee.gitbook.io/skript-tutorials/core-concepts/variables/list-basics
https://github.com/ShaneBeee/SkBee/wiki

GitHub

SkBee is a Skript addon that aims to add more useful elements to Skript. - ShaneBeee/SkBee

placid grail
weary briar
#

free time, probably

plucky flare
jade citrus
#

also guys i fixed it so dw about it