• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Trading Card Game 2 protagonist in the poll by clicking here.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Archive] Pokemon Essentials: Starter Kit for RPG Maker XP

Status
Not open for further replies.
I can't get the online trading to work. I've turned off my firewalls, forwarded all the required ports, downloaded everything and followed directions exactly, too. I can get to the register screen, but the server disconnects before I try to log in or submit my registration :^/

I'm using Windows Vista.

Also, does anyone know if an online battling system is being worked on? :^)
 
I can't get the online trading to work. I've turned off my firewalls, forwarded all the required ports, downloaded everything and followed directions exactly, too. I can get to the register screen, but the server disconnects before I try to log in or submit my registration :^/

I'm using Windows Vista.

Also, does anyone know if an online battling system is being worked on? :^)

like i said before the online trading system is really bad. i had trouble with it on xp and i dont even want to see how bad it is for vista

and as far as i know no online fighting system is being made.
 
Aww, such a shame... Hopefully it will improve, though.

Question: How do you set the IVs for Pokemon?
 
Aww, such a shame... Hopefully it will improve, though.

Question: How do you set the IVs for Pokemon?

i believe the IVs can be set in the pokemon.txt in the PBS folder
 
No, no, those are the base stats! I want to change the Pokemon's Individual Value (it's the value from 0 to 31). For example, setting the IVs for a Pokemon before a forced wild encounter or changing the IVs of a Pokemon in your party--things like that.
 
Each Pokemon has an array named "iv" which specifies the Individual Values of the Pokemon. Be sure to set each of them
from 0 through 31 and to call the "calcStats" method to recalculate the Pokemon's stats. Here is an example that sets the Individual Values of the first Pokemon in the party.

Code:
# Get first Pokemon
pokemon=$Trainer.party[0]
# Set all IVs to 20
pokemon.iv[0]=20 # HP
pokemon.iv[1]=20 # Attack
pokemon.iv[2]=20 # Defense
pokemon.iv[3]=20 # Speed
pokemon.iv[4]=20 # Special Attack
pokemon.iv[5]=20 # Special Defense
# Recalculate stats
pokemon.calcStats

To change a wild Pokemon's IVs, you must create an event handler for the onWildPokemonCreate event,
which runs code only if a certain switch (here, switch 30) is on. (You would set the switch to ON before
a wild battle, and set it to OFF after.) Here's an example:
Code:
Events.onWildPokemonCreate+=proc {|sender,e|
 # Get the wild Pokemon
 pokemon=e[0]
 # Run only if switch 30 is on
 if $game_switches[30]
  # Set all IVs to 20
  pokemon.iv[0]=20 # HP
  pokemon.iv[1]=20 # Attack
  pokemon.iv[2]=20 # Defense
  pokemon.iv[3]=20 # Speed
  pokemon.iv[4]=20 # Special Attack
  pokemon.iv[5]=20 # Special Defense
  # Recalculate stats
  pokemon.calcStats
 end
}

The "onWildPokemonCreate" event is very flexible. It allows you to dynamically modify the Pokemon battle according to the situation. For example, you can randomly change its Pokemon species or make its level fluctuate somewhat.

Similar events include "onStepTaken", whenever the player takes a step, and "onMapChange", whenever the map changes.
 
Last edited:
I must say, bravo. I haven't actually tried it yet, but I'm sure it's quite good. But there are a few things I am wondering about it.

1) Would it be possible for you to make a patch file to download every time you update Pokemon essentials for those who already have it? It would take so much less time then to have to download the whole thing over and over again. Better yet, make it automatically or manually check for, download, and install updates. :D

2) Why Pokemon Ruby/Sapphire and not others? Why not ADD Leaf Green/Fire Red, etc.?

3) Will you be making poke essentials compatible with RMVX?
 
Razor Rage:

There are change log files with each release. They can't be used like patch files, unfortunately.

---

