• 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.

Project: Generation 6 for Pokémon Essentials (Pokémon sprites and PBS files)

"Various PBS File Updates, Stochastic, Mar 16, 2014"

The link has been broken for a while, does anyone have the fixed link?
 
Where are you putting it in the script? I've had the same problem a few times and sometimes it was placement.

EDIT: Got home and tried it out and am having the same problem. I'll let you know if I get it to work right.
Gale Wings works fine if you remove the typing constraint :s I suspect it doesn't work correctly because typing or something hasn't been defined by that stage in the script.
 
I don't know if this has been posted yet, i looked and didn't find anything, so i'll just post the code i used for Strong Jaw (the signature ability of Tyrunt and Tyrantrum):

Code:
strongjawMoves=[PBMoves::CRUNCH,PBMoves::BITE,PBMoves::FIREFANG,
         PBMoves::ICEFANG,PBMoves::THUNDERFANG,PBMoves::POISONFANG]
      
      if isConst?(opponent.ability,PBAbilities,:STRONGJAW) && strongjawMoves.include?(@id)
        basedmg=(basedmg*1.5).floor
         end

The ability defined in the PBS:

Code:
XXX,STRONGJAW,Strong jaw,"Powers up jaw moves."

You have to change the XXX for the next ID number in your file.

It should work, but i'm not 100% sure :-P
 
I don't know if this has been posted yet, i looked and didn't find anything, so i'll just post the code i used for Strong Jaw (the signature ability of Tyrunt and Tyrantrum):

Code:
strongjawMoves=[PBMoves::CRUNCH,PBMoves::BITE,PBMoves::FIREFANG,
         PBMoves::ICEFANG,PBMoves::THUNDERFANG,PBMoves::POISONFANG]
      
      if isConst?(opponent.ability,PBAbilities,:STRONGJAW) && strongjawMoves.include?(@id)
        basedmg=(basedmg*1.5).floor
         end

The ability defined in the PBS:

Code:
XXX,STRONGJAW,Strong jaw,"Powers up jaw moves."

You have to change the XXX for the next ID number in your file.

It should work, but i'm not 100% sure :-P

I'm fairly new to scripting, haven't seen a ability code done like that before.
could have just used a flag to tell which moves got boosted ^__^

Code:
if isConst?(attacker.ability,PBAbilities,:STRONGJAW) &&
       (@flags&0x1000)!=0 # flag m
      basedmg=(basedmg*1.5).floor
    end

Where did you place that in the scripts? Just curious in case I make an ability using it as a template.
 
I'm fairly new to scripting, haven't seen a ability code done like that before.
could have just used a flag to tell which moves got boosted ^__^

Code:
if isConst?(attacker.ability,PBAbilities,:STRONGJAW) &&
       (@flags&0x1000)!=0 # flag m
      basedmg=(basedmg*1.5).floor
    end

Where did you place that in the scripts? Just curious in case I make an ability using it as a template.

I have all the new abilities (Pixilate, Aerilate, Megalauncher, etc.) right under Minus/Plus.

I didn't know there was a flag for the biting moves, so i didn't do it with the flag xD. I'm also fairly new to scripting, haha.
 
I have all the new abilities (Pixilate, Aerilate, Megalauncher, etc.) right under Minus/Plus.

I didn't know there was a flag for the biting moves, so i didn't do it with the flag xD. I'm also fairly new to scripting, haha.

Flags M,N,O.and P are unused. You can use them for whatever you want. Although, your way would probably be better for something like Strong Jaw.
 
Either way is fine.

