Solved How do I check if a variable has reached a certain number

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

  • LOOKING FOR A VERSION OF SKRIPT?

    You can always check out skUnity Downloads for downloads and any other information about Skript!

Status
Not open for further replies.
Jun 19, 2017
12
1
0
27
I am Skripting a RP-System (similar to gta experience levels)
I only got one problem, how do I create a variable that only contains a number which I can check (e.g. if a variable has reached "20" it should trigger something or when it has reached the count of "40")?

If someone is able to improve this "skript" feel free to edit it!


code_language.skript:
on first join:
    set {rplevelcount::%player%::*} to 20
    add 1 to {rpcount::%player%::*}
    set {rplevel::%player%::*} to 1
    
on join:
    add 5 to {rpcount::%player%::*}
    message "&7[&9RP&7] &7You got &9 5 RP-Points &7 for joining the server!"
    message "           &7Your current level: &9{rplevel::%player%::*} {rpcount::%player%::*}/{rplevelcount::%player%::*}"


if {rpcount::%player%::*} equals 20:
    set {rplevelcount::%player%::*} to 100
    set {rplevel::%player%::*} to 2
 
code_language.skript:
on join:
    add 5 to {rpcount::%player%::*}
    message "&7[&9RP&7] &7You got &9 5 RP-Points &7 for joining the server!"
    message "           &7Your current level: &9{rplevel::%player%::*} {rpcount::%player%::*}/{rplevelcount::%player%::*}"
    if {rpcount::%player%::*} equals 20:
        set {rplevelcount::%player%::*} to 100
        set {rplevel::%player%::*} to 2
 
Still doesn´t work

[13:51:30] [Server thread/ERROR]: can't understand this condition: '{rpcount::%player%::*} equals 20' (rpsys.sk, line 5: if {rpcount::%player%::*} equals 20:')
 
code_language.skript:
on join:
    add 5 to {rpcount::%player%::*}
    message "&7[&9RP&7] &7You got &9 5 RP-Points &7 for joining the server!"
    message "           &7Your current level: &9{rplevel::%player%::*} {rpcount::%player%::*}/{rplevelcount::%player%::*}"
    if {rpcount::%player%::*} >= 20:
        set {rplevelcount::%player%::*} to 100
        set {rplevel::%player%::*} to 2

You should put if it is bigger or equal to 20, since if you have 18 points and you give 5 it would stay at 23 and it would not be 20 anymore.
 
code_language.skript:
on join:
    add 5 to {rpcount::%player%::*}
    message "&7[&9RP&7] &7You got &9 5 RP-Points &7 for joining the server!"
    message "           &7Your current level: &9{rplevel::%player%::*} {rpcount::%player%::*}/{rplevelcount::%player%::*}"
    if {rpcount::%player%::*} >= 20:
        set {rplevelcount::%player%::*} to 100
        set {rplevel::%player%::*} to 2

You should put if it is bigger or equal to 20, since if you have 18 points and you give 5 it would stay at 23 and it would not be 20 anymore.
good point but you would need to also make a variable or something to check if its the first time over 20 or else it would trigger everytime they get more points above 20 if that makes sense
 
Thank you sooooooooo much!:emoji_nerd:

Where did you learn that?
[doublepost=1502639045,1502635527][/doublepost]One more porblem the variables wont show the actual number in the chat, what should I do about this?
[doublepost=1502639847][/doublepost]
good point but you would need to also make a variable or something to check if its the first time over 20 or else it would trigger everytime they get more points above 20 if that makes sense

The problem is: I dont know how to do that xD
 
what do you mean it doesnt show the actual number?

for your second question heres a crude example:
code_language.skript:
on whatever:
    if {first} is not set:
        #do something
        set {first} to true
 
what do you mean it doesnt show the actual number?

for your second question heres a crude example:
code_language.skript:
on whatever:
    if {first} is not set:
        #do something
        set {first} to true
Thank you!



Here´s the problem:

If I login in minecraft the thing is doenst show the numbers the variables contain (e.g. "4") but it shows {rpcount::%player%::*}
 
Thanks man!
[doublepost=1502744463,1502693946][/doublepost]
what do you mean it doesnt show the actual number?

for your second question heres a crude example:
code_language.skript:
on whatever:
    if {first} is not set:
        #do something
        set {first} to true
