Cannot Create an Ability past 256

BlowDryGuy

Rookie
Member
Joined
Jun 24, 2018
Posts
2
First off, I am using an older version of Essentials (v15) and I cannot update to a newer version so please do not tell me to update.
I am running into an issue where I cannot create a new ability past 256. In the PBS file, I have ability 256 defined as so:
256,HEADACHE,Headache,"User's SpAtk rises while confused."
However, when I give the ability Headache to a pokemon, when I play the game it has no ability.
Then, when I give a pokemon ability number 257:
257,INNARDSOUT,Innards Out,"When user fnt, deals dmg equal to current HP."
It gives them ability number 1, Stench.
Then when I give a pokemon ability number 258:
258,LIGHTARMOR,Light Armor,"Reduces damage from Dark moves."
They get ability number 2, Drizzle.

It seems to be looping back on the abilities once it reaches 256 for whatever reason. Does anyone have any idea how I can fix this?
 

NoodlesButt

Addicted to Jams
Member
Joined
Apr 2, 2017
Posts
58
Why don't you try make a pbs file called ability_2 I doubt it will work but u can try
No idea where you got this idea from but it won't work.

First off, I am using an older version of Essentials (v15) and I cannot update to a newer version so please do not tell me to update.
I am running into an issue where I cannot create a new ability past 256. In the PBS file, I have ability 256 defined as so:

However, when I give the ability Headache to a pokemon, when I play the game it has no ability.
Then, when I give a pokemon ability number 257:

It gives them ability number 1, Stench.
Then when I give a pokemon ability number 258:

They get ability number 2, Drizzle.

It seems to be looping back on the abilities once it reaches 256 for whatever reason. Does anyone have any idea how I can fix this?
Pokémon Essentials v15 and lower can only have 256 abilities. v16 and higher can have 65535 abilities sooooo.... update to a newer version.
 

BlowDryGuy

Rookie
Member
Joined
Jun 24, 2018
Posts
2
No idea where you got this idea from but it won't work.


Pokémon Essentials v15 and lower can only have 256 abilities. v16 and higher can have 65535 abilities sooooo.... update to a newer version.
Its too late to update, I cannot. What was changed that allows v16 to have 65535 abilities? If I can just figure out what was changed then I can easily fix this problem.
 

MGriffin

Trainer
Member
Joined
May 8, 2017
Posts
95
I imagine that somewhere in Essentials v15 are some lines that look like "ability = dexdata.fgetb" (fgetb reads a byte, i.e. a number 0–255).

I assume Essentials v17 uses fgetw:

Code:
pokemon-essentials$ git g "ability.*fget"
Data/Scripts.rxdata
93351=# PBattle_OrgBattleRules.rb
93770:    ability1=dexdata.fgetw
93771:    ability2=dexdata.fgetw
106090=# Editor_Screens.rb
106934:          ability1       = dexdata.fgetw
106935:          ability2       = dexdata.fgetw
106969:          hiddenability1 = dexdata.fgetw
106970:          hiddenability2 = dexdata.fgetw
106971:          hiddenability3 = dexdata.fgetw
106972:          hiddenability4 = dexdata.fgetw
107701=# Editor_SaveData.rb
108268:    ability1       = dexdata.fgetw
108269:    ability2       = dexdata.fgetw
108295:    hiddenability1 = dexdata.fgetw
108296:    hiddenability2 = dexdata.fgetw
108297:    hiddenability3 = dexdata.fgetw
108298:    hiddenability4 = dexdata.fgetw
108538:    origdata["ability1"]       = dexdata.fgetw
108539:    origdata["ability2"]       = dexdata.fgetw
108565:    origdata["hiddenability1"] = dexdata.fgetw
108566:    origdata["hiddenability2"] = dexdata.fgetw
108567:    origdata["hiddenability3"] = dexdata.fgetw
108568:    origdata["hiddenability4"] = dexdata.fgetw
108575:    ability1       = dexdata.fgetw
108576:    ability2       = dexdata.fgetw
108602:    hiddenability1 = dexdata.fgetw
108603:    hiddenability2 = dexdata.fgetw
108604:    hiddenability3 = dexdata.fgetw
108605:    hiddenability4 = dexdata.fgetw

Good luck making your changes! I imagine that you'll have to mess about with how dexdata is compiled (this is probably in Compiler) to make sure that the amount of data you try to read back is the amount that is written.
 
Top