Welcome to the PokéCommunity!

Hi there! Thanks for visiting PokéCommunity. We’re a group of Pokémon fans dedicated to providing the best place on the Internet for discussing ideas and sharing fan-made content. Welcome! We’re glad you’re here.

In order to join our community we need you to create an account with us. Doing so will allow you to make posts, submit and view fan art and fan fiction, download fan-made games, and much more. It’s quick and easy; just click here and follow the instructions.

PGM is all set for February. This month, we're playing through a game known as Eevee's Tile Trial. If you wish to earn rewards, please head over to our event thread by clicking on the provided link and give yourself a shot at the game!

Hey Unregistered! How fast can you game? The Marathon II is up and running in Video Game's - compete against your friends to see how quickly you can complete sixty intense in-game challenges. See you there!

Ruby helper is a script made to help people to script in xp much easier, instead of saying:

pbAddPokemon(PBSpecies::BULBASAUR,1)

you can say:

give pokemon PBSpecies::BULBASAUR 1

but that's not all, you may input code from: strings, files, and urls!

you may add custom vars/phrases!

phrases are small lines of code to use (give as an example goes to a function call pbAddScene which takes 3 arguments, type1, arg1, arg2 pokemon is the first argument in my example and bulbasaur is the second then lastly 1 the level)

vars are variables (pokemon is a variable as an example again) pokemon = 'pokemon'

NOTE: A FULL FAQ IS IN THE SCRIPT!

Code:

