- Joined
- Dec 5, 2023
- Posts
- 26
imagen-2024-08-18-163210049 hosted at ImgBB
Image imagen-2024-08-18-163210049 hosted in ImgBB
ibb.co
Without jumping into the code itself, it looks like the error is another file load error.imagen-2024-08-18-163210049 hosted at ImgBB
Image imagen-2024-08-18-163210049 hosted in ImgBBibb.co
where can i find the project directory?Without jumping into the code itself, it looks like the error is another file load error.
Is your innate sets.txt file formatted exactly the same as the sample file provided by Sonicover?
(Also, a tip, whenever you have an error, the details normally output to the file "errorlog.txt" in your project directory).
It's the folder you run RPG Maker from. Where your current project files and folders are.where can i find the project directory?
Can I see how did you defined the contents in your innate_sets file? Both error appear to be from the same originimagen-2024-08-18-163210049 hosted at ImgBB
Image imagen-2024-08-18-163210049 hosted in ImgBBibb.co
Ah, yes because i had the innates defined in Pokémon pbs, i only copy AND paste that info in the innate sets, so, should be this the thing that Is messing around?Can I see how did you defined the contents in your innate_sets file? Both error appear to be from the same origin
Define each Pokemon you want Innates assigned to within the new innate_sets.txt file.Ah, yes because i had the innates defined in Pokémon pbs, i only copy AND paste that info in the innate sets, so, should be this the thing that Is messing around?
#----------------------------------------
[AGGRON]
Innates = FILTER,STURDY
#----------------------------------------
[AGGRON_1] #<- Mega Aggron. Use POKEMON_X, with X that form's number
Innates = STURDY,HEAVYMETAL,PUREARMOR
#----------------------------------------
[METAGROSS] # <- Example for Metagross, having three potential sets (groups) of innates they can be assigned.
Innates1 = SANDVEIL,STURDY,CLEARBODY
Innates2 = FILTER,CLEARBODY
Innates3 = PLUS,MINUS,ELECTRICSURGE
#----------------------------------------
Most likely, this error alongside the previous one happen because the innate_sets.txt keeps containing troublesome lines. In this case, it's because it finds a nil line that it's trying to call "empty?" on.Ah, yes because i had the innates defined in Pokémon pbs, i only copy AND paste that info in the innate sets, so, should be this the thing that Is messing around?
#----------------------------------------
[POKEMONID]
Innates = ABILITY1,ABILITY2,ABILITY3
#----------------------------------------
[POKEMONID]
Innates1 = ABILITY1,ABILITY2,ABILITY3
Innates2 = ABILITY1,ABILITY2,ABILITY3
#----------------------------------------
#
# <- Use # if you want to leave empty spaces
#
#----------------------------------------
[POKEMONID]
Innates = ABILITY1,ABILITY2,ABILITY3
#----------------------------------------
[MACHAMP]
Innates = IRONFIST
[POKEMONID]
Innates1 = ABILITY1,ABILITY2,ABILITY3
Innates2 = ABILITY1,ABILITY2,ABILITY3
Innates3 = ABILITY1,ABILITY2,ABILITY3
[POKEMONID]
[POKEMONID]
Ok, i Will be checking later, it's there are also problems i Will senda you the fileMost likely, this error alongside the previous one happen because the innate_sets.txt keeps containing troublesome lines. In this case, it's because it finds a nil line that it's trying to call "empty?" on.
Copy-pasting straight from the pokemon.txt file from previous versions shouldn't be the problem because both versions used the property "Innates =", with the same case-sensitivity.
For your situation, be sure that your Innate_sets.txt has no empty lines or that all lines are properly defined
Always go for this:
Correct usage:#---------------------------------------- [POKEMONID] Innates = ABILITY1,ABILITY2,ABILITY3 #---------------------------------------- [POKEMONID] Innates1 = ABILITY1,ABILITY2,ABILITY3 Innates2 = ABILITY1,ABILITY2,ABILITY3 #---------------------------------------- # # <- Use # if you want to leave empty spaces # #---------------------------------------- [POKEMONID] Innates = ABILITY1,ABILITY2,ABILITY3
Try to avoid this: Empty lines
Troublesome definitions:#---------------------------------------- [MACHAMP] Innates = IRONFIST [POKEMONID] Innates1 = ABILITY1,ABILITY2,ABILITY3 Innates2 = ABILITY1,ABILITY2,ABILITY3 Innates3 = ABILITY1,ABILITY2,ABILITY3 [POKEMONID] [POKEMONID]
Because even if it compiles theres no guarantee it will behave as intended.
Outside of that be sure to recompile and start a new file. If even with these modifications the problem persist feel free to share your innate_sets files so I can check it and can better recreate your trouble for a more inmediate solution
Most likely, this error alongside the previous one happen because the innate_sets.txt keeps containing troublesome lines. In this case, it's because it finds a nil line that it's trying to call "empty?" on.
Copy-pasting straight from the pokemon.txt file from previous versions shouldn't be the problem because both versions used the property "Innates =", with the same case-sensitivity.
For your situation, be sure that your Innate_sets.txt has no empty lines or that all lines are properly defined
Always go for this:
Correct usage:#---------------------------------------- [POKEMONID] Innates = ABILITY1,ABILITY2,ABILITY3 #---------------------------------------- [POKEMONID] Innates1 = ABILITY1,ABILITY2,ABILITY3 Innates2 = ABILITY1,ABILITY2,ABILITY3 #---------------------------------------- # # <- Use # if you want to leave empty spaces # #---------------------------------------- [POKEMONID] Innates = ABILITY1,ABILITY2,ABILITY3
Try to avoid this: Empty lines
Troublesome definitions:#---------------------------------------- [MACHAMP] Innates = IRONFIST [POKEMONID] Innates1 = ABILITY1,ABILITY2,ABILITY3 Innates2 = ABILITY1,ABILITY2,ABILITY3 Innates3 = ABILITY1,ABILITY2,ABILITY3 [POKEMONID] [POKEMONID]
Because even if it compiles theres no guarantee it will behave as intended.
Outside of that be sure to recompile and start a new file. If even with these modifications the problem persist feel free to share your innate_sets files so I can check it and can better recreate your trouble for a more inmediate solution
if (insert opponent call here).hasAbilityMutation?
if Settings::INNATE_PROGRESS_WITH_VARIABLE && !Settings::INNATE_PROGRESS_WITH_LEVEL
push_ability_count = case $game_variables[Settings::INNATE_PROGRESS_VARIABLE_FOE]
when 1 then 1
when 2 then 2
when 3 then active_innates.size
else 0
end
active_innates.each_with_index do |ability, index|
speciesAbilities.push(ability)
break if index + 1 >= push_ability_count
end
...well. I see the problem
i have added the # to solve the problem, but it still gives me the second error...well. I see the problem
You copied and pasted EVERYTHING lol.
Delete everything that is not the [Pokemon] and the Innates =. Those are the only 2 things the innate_sets should contain per pokemon
Sorry for the late reply. I needed to be in my pc for it. Sure, feel free to modify as much of my script as you want, and dont' worry, the project won't be retired nor I will stop adding features to it, I just don't want to neglect my game for nowHey, one other thing, because I know you want to retire the project already - but I was wondering if there might be a way to make it so that while a player might not have all their innate abilities activated, an npc will have all their innates activated. I imagine it would be as simple as adding another if-else statement to the set_innate_limits function, which would function identically to the if self.hasAbilityMutation? check but for opponents with its own in-game variable, not that I know what the call for an opponent's Pokemon is, and I also wouldn't make this change without your permission. I attached a theoretical if-else statement to this message, but I want to wait for your permission before I try it out.
if-else.rb:if (insert opponent call here).hasAbilityMutation? if Settings::INNATE_PROGRESS_WITH_VARIABLE && !Settings::INNATE_PROGRESS_WITH_LEVEL push_ability_count = case $game_variables[Settings::INNATE_PROGRESS_VARIABLE_FOE] when 1 then 1 when 2 then 2 when 3 then active_innates.size else 0 end active_innates.each_with_index do |ability, index| speciesAbilities.push(ability) break if index + 1 >= push_ability_count end
alias abilityMutations_pbInitPokemon pbInitPokemon
def pbInitPokemon(pkmn, idxParty)
abilityMutations_pbInitPokemon(pkmn, idxParty)
# Initialize the innate abilities if not already set
pkmn.assign_innate_abilities if pkmn.active_innates.empty?
# Set the original innates of the pokemon
pkmn.save_original_innates
# Set the ability mutation list using the new method
@abilityMutationList = pkmn.set_innate_limits
end
@abilityMutationList = pkmn.set_innate_limits
. set_innate_limits
runs the code you tried to modify that checks for if the variable is on or the pokemon level if the setting is on, and after the appropriate filtering, stores the remaining innates in speciesAbilities
, but the total innates a pokemon has, after it both checked if it has custom innates and after the randomization and all that stuff it's stored in active_innates
, so you'll only need to do this code in AAM Battlerif (your code that checks for the battlers position and whatever conditional you want)
@abilityMutationList = pkmn.active_innates
else
@abilityMutationList = pkmn.set_innate_limits
end
The current data you have is incorrect.i have added the # to solve the problem, but it still gives me the second error
#-------------------------------
[BULBASAUR]
Innates = HUGEPOWER
#-------------------------------
[IVYSAUR]
Innates = HUGEPOWER
#-------------------------------
[VENUSAUR]
Innates = HUGEPOWER,INTIMIDATE
Here is an example innates_set.txt file you can use.i have added the # to solve the problem, but it still gives me the second error
I tried using your innate_sets file, with the surprise that it actually loads properly, and tried removing the file completely from the PBS folder, resulting in a different error than yours.i have added the # to solve the problem, but it still gives me the second error
Before we go any further: No, i'm not adding Hidden Innates.As always, thanks for all the updates. You're doing a great job with this resource.
One thing that did come to my attention is the way that innates re-randomize when a Pokémon evolves or changes form while using the innate randomizer function. Typically, if a Pokémon evolves or changes form, either its ability will stay the same (a Bisharp with Defiant will always evolve into a Kingambit with Defiant) or specific abilities will change into another specific ability (a Bisharp with Inner Focus will always evolve into a Kingambit with Supreme Overload). Nothing ever is re-randomized. For consistency sake, it would be nice to have the option to have the innates behave the same as regular abilities and either maintain them or have then turn into the ability listed in the same index number of the new Pokémon/form.
[POKEMON]
Innates1 = BLA,BLA,BLA #<- Index 1
Innates2 = HAMANA,HAMANA,HAMANA #<- Index 2
Innates3 = ABIL,ABIL,ABIL #<- Index 3
Hey man, so first, no worries about the late response. Secondly, I tried making the edit to the file to where you recommended as so:Sorry for the late reply. I needed to be in my pc for it. Sure, feel free to modify as much of my script as you want, and dont' worry, the project won't be retired nor I will stop adding features to it, I just don't want to neglect my game for now
The bit of code that you are trying to modify it's in the Pokemon Class. I'd say you'll have a much easier time modifying the one defined in AAM Battler. This bit:
Ruby:alias abilityMutations_pbInitPokemon pbInitPokemon def pbInitPokemon(pkmn, idxParty) abilityMutations_pbInitPokemon(pkmn, idxParty) # Initialize the innate abilities if not already set pkmn.assign_innate_abilities if pkmn.active_innates.empty? # Set the original innates of the pokemon pkmn.save_original_innates # Set the ability mutation list using the new method @abilityMutationList = pkmn.set_innate_limits end
This is the code responsible for loading the whole list of ability + innates to a pokemon.
The relevant bit of code for your needs is@abilityMutationList = pkmn.set_innate_limits
.set_innate_limits
runs the code you tried to modify that checks for if the variable is on or the pokemon level if the setting is on, and after the appropriate filtering, stores the remaining innates inspeciesAbilities
, but the total innates a pokemon has, after it both checked if it has custom innates and after the randomization and all that stuff it's stored inactive_innates
, so you'll only need to do this code in AAM Battler
Ruby:if (your code that checks for the battlers position and whatever conditional you want) @abilityMutationList = pkmn.active_innates else @abilityMutationList = pkmn.set_innate_limits end
alias abilityMutations_pbInitPokemon pbInitPokemon
def pbInitPokemon(pkmn, idxParty)
abilityMutations_pbInitPokemon(pkmn, idxParty)
# Initialize the innate abilities if not already set
pkmn.assign_innate_abilities if pkmn.active_innates.empty?
# Set the original innates of the pokemon
pkmn.save_original_innates
# Set the ability mutation list using the new method
if (!battler.pbOwnedByPlayer?)
@abilityMutationList = pkmn.active_innates
else
@abilityMutationList = pkmn.set_innate_limits
end
end
def pbInitPokemon(pkmn, idxParty) --> def pbInitPokemon(pkmn, idxParty, battler)