Jump to content

Skript Breaks Server


Pryzmm

Recommended Posts

about 5 months ago I made an edited version of Sorbon's rainbow chat skript. Right now i'm trying to make it toggleable so you don't have to continuously type /rbc <message>. but when i type something after doing /rbctoggle the server breaks. Here is the skript:

Spoiler

on load:
    set {hex::*} to split "0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f|k|l|m|n|o|r" at "|"
function rgbToHex(values: numbers) :: string:
    loop {_values::*}:
        set {_r} to "%{_r} ? ""<##""%%{hex::%((loop-value - mod(loop-value, 16)) / 16 + 1)%} ? """"%%{hex::%mod(loop-value, 16) + 1%} ? """"%"
    return colored "%{_r}%>"
function hslToRgb(h: number, s: number, l: number) :: integers: #
    set {_h} to {_h}/360
    if {_s} = 0:
        set {_r}, {_g} and {_b} to {_l}
    else:
        set {_q} to (({_l} * ({_s} + 1)) if {_l} < 0.5, else ({_l} + {_s} - {_l} * {_s}))
        set {_p} to (2 * {_l}) - {_q}
        set {_r} to hueToRgb({_p}, {_q}, {_h} + 1 / 3)
        set {_g} to hueToRgb({_p}, {_q}, {_h})
        set {_b} to hueToRgb({_p}, {_q}, {_h} - 1 / 3)
    return round(min(255, (255 * {_r}))), round(min(255, (255 * {_g}))) and round(min(255, (255 * {_b})))
function hueToRgb(p: number, q: number, t: number) :: number:
    add 1 to {_t} if {_t} < 0
    remove 1 from {_t} if {_t} > 1
    return {_p} + ({_q} - {_p}) * 6 * {_t} if {_t} < 1 / 6
    return {_q} if {_t} < 1/2
    return {_p} + ({_q} - {_p}) * (2 / 3 - {_t}) * 6 if {_t} < 2 / 3
    return {_p}
function gradient(input: string, color-from: integers, color-to: integers) :: string:
    loop {_color-from::*}:
        set {_i::%loop-index%} to round(({_color-to::%loop-index%} - loop-value) / length of {_input})
    loop length of {_input} times:
        if subtext of {_input} from indices loop-number - 1 to loop-number - 1 = "§":
            set {_format} to "%{_format} ? """"%&%subtext of {_input} from indices loop-number to loop-number%" if {hex::*} contains subtext of {_input} from indices loop-number to loop-number
            clear {_format} if subtext of {_input} from indices loop-number to loop-number = "r"
            continue loop
        set {_r} to "%{_r} ? """"%%rgbToHex({_color-from::*})%%{_format} ? """"%%subtext of {_input} from indices loop-number to loop-number%"
        set {_color-from::*} to ({_color-from::1} + {_i::1}), ({_color-from::2} + {_i::2}) and ({_color-from::3} + {_i::3})
    return colored {_r}
function rainbow(input: string, saturation: number = 1, lightness: number = 0.5) :: string:
    loop (length of {_input}) times:
        if subtext of {_input} from indices loop-number - 1 to loop-number - 1 = "§":
            set {_format} to "%{_format} ? """"%&%subtext of {_input} from indices loop-number to loop-number%" if {hex::*} contains subtext of {_input} from indices loop-number to loop-number
            clear {_format} if subtext of {_input} from indices loop-number to loop-number = "r"
            continue loop
        set {_l} to 360 / (length of {_input})
        set {_r} to "%{_r} ? """"%%rgbToHex(hslToRgb((loop-number * ({_l} if loop-number != 1, else 1)), {_saturation}, {_lightness}))%%{_format} ? """"%%subtext of {_input} from indices loop-number to loop-number%"
    return colored {_r}
function rainbow2(input: string, saturation: number = 1, lightness: number = 0.5, stretch: number = 5, offset: number = 0) :: string:
    loop (length of {_input}) times:
        # ---- Remove the part below to remove color formatting  
        if subtext of {_input} from indices loop-number - 1 to loop-number - 1 = "§":
            set {_format} to "%{_format} ? """"%&%subtext of {_input} from indices loop-number to loop-number%" if {hex::*} contains subtext of {_input} from indices loop-number to loop-number
            clear {_format} if subtext of {_input} from indices loop-number to loop-number = "r"
            continue loop
        # ---- Remove the part above to remove color formatting  
        set {_l} to loop-number * {_stretch}+{_offset} if loop-number*{_stretch}+{_offset} <= 360, else mod(loop-number*{_stretch}+{_offset}, 360)
        set {_r} to "%{_r} ? """"%%rgbToHex(hslToRgb({_l}, {_saturation}, {_lightness}))%%{_format} ? """"%%subtext of {_input} from indices loop-number to loop-number%"
    return colored {_r}

command /rbc [<text>]:
    permission: SW.Shocker
    permission message: &d&l[&5&lShockWaves&d&l] &cThis command requires &dShocker&5+ &cRank! You can get this rank currently for free by typing &e/FreeRank!
    trigger:
        if arg-1 is not set:
            send "&d&l[&5&lShockWaves&d&l] &c&lError: &4Please say what you want to say in chat!"
        else if arg-1 is set:
            set {text} to arg-1
            make player say colored rainbow(colored arg-1)

command /rbctoggle:
    permission: SW.Bower
    permission message :&d&l[&5&lShockWaves&d&l] &cThis command requires &dBower&5+ &cRank!
    trigger:
        if {RBCChat::%player%} is not set:
            set {RBCChat::%player%} to true
            send "&d&l[&5&lShockWaves&d&l] &aEnabled rainbow chat!" to player
        else if {RBCChat::%player%} is false:
            set {RBCChat::%player%} to true
            send "&d&l[&5&lShockWaves&d&l] &aEnabled rainbow chat!" to player
        else:
            set {RBCChat::%player%} to false
            send "&d&l[&5&lShockWaves&d&l] &cDisabled rainbow chat!" to player

on chat:
    if {RBCChat::%player%} is true:
        cancel event
        make player execute command "/rbc %message%"
        stop

It work until I add /rbctoggle and "on chat". Can someone help me understand why this happens and how to fix it?

 

 

image.png.bc433d6489d70ad831075fe76809b993.png
 

Owner of Lifestealed, Labs, Encore, UNOfficially and Observed
 

OG [VIP] 12/26/20 - 10/27/2021
OG [PRO] 12/27/21 - 11/18/2022
OG [LEGEND] 11/18/2022 - 3/14/2023
[DEFAULT] 3/14/2023 - 5/8/2024

[MOD] 5/8/2024 - Present

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...