=begin
Version: 1.0
Author: Hansiec
Description:
Allows you to store very commonly stored data into a smaller string executable
by my Script Helper.
Help:
phrases: a phrase usually calls a small code/function
threads: stored scripts that were recently called
custom_vars: like phrases but can be used alongside functions
Features:
make preset codes/functions to help make scripts easier
reads, stores, and executes threads
reads threads from files
reads threads from webpages
allow in-game adding of phrases (best option for in-game updates through various
features)
build in encrypter (not the best)
threads/phrases are saved alongside variables
removes any unwanted data (like putting in: aaa will have no effect unless there
is an argument needing aaa) but this means that you cannot have spaces in your
variables, x = 10 will not work but x=10 will work
Apps:
addPhrase(phrase, value) -- adds a new phrase into the list
removePhrase(phrase) -- removes a phrase
readUrl(url) -- executes a script from a url
readFile(file name) -- executes a script from a file
readThread(thread) -- executes a script from string
encrpyt(string or integer, enc number) -- encrypts a string or integer
decrypt(string or integer, enc number) -- decrypts a string or integer
Faq:
Q:
How do I call the main functions?
A:
For the main function: $RubyHelper.readThread(thread) for other functions:
$RubyHelper.function
Q:
Why should I use this script?
A:
You can make more advanced scripts easier (like mystery gift):
"url_get url_here gift = url.split('\n'); give pokemon gift[0] gift[1]"
Note that this does not check against multipul gifts, but it does work.
Q:
How do I make a newline? (for something like an if statement)
A:
use either 2 functions: ~~ or ; (this is auto added with phrases only applied to
threads not files/urls)
Q:
How do I use functions?
A:
simmilar to normal but slightly different: functionName(argument amount),
the argument amount indicates the amount of arguments in the function.
(this only takes effect in the phrases section otherwise it is normal usage.)
Q:
What are phrases?
A:
Phrases are preset codes/functions which can reduce the amount of work needed
to make a script.
Q:
What are threads?
A:
Threads are code inside strings (example: "phrase arg1" is a thread) threads can
also include phrases and code together (example: "pl print('Bob')" will work)
Q:
How do I use the encrypter?
A:
"encrypt string integer", the same arguments for decrypting
Q:
What is the ~ in the threads?
A:
This is mostly for variables, what it does though is to notify not to add the ;
at the end of the phrase.
Q:
I get an error with the url functions!
A:
Insert the socket functions included in the demo (poke essentials also includes this)
Q:
I get an error with using phrases!
A:
Many things can go wrong here but try these: spelling
(string still need a '' or "" with them), you can't use phrases as arguments
examples: (encrypt url_get 'http://www.google.com' 10) is wrong use this:
(url_get 'http://www.google.com' encrypt url 10), you may however use custom vars
=end
# var_name => value (no spaces in the name)
$custom_vars = {
"url" => "$url", # url variable
"latest_thread" => "getThread($threads.length-2)", # the last thread besides this thread
"pokemon" => "'pokemon'",
"badge" => "'badge'",
"item" => "'item'",
"egg" => "'egg'",
"money" => "'money'"
# "var_name" => "value (strings still need to be defined with '' or "")"
}
# sample: "give_pokemon PBSpecies::BULBASAUR 2"
$phrases = {
"give" => "pbAddScene(3)",
"makes" => "==~", # used with an if
"done" => "end", # another addition, this allows you to put in done
"give_pokemon" => "pbAddPokemon(2)", # give's a pokemon
"give_item" => "Kernel.pbReceiveItem(1)", # give's an item
"give_egg" => "pbGenerateEgg(1)", # give's an egg
"encrypt" => "encrypt(2)", # encrypt's string/integer
"decrypt" => "decrypt(2)", # decrypt's a string/integer
"url_get" => "$url = pbDownloadToString(1)", # gets a url
"url_post" => "$url = pbPostDataToString(2)", # sends post to a url and get's the output
"url_to_file" => "pbPostToFile(2)", # same as post but saves the text in a file
"print" => "print~", # print function 0 = string
"p" => "print~", # print function
# these are test functions, they may be delted at your own will
"pl" => "print('This is a test to show you how this works!')",
"pl2" => "print('source code of thread: '+getThread())",
# "phrase" => "function or code (argument amount)"
}
$threads = [] # used to store scripts that were called
PHRASEVAR = 24
THREADVAR = 25
class ScriptHelper
def addPhrase(phrase,value)
# Adds a new phrase to the list
$phrases[phrase] = value
end
def saveStatus()
# save the Phrase/Thread status
$game_variables[THREADVAR] = $threads
$game_variables[PHRASEVAR] = $phrases
end
def loadStatus()
# load the Phrase/Thread status
if $game_variables[PHRASEVAR] != 0
$phrases = $game_variables[PHRASEVAR]
$threads = $game_variables[THREADVAR]
end
end
def removePhrase(phrase)
# delete a phrase
$phrases[phrase]=nil
end
def saveThread(thread)
# saves a thread
saveStatus()
$threads.push(thread)
end
def getThread(id=-1)
# get's a thread from the saved list
return $threads[id] if $threads.length-1 >= id and id > -1
return $threads[$threads.length-1]
end
def splitThread(thread)
# splices the thread into readable strings
saveThread(thread) # save's the thread
str = thread.split(" ") # split the thread into different strings
return str
end
def readUrl(url)
act=pbDownloadToString(url).split("\n")
string=act[0]
for i in 0..act.length-2
string+="; #{act[i+1]}"
end
self.readThread(string)
end
def readFile(fname)
act=IO.readlines(fname)
string=act[0]
for i in 0..act.length-2
string+="; #{act[i+1]}"
end
self.readThread(string)
end
def readThread(thread)
# reads the thread then executes the thread.
for i in $custom_vars.keys
eval(i+" = "+$custom_vars[i])
end
loadStatus()
str = splitThread(thread)
for i in 0..str.length-1
oth=str[i].split(".")
if $phrases[str[i]] != nil
str[i] = $phrases[str[i]]
nx = "o"
nx[0] = str[i][str[i].length-1]
if nx == "~"
str[i]=str[i].split("~")[0]
else
str[i]="#{str[i]};"
end
num=0
for y in 0..str[i].length-1
x="a"
x[0]=str[i][y]
for xx in 0..9
if x == "#{xx}"
num = xx
break
end
end
end
if num != 0
ary=str[i].split("(")
new=ary[0]+"("+str[i+1].to_s
for j in 0..num-2
if str[i+(j+2)] == nil
break
else
new+=","+str[i+(j+2)].to_s
end
end
new+=")"
str[i]=new
end
elsif $phrases[oth[0]] != nil
nx = "o"
str[i]=$phrases[oth[0]]
nx[0] = str[i][str[i].length-1]
if nx == "~"
str[i]=$phrases[oth[0]]+"."+oth[1]
str[i]=str[i].split("~")[0]+str[i].split("~")[1]
else
str[i]=$phrases[oth[0]]+"."+oth[1]
str[i]+=";"
end
end
end
code=""
string = false
string2 = false
_if = false
for k in str
for s in 0..k.length
# string testing must be done before testing the rest.
x="1"
x[0]=k[s] if k[s] != nil
if x == "'"
if string == true
string = false
else
string = true
end
break
end
if x == '"'
if string2 == true
string2 = false
else
string2 = true
end
break
end
if x == ";" or k == "~~" or k == "\n" or k == "then"
_if = false
end
end
for l in 0..k.length
x="1"
x[0]=k[l] if k[l] != nil
allow = false
for aaa in $phrases.keys
if $phrases[aaa] == k or $phrases[aaa] == k+"~"
allow = true
break
end
end
if k == "if"
_if = true
end
if _if == true or allow == true or string == true or string2 == true or x == "$" or k == "~~" or x == ";" or x == "=" or x == "(" or x == ")" or x == "{" or x == "}" or x == "[" or x == "]" or x == "'" or x == '"'
if k == "~~" or k == "\n"
k = " ;"
end
code = "#{code} #{k}"
break
end
end
end
eval(code)
return true
#rescue
return false
end
end
# not the best encrypter but it does somewhat encrypt stuff (only string/integers)
def encrypt(str,val)
val = val.to_i
if str.is_a?(String)
new=""
for i in 0..str.length-1
new+=str[i]+val+((i/2).floor)
end
else
new = str * val + 17 / 8 * 88 - val + str * 1142 - 987 - (val+str*2)
end
return new
end
def decrypt(str,val)
val = val.to_i
if str.is_a?(String)
new=""
for i in 0..str.length-1
new+=str[i]-val-((i/2).floor)
end
else
new = (val+str*2) + 987 + 1142 / str - val + 88 / 8 * 17 - val / str
end
return new
end
# some extras
def pbAddScene(type, arg1, arg2)
if type == "pokemon" # pokemon
pbAddPokemon(arg1, arg2)
elsif type == "item" # item
Kernel.pbReceiveItem(arg1)
elsif type == "egg" # egg
if $Trainer.party.length < 6
pbGenerateEgg(arg1)
else
Kernel.pbMessage(_INTL("Not enough space in your party for the egg."))
end
elsif type == "badge" # badge
$Trainer.badges[arg1] == arg2
elsif type == "money" # money
$Trainer.money += arg1
end
end
# finally we set the variable
$RubyHelper = ScriptHelper.new

The PokéCommunity

Meta

Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, or The Pokémon Company International. We just love Pokémon.