Can you help me? I doesnt level up because I am not able to use the variable in that way that it prevents the other variable from triggering another level
code_language.skript:
on first join:
    set {rpcount.%player%} to 0
    set {rplevelcount.%player%} to 20
    set {rplevel.%player%} to 1            #LEVEL 1

on join:
    add 500 to {rpcount.%player%}
    message "&7[&9RP&7] &7Du bekommst &9 500 RP-Points &7für das betreten des Servers!"
    message "           &7Derzeitiges Level: &9 %{rplevel.%player%}% &7|&9  %{rpcount.%player%}%/%{rplevelcount.%player%}%"
    if {rpcount.%player%} >= 20:            #LEVEL 2
        set {first20rp} to true
        set {rpcount.%player%} to 0
        set {rplevelcount.%player%} to 100
        set {rplevel.%player%} to 2
        if {first20rp} is true:
            if {rpcount.%player%} >= 100:            #LEVEL 3
                set {first100rp} to true
                set {rpcount.%player%} to 0
                set {rplevelcount.%player%} to 500
                set {rplevel.%player%} to 3
                if {first100rp} is true:
                    if {rpcount.%player%} >= 500:            #LEVEL 4
                        set {first500rp} to true                       
                        set {rpcount.%player%} to 0
                        set {rplevelcount.%player%} to 1500
                        set {rplevel.%player%} to 4
                        if {first500rp} is true:
                            if {rpcount.%player%} >= 1500:            #LEVEL 5
                                set {first1500rp} to true                       
                                set {rpcount.%player%} to 0
                                set {rplevelcount.%player%} to 3000
                                set {rplevel.%player%} to 5
 
Thanks man!
[doublepost=1502744463,1502693946][/doublepost]
Can you help me? I doesnt level up because I am not able to use the variable in that way that it prevents the other variable from triggering another level
code_language.skript:
on first join:
    set {rpcount.%player%} to 0
    set {rplevelcount.%player%} to 20
    set {rplevel.%player%} to 1            #LEVEL 1

on join:
    add 500 to {rpcount.%player%}
    message "&7[&9RP&7] &7Du bekommst &9 500 RP-Points &7für das betreten des Servers!"
    message "           &7Derzeitiges Level: &9 %{rplevel.%player%}% &7|&9  %{rpcount.%player%}%/%{rplevelcount.%player%}%"
    if {rpcount.%player%} >= 20:            #LEVEL 2
        set {first20rp} to true
        set {rpcount.%player%} to 0
        set {rplevelcount.%player%} to 100
        set {rplevel.%player%} to 2
        if {first20rp} is true:
            if {rpcount.%player%} >= 100:            #LEVEL 3
                set {first100rp} to true
                set {rpcount.%player%} to 0
                set {rplevelcount.%player%} to 500
                set {rplevel.%player%} to 3
                if {first100rp} is true:
                    if {rpcount.%player%} >= 500:            #LEVEL 4
                        set {first500rp} to true                    
                        set {rpcount.%player%} to 0
                        set {rplevelcount.%player%} to 1500
                        set {rplevel.%player%} to 4
                        if {first500rp} is true:
                            if {rpcount.%player%} >= 1500:            #LEVEL 5
                                set {first1500rp} to true                    
                                set {rpcount.%player%} to 0
                                set {rplevelcount.%player%} to 3000
                                set {rplevel.%player%} to 5
it would probably be better to do this like this (rough outline):
code_language.skript:
on first join:
    set {level::%player%} to 1
    set {pointsToLevelUp::%player%} to 20

on whatever:
    if {points::%{_p}%} is greater than {pointsToLevelUp::%{_p}%}:    
        add 1 to {level::%player%}
        add 10 to {pointsToLevelUp::%player%}
 
it would probably be better to do this like this (rough outline):
code_language.skript:
on first join:
    set {level::%player%} to 1
    set {pointsToLevelUp::%player%} to 20

on whatever:
    if {points::%{_p}%} is greater than {pointsToLevelUp::%{_p}%}:   
        add 1 to {level::%player%}
        add 10 to {pointsToLevelUp::%player%}
how do I do the "is greater" ?
 
Well you need to set a variable for the points needed to level up (looks like you want 20 to start). Then check if {rpcount::%player%::*} is greater than it.

Sorry if I'm misunderstanding you're question
 
Status
Not open for further replies.