Jump to content

BanditEagle

Member
  • Posts

    852
  • Joined

  • Last visited

  • Days Won

    22

Posts posted by BanditEagle

  1. BanditEagle's Combat Tag & Spawn Skript!
    Useful Skript Tool For PVP-Related Events!
     
    Features:
    - Set Spawn
    - Teleport To Spawn With Countdown
    - Using Action Bar With Teleporting To Spawn
    - Cancel Teleporting If Movement Is Detected
    - Cancel Teleporting If In Combat
    - Combat Tag With Players Or All Entities
    - Using Bossbar With Combat Tag
    - Broadcasted Killstreaks Every 5 Kills
     
    Commands:
    - /setspawn (permission: spawn.set)
    - /spawn
    - /kills <player>
     
    Required Skript Addons:
    - Skript
     
    Optional Skript Addons:
     
    If you found a bug or need support, please contact me here:
    - Discord: @BanditEagl3#4375
    - Guilded.gg: @BanditEagle
    - skUnity: @BanditEagle
    - SpigotMC: @BanditEagle
    - Minehut Forums: @BanditEagle
     
     
    ⭐⭐⭐⭐⭐
    Please leave a review about your thoughts of this skript! If there is anything I should add to this skript, be sure to let me know!

    combatNspawn.sk

  2. that wont work as it doesnt have the movement check. This will work though:

    options:
      spawnCountdown: 100 #The time needed until you can teleport to spawn (in ticks, 100 ticks = 5 seconds)
          spawnCountdownMsg: "&6You will be teleported to spawn in <number> second(s)." #Message players receive when using /spawn
    
    command /spawn:
        trigger:
            set {_timer} to 5
            set {_countdown} to {@spawnCountdown}
            set {_loc} to location of player
            set {_seconds} to floor(({_countdown})/20)
            set {_int} to {_seconds}
            loop {_seconds} times:
                add {_int} to {_list::*}
                remove 1 from {_int}
            while {_countdown} is not 0:
                if distance between {_loc} and player is not 0:
                    loop {_timer} times:
                        send "&cCanceling teleport to spawn: Cannot teleport when moving."
                    stop
                if {_list::*} contains {_seconds}:
                    set {_msg} to {@spawnCountdownMsg}
                    replace "<number>" in {_msg} with "%{_seconds}%"
                    send action bar "%{_msg}%"
                remove 1 from {_countdown}
                wait a tick
            send "&6Teleporting you to spawn."
            teleport player to {spawn}
      
    command /setspawn:
        permission: spawn.set
        permission message: &cYou do not have access to this command"
        trigger:
            set {spawn} to player's location
            send "&aSpawn has been set to: &2%{spawn}%"

     

  3. 7 hours ago, CozyDoubloon234 said:

    open last created gui to player

    This isn't the correct format. It should be like so:

    open last gui to player

     

    Also, this is wrong too.

    7 hours ago, CozyDoubloon234 said:

    create a gui with virtual chest inventory with size 4 named "Shop":

    It should be like so:

    create a gui with virtual chest inventory with 4 rows named "Shop":

     

  4. this isn't how you create lists (or as you know, arrays) in skript. Additionally, you can't create lists in the "options" section (at least to my knowledge).

    Here is what you can do:

    on load:
        set {blockList::*} to stone, coal ore and iron ore
        set {timeList::*} to 30 seconds, 60 seconds and 120 seconds
    
    on break:
        if {blockList::*} contains event-block:
            cancel event
            set {_block} to event-block
            set {_loc} to location at event-block
            give player {_block}
            set event-block to bedrock
            set {_size} to size of {blockList::*}
            loop {_size} times:
                set {_i} to loop-number
                if {blockList::%{_i}%} contains {_block}:
                    wait {timeList::%{_i}%}
                    set block at {_loc} to {_block}
                    stop

    I'm not sure if this is the most efficient way of doing this, but this should work. I used the skUnity parser and it didn't return any errors, so I think this works. Let me know if there are any problems!

    Also, if this post helped you out, please leave a reaction! It means a lot to me!

    • Thanks 1
  5. On 5/7/2022 at 4:48 PM, cuppalemontee said:

    Thank you!

    No problem at all! I'm glad I was able to help! I would really appreciate it if you could leave a reaction to my post if I was able to help you out!

  6. What do you need help with - installing them onto your server or using those addons in your skripts? If its about how to use them, you can look at a website such as skripthub.net to see how different addons are used in specific scenarios.

  7. 1 hour ago, WaffleMan22 said:

    PS. I know there are some ways to disable recipes in craft enhance, but for some reason they keep reseting every time i leave my server, forcing me to disable them all again, and again

    I'm not familiar with craftenhance, but the only method of this would be something like:

    on load:
    	set {CEList::*} to dirt, stone and diamond pickaxe #This is an example. Replace the items listed here with the items that are craftable by the plugin you are using. For example, if you can craft a bedrock with it, replace the items listed with that. Make sure to separate each item with commas (if its not the very last one).
    
    on craft:
    	if {CEList::*} contains item:
    		#code
    
    	else:
    		send "&cError: You are not allowed to craft this item" to player

    I hope that craftenhance doesn't include that many new items, as it would make a huge list, but to my knowledge there isn't any other method of achieving this. Hope this helps!

  8. Hi guys! I have some free time on my hands so if there are any skript ideas you would like me to make (or try to help fix a problem), please let me know! You can dm me on here or my discord or just reply to this post! I'll try and make it for you.

  9. options:
    	combatTagTime: 10 #The time needed until combat tag is removed (in seconds)
    	tagMsg: "&6You are now in combat" #Message players receive when they get in combat
    	noTagMsg: "&6You are no longer in combat" #Message players receive when they aren't in combat
    	killMsg: "&6<victim> has been killed by <attacker>" #Broadcasted message when a player kills another player
    	killstreakMsg: "&6<player> has a <number> kill streak!" #Broadcasted message every 5 killstreaks
    	maxKillStreak: 20 #Change this value for more or less max kill streak. This value is multiplied by 10 (so 20 would be 200)
    
    on leave:
    	clear {combatTag::%player%}
    	clear {killStreak::%player%}
    	clear {lastCombat::%player%}
    
    on damage of player:
    	attacker is a player
    	if {combatTag::%victim%} is not set:
    		set {combatTag::%victim%} to true
    		set {lastCombat::%victim%} to attacker
    		send {@tagMsg} to victim
    	if {combatTag::%attacker%} is not set:
    		set {combatTag::%attacker%} to true
    		send {@tagMsg} to attacker
    	wait {@combatTagTime} seconds
    	clear {combatTag::%victim%}
    	clear {combatTag::%attacker%}
    	clear {lastCombat::%victim%}
    	send {@noTagMsg} to victim
    	send {@noTagMsg} to attacker
    
    on death of player:
    	if {combatTag::%victim%} is not set:
    		clear {killStreak::%victim%}
    		add 1 to {deathCounter::%victim%}
    	if {combatTag::%victim%} is set:
    		add 1 to {deathCounter::%victim%}
    		set {_killer} to {lastCombat::%victim%}
    		clear {combatTag::%victim%}
    		clear {killStreak::%victim%}
    		clear {lastCombat::%victim%}
    		add 1 to {killStreak::%{_killer}%}
    		add 1 to {killStreak::%{_killer}%}
    		if {killStreak::%{_killer}%} >= 5:
    			set {_ksamount} to floor(({killStreak::%{_killer}%})/5)
    			set {_int} to {@maxKillStreak}
    			loop {@maxKillStreak} times:
    				add {_int} to {_list::*}
    				remove 1 from {_int}
    			set {_list::*} to (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
    			if {_list::%{_ksamount}%::%{_killer}%} is not set:
    				set {_list::%{_ksamount}%::%{_killer}%} to true
    				set {_killstreak} to 5*{_ksamount}
    				set {_broadcast} to {@killstreakMsg}
    				replace "<player>" in {_broadcast} with "%{_killer}%"
    				replace "<number>" in {_broadcast} with "%{_ksamount}%"
    				broadcast "%{_broadcast}%"

    I didn't test this code out, so if any errors come up, or if something doesn't work, please let me know! Hope this helps (and if it does, please leave a reaction!)

    EDIT: I realized a mistake I made in the skript and fixed it.

    • Like 1
    • Thanks 1
  10. on load:
        set {compressingItem} to 1 of glowing mossy stone bricks named "&a&nCompressed Mossy Cobblestone"
    
    command /togglecompress <text>:
        permission: op
        trigger:
            if arg-1 is "on":
                set {compress} to true
            if arg-1 is "off":
                set {compress} to false
            else:
                send "&cError, unknown argument" to player
    
    on mine:
        if {compress} is true:
            if player's inventory contains 32 of mossy cobblestone:
                remove 32 of plain mossy cobblestone from player's inventory
                give player {compressingItem}

    Perhaps you can try something like this. I haven't tested it, so i don't know if it will work or not. If there are any errors or if it doesn't work, let me know.

    Also, creating a variable named {_item} everytime someone mines a block is quite bad for the speed of the server, so instead setting a global variable to whatever you want when the skript is loaded in would be better.

  11. Maybe try something like this:

    command /spawn:
      trigger:
        set {_cooldown} to 100
        set {_loc} to location of player
        while {_cooldown} is not 0:
          remove 1 from {_cooldown}
          if distance between {_loc} and player is not 0:
            send "Canceling teleport to spawn."
            stop
          wait a tick
        teleport player to {spawn}

    Im not entirely sure how to cancel the tp if they take damage, but I think this should work for canceling if the player moves. I haven't tested it out, so if there are any errors/issues, let me know.

    EDIT: I figured out how to integrate the taking damage part as well, so here is the new skript:

    options:
    	combatTagTime: 5 #The time needed until combat tag is removed (in seconds)
    	spawnCountdown: 100 #The time needed until you can teleport to spawn (in ticks, 100 ticks = 5 seconds)
    	spawnCountdownMsg: "&6You will be teleported to spawn in <number> seconds." #Message players receive when using /spawn
    	tagMsg: "&6You are now in combat. You cannot teleport to spawn now." #Message players receive when they get in combat
    	noTagMsg: "&6You are no longer in combat. You may teleport to spawn now." #Message players receive when they aren't in combat
    
    on leave:
    	clear {combatTag::%player%}
    
    on damage of player:
    	attacker is a player
    	if {combatTag::%victim%} is not set:
    		set {combatTag::%victim%} to true
    		send {@tagMsg} to victim
    	if {combatTag::%attacker%} is not set:
    		set {combatTag::%attacker%} to true
    		send {@tagMsg} to attacker
    	wait {@combatTagTime} seconds
    	clear {combatTag::%victim%}
    	clear {combatTag::%attacker%}
    	send {@noTagMsg} to victim
    	send {@noTagMsg} to attacker
    
    on death of player:
    	if {combatTag::%victim%} is set:
    		clear {combatTag::%victim%}
    
    command /setspawn:
    	permission: spawn.set
    	permission message: &cYou do not have access to this command"
    	trigger:
    		set {spawn} to player's location
    		send "&aSpawn has been set to: &2%{spawn}%" to player
    
    command /spawn:
    	trigger:
    		if {combatTag::%player%} is set:
    				send "Canceling teleport to spawn: Cannot teleport when in combat."
    				stop
          	set {_countdown} to {@spawnCountdown}
    		set {_loc} to location of player
    		set {_msg} to {@spawnCountdownMsg}
    		set {_seconds} to floor(({_countdown})/5)
    		loop {_seconds} times:
    			add {_int} to {_list::*}
    			remove 1 from {_int}
    		while {_countdown} is not 0:
    			if distance between {_loc} and player is not 0:
    				send "Canceling teleport to spawn: Cannot teleport when moving."
    				stop
    			if {combatTag::%player%} is set:
    				send "Canceling teleport to spawn: Cannot teleport when in combat."
    				stop
    			set {_int} to floor(({_countdown})/5)
    			if {_list::%{_int}%} is not set:
    				set {_list::%{_int}%} to true
    				replace "<number>" in {_msg} with "%{_int}%"
    				send "%{_msg}%" to player
    			remove 1 from {_countdown}
    			wait a tick
    		teleport player to {spawn}
×
×
  • Create New...