☁Rainy Day☁ ||  A Multiplayer Platformer! V3                                             #games #All

Instructions: ------------------------------SERVER 2-----------------------------\nhttps://scratch.mit.edu/projects/424128176\n--------------------------INSTRUCTIONS-------------------------\nArrow keys\nOr Mobile! \n---------------------------NOTES------------------------------------\nWARNING THIS IS HARD!!! (But All Levels Are Possible) ᕕ( ᐛ )ᕗ\n\nThis is my first multiplayer platformer!!! so be nice...\n\nIf you like it make sure to Leave a ❤️, ⭐, and a follow! :)\n\nv2 Added a chat!\nv3 added 3 new levels!\n\n Check out my youtube channel!!! (It's about coding on scratch! Make sure to subscribe!)\n\nhttps://www.youtube.com/channel/UC3FJx1sdBUjLCU1YY9gi0CQ\n\n------------------------------CREDITS-------------------------------\nThanks To @Hockeycat88 for the Awesome thumb!!!\nThanks to @101AppleBerry for the rain sprite\nThanks To @Plant2 For the skip And reset Button \nThanks to @stratfordjames for something on the thumb!\nThanks to @griffpatch for the tutorial!\nThanks to @bookdog17 For everything else!!!\n\n-------------------------------TAGS-----------------------------------\n#games #all #music #platformer #black #orange #Multiplayer #people #rain #rainy #day #grey #clouds #art #first #trending #stories #have #fun #awesome #stories #Animations #tag #somthing #ngp #stgp #sfff\n#book #dog #17 \n\n#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games\n\n #all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n#all\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nhiya!

