Scripts & Tutorials This forum is for scripts and code, as well as all kinds of tutorials, software, tools and so forth. Remember to give credit!
The thread revival limit does not apply here.

Reply
 
Thread Tools
  #1    
Old October 3rd, 2012 (10:13 AM). Edited October 3rd, 2012 by Umbra.
Umbra's Avatar
Umbra Umbra is offline
  • Platinum Tier
 
Join Date: Aug 2009
Location: Nearby my feet.
Age: 20
Gender: Female
Nature: Calm
Posts: 1,745

Intro:

As it is soon my birthday, I shall share some scripts (and programs) I have made for anyone to use, I will slowly upload them as I get the chance.

Current Scripts/Programs:

World Map Generator (program): Generates realistic looking world maps in seconds!
Class To String (rgss script): Convert any class to a string (also supports compression)
LoadFileToString (rgss script): Ummm this can load .png files (actually any file type) into a string in rmxp.
DLC script (rgss script): only 4 lines of code, this can download any file to a proper file (as long as you have the exact link of it and it's not too big)
Json reader (rgss script): Creates and parses Json data

Scripts:

Code:
################################################################################
# Class To String and String To Class
# By Hansiec
# Safely Converts a class to a compressed string and vise-versa
# If it failed it returns "Failed to convert" and also popups up a message.
# Uses:
# Fast compression (and storage) of classes (no need to input any data)
# Fast decompression of classes (never fails to load properly!)
# This could be used in some systems which requires to send sensitive data (or
# otherwise difficult to handle data) Example: Pokemon, Trainers, Ect.
################################################################################

def class_to_string(class_var) save_data(class_var,"Temp_File") data = "" file = File.open("Temp_File", 'rb') data += file.read() while !file.eof? file.close File.delete("Temp_File") return compress(data) rescue print "Failed to convert #{class_var}" return "Failed to convert #{class_var}" end

def string_to_class(string) file = File.open("Temp_File", 'wb') file.write(decompress(string)) file.close ret = load_data("Temp_File") File.delete("Temp_File") return ret rescue print "Failed to convert #{string}" return "Failed to convert #{string}" end

def compress(string) z = Zlib::Deflate.new(2) dst = z.deflate(string, Zlib::FINISH) z.close dst end

def decompress(string) zstream = Zlib::Inflate.new buf = zstream.inflate(string) zstream.finish zstream.close buf end

################################################################################ # LoadFileToString # By Hansiec # Uses: # Can load and save files from/to your computer and also allows you to compress # or decompress ################################################################################

def loadFile(file,compress_d=0) return if file == "" data = "" file = File.open(file, 'rb') data += file.read() while !file.eof? file.close data = compress(data) if compress_d == 1 data = decompress(data) if compress_d == 2 return data end

def saveFile(file,data,compress_d=0) return if file == "" || data == "" data = compress(data) if compress_d == 1 data = decompress(data) if compress_d == 2 file = File.open(file, 'wb') file.write(data) file.close end

def compress(string) z = Zlib::Deflate.new(2) dst = z.deflate(string, Zlib::FINISH) z.close dst end

def decompress(string) zstream = Zlib::Inflate.new buf = zstream.inflate(string) zstream.finish zstream.close buf end

################################################################################ # Downloaded Content Script # By Hansiec # Uses: # Not really any since this is actually a 4 lined script which almost anyone can # make. You cannot yet download HUGE files as of the hangup will uccor. ################################################################################

def pbDownloadContent(url, filename="") filename = url.split("/")[url.split("/").length-1] if filename == "" pbDownloadData(url,filename) end

################################################################################ # Json Reader/Writer # By Hansiec # Uses: # Converts data to the Json format and loads data from the Json format # Input any normal data type (String,Integer,Array,Hash, or Boolean) and my # System converts it into Json! ################################################################################

def toJson(data,name="") ret = "" ret = name+"=" if name != "" if data.is_a?(String) ret+="\""+data+"\"" elsif data.is_a?(Numeric) ret+=data.to_s elsif data.is_a?(Array) ret+="[" data2="" for i in 0..data.length-1 if data2 == "" data2=toJson(data[i]) else data2+=","+toJson(data[i]) end end ret+=data2+"]" elsif data.is_a?(Hash) ret+="{" data2="" for i in data.keys if data2 == "" data2='"'+i+'"'+"=>"+toJson(data[i]) else data2+=","+'"'+i+'"'+"=>"+toJson(data[i]) end end ret+=data2+"}" elsif data == false ret+="false" elsif data == true ret+="true" elsif data == nil ret+="nil" else return 'Cannot convert!' end return ret end

def fromJson(data) return eval(data) end

Programs:

World Map Generator: https://rapidshare.com/files/4008392752/World%20Map%20Generator.zip

More scripts and programs to come soon!

Credits:
Hansiec -- Creator of all scripts
Game Maker -- Program used to create the World Map Generator

Reply With Quote

Relevant Advertising!

  #2    
Old October 4th, 2012 (7:31 AM).
Umbra's Avatar
Umbra Umbra is offline
  • Platinum Tier
 
Join Date: Aug 2009
Location: Nearby my feet.
Age: 20
Gender: Female
Nature: Calm
Posts: 1,745

Alright script pack 2:

Encryption
Ini reader
Pseudo Generator

Attached Files
File Type: zip Script Pack.zip‎ (39.0 KB, 39 views) (Save to Dropbox)
Reply With Quote
  #3    
Old October 4th, 2012 (8:30 AM).
~Angel~'s Avatar
~Angel~ ~Angel~ is offline
Lead developer for Pokémon Millennium
     
    Join Date: Mar 2010
    Location: United States Of America.
    Age: 19
    Gender: Male
    Nature: Quiet
    Posts: 287

    Hansiec this is great work as usual :D

    Reply With Quote
      #4    
    Old October 4th, 2012 (10:42 AM).
    Umbra's Avatar
    Umbra Umbra is offline
    • Platinum Tier
     
    Join Date: Aug 2009
    Location: Nearby my feet.
    Age: 20
    Gender: Female
    Nature: Calm
    Posts: 1,745

    Quote:
    Originally Posted by Rick1234 View Post
    Hansiec this is great work as usual :D

    thanks, I still have some more I can release tomorrow and for a few days actually, so check in daily.

    Reply With Quote
      #5    
    Old October 4th, 2012 (12:24 PM).
    ~Angel~'s Avatar
    ~Angel~ ~Angel~ is offline
    Lead developer for Pokémon Millennium
       
      Join Date: Mar 2010
      Location: United States Of America.
      Age: 19
      Gender: Male
      Nature: Quiet
      Posts: 287

      Quote:
      Originally Posted by hansiec View Post
      thanks, I still have some more I can release tomorrow and for a few days actually, so check in daily.

      I will :D ;D You really should make a GTS system for Pokemon essentials xD

      Reply With Quote
        #6    
      Old October 4th, 2012 (1:04 PM).
      Umbra's Avatar
      Umbra Umbra is offline
      • Platinum Tier
       
      Join Date: Aug 2009
      Location: Nearby my feet.
      Age: 20
      Gender: Female
      Nature: Calm
      Posts: 1,745

      Quote:
      Originally Posted by Rick1234 View Post
      I will :D ;D You really should make a GTS system for Pokemon essentials xD

      I have one pending currently.

      Reply With Quote
        #7    
      Old October 4th, 2012 (3:50 PM).
      ~Angel~'s Avatar
      ~Angel~ ~Angel~ is offline
      Lead developer for Pokémon Millennium
         
        Join Date: Mar 2010
        Location: United States Of America.
        Age: 19
        Gender: Male
        Nature: Quiet
        Posts: 287

        Quote:
        Originally Posted by hansiec View Post
        I have one pending currently.

        Nice :D Happy early birthday btw I will forget xD

        Reply With Quote
          #8    
        Old October 5th, 2012 (7:30 AM).
        Umbra's Avatar
        Umbra Umbra is offline
        • Platinum Tier
         
        Join Date: Aug 2009
        Location: Nearby my feet.
        Age: 20
        Gender: Female
        Nature: Calm
        Posts: 1,745

        Mouse testing

        Code:
        ################################################################################
        # Simple mouse Testing
        # By Hansiec
        # Uses:
        # Shows some usage of Essentials' built in mouse functions
        ################################################################################

        def is_pressing_mouse_left? return Input.pressex?(Input::LeftMouseKey) end

        def is_clicking_mouse_left? return Input.pressex?(Input::LeftMouseKey) end

        def is_pressing_mouse_right? return Input.pressex?(Input::RightMouseKey) end

        def is_clicking_mouse_right? return Input.pressex?(Input::RightMouseKey) end

        def get_mouse_position pos = Mouse.getMousePos if pos == nil print "Mouse is not on the screen!" else print "Your mouse is at X: #{pos[0]} Y: #{pos[1]}" end return pos end

        get_mouse_position

        And some other scripts:
        https://rapidshare.com/files/3556486514/Scripts.zip

        Reply With Quote
          #9    
        Old October 5th, 2012 (8:47 AM).
        venom12's Avatar
        venom12 venom12 is offline
        Pokemon Crystal Rain Relased
           
          Join Date: Sep 2006
          Age: 26
          Gender: Male
          Nature: Adamant
          Posts: 529

          Thanks for scripts, i like the one wich reads script from url, i needed one like that thanks.

          Reply With Quote
            #10    
          Old October 5th, 2012 (8:50 AM).
          Umbra's Avatar
          Umbra Umbra is offline
          • Platinum Tier
           
          Join Date: Aug 2009
          Location: Nearby my feet.
          Age: 20
          Gender: Female
          Nature: Calm
          Posts: 1,745

          Yeah, I thought that people would like that one, also for safety you can also encrypt the url's script!

          Reply With Quote
            #11    
          Old October 6th, 2012 (9:04 AM).
          Umbra's Avatar
          Umbra Umbra is offline
          • Platinum Tier
           
          Join Date: Aug 2009
          Location: Nearby my feet.
          Age: 20
          Gender: Female
          Nature: Calm
          Posts: 1,745

          Alright today I got something new, a socket handler!

          It's easy to use but needs some serious updates to actually work properly:

          Code:
          ################################################################################
          # Sockets Extension
          # By Hansiec
          # Uses:
          # Connections though networking Includes basic functions
          # Comes alongside with a few basic functions that could be helpful to some people
          # Features:
          #  *Connect to any server
          #  *Choose a "Host" which is a player not a server (which means you do not need
          #  to handle your servers as people will need to setup their own)
          #  *Easy to use data sharing (by using the send_data(receiver,data) function)
          #  *Comes with a few functions built it such as item handling
          #  *Specify this player only messages.
          #  *Easily add data (by using the add_data(data) function)
          #  *Easily specify a player to send data to (by using the specify_player(player,
          #   data) function)
          # TODO:
          #  * Add usernames
          #  * Add passwords
          #  * Add permanent user ids
          #  * Add functions to get a player's id
          ################################################################################

          class SocketHandler attr_accessor :socket attr_accessor :data attr_accessor :connection_handle attr_accessor :host attr_accessor :new_data

          # Startup the system def initialize(host, port, host2) @socket=TCPSocket.new(host, port) @data = [] @connection_handle = rand(9999999) @host = host2 @new_data = "" end

          # so you want to send some data? specify a user and data (-1 is for everyone) def send_data(receiver,data) @socket.send(data) end

          # Update the system def update [email protected](0xfff).split("\n") parse_data(data) if @host send_data(-1, @new_data) reset_data end end

          def parse_data(data) for line in data # First we must check if we may access the data if line.include?("p=#{get_handle}") || line.include?("p=-1") if line.include?("#{get_handle}") line=line.split("p=#{get_handle}")[1] else line=line.split("p=-1")[1] end if !edit_variable(line) if !edit_items(line) if !edit_pokemon(line) edit_misc(line) end end end # End of checks end end end

          # Handles variable/switch data def edit_variable(line) if line.include?("var") line=line.split("var")[1] $game_variables[line.replace("var").split(",")[0].to_i]=line.split(",")[1].to_i return true elsif line.include?("swt") line=line.split("swt")[1] $game_switches[line.replace("swt").split(",")[0].to_i]=split(",")[1].to_i return true end return false end

          # Handles item data def edit_items(line) if line.include?("give_item") line=line.split("give_item")[1] eval("pbReceiveItem("+line+")") return true elsif line.include?("delete_item") line=line.split("delete_item")[1] eval("$PokemonBag.pbDeleteItem("+line+")") return true end return false end

          # Handles pokemon data def edit_pokemon(line) if line.include?("give_pokemon") line=line.replace("give_pokemon") if line.include?("silent") line=line.split("give_pokemon")[1] pbAddPokemonSilent(line.split(",")[0], line.split(",")[1]) else pbAddPokemon(line.split(",")[0], line.split(",")[1]) end return true elsif line.include?("take_pokemon") line=line.split("take_pokemon")[1] pbRemovePokemonAt(line.replace("take_pokemon").to_i) return true end return false end

          # Handles un-classed data def edit_misc(line) if line.include?("message") Kernel.pbMessage(_INTL(line.split("message ")[1])) return true end return false end

          # resets the data to the default settings def reset_data @new_data = "" end

          # adds data to send def add_data(data) @new_data+="\n"+data end

          # adds player specifics on the data (use once per data) def specify_player(player,data) return "p=#{player} data" end

          # Returns the player's connection handle def get_handle return @connection_handle end

          end

          # You may delete these lines below! REALLY DO SO! $s=SocketHandler.new("localhost", 3306, true) $s.parse_data(["p=-1 message This is a test socket!", "p=#{$s.get_handle} message Testing specific player only!"])

          the update function is rather bare for now, I hope you all enjoy this one!

          Reply With Quote
            #12    
          Old October 6th, 2012 (3:36 PM).
          FL's Avatar
          FL FL is offline
          Pokémon Island Creator
             
            Join Date: Sep 2010
            Gender: Male
            Posts: 1,698

            Nice script, I can't believe that I can't think of class_to_string/string_to_class before.

            The PokemonBoxManager script section (only in older versions) had a Json reader (I am not sure).

            __________________

            Reply With Quote
              #13    
            Old October 7th, 2012 (10:06 AM).
            Umbra's Avatar
            Umbra Umbra is offline
            • Platinum Tier
             
            Join Date: Aug 2009
            Location: Nearby my feet.
            Age: 20
            Gender: Female
            Nature: Calm
            Posts: 1,745

            Quote:
            Originally Posted by FL . View Post
            Nice script, I can't believe that I can't think of class_to_string/string_to_class before.

            The PokemonBoxManager script section (only in older versions) had a Json reader (I am not sure).

            I mainly made the class_to_string to ease the use of systems such as gts, the others I made either a while ago, randomly (the Json script for example), or I thought it could help people (World Map Generator for example).

            Also, I had no idea the PokemonBoxManager script had a Json reader.

            Reply With Quote
            Reply
            Quick Reply

            Sponsored Links
            Thread Tools

            Posting Rules
            You may not post new threads
            You may not post replies
            You may not post attachments
            You may not edit your posts

            BB code is On
            Smilies are On
            [IMG] code is On
            HTML code is Off

            Forum Jump


            All times are GMT -8. The time now is 12:22 AM.