-
Posts
119 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Events
Reborn Development Blog
Rejuvenation Development Blog
Starlight Divide Devblog
Desolation Dev Blog
Posts posted by silverlime
-
-
I don't think these are problems with the randomizer, but I encountered them in the randomizer, so I'll post them here.
Strength Sap doesn't seem to factor in stat changes to the target's attack when calculating the amount healed, but this is what happens in the actual games. (I used it against the same Pokemon twice with successful attack drops, but the amount healed remained exactly the same.)
When an opposing Pokemon dies from corrosive field entry damage, none of my Pokemon gain xp.
-
Found a problem with Doom Desire. After using it, on the strike turn, it says "___ took the Chatter attack", the attack doesn't do any damage, and this error message pops up:
---------------------------
Pokemon Rejuvenation
---------------------------
[Pokemon Rejuvenation V12.1]
Exception: NoMethodError
Message: undefined method `>=' for nil:NilClass
PokeBattle_Move:4220:in `pbReduceHPDamage'
PokeBattle_Battle:5846:in `__clauses__pbEndOfRoundPhase'
PokeBattle_Battle:5809:in `each'
PokeBattle_Battle:5809:in `__clauses__pbEndOfRoundPhase'
PokeBattle_Clauses:42:in `pbEndOfRoundPhase'
PokeBattle_Battle:4710:in `pbStartBattleCore'
PokeBattle_Battle:4709:in `logonerr'
PokeBattle_Battle:4709:in `pbStartBattleCore'
PokeBattle_Battle:4693:in `loop'
PokeBattle_Battle:4714:in `pbStartBattleCore'
EDIT: Also, if I'm using random moves, how am I supposed to use the TMX moves without buying all the golden items? The TM number for each TMX move stays the same, but when you use it on a Pokemon, it teaches a move that is different from the one listed in the TM. Is there a mod like the one included in Reborn's randomizer where you don't need HM moves to interact with the field?
-
When I battle Gorebyss against a trainer or in the wild at a certain part of the game, it just skips its turn and doesn't do anything. Upon catching one, I realized that its moveset is Sacred Fire, Ice Ball, Struggle, and Lunge, so Struggle might be causing the problem.
EDIT: Found out something else really weird. When I hover over Struggle in the move choices, it actually causes a turn to pass for both Pokemon without either of them being able to do anything, so Pokemon still take burn damage, etc. However, after that battle, the following message popped up before the game crashed:
"Script 'Pokebattle_ActualScene' line 427: NoMethodError occurred.
undefined method '>' for nil:NilClass"
-
This character's walking sprite when facing left doesn't animate smoothly, though the running sprites are fine:
-
8 hours ago, Devilish said:
I'm experiencing an anomaly with the move Rollout in Amethyst Cave.
I've just started shiny hunting Meditite and have naturally encountered Geodudes.
Against my Mighyena when the wild Geodudes use Rollout, on one of it's 5 possible turns it doesn't land and gives me the text: "It doesn't effect Dusk".
This has occurred twice so far, the first time on the first turn and the second time was on the second turn.
It doesn't seem like this is a natural occurrence whist in the Crystal Cave field, though I've not tried it as a Rollout user myself. I don't like Rollout.
Whilst I'm on the subject, in the Nim battle, Sucker Punch didn't effect Espurr but effected Lunatone and Quick Attack didn't effect Inkay.
We go into this battle with no knowledge of her field so I just want to check, is that natural?The Crystal Cavern field makes it so Rock moves become randomly either Fire, Water, Grass, or Psychic type, so that would explain why Rollout sometimes wouldn't affect Mightyena. Moves like Sucker Punch and Quick Attack shouldn't work against Nim because Psychic Terrain disables priority moves, though I'm not sure why it would affect Lunatone (unless the field was changed when you used it against Lunatone).
-
I have random items turned on, and sometimes one appears that is unable to be collected. This normally isn't a problem if it's an item in the overworld because it will be a different item the next time, but since one of my Pokemon is holding it, it can't be removed and no item can be given to it. The item seems to have no name. Here are some screenshots that could help:
SpoilerAlso, sometimes (relatively frequently) when battling another Pokemon, it doesn't take its turns at all. I haven't seen any pattern with this, but it happens pretty often so I thought I'd mention it.
Also, if a Pokemon gets the random move Struggle, when hovering over the slot that it appears to occupy (top right in this case), this error occurs:
-
-
In the building in the Conkeldurr Lumber Yard in Terajuma Jungle, the map allows you to see part of another room that probably shouldn't be visible.
If you talk to the tile after catching the Vileplume here, it still displays the following message:
When in the Safari Zone, I used bait on a Kangaskhan, and when I threw the first Safari Ball at it, it's sprite moved to the position shown in the screenshot:
-
When fighting Melia on the xen battleship, when she is about to send in Zoroark and it's asking if I want to switch, the name it gave was the name of one of my Pokemon instead of the one her Zoroark was disguised as.
-
-
-
I tested it out with two Pokemon without their hidden abilities and it seems as though they can actually produce a Pokemon with a hidden ability.
-
Thanks.
I actually didn't even know there was even a department store in GDC lol even though I've gotten past that part of the game on a different save file. I might have to go back there to get some of those ability capsules now... -
I am trying to breed some of my Pokemon, and I'm trying to figure out how abilities are passed down. As far as I know, in the official games, the mother has a 60% chance of passing down a hidden ability and 80% chance of passing down a normal ability, but since hidden abilities are normally available in this game, are the rates different? Like can you get a hidden ability on a Pokemon whose mother has a regular ability?
-
-
-
You can walk on this rock smashable rock here, and when I face right, it asks if I want to use rock smash. This is in Amethyst Cave.
In Karrina's Base, if you go to the room on the bottom floor at the top left, you can walk over pretty much everything. You can also walk vertically through the couches which I don't think is usually possible. The 2 table blocks below the character are the only tiles that prevent you from walking on
-
Oh thanks, that works.
-
Hi, I don't know if I'm just being stupid, but is there a way to add an additional save file to the game without going to the saved games folder and editing the saves there? I see that there is an option on the menu that says "Other Save Files", but I don't know how this works.
-
-
-
I found a couple of issues in Goldenwood Forest. Firstly, in the Xen cutscene towards the beginning of the game, I had my last healing location set to be the healing star on route 1. Upon losing to a trainer after team xen appears, the player will be teleported back to the healing star. When going back to goldenwood forest, it appears as if nothing has happened yet. However, if you go into goldenwood cave and then back down, everything appears as intended.
Another issue with goldenwood forest is with the Adrienn quest. If you complete the parts up until right before you are supposed to talk to the reporters who interview Adrienn and go into Goldenwood Cave instead, when you go back out, you are transported to the old goldenwood forest before it became the park. However, if you talk to Adrienn again, he will go through the cutscene again with the final transformation and then it will be back to how it was before. This does not happen if you enter goldenwood cave after the whole quest is completed.
-
-
An error when fighting Ryland: I kept stalling his Camerupt out with my Sylveon and eventually he switched into his Claydol. However, once this happened, his Claydol didn't use any moves and I could just keep attacking and using items without him going. I'm not sure if this would have happened on the rest of his pokemon, but my Sylveon swept them so unless they were supposed to be slower (Torterra and Camerupt), I couldn't tell if the problem persisted.
Error with Forewarn and AI (I think)
in Battle Errors
Posted
As I have implemented Reborn/Rejuvenation AI & Field Effects, I often find myself looking through the scripts of both games. One thing I noticed with Forewarn was that code was added which I think was meant to add the detected move to the AI move memory. However, there seem to be a few problems that I've found (Sorry this is kind of long. I've been working through it to fix it for my game as well):
The code for forewarn starts with this line:
if self.hasWorkingAbility(:FOREWARN) && @battle.pbOwnedByPlayer?(@index) && onactive
but this means that if an opponent's Pokemon is the one with Forewarn, it will just skip over activating, meaning that the AI will not detect an opposing Pokemon's moves if it is the one sending out a Pokemon with Forewarn.
Then here's the bigger problem:
if moves.length>0 move=moves[@battle.pbRandom(moves.length)] movename=PBMoves.getName(move) @battle.pbDisplay(_INTL("{1}'s Forewarn alerted it to {2}!",pbThis,movename)) if (self.index==0 || self.index==2) && !@battle.isOnline? # Move memory system for AI warnedMove = PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(move),self) if @battle.aiMoveMemory[0].length==0 && warnedMove.basedamage!=0 @battle.aiMoveMemory[0].push(warnedMove) elsif @battle.aiMoveMemory[0].length!=0 && warnedMove.basedamage!=0 dam1=@battle.pbRoughDamage(warnedMove,self,@battle.battlers[1],255,warnedMove.basedamage) dam2=@battle.pbRoughDamage(@battle.aiMoveMemory[0][0],self,@battle.battlers[1],255,@battle.aiMoveMemory[0][0].basedamage) if dam1>dam2 @battle.aiMoveMemory[0].clear @battle.aiMoveMemory[0].push(warnedMove) end end if @battle.aiMoveMemory[1].length==0 @battle.aiMoveMemory[1].push(warnedMove) else dupecheck=0 for i in @battle.aiMoveMemory[1] dupecheck+=1 if i.id == warnedMove.id end @battle.aiMoveMemory[1].push(warnedMove) if dupecheck==0 end if @battle.aiMoveMemory[2][self.pokemonIndex].length==0 @battle.aiMoveMemory[2][self.pokemonIndex].push(warnedMove) else dupecheck=0 for i in @battle.aiMoveMemory[2][self.pokemonIndex] dupecheck+=1 if i.id == warnedMove.id end @battle.aiMoveMemory[2][self.pokemonIndex].push(warnedMove) if dupecheck==0 end end end
This code (starting with the line with the comment '# Move memory system for AI') seems to have been copied from the other area in Pokebattle_Battler where the AI remembers which move one of the player's Pokemon uses except that it was changed to use warnedMove instead of choice[2]. Since this was the only change made, each time it refers to self it is referring to the Pokemon with Forewarn, not the actual Pokemon with the move. However, this introduces yet another problem because Forewarn doesn't reveal which opponent has the move in double battles.
Based on how the code is currently, I think it would work like the following (though there's not an easy way to actually see how it would work so I'm just going off logic):
If the Pokemon with Forewarn is owned by the player, the message will be played correctly, stating the move that was detected on the opponent's Pokemon. Then, the AI registers the the move detected on its own Pokemon as a move of the player's Pokemon.
It should work so that if the player's Pokemon has Forewarn, the AI doesn't remember the move, and only a message should be played. If the AI sends out the Pokemon with Forewarn, it should register the move detected on the player's Pokemon as a move of that Pokemon.
I've tried to fix the code for my own game and I'll post it here in case it's correct or helpful (I made it so the player and opponent are both alerted which Pokemon carries the move, but I'm still not really sure how the aiMoveMemory array works so there might be a problem with that):
# Forewarn if self.hasWorkingAbility(:FOREWARN) && onactive PBDebug.log("[Ability triggered] #{pbThis} has Forewarn") highpower=0 fwmoves=[] moveusers=[] for foe in [pbOpposing1,pbOpposing2] next if foe.fainted? for j in foe.moves movedata=PBMoveData.new(j.id) power=movedata.basedamage power=160 if movedata.function==0x70 # OHKO power=150 if movedata.function==0x8B # Eruption power=120 if movedata.function==0x71 || # Counter movedata.function==0x72 || # Mirror Coat movedata.function==0x73 || # Metal Burst power=80 if movedata.function==0x6A || # SonicBoom movedata.function==0x6B || # Dragon Rage movedata.function==0x6D || # Night Shade movedata.function==0x6E || # Endeavor movedata.function==0x6F || # Psywave movedata.function==0x89 || # Return movedata.function==0x8A || # Frustration movedata.function==0x8C || # Crush Grip movedata.function==0x8D || # Gyro Ball movedata.function==0x90 || # Hidden Power movedata.function==0x96 || # Natural Gift movedata.function==0x97 || # Trump Card movedata.function==0x98 || # Flail movedata.function==0x9A # Grass Knot if power>highpower fwmoves=[j.id] highpower=power moveusers=[foe] elsif power==highpower fwmoves.push(j.id) moveusers.push(foe) end end end r=@battle.pbRandom(fwmoves.length) fwmove=fwmoves[r] fwuser=moveusers[r] if @battle.pbOwnedByPlayer?(@index) if fwmoves.length>0 movename=PBMoves.getName(fwmove) @battle.pbDisplay(_INTL("{1}'s Forewarn alerted it to {2}'s {3}!",pbThis,fwuser.pbThis,movename)) end elsif @battle.pbIsOpposing?(@index) if fwmoves.length>0 warnedMove = PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(fwmove)) if @battle.aiMoveMemory[0].length==0 && warnedMove.basedamage!=0 @battle.aiMoveMemory[0].push(warnedMove) elsif @battle.aiMoveMemory[0].length!=0 && warnedMove.basedamage!=0 dam1=@battle.pbRoughDamage(warnedMove,fwuser,self,255,warnedMove.basedamage) dam2=@battle.pbRoughDamage(@battle.aiMoveMemory[0][0],fwuser,self,255,@battle.aiMoveMemory[0][0].basedamage) if dam1>dam2 @battle.aiMoveMemory[0].clear @battle.aiMoveMemory[0].push(warnedMove) end end if @battle.aiMoveMemory[1].length==0 @battle.aiMoveMemory[1].push(warnedMove) else dupecheck=0 for i in @battle.aiMoveMemory[1] dupecheck+=1 if i.id == warnedMove.id end @battle.aiMoveMemory[1].push(warnedMove) if dupecheck==0 end if @battle.aiMoveMemory[2][fwuser.pokemonIndex].length==0 @battle.aiMoveMemory[2][fwuser.pokemonIndex].push(warnedMove) else dupecheck=0 for i in @battle.aiMoveMemory[2][fwuser.pokemonIndex] dupecheck+=1 if i.id == warnedMove.id end @battle.aiMoveMemory[2][fwuser.pokemonIndex].push(warnedMove) if dupecheck==0 end end end end