@Stage\n\n@blank\n\nwhen flag clicked\nrest for (0.25) beats\n\n@Joining scripts\n\nwhen flag clicked\nhide\n\nwhen I receive [join game v]\nshow\nswitch costume to (joining v)\n\nwhen I receive [full v]\nswitch costume to (full v)\n\nwhen I receive [joined v]\nswitch costume to (joined v)\nwait (1) seconds\nhide\n\n@Bad!!!\n\nwhen I receive [next level v]\nchange [my level # v] by (1)\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\n@Player\n\nwhen flag clicked\nshow\n\nwhen flag clicked\nset [max players v] to [8]\nset [my player # v] to [0]\nbroadcast (setup - other players v) and wait\nbroadcast (join game v) and wait\nif <(MY PLAYER #) > []> then\n    broadcast (joined v)\nelse\n    broadcast (Full v)\nend\nbroadcast (begin v)\n\ndefine write (val) to encoded\nset [letter # v] to [1]\nrepeat (length of (val))\n    set [encoded v] to (join (encoded) (item # of (letter (letter #) of (val)) in [code v]))\n    change [letter # v] by (1)\nend\nset [encoded v] to (join (encoded) [00])\n\nwhen I receive [begin v]\ngo to x: (-217) y: (-20)\nset [my level # v] to [1]\nset [x v] to [0]\nset [y v] to [0]\nforever\n    if <(MY PLAYER #) > [0]> then\n        change [y v] by (-1)\n        if <<key (left arrow v) pressed?> or <<mouse down?> and <(x position) > (mouse x)>>> then\n            change [x v] by (-1)\n        end\n        if <<key (right arrow v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>> then\n            change [x v] by (1)\n        end\n        set [x v] to ((x) * (0.9))\n        change x by (x)\n        if <touching (ground v)?> then\n            change y by (1)\n        end\n        if <touching (ground v)?> then\n            change y by (1)\n        end\n        if <touching (ground v)?> then\n            change y by (1)\n        end\n        if <touching (ground v)?> then\n            change y by (1)\n        end\n        if <touching (ground v)?> then\n            change y by (-4)\n            change x by ((x) * (-1))\n            if <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> then\n                set [y v] to [17]\n                if <(x) > [0]> then\n                    set [x v] to [-10]\n                else\n                    set [x v] to [10]\n                end\n            else\n                set [x v] to [0]\n            end\n        end\n        change y by (y)\n        if <touching (ground v)?> then\n            change y by ((y) - ((y) * (2)))\n            set [y v] to [0]\n        end\n        change y by (-1)\n        if <<<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> and <touching (ground v)?>> then\n            set [y v] to [15]\n        end\n        change y by (1)\n        if <(x position) > [222]> then\n            go to x: (-217) y: (-20)\n            broadcast (NEXT LEVEL v)\n        end\n        if <touching color (#7bbae3)?> then\n            set [y v] to [22]\n        end\n        if <<<touching color (#52ff00)?> or <touching color (#832a2a)?>> or <touching color (#ab2b2b)?>> then\n            go to x: (-217) y: (-20)\n        end\n        send cloud data\n    end\nend\n\ndefine set cloud # (player) to (value)\nif <(player) = [1]> then\n    set [☁ p1 v] to (value)\nelse\n    if <(player) = [2]> then\n        set [☁ p2 v] to (value)\n    else\n        if <(player) = [3]> then\n            set [☁ p3 v] to (value)\n        else\n            if <(player) = [4]> then\n                set [☁ p4 v] to (value)\n            else\n                if <(player) = [5]> then\n                    set [☁ p5 v] to (value)\n                else\n                    if <(player) = [6]> then\n                        set [☁ p6 v] to (value)\n                    else\n                        if <(player) = [7]> then\n                            set [☁ p7 v] to (value)\n                        else\n                            if <(player) = [8]> then\n                                set [☁ p8 v] to (value)\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine send cloud data\nset [encoded v] to []\nwrite (my level #) to encoded\nwrite (chat) to encoded\nwrite (round ((timer) * (10))) to encoded\nwrite (x position) to encoded\nwrite (y position) to encoded\nset cloud # (MY PLAYER #) to (encoded)\nsay (chat)\n\nwhen I receive [begin v]\nset [chat v] to (username)\n\nwhen I receive [skip v]\ngo to x: (-217) y: (-20)\n\n@Other Players\n\nwhen flag clicked\nshow\n\ndefine begin decode of (encoded)\nset [encoded v] to (encoded)\nset [letter # v] to [1]\n\ndefine value = read from encoded\nset [value v] to []\nforever\n    set [idx v] to (join (letter (letter #) of (encoded)) (letter ((letter #) + (1)) of (encoded)))\n    change [letter # v] by (2)\n    if <(idx) < [1]> then\n        stop [this script v]\n    end\n    set [value v] to (join (value) (item (idx) of [code v]))\nend\n\nwhen I start as a clone\ngo to (random position v)\n\ndefine setup players\nhide\nset [offline v] to [100]\nset [player # v] to [1]\nrepeat ((MAX PLAYERS) - (1))\n    create clone of (_myself_ v)\n    change [player # v] by (1)\nend\n\nwhen I receive [begin v]\nset [x v] to [0]\nset [y v] to [0]\nforever\n    if <(MY PLAYER #) = (player #)> then\n        set [offline v] to [100]\n        hide\n    else\n        tick\n    end\nend\n\ndefine value = cloud # (player)\nif <(player) = [1]> then\n    set [value v] to (☁ P1)\nelse\n    if <(player) = [2]> then\n        set [value v] to (☁ P2)\n    else\n        if <(player) = [3]> then\n            set [value v] to (☁ P3)\n        else\n            if <(player) = [4]> then\n                set [value v] to (☁ P4)\n            else\n                if <(player) = [5]> then\n                    set [value v] to (☁ P5)\n                else\n                    if <(player) = [6]> then\n                        set [value v] to (☁ P6)\n                    else\n                        if <(player) = [7]> then\n                            set [value v] to (☁ P7)\n                        else\n                            if <(player) = [8]> then\n                                set [value v] to (☁ P8)\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [setup - other players v]\nsetup players\n\ndefine tick\nvalue = cloud # (player #)\nif <(join [A] (value)) = (last value)> then\n    change [offline v] by (1)\n    if <(offline) = [100]> then\n        hide\n    end\nelse\n    set [last value v] to (join [A] (value))\n    if <(offline) > [99]> then\n        show\n    end\n    set [offline v] to [0]\nend\nbegin decode of (value)\nvalue = read from encoded\nif <(value) = (my level #)> then\n    if <[100] > (offline)> then\n        show\n    else\n        hide\n    end\nelse\n    hide\nend\nvalue = read from encoded\nsay (value)\nvalue = read from encoded\nvalue = read from encoded\nset x to (value)\nvalue = read from encoded\nset y to (value)\n\nwhen I receive [join game v]\nvalue = cloud # (player #)\nset [last value v] to (join [A] (value))\nwait (3) seconds\nvalue = cloud # (player #)\nif <(join [A] (value)) = (last value)> then\n    set [my player # v] to (player #)\nend\n\n@ground\n\nwhen I receive [next level v]\nchange [my level # v] by (1)\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\ngo to [front v] layer\nshow\n\n@Rain\n\nwhen flag clicked\nshow\nforever\n    repeat (10)\n        create clone of (_myself_ v)\n        create clone of (_myself_ v)\n    end\n    go to [front v] layer\nend\n\nwhen I start as a clone\nswitch costume to (pick random (1) to (3))\ngo to x: (pick random (-240) to (240)) y: (184)\nglide (pick random (0.005) to (2)) secs to x: (x position) y: (-184)\ndelete this clone\n\n@Sprite4\n\nwhen flag clicked\n\nwhen this sprite clicked\nbroadcast (skip v) and wait\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\n\nwhen I receive [next level v]\nswitch backdrop to (next backdrop v)\n\nwhen backdrop switches to [backdrop13 v]\nhide\n\nwhen I receive [joined v]\nshow\n\nwhen flag clicked\nhide\n\n@skip\n\nwhen this sprite clicked\nbroadcast (NEXT LEVEL v)\nbroadcast (skip v)\n\nwhen backdrop switches to [backdrop13 v]\nhide\n\nwhen I receive [joined v]\nshow\n\nwhen flag clicked\nhide\n\n@thumb\n\nwhen flag clicked\nhide\n\n@Chat\n\nwhen flag clicked\nhide\nswitch costume to (costume1 v)\n\nwhen I receive [begin v]\nshow\nforever\n    if <key (c v) pressed?> then\n        switch costume to (costume2 v)\n        wait (1) seconds\n        repeat until <key (c v) pressed?>\n            if <key (1 v) pressed?> then\n                set [chat v] to [Hello]\n                wait (5) seconds\n                set [chat v] to (username)\n            end\n            if <key (2 v) pressed?> then\n                set [chat v] to [Bye]\n                wait (5) seconds\n                set [chat v] to (username)\n            end\n            if <key (3 v) pressed?> then\n                set [chat v] to [Help]\n                wait (5) seconds\n                set [chat v] to (username)\n            end\n            if <key (4 v) pressed?> then\n                set [chat v] to [Keep Going]\n                wait (5) seconds\n                set [chat v] to (username)\n            end\n            if <key (5 v) pressed?> then\n                set [chat v] to [Going To Skip :\(]\n                wait (5) seconds\n                set [chat v] to (username)\n            end\n            if <key (6 v) pressed?> then\n                set [chat v] to [awesome!]\n                wait (5) seconds\n                set [chat v] to (username)\n            end\n            if <key (7 v) pressed?> then\n                set [chat v] to [Ya]\n                wait (5) seconds\n                set [chat v] to (username)\n            end\n            if <key (8 v) pressed?> then\n                set [chat v] to [Want To Play Again?]\n                wait (5) seconds\n                set [chat v] to (username)\n            end\n            if <key (9 v) pressed?> then\n                set [chat v] to [Watch Me]\n                wait (5) seconds\n                set [chat v] to (username)\n            end\n        end\n        switch costume to (costume1 v)\n        wait (1) seconds\n    end\nend\n\n