AgentGamerPro Posted March 13, 2021 Share Posted March 13, 2021 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? Lifestealed | Minecraft Servers [VIP] 12/26/20 - 10/27/2021[PRO] 12/27/21 - Present Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now