The following add-on I created today implements moves that require keyboard input in order to use. Put the code below in a new script section in the script editor.
Code:
class PokeBattle_Move_Blitz < PokeBattle_Move
 KEYHASH={
   :A=>0x41,:B=>0x42,:C=>0x43,:D=>0x44,
   :E=>0x45,:F=>0x46,:G=>0x47,:H=>0x48,
   :I=>0x49,:J=>0x4a,:K=>0x4b,:L=>0x4c,
   :M=>0x4D,:N=>0x4e,:O=>0x4f,:P=>0x50,
   :Q=>0x51,:R=>0x52,:S=>0x53,:T=>0x54,
   :U=>0x55,:V=>0x56,:W=>0x57,:X=>0x58,
   :Y=>0x59,:Z=>0x5a,:NUM_0=>0x30,:NUM_1=>0x31,
   :NUM_2=>0x32,:NUM_3=>0x33,:NUM_4=>0x34,:NUM_5=>0x35,
   :NUM_6=>0x36,:NUM_7=>0x37,:NUM_8=>0x38,:NUM_9=>0x39,
   :UP=>0x26,:DOWN=>0x28,:LEFT=>0x25,:RIGHT=>0x27,
   :SPACE=>0x20,:ENTER=>0x0D,:TAB=>0x09
 }
 def pbDisplayUseMessage(attacker)
  ret=super
  if @battle.pbOwnedByPlayer?(attacker.index)
   @[email protected](@keys)
   if @time<0
    @battle.pbDisplay(_INTL("But it failed!"))
    return -1
   end
  else
   @[email protected](30)*@keys.length
  end
  return ret
 end
 def pbBaseDamage(basedmg,attacker,opponent)
  return 20 if !@time || @time<0
  timeAverage=@time/[1,@keys.length].max
  return 20 if timeAverage>30
  return 40 if timeAverage>25
  return 60 if timeAverage>20
  return 80 if timeAverage>15
  return 100 if timeAverage>10
  return 150 if timeAverage>5
  return 200
 end
 def self.triggerKeyState(key)
  # -1: no keys pressed; 0: wrong key pressed; 1: correct key pressed
  correctKey=(KEYHASH[key]) ? KEYHASH[key] : 0x20
  # check wrong keys first
  for i in KEYHASH.values
   if i!=correctKey
    return 0 if Input.triggerex?(i)
   end
  end
  # then check correct key
  return (Input.triggerex?(correctKey)) ? 1 : -1
 end
 def self.getKey(key)
  return (KEYHASH[key]) ? KEYHASH[key] : 0x20
 end
end

class PokeBattle_Move_110 < PokeBattle_Move_Blitz
 def initialize(battle,move)
  super
  @keys=[:A,:B,:UP,:DOWN]
 end
end

class PokeBattle_Move_111 < PokeBattle_Move_Blitz
 def initialize(battle,move)
  super
  @keys=[:X,:W,:LEFT,:RIGHT]
 end
end

class PokeBattle_Move_112 < PokeBattle_Move_Blitz
 def initialize(battle,move)
  super
  @keys=[:Z,:Q,:P,:M]
 end
end


class PokeBattle_Scene
 def pbBlitz(keys)
  @briefmessage=false
  blitzwindow=Window_AdvancedTextPokemon.newWithSize("",0,Graphics.height-96-64,Graphics.width*2/3,64)
  blitzwindow.z=100001
  keystates=[0,0,0,0]
  start=Graphics.frame_count
  time=0
  penalty=0
  blitzCount=0
  blitzCurrent=0
  shownTime=0
  failures=0
  loop do
   Graphics.update
   Input.update
   blitzwindow.update
   needRefresh=false
   if shownTime%30 == 0
    blitzCount+=1
    needRefresh=true
    if blitzCount>keys.length
     Audio.se_play("Audio/SE/buzzer.wav")
     time=-1
     break
    end
   end
   keyState=PokeBattle_Move_Blitz.triggerKeyState(keys[blitzCurrent])
   if keyState>=0
    if keyState==1 # Correct
     Audio.se_play(pbGetDecisionSE)
     keystates[blitzCurrent]=1
    else # Incorrect
     Audio.se_play("Audio/SE/buzzer.wav")
     keystates[blitzCurrent]=2
     penalty+=30
     failures+=1
    end
    blitzCurrent+=1
    if blitzCurrent>=keys.length
     if failures==keys.length
      time=-1
      penalty=0
     end
     break
    end
    shownTime=0
    blitzCount=blitzCurrent+1 if blitzCount<blitzCurrent+1
    needRefresh=true
   end
   if needRefresh
    newtext=""
    for i in 0...blitzCount
     newtext+="   " if i>0
     if keystates[i]==1 #Correct
      newtext+="<c2=06644bd2>"+keys[i].to_s+"</c2>"
     elsif keystates[i]==2 # Incorrect
      newtext+="<c2=043c3aff>"+keys[i].to_s+"</c2>"
     else
      newtext+=keys[i].to_s
     end
    end
    blitzwindow.text=newtext
   end
   time+=1
   shownTime+=1
  end
  blitzwindow.dispose
  return time+penalty
 end
end

In addition, add the following three lines to the end of the file PBS/moves.txt . These are three moves that use the new keyboard input functionality and whose damage depends on skill and timing.
Code:
355,FIREBLITZ,FIRE BLITZ,110,1,FIRE,Special,100,15,0,00,0,bef,Cool,"A fire move whose damage depends on skill and timing."
356,ICEBLITZ,ICE BLITZ,111,1,ICE,Special,100,15,0,00,0,bef,Cool,"An ice move whose damage depends on skill and timing."
357,THUNDERBLITZ,THUNDERBLITZ,112,1,ELECTRIC,Special,100,15,0,00,0,bef,Cool,"A thunder move whose damage depends on skill and timing."
 
Last edited:
Ok, i have a HUGE question to ask,

How would i make it so that when you catch one kind of pokemon, you automatically get the information for another pokemon. (i am planing on making "sub spiesies" of pokemon. brock is always saying that this pokemon or that pokemon might be a new one of that spiecies. for instance, at one point he says that he thinks that ash's buterfree is a diffrent type of butterfree then the others in the area.)
 
Razor Rage:

There are change log files with each release. They can't be used like patch files, unfortunately.

---

The following add-on I created today implements moves that require keyboard input in order to use. Put the code below in a new script section in the script editor.
Code:
class PokeBattle_Move_Blitz < PokeBattle_Move
 KEYHASH={
   :A=>0x41,:B=>0x42,:C=>0x43,:D=>0x44,
   :E=>0x45,:F=>0x46,:G=>0x47,:H=>0x48,
   :I=>0x49,:J=>0x4a,:K=>0x4b,:L=>0x4c,
   :M=>0x4D,:N=>0x4e,:O=>0x4f,:P=>0x50,
   :Q=>0x51,:R=>0x52,:S=>0x53,:T=>0x54,
   :U=>0x55,:V=>0x56,:W=>0x57,:X=>0x58,
   :Y=>0x59,:Z=>0x5a,:NUM_0=>0x30,:NUM_1=>0x31,
   :NUM_2=>0x32,:NUM_3=>0x33,:NUM_4=>0x34,:NUM_5=>0x35,
   :NUM_6=>0x36,:NUM_7=>0x37,:NUM_8=>0x38,:NUM_9=>0x39,
   :UP=>0x26,:DOWN=>0x28,:LEFT=>0x25,:RIGHT=>0x27,
   :SPACE=>0x20,:ENTER=>0x0D,:TAB=>0x09
 }
 def pbDisplayUseMessage(attacker)
  ret=super
  if @battle.pbOwnedByPlayer?(attacker.index)
   @[email protected](@keys)
   if @time<0
    @battle.pbDisplay(_INTL("But it failed!"))
    return -1
   end
  else
   @[email protected](30)*@keys.length
  end
  return ret
 end
 def pbBaseDamage(basedmg,attacker,opponent)
  return 20 if !@time || @time<0
  timeAverage=@time/[1,@keys.length].max
  return 20 if timeAverage>30
  return 40 if timeAverage>25
  return 60 if timeAverage>20
  return 80 if timeAverage>15
  return 100 if timeAverage>10
  return 150 if timeAverage>5
  return 200
 end
 def self.triggerKeyState(key)
  # -1: no keys pressed; 0: wrong key pressed; 1: correct key pressed
  correctKey=(KEYHASH[key]) ? KEYHASH[key] : 0x20
  # check wrong keys first
  for i in KEYHASH.values
   if i!=correctKey
    return 0 if Input.triggerex?(i)
   end
  end
  # then check correct key
  return (Input.triggerex?(correctKey)) ? 1 : -1
 end
 def self.getKey(key)
  return (KEYHASH[key]) ? KEYHASH[key] : 0x20
 end
end

class PokeBattle_Move_110 < PokeBattle_Move_Blitz
 def initialize(battle,move)
  super
  @keys=[:A,:B,:UP,:DOWN]
 end
end

class PokeBattle_Move_111 < PokeBattle_Move_Blitz
 def initialize(battle,move)
  super
  @keys=[:X,:W,:LEFT,:RIGHT]
 end
end

class PokeBattle_Move_112 < PokeBattle_Move_Blitz
 def initialize(battle,move)
  super
  @keys=[:Z,:Q,:P,:M]
 end
end


class PokeBattle_Scene
 def pbBlitz(keys)
  @briefmessage=false
  blitzwindow=Window_AdvancedTextPokemon.newWithSize("",0,Graphics.height-96-64,Graphics.width*2/3,64)
  blitzwindow.z=100001
  keystates=[0,0,0,0]
  start=Graphics.frame_count
  time=0
  penalty=0
  blitzCount=0
  blitzCurrent=0
  shownTime=0
  failures=0
  loop do
   Graphics.update
   Input.update
   blitzwindow.update
   needRefresh=false
   if shownTime%30 == 0
    blitzCount+=1
    needRefresh=true
    if blitzCount>keys.length
     Audio.se_play("Audio/SE/buzzer.wav")
     time=-1
     break
    end
   end
   keyState=PokeBattle_Move_Blitz.triggerKeyState(keys[blitzCurrent])
   if keyState>=0
    if keyState==1 # Correct
     Audio.se_play(pbGetDecisionSE)
     keystates[blitzCurrent]=1
    else # Incorrect
     Audio.se_play("Audio/SE/buzzer.wav")
     keystates[blitzCurrent]=2
     penalty+=30
     failures+=1
    end
    blitzCurrent+=1
    if blitzCurrent>=keys.length
     if failures==keys.length
      time=-1
      penalty=0
     end
     break
    end
    shownTime=0
    blitzCount=blitzCurrent+1 if blitzCount<blitzCurrent+1
    needRefresh=true
   end
   if needRefresh
    newtext=""
    for i in 0...blitzCount
     newtext+="   " if i>0
     if keystates[i]==1 #Correct
      newtext+="<c2=06644bd2>"+keys[i].to_s+"</c2>"
     elsif keystates[i]==2 # Incorrect
      newtext+="<c2=043c3aff>"+keys[i].to_s+"</c2>"
     else
      newtext+=keys[i].to_s
     end
    end
    blitzwindow.text=newtext
   end
   time+=1
   shownTime+=1
  end
  blitzwindow.dispose
  return time+penalty
 end
end

In addition, add the following three lines to the end of the file PBS/moves.txt . These are three moves that use the new keyboard input functionality and whose damage depends on skill and timing.
Code:
355,FIREBLITZ,FIRE BLITZ,110,1,FIRE,Special,100,15,0,00,0,bef,Cool,"A fire move whose damage depends on skill and timing."
356,ICEBLITZ,ICE BLITZ,111,1,ICE,Special,100,15,0,00,0,bef,Cool,"An ice move whose damage depends on skill and timing."
357,THUNDERBLITZ,THUNDERBLITZ,112,1,ELECTRIC,Special,100,15,0,00,0,bef,Cool,"A thunder move whose damage depends on skill and timing."

are the three blitz moves examples of the new script or are they dp moves? and will this be added in the next update?
 
Hi,

I would like to add a priority of superposition in the chipsets but I dont know how to do it. It goes from 0 to 5 and I would like to add a sixth but I have not found how to do it :/ .

Someone can help?
 
The three moves are examples of the script. It tells you how to install them.
 
Can someone point me to the script that sets the position for the "trbackXXX" file? My trainer is a little off to the right, and I would like to move him left some.

EDIT: poccil, in the newest release, upon capturing a new Pokemon, the Pokemon's description no longer shows. I'm assuming this has something to do with the new AdvancedText thing that has been added, perhaps?
 
Last edited:
I have that problem too. Also, all of the maps I made are not showing in the editor when I go to the set encounters option. I then decided to list encounters for one of my maps in encounters.txt file and when I playtested it, no pokemon showed up. I already have grass tiles terrain tagged as 2.
 
I don't know whether this question has been asked before but how can I make the move effects of those newly implemented D/P moves working? Now I have to change some value like "10A", "10B" to "0" or "1" or the game will crash(appears to be an undefined method error). Please tell me how to make this work and I'll appreciate it very much.
 
i have a few things here.
1)how do i call pbDebugBattle? i've tried conditionals and scripts and it doesn't seem to work.
2)for the battle animations, how would one go about shaking the screen or flashing colors? i tried adding in a flash in the rmxp animation editor, but it didn't show up ingame.
3)how would you implement another terrain tag? when i was playing leaf green yesterday, i noticed going up and down stairs slows down the character a bit. can this be implemented into say, terrain tag 14?
4)how would one go about giving the player random items from a certain set of items? for example, let's say i wanted to give the player one item from the numbers 3,15,288,341. what kind of script would that need?

thanks in advance.
 
4)how would one go about giving the player random items from a certain set of items? for example, let's say i wanted to give the player one item from the numbers 3,15,288,341. what kind of script would that need?

thanks in advance.

Use this script in an event :

Code:
i=rand(4)
Kernel.pbReceiveItem(3) if i==0
Kernel.pbReceiveItem(15) if i==1
Kernel.pbReceiveItem(288) if i==2
Kernel.pbReceiveItem(341) if i==3

I've not tested it, but it should work.
 
Status
Not open for further replies.
Back
Top