Making a new flag and giving it to biting moves makes the ability a bit easier to add new moves for, since it's easier to add the flag to new biting moves in moves.txt than it is to know that you need to edit an array somewhere in the scripts. It also avoids crashes in the event that one of the biting moves in the array doesn't actually exist in the game (but that's unlikely).

On the other hand, there are only four unused flags available, which you might want to use for other things. There are only a handful of biting moves, so it's easy enough to just list them all in an array. You seriously don't want to try telling people how to make changes to many scripts just so that you can add a few new move flags.
 
I tried to do it in a way that avoids the use of flags. I basically just created a few new move effect classes that are copies of the moves affected by Strong Jaw (there's like 6, so this didn't take long), and changed those said moves to use these copied classes.
Then all I needed was
Code:
  if isConst?(attacker.ability,PBAbilities,:STRONGJAW)
       if @function==0x156 || #bite
          @function==0x157 || #crunch
          @function==0x158 || #thunderfang
          @function==0x159 || #firefang
          @function==0x160 || #icefang
          @function==0x161     #poisonfang
          basedmg=(basedmg*1.333).floor
      end
   end
 
Here is a fixed form of fairy aura and dark aura
Code:
    fairyaura=false
    darkaura=false
    aurabreak=false
    if isConst?(attacker.ability,PBAbilities,:FARIYAURA)
      fairyaura=true
    end
    partner=attacker.pbPartner
    if partner && isConst?(partner.ability,PBAbilities,:FARIYAURA)
      fairyaura=true
    end
    if isConst?(opponent.ability,PBAbilities,:FARIYAURA)
      fairyaura=true
    end
    partner=opponent.pbPartner
    if partner && isConst?(partner.ability,PBAbilities,:FARIYAURA)
      fairyaura=true
    end
    if isConst?(attacker.ability,PBAbilities,:DARKAURA)
      darkaura=true
    end
    partner=attacker.pbPartner
    if partner && isConst?(partner.ability,PBAbilities,:DARKAURA)
      darkaura=true
    end
    if isConst?(opponent.ability,PBAbilities,:DARKAURA)
      darkaura=true
    end
    partner=opponent.pbPartner
    if partner && isConst?(partner.ability,PBAbilities,:DARKAURA)
      darkaura=true
    end
    if fairyaura==true && type==getConst(PBTypes,:FAIRY)
      boost=1
      if aurabreak==true
        boost-=0.333
      else
        boost+=0.333
      end
      basedmg=(basedmg*boost).floor
    end
    if darkaura==true && type==getConst(PBTypes,:DARK)
      boost=1
      if aurabreak==true
        boost-=0.333
      else
        boost+=0.333
      end
      basedmg=(basedmg*boost).floor
    end
It now work for all pokemon
 
Here is a fixed form of fairy aura and dark aura
Code:
    fairyaura=false
    darkaura=false
    aurabreak=false
    if isConst?(attacker.ability,PBAbilities,:FARIYAURA)
      fairyaura=true
    end
    partner=attacker.pbPartner
    if partner && isConst?(partner.ability,PBAbilities,:FARIYAURA)
      fairyaura=true
    end
    if isConst?(opponent.ability,PBAbilities,:FARIYAURA)
      fairyaura=true
    end
    partner=opponent.pbPartner
    if partner && isConst?(partner.ability,PBAbilities,:FARIYAURA)
      fairyaura=true
    end
    if isConst?(attacker.ability,PBAbilities,:DARKAURA)
      darkaura=true
    end
    partner=attacker.pbPartner
    if partner && isConst?(partner.ability,PBAbilities,:DARKAURA)
      darkaura=true
    end
    if isConst?(opponent.ability,PBAbilities,:DARKAURA)
      darkaura=true
    end
    partner=opponent.pbPartner
    if partner && isConst?(partner.ability,PBAbilities,:DARKAURA)
      darkaura=true
    end
    if fairyaura==true && type==getConst(PBTypes,:FAIRY)
      boost=1
      if aurabreak==true
        boost-=0.333
      else
        boost+=0.333
      end
      basedmg=(basedmg*boost).floor
    end
    if darkaura==true && type==getConst(PBTypes,:DARK)
      boost=1
      if aurabreak==true
        boost-=0.333
      else
        boost+=0.333
      end
      basedmg=(basedmg*boost).floor
    end
It now work for all pokemon

A more condensed version
Code:
if  ((isConst?(attacker.ability,PBAbilities,:FAIRYAURA)  || isConst?(attacker.pbPartner.ability,PBAbilities,:FAIRYAURA) || isConst?(opponent.ability,PBAbilities,:FAIRYAURA) || isConst?(opponent.pbPartner.ability,PBAbilities,:FAIRYAURA)) && isConst?(type,PBTypes,:FAIRY)) ||
     ((isConst?(attacker.ability,PBAbilities,:DARKAURA) || isConst?(attacker.pbPartner.ability,PBAbilities,:DARKAURA) || isConst?(opponent.ability,PBAbilities,:DARKAURA) || isConst?(opponent.pbPartner.ability,PBAbilities,:DARKAURA)) && isConst?(type,PBTypes,:DARK))
    if isConst?(attacker.ability,PBAbilities,:AURABREAK) || isConst?(attacker.pbPartner.ability,PBAbilities,:AURABREAK) || isConst?(opponent.ability,PBAbilities,:AURABREAK) || isConst?(opponent.pbPartner.ability,PBAbilities,:AURABREAK)
    basedmg=((basedmg*2)/3).floor
    else
    basedmg=((basedmg*4)/3).floor
    end
     end
 
A more condensed version
Code:
if  ((isConst?(attacker.ability,PBAbilities,:FAIRYAURA)  || isConst?(attacker.pbPartner.ability,PBAbilities,:FAIRYAURA) || isConst?(opponent.ability,PBAbilities,:FAIRYAURA) || isConst?(opponent.pbPartner.ability,PBAbilities,:FAIRYAURA)) && isConst?(type,PBTypes,:FAIRY)) ||
     ((isConst?(attacker.ability,PBAbilities,:DARKAURA) || isConst?(attacker.pbPartner.ability,PBAbilities,:DARKAURA) || isConst?(opponent.ability,PBAbilities,:DARKAURA) || isConst?(opponent.pbPartner.ability,PBAbilities,:DARKAURA)) && isConst?(type,PBTypes,:DARK))
    if isConst?(attacker.ability,PBAbilities,:AURABREAK) || isConst?(attacker.pbPartner.ability,PBAbilities,:AURABREAK) || isConst?(opponent.ability,PBAbilities,:AURABREAK) || isConst?(opponent.pbPartner.ability,PBAbilities,:AURABREAK)
    basedmg=((basedmg*2)/3).floor
    else
    basedmg=((basedmg*4)/3).floor
    end
     end
ty i was wonder how i could make it smaller
 
An even more condensed version:

Code:
if (pbCheckGlobalAbility(:FAIRYAURA) && isConst?(type,PBTypes,:FAIRY)) ||
   (pbCheckGlobalAbility(:DARKAURA) && isConst?(type,PBTypes,:DARK))
  if pbCheckGlobalAbility(:AURABREAK)
    basedmg=(basedmg*2/3).floor
  else
    basedmg=(basedmg*4/3).floor
  end
end
 
An even more condensed version:

Code:
if (pbCheckGlobalAbility(:FAIRYAURA) && isConst?(type,PBTypes,:FAIRY)) ||
   (pbCheckGlobalAbility(:DARKAURA) && isConst?(type,PBTypes,:DARK))
  if pbCheckGlobalAbility(:AURABREAK)
    basedmg=(basedmg*2/3).floor
  else
    basedmg=(basedmg*4/3).floor
  end
end
ty i didnt know there was a pbcheckglobalAbilty func
ill remember that
 
Thanks a lot for what you guys have done up to now!
I am also constructing my own project and want to update the G6 elements in my game as well.
This add-on project really gave me a great hand!
I should thank all of you second time!

Here is a question about how to script ability "Pixilate":
In the ability list above, there are two different scripts about "Pixilate"
Should I add both of them in the ess script or only one I need to add ?
Also I donnot know where to put these scripts.
I put the first script after:
def pbType(type,attacker,opponent)
if type>=0 && isConst?(attacker.ability,PBAbilities,:NORMALIZE)
type=getConst(PBTypes,:NORMAL) || 0
end
it did work and turn normal moves to fairy type but how about basedamage*1.3?Where should I add this script?
 
Thanks a lot for what you guys have done up to now!
I am also constructing my own project and want to update the G6 elements in my game as well.
This add-on project really gave me a great hand!
I should thank all of you second time!

Here is a question about how to script ability "Pixilate":
In the ability list above, there are two different scripts about "Pixilate"
Should I add both of them in the ess script or only one I need to add ?
Also I donnot know where to put these scripts.
I put the first script after:
def pbType(type,attacker,opponent)
if type>=0 && isConst?(attacker.ability,PBAbilities,:NORMALIZE)
type=getConst(PBTypes,:NORMAL) || 0
end
it did work and turn normal moves to fairy type but how about basedamage*1.3?Where should I add this script?

I have the Pixilate code right under Minus/Plus. Your code should be something like this:

Code:
if isConst?(type,PBTypes,:NORMAL) && isConst?(attacker.ability,PBAbilities,:PIXILATE)
      type=PBTypes::FAIRY
      [COLOR="Red"]basedmg=(basedmg*1.33).floor[/COLOR]
    end

I suppose that the red part is what you are missing.
 
I have the Pixilate code right under Minus/Plus. Your code should be something like this:

Code:
if isConst?(type,PBTypes,:NORMAL) && isConst?(attacker.ability,PBAbilities,:PIXILATE)
      type=PBTypes::FAIRY
      [COLOR="Red"]basedmg=(basedmg*1.33).floor[/COLOR]
    end

I suppose that the red part is what you are missing.

Thanks for your reply!
I did as you taught me just now and test several times.
I made mega GARDEVOIR(lv23) attack HYDREIGON(lv35) , use move HYPERVOICE, the HYDREIGON was still alive
when i changed the figure 1.33 to 133 , it emerged the same result
does it mean this script does not work at all?
Waiting your answer!

As I know, HYPERVOICE(90*1.3*1.5=163.8,when attack HYDREIGON the result will *4
it should be killed
 
Thanks for your reply!
I did as you taught me just now and test several times.
I made mega GARDEVOIR(lv23) attack HYDREIGON(lv35) , use move HYPERVOICE, the HYDREIGON was still alive
when i changed the figure 1.33 to 133 , it emerged the same result
does it mean this script does not work at all?
Waiting your answer!

As I know, HYPERVOICE(90*1.3*1.5=163.8,when attack HYDREIGON the result will *4
it should be killed

Maybe it's not about the script. You could make a trainer battle against someone with a M-Gardevoir, give him the stats you want and only the move Hyper voice, and then you can see if it works or not by the damage it deals to you.

You can also compare the damage by removing this line: basedmg=(basedmg*1.33).floor, doing a move against the Hydreigon, and then putting the line again and doing another move against Hydreigon. This way you can see if there is a damage difference.

Also, remember that if it's a wild Pokémon battle, the nature isn't always the same, so you may want to create a trainer battle with a defined nature (because it's not the same fighting against a Calm Hydreigon or a Rash Hydreigon)
 
Maybe it's not about the script. You could make a trainer battle against someone with a M-Gardevoir, give him the stats you want and only the move Hyper voice, and then you can see if it works or not by the damage it deals to you.

You can also compare the damage by removing this line: basedmg=(basedmg*1.33).floor, doing a move against the Hydreigon, and then putting the line again and doing another move against Hydreigon. This way you can see if there is a damage difference.

Also, remember that if it's a wild Pokémon battle, the nature isn't always the same, so you may want to create a trainer battle with a defined nature (because it's not the same fighting against a Calm Hydreigon or a Rash Hydreigon)

I'm sure i did everything you told me and you can try if you change 1.33 to 133 , the damage doesn't change at all
 
Back
Top