Jump to content

JoshG

Member
  • Posts

    68
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by JoshG

  1. These days people will do anything to store data outside of just regular skript variables.

    Some good options include:
    - an external database
    - yml


    but I came up with the most stupid idea and i think it might actually work
    a brief description, is that I will be offloading all skript variables to a webserver. thats it!
    yes I know this is dumb and slow and not made for production
    i will be attaching the github here and posting updates to this thread!


    i've come up with a file tree, and opted to use php.
    Here's the file tree:

    get.php:
    - returns value of variable, if not exist return NULL
    - use: get.php?uuid=UUID&variable=VARIABLE


    reset.php:
    - resets / creates their directory
    - use: reset.php?uuid=UUID

    set.php:
    - sets a variable to a new value
    - use: set.php?uuid=UUID&variable=VARIABLE&value=VALUE

     

    A hurdle to get over will be storing server variables, not just player data. This will be stored under the uuid "server"
    So to get say, the price of dirt in the "dirtPrice" variable, we request get.php?uuid=server&variable=dirtPrice

    For the serverside, the variables will be stored in a master directory called "data"

    In this directory resides more directories, named the UUIDs. Inside of those, even more directories, one for each variable. Inside those directories, is variable.txt. Containing just the value of the variable.

    So dirtPrice, will be:
    data/server/dirtPrice/variable.txt

    the value of variable.txt just being "1.00" or something.


    All files and changes will be on https://github.com/diamondscode/php-skript-what

    Enjoy lmao

  2. On 3/22/2024 at 9:00 AM, diismade said:

    Am I missing something? I just use something like this:

     

    command /timeplayed <offline player = %player%>:
    	trigger:
    		send "%arg-1% has played %arg-1's time played%"

     

    this would work I believe but I am one to overcomplicate things. lol

  3. Although this is not a minecraft server. I am starting a (as odd as it sounds) collection of skript files all in one, called utilSK. utilSK will be a MASSIVE skript file of dozens, maybe even thousands of functions, all documented, for server owners to use, for free. That being said, I am looking for skript devs who know skript, and people who know minecraft servers, and what people who make minecraft servers need. Examples of what functions it will hold, are things like formatNum, a simple function to add commas or "k, m, b" to balances, etc. It will even have addons, like economy addons, which tie in with the main file. This project is going to be massive and I can't do it alone! Join the project, and apply to be a dev today 🙂

    discord.gg/3MekxfkMpe

    ALSO! I need people who know html.. seriously. I know html css and js myself, but am not the best web dev. We will be needing a website, so join the server to apply for that too 🙂

    Thanks!

  4. I have always skripted my scoreboards within a function, so when I need to update it I call the function like so:

    command /reloadscoreboard:
    	trigger:
    		scoreboard(player)
    		send "&7Your scoreboard has been successfully reloaded!" to player
    
    function scoreboard(p: player):
    	set title of {_p}'s scoreboard to "Your Title"
    	set line 15 of {_p}'s scoreboard to "Line 1 (closest to top)"
    	set line 14 of {_p}'s scoreboard to "and"
    	set line 13 of {_p}'s scoreboard to "so"
    	set line 12 of {_p}'s scoreboard to "on"
    	set line 11 of {_p}'s scoreboard to "down"
    	set line 10 of {_p}'s scoreboard to "to"
    	set line 9 of {_p}'s scoreboard to "line"
    	set line 8 of {_p}'s scoreboard to "1!"
    	...

    This way when say, updating someones balance, you can call the function to reload their scoreboard. But for you, it would be more of:

    every second:
    <-- Code for Timer -->
    	loop all players:
    		scoreboard(loop-player)

    Although I always try to only update scoreboard when I really need to

  5. Please use https://forums.minehut.com/forum/18-discussion/ in the future, this forum is for Skript Releases, not support.

    But, this below should do it
     

            if event-block is fully grown wheat plant:
                set event-block to air
                give 1 wheat to the player
                send action bar "&e+1 Wheat" to player
                if {time.x} is set:
                    give 1 wheat to the player
                    send action bar "&e+2 Wheat &6(2x Multiplier)" to player
                else:
                    send action bar "&e+1 Wheat" to player

     

  6. Did you correctly set up the DNS records? If so, I recommend creating an additional SRV record pointed toward your server aswell. If you are using cloudflare for your DNS heres what it should look like

    image.thumb.png.6c4bf7e3c42303bd0126132f9330b236.png

  7. This is not a very efficient way to do this. First I would add the location to a list: {beaconloc::*} and looking at this it looks very long and kind of inefficient. Looping 1200 times of waiting 1 tick and chances will take a lot on your server, especially if theres multiple at a time. So, you could just set a variable (ex; {beacontime::%unix of now%}) to the unix of now and when people try to open it you check the time between now and the variable set, instead of just tons of waiting.

  8. I don't see why you need to run a function that just returns {@cost}, I would replace the function with just simply {@cost}. But, I can see maybe it being run when the cost option is not set in another file, so I think the easiest fix is

    function getGenCost() :: number:
    	return "{@cost}"

    Remember skript see's options as a text, which is the reason the below works

    options:
    	command: skriptcommand
    	message: Message set in options
    command /{@command}:
    	trigger:
    		send "{@message}"

    Let me know

  9. Simple PV Script! Infinite PV's!

    Permissions:
    PV.set - Sets a user's allowed PV slots

    Commands:
    /pv (#) - Opens the # PV
    /setpv (player) (number) - sets number of allowed PV's

    Defaults to 1 PV per player.

    TOS:
    No claiming this work for your own.
    You may edit and change the code
    Minor support may be given, but shall not be expected

    pv.sk

  10. On 8/19/2023 at 11:57 AM, _Tarna_ said:

    Set a variable such as {cooldown::%player's uuid%} to now. And when they use that item, check the difference between that variable and now. If its greater than your desired cooldown, allow them to use it and reset the cooldown variable.

    You could set the variable or you could use base skript

    cooldown: 1 hour

    and add the flag

    cooldown storage: {variable::%player's uuid%}


    https://skripthub.net/tutorials/75

  11. Hey hey! I have been working on a little project recently and just finished. What is it, you may ask? Glad you asked. It's a free, 12 lesson course all about skript. Just register at https://axiabit.com/skript/ and off you go. That Simple. I would love to hear feedback from anyone who completes the course or anyone who uses it as a reference later on! Contact me on Discord: @Josh.#6656

    Heres the lesson outline!

    • Lesson 1: Introduction to Skript
    • Lesson 2: Variables and Data Types
    • Lesson 3: Conditional Statements
    • Lesson 4: Loops
    • Lesson 5: Functions and Subroutines
    • Lesson 6: Lists and Arrays
    • Lesson 7: File Input/Output
    • Lesson 8: Event Handling
    • Lesson 9: Advanced Topics: Classes and Objects
    • Lesson 10: Error Handling and Debugging
    • Lesson 11: Interacting with External Systems
    • Lesson 12: Project Development and Best Practices

    Also, feedback is welcome in replies!

  12. Hey hey! I would encourage you to learn skript if you'd like more advanced things. Soon I will be making a full course on skript, and you can keep your eye on my profile for when I post about it. Although, here is an example of how you can use specific block breaks and percentages in scripts!

    on mine of diamond block:
        chance of 10%:
            drop 1 stick named "&3&lRare Drop" at event-block
            send "&b&lRare Drop! Someone obtained a special stick!" to all players

    Please do let me know if this works!

  13. Hey hey! Polilla seemed to mostly cover it. Although, I would encourage to not use console commands with skript and instead use the send title function. Here's an updated script using the send title if you'd like it!
     

    command /newgame:
        permission: "mini.newgame"
        trigger:
            send title "&bSTARTING GAME!" with subtitle "&aGet ready to play!" to all players

    Let me know if it works!

  14. Hey hey! I found two errors in your script:
    1: The capitol T in "Trigger"
    2: "message" should be replaced with "send"
    Heres the updated script!
     

    command /help:
        trigger:
            send "&4Rules:"
            send "&c1. No Spamming in Chat"
            send "&c2. No Spawnkilling"
            send "&c3. No Hacking (Killaura, Fly, etc.)"
            send "&cViolating these rules will result in a strike."
            send "&c2 Strikes and you will be permanently banned."
            send " "
            send "&2Commands:"
            send "&a/sethome & /home"
            send "&a/tpa & /tpahere"
            send "&a/spawn"
            send "&a/help"

    In the updated version, I changed "message" to "send" to match the correct syntax used in most Minecraft scripting plugins. This should fix the issue and display all the lines in your "/help" command. Make sure to test it on your server and verify that it works as expected.

×
×
  • Create New...