• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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.

Vociferocity

[ bad girls do it well ]
269
Posts
15
Years
  • Actually, me and someone else had asked about this, and poccil posted a script for it. He was also kind enough to stick it in the newer kits too, if I'm not mistaken. However, for your purposes, I have something simple that should work the same. In PokemonTrainers, there is a line that reads: level=poke[1]. Right before it, put something like this:
    rnd=rand(2)
    rnd2=rand(2)

    Then change level=poke[1] to this:
    This should work as far as I can see, but try it and let me know. Note that this is only for trainer battles though.

    No kidding, if you didn't notice I always turn it white :)

    ngl, sometimes I can't read your posts because the font is white. this is the madness that comes from having different styles!!!!

    also wow, excellent! it totally works, thanks :D hmmm, any ideas about how I could do this for wild pokemon?
     
    Last edited:

    venom12

    Pokemon Crystal Rain Relased
    476
    Posts
    17
    Years
    • Age 33
    • Seen Dec 28, 2023
    For balanced level which poccil scripted use this :
    pbBalancedLevel($Trainer.party)
    But i dont know where to put it to work.
     

    Fraot

    Researcher & Game Developer
    322
    Posts
    15
    Years
  • What's up?
    Hey, did anybody figure out how to make the May 7th release less laggy? There're scripts I need but I can't use them on my game because there's more than copy and pasting on that.
    I tried to move my project to May 7th but... it's too laggy.
    If I use the EditorScripts from May 7th, a lot of trouble happens: the types match-ups mess... Petal Dance is super effective against Charizard(even though being Fire/Flying) and BubbleBeam is TOTALLY ignored(neither uneffective nor normally effective nor super effective... just ignored).
    I think it's because the May 7th's compiler, since is different from the Nov I-don't-know-what-day release.

    Does anybody know how to make the terrain effects at the start of a battle such as the grass show in the picture below?

    Well. You can add and load a sprite on the PokeBattle_ActualScene script. Maybe where the battlebg loads... or perhaps where the oponent trainer sprite loads, since it moves from side to side, like the trainer and the battle background.
     
    Last edited:

    KitsuneKouta

    狐 康太
    442
    Posts
    14
    Years
    • Seen Nov 20, 2017


    oh goddammit, fine. I can see when I'm outvoted. no more purple font! (I miss it already)
    Lol, sorry about that. It's just that most people stick with the default theme instead of changing it.

    Anyways, I'll look into doing it for wild pokemon too.
     
    48
    Posts
    13
    Years
    • Seen Jun 16, 2013

    @Sichlor: The day/night system is fairly hard to work with. I looks at geographical location to figure out the time of day or something, and sets the value accordingly. I would almost say that making a new, simpler system would be easier, but someone here has probably played with it enough to help you. Hopefully.

    I just came up with a pretty simple workaround:
    PBDayNight.getShade() returns a number from 0 (full night) to 255 (full day) so you can adjust the screen tone color while entering the forest easily with condional branches...
    Works great!
    since this thread expands so rapidly i hope nobody minds if i repost my other questions from before....

    1. I'd like to imitate the effect from FR/LG that when you look at signs you are able to turn away from them while the first line is still displayed and thus close the message window. I was told that this could only be done closing the interpreter, but the person didn't know how to do it with the modified starter kit scripts. So how can i dispose a message window (only from signs!) when i turn away from them?

    2. I have some maps that cover multiple parts of the region map so i can't display the precise, actual position on the town map for the player.
    I figured it'd be a good workaround to split up the maps (which works fine for that purpose) into multiple parts. But i still only want the map's name displayed in the upper left corner on entering the FIRST and LAST map of my map-parts and only if i enter from the right direction. so this can't be done using the ShowArea option in the metadata. My first idea would be to handle the events WHEN to show the map's name myself for those maps, but I'd need the script line to do so... i couldn't figure it out myself so maybe somebody knows how to trigger the map-name display by script code.

    3. This problem maybe belongs into the animation section, but i think it can only be solved by scripting: I want to change the by default included Stat increase/decrease animations to those used in FR/LG. Yes, they fit to the affected Pokemon's sprite and THAT is just my problem.. When experimenting i noticed that a good effect results from turning the animation frame blending options to "sub" - but that affects the colors drastically... anybody an idea how to solve this??

    4. I would like to have the experience bar fill WAY faster (graphically)... how can i achieve that? when i looked at the script i found something like "rect.fill" and i didn't know how to handle that.. i'd like to speed up this process to have it at least twice as fast(less frames or something) . any ideas?

    Any help would be greatly appreciated!

    Thanks in advance, Sichlor
     
    202
    Posts
    15
    Years
    • Seen Jan 5, 2014
    can some one help me with this wild pokemon error.


    ---------------------------
    Pokemon Essentials
    ---------------------------
    Exception: NoMethodError

    Message: undefined method `true' for false:FalseClass

    PokeBattle_Battle:523:in `pbSetSeen'

    PokeBattle_Battle:638:in `pbStartBattleCore'

    PokeBattle_Battle:549:in `pbStartBattle'

    PokemonField:753:in `pbWildBattle'

    PokemonField:752:in `pbSceneStandby'

    PokemonField:754:in `pbWildBattle'

    PokemonField:751:in `pbBattleAnimation'

    PokemonField:751:in `pbWildBattle'

    PokemonField:1069:in `pbBattleOnStepTaken'

    PokemonField:1092:in `pbOnStepTaken'



    This exception was logged in ./errorlog.txt.

    Press Ctrl+C to copy this message to the clipboard.
    ---------------------------
    OK
    ---------------------------
     

    KitsuneKouta

    狐 康太
    442
    Posts
    14
    Years
    • Seen Nov 20, 2017
    Anyways, I'll look into doing it for wild pokemon too.
    All right, that one took me a bit to find, but here it is. In PokeBattle_Pokemon, look for self.level=level and change it to this:
    Code:
    rnd=rand(2)
    rnd2=rand(2)
    if rnd==0
       self.level=$Trainer.party[0].level+rnd2
    else
       self.level=$Trainer.party[0].level-rnd2
    end
    @1ninjadude1701: I believe that is one of the errors that means you need to get a different kit. Upgrade to the latest if you haven't, or find an older one if you have. Also, it's nice if you remove the extra spaces.
     
    Last edited:

    ashthebest10

    Creator of Pocket Monsters
    81
    Posts
    13
    Years
  • What's up?
    Hey, did anybody figure out how to make the May 7th release less laggy? There're scripts I need but I can't use them on my game because there's more than copy and pasting on that.
    I tried to move my project to May 7th but... it's too laggy.
    If I use the EditorScripts from May 7th, a lot of trouble happens: the types match-ups mess... Petal Dance is super effective against Charizard(even though being Fire/Flying) and BubbleBeam is TOTALLY ignored(neither uneffective nor normally effective nor super effective... just ignored).
    I think it's because the May 7th's compiler, since is different from the Nov I-don't-know-what-day release.



    Well. You can add and load a sprite on the PokeBattle_ActualScene script. Maybe where the battlebg loads... or perhaps where the oponent trainer sprite loads, since it moves from side to side, like the trainer and the battle background.
    I'm am new at scripting but i know enough to get around, can you tell me where the trainers sprite is loaded in PokeBattle_ActualScene?
     

    Maruno

    Lead Dev of Pokémon Essentials
    5,285
    Posts
    16
    Years
  • hmmm, this might be a tall order, but I was wondering if anyone could help me with this.

    see, I'm trying to um, make it so that instead of setting wild pokemon/other trainers' pokemon levels, the game gets the level of your first pokemon and then like...sets the opponent's level to be somewhere between two levels lower/higher than that.

    um, I know it kind of sounds random and not at all useful haha but the thing is, my game isn't set in a whole region, it's just like...a small part of the region, and the character has only one pokemon with them at a time (as well as an egg!), so uhhh the thing is obviously depending on how much you grind, your pokemon could like be anywhere from freshly hatched to like, level fifty gazillion, when you come up against plot-related trainers, so pacing opponent's levels is freaking impossible >:(

    so I was basically thinking...maybe I could just throw in something small in whatever script controls the battles (like... get first pokemon's level, get a random number between level-2 and level+2, change the opponent's level to that), but I have NO IDEA if that is even viable, or where I'd do it. so uhhhh just thought I'd ask some of you experienced scripters if this is an impossible idea of mine, or if I'm going about it in entirely the wrong manner and I'll have to write a whole brand new script to deal with battles (please god not this)...
    I just wanted to voice my own opinions on this. Firstly, my favourite colour is purple. :classic: Also, I notice you say the player will only have one Pokémon at a time, which makes balancing much easier. The rest of my nattering below concerns the general idea of balancing, just for the sake of it.

    It would be very difficult to come up with a good balancing system that reduces the chances of abuse. You need to consider a lot of things, including:

    • (If only the first party Pokémon is considered) The player could lead with a weak Pokémon, only to switch in a much stronger one later and power over the opponents.
    • (If all party Pokémon are considered) A simple level average won't work, because a team of 5 weaklings and one strong Pokémon would still have a low average level, leading to steamrolling again.
    • (If the strongest 3 Pokémon only are considered) Same again - the other two could be weaklings just to drive down the average level.
    • Different species are different. Bug Pokémon are typically weak, so trainers with them should be a little overleveled to compensate.
    • You could also end up with the trainers owning "illegal" Pokémon, i.e. underleveled Pokémon. A level 15 Blastoise is not normal. Attempting to fix this (i.e. replace with the next highest evolution) would be even more complicated.
    • (Considering number of badges) The number of badges the player has means little. It's not a good idea to use them as part of balancing.
    I think analysing the player's Pokémon and deriving a level from that is wrong, because of the abusability mentioned above. Instead, I would suggest giving the trainer Pokémon core levels, and then restrict the balancing to +/- 5 depending on the relative strengths of them and the player (to even them out a little). It's not perfect, but it's a start.

    Going any further with this would probably require some decent maths, namely mean and range of levels. With these two numbers you can tell if there's some abuse going on (i.e. one strong, five weak results in a low mean but big range), so you can adjust the levels accordingly. You can then take different groups of the party Pokémon and run the calculations with them too, to decide what the player is planning to do, and compensate accordingly.

    This can get very complicated very quickly. And that's only discussing levels - what about taking natures/abilities/moves into account as well? Not only looking at the player's Pokémon's stats, but also modifying the trainer's Pokémon to suit (e.g. give Charmander an Electric move if the player has a Squirtle).

    Nightmare.

    Oh, and remember that balancing means the trainers may well have Pokémon whose levels(/stats/etc.) change with each encounter, and eagle-eyed players will pick up on that. They will, too - a few have complained that trainer Pokémon's genders/abilities are random and not fixed.


    Does anyone know how to do the regional storages?
    Theoretically, yes. Nickalooose asked me a short while ago about this, so I'll just repeat what I told him:


    As a guess, I don't think implementing something like this would be too difficult. You'd need to do the following:

    1. Create new storage variables (just like how $PokemonStorage is one), one for each region (e.g. $PokemonStorageKanto, etc.). Note that this is in addition to $PokemonStorage. Have them all initialise the same way in PokemonLoad (i.e. as a set of storage boxes - $PokemonStorageKanto=PokemonStorage.new, etc.).
    2. Make sure these global variables are added to both the save/load functions (because you don't want to lose them when you close the game).
    3. Whenever you cross to a new region, first make the player deposit all their Pokémon (you'll have to force this, because they player cannot deposit their only remaining party Pokémon), then copy $PokemonStorage to whichever storage variable corresponds to the region you just left. Then clear $PokemonStorage and copy to it the contents of the storage variable corresponding to the newly entered region, and then make the player withdraw at least 1 Pokémon (only if they've been there before; if storage is empty, they're new here, so make them go see the Professor for a new starter instead).
    Basically, you'll have a set of storage boxes for each region, plus $PokemonStorage which will be a copy of whichever is the local region's boxes. All the scripts will only work with $PokemonStorage, which is fine - the other ones you made are "archive storage"; they're not actively used.

    As far as I can tell, as long as you do everything in point 3 each time you enter a different region, it should work fine. Obviously this requires some degree of care to implement in the region-crossings, as there aren't any convenient existing safeguards in place to stop you doing anything silly (e.g. going into the new region with no Pokémon). All of point 3 can and should be done in an event with fairly simple script lines - there's no need for anything more fancy than that.


    I just came up with a pretty simple workaround:
    PBDayNight.getShade() returns a number from 0 (full night) to 255 (full day) so you can adjust the screen tone color while entering the forest easily with condional branches...
    Works great!
    If you're using that how I think you're using that (changing the screen tone via the transfer events), I don't think it'll work properly. For one, the screen tone changes every minute, but setting a "change screen tone" line in the transfer event will only change the tone that one time. If you wait around in the forest for a few hours, you'll notice a difference. Even going from one side of the forest to the other takes time, and you'll end up with an offset tone for the rest of the game.

    Secondly, the screen tone change won't be negated if you leave via Fly or Teleport or whatever.

    I would recommend you look into using a fog instead, and setting the forest to "indoors" (so there's no tone change). Make the fog graphic look leafy, and make it as dark or as light as you want, and there you go.


    2. I have some maps that cover multiple parts of the region map so i can't display the precise, actual position on the town map for the player.
    I figured it'd be a good workaround to split up the maps (which works fine for that purpose) into multiple parts. But i still only want the map's name displayed in the upper left corner on entering the FIRST and LAST map of my map-parts and only if i enter from the right direction. so this can't be done using the ShowArea option in the metadata. My first idea would be to handle the events WHEN to show the map's name myself for those maps, but I'd need the script line to do so... i couldn't figure it out myself so maybe somebody knows how to trigger the map-name display by script code.
    First a bit of chat:

    This problem you have will only manifest itself when you look at the region map (I'll call it country from now on to avoid confusion) to see your current location. Because one map can only be designated one square in the country, your little trainer face will only ever be displayed in that one square, even if you happen geographically to be a few squares over.

    It won't affect anything else, though. Fly destinations, hover-over information and all that are handled as part of the country information, not map-specific information (i.e. you define each square of the country for these things).

    I'll agree that it's quite annoying, though. Poccil's probably clever enough to come up with some fix to this (even I can imagine how it might work, but I have little to no idea how to implement it). The only other option is to do what you suggest - split each big map up into smaller one square-sized maps, and selectively modify the signpost scripts to not display if going from map X to map Y.

    I haven't done this myself, but I've at least found where it should be done. In PokemonField, find the script procedure Events.onMapSceneChange. In there is the following:

    Code:
     if mapChanged
      if pbGetMetadata($game_map.map_id,MetadataShowArea)
       scene.spriteset.addUserSprite(LocationWindow.new($game_map.name))
      end
    This should be modified to do the checks on whether the previous map is X and the new map is Y. The only problem is that there isn't a handy variable that remembers the number of the previous map (aside: if there was, you could use it to display those circles in DPPt that show where you've come from). You'll have to make one yourself. Once made, it's trivial to set up the comparison - but remember to make sure it works both ways (i.e. going from Y to X too).


    4. I would like to have the experience bar fill WAY faster (graphically)... how can i achieve that? when i looked at the script i found something like "rect.fill" and i didn't know how to handle that.. i'd like to speed up this process to have it at least twice as fast(less frames or something) . any ideas?
    Presumably you mean in battle.

    PokeBattle_ActualScene, around line 590 (in the update def of class PokemonDataBox). Find the following:

    Code:
      if @animatingEXP
       if !@showexp
        @currentexp=@endexp
       elsif @currentexp<@endexp
        @currentexp+=[COLOR=Red]1[/COLOR]
       elsif @currentexp>@endexp
        @currentexp-=[COLOR=Red]1[/COLOR]
       end
    Change those numbers. Simple.
     
    48
    Posts
    13
    Years
    • Seen Jun 16, 2013
    Hi Maruno, first of all: Thanks a lot for putting so much time into helping people!

    On topic:
    If you're using that how I think you're using that (changing the screen tone via the transfer events), I don't think it'll work properly. For one, the screen tone changes every minute, but setting a "change screen tone" line in the transfer event will only change the tone that one time. If you wait around in the forest for a few hours, you'll notice a difference. Even going from one side of the forest to the other takes time, and you'll end up with an offset tone for the rest of the game.

    Secondly, the screen tone change won't be negated if you leave via Fly or Teleport or whatever.

    I would recommend you look into using a fog instead, and setting the forest to "indoors" (so there's no tone change). Make the fog graphic look leafy, and make it as dark or as light as you want, and there you go.

    Yeah, I see that problem now, thanks...

    EDIT:But it's only affecting the forest, not the rest of the game! At the exit, (just like at any other door) the tone gets reset to 0 so no problems there.. and i think i can live with a small difference while walking through the forest.
    /EDIT

    well, my intention to do so after all was not to disable Outdoor, because I want to run in the forest =)
    So I guess I have to decide what I can live with better, and until now, I think I want to be able to run in the big forest... maybe I'll change my opinion when I'm using Flying and stuff like that...
    First a bit of chat:

    This problem you have will only manifest itself when you look at the region map (I'll call it country from now on to avoid confusion) to see your current location. Because one map can only be designated one square in the country, your little trainer face will only ever be displayed in that one square, even if you happen geographically to be a few squares over.

    It won't affect anything else, though. Fly destinations, hover-over information and all that are handled as part of the country information, not map-specific information (i.e. you define each square of the country for these things).

    I'll agree that it's quite annoying, though. Poccil's probably clever enough to come up with some fix to this (even I can imagine how it might work, but I have little to no idea how to implement it). The only other option is to do what you suggest - split each big map up into smaller one square-sized maps, and selectively modify the signpost scripts to not display if going from map X to map Y.

    I haven't done this myself, but I've at least found where it should be done. In PokemonField, find the script procedure Events.onMapSceneChange. In there is the following:

    Code:
     if mapChanged
      if pbGetMetadata($game_map.map_id,MetadataShowArea)
       scene.spriteset.addUserSprite(LocationWindow.new($game_map.name))
      end
    This should be modified to do the checks on whether the previous map is X and the new map is Y. The only problem is that there isn't a handy variable that remembers the number of the previous map (aside: if there was, you could use it to display those circles in DPPt that show where you've come from). You'll have to make one yourself. Once made, it's trivial to set up the comparison - but remember to make sure it works both ways (i.e. going from Y to X too).
    Sounds Great! Thanks! I don't have that much time right now but I'll try as soon as possible!
    EDIT:Made a quick check and found that in Line 1173:
    Code:
    Events.onMapChange+=proc {|sender,e|
     oldid=e[0] # previous map ID, 0 if no map ID
     healing=pbGetMetadata($game_map.map_id,MetadataHealingSpot)
     if healing
      $PokemonGlobal.healingSpot=healing
     end
     $PokemonMap.clear if $PokemonMap
     if $PokemonEncounters
      $PokemonEncounters.setup($game_map.map_id)
     end
     $PokemonGlobal.visitedMaps[$game_map.map_id]=true
     if oldid!=0 && oldid!=$game_map.map_id
      weather=pbGetMetadata($game_map.map_id,MetadataWeather)
      if weather && rand(100)<weather[1]
       $game_screen.weather(weather[0],8,20)
      end
     end
    so what about that oldid thing? can we use it???
    /EDIT
    EDIT2:
    Code:
    Events.onMapChange+=proc {|sender,e|
     oldid=e[0] # previous map ID, 0 if no map ID
     $game_variables[41]=oldid
     $game_variables[42]=$game_map.map_id
     healing=pbGetMetadata($game_map.map_id,MetadataHealingSpot)
     $game_switches[32]=true
     if healing
      $PokemonGlobal.healingSpot=healing
     end
     $PokemonMap.clear if $PokemonMap
     if $PokemonEncounters
      $PokemonEncounters.setup($game_map.map_id)
     end
     $PokemonGlobal.visitedMaps[$game_map.map_id]=true
     if oldid!=0 && oldid!=$game_map.map_id
      weather=pbGetMetadata($game_map.map_id,MetadataWeather)
      if weather && rand(100)<weather[1]
       $game_screen.weather(weather[0],8,20)
      end
     end
    }
    41: Oldmap
    42: Newmap
    =)
    /EDIT2

    EDIT3:
    Code:
     if mapChanged
      if pbGetMetadata($game_map.map_id,MetadataShowArea)
       if $game_variables[41]!=38 && $game_variables[41]!=39
       scene.spriteset.addUserSprite(LocationWindow.new($game_map.name))
       end
      end
     end
    route3
    first map:37 (ShowArea=true)
    second map:38 (ShowArea=nil)
    third map:39 (ShowArea=nil)
    fourth map:40 (ShowArea=true)
    WORKS!!!! THANKS!!!
    /EDIT3

    Presumably you mean in battle.

    PokeBattle_ActualScene, around line 590 (in the update def of class PokemonDataBox). Find the following:

    Code:
      if @animatingEXP
       if !@showexp
        @currentexp=@endexp
       elsif @currentexp<@endexp
        @currentexp+=1
       elsif @currentexp>@endexp
        @currentexp-=1
       end
    Change those numbers. Simple.
    Yep, works. Thanks! But I'll need to do some fine tuning when I have more time... I found out that you can't simply raise both numbers because it'll flash back and forth to reach @endexp.
    And you can't just change the upper number to something bigger and leave the lower number to 1, because then the bar might fill more than intended.
    So at the moment I have
    Code:
      if @animatingEXP
       if !@showexp
        @currentexp=@endexp
       elsif @currentexp<@endexp
        @currentexp+=(@endexp-@currentexp)
       elsif @currentexp>@endexp
        @currentexp-=1
       end
    Which works, but is TOO fast =)
    I'll try to figure something better out( I can't use something like (@endexp-@currentexp)/4 because that might result in decimal numbers, right?), but maybe you know an answer right away...
    Anyhow Thanks alot, you helped me much!!

    Sichlor
     
    Last edited:

    thepsynergist

    Vinemon: Sauce Edition Programmer and Composer
    795
    Posts
    15
    Years
  • So, does anyone know how to get that pokeball icon in battle saying you've caught the pokemon already in pokemon essentials?

    I need a script edit for that, please...
     

    Conan Edogawa

    One Truth Prevails
    1,061
    Posts
    15
    Years
  • I figured I would post this here because I doubt regular RMXP games use the border like Poccils kit. I have two questions but they're both related. I want the screen to start at 320x240 and have the option to grow to 480x320, not the other way like it currently is. Can someone explain what I need to edit to do that? And also, what do I edit to remove the need of the border when the screen is 320x240? Not just removing the border, but making it so there is no black around the screen when the border is gone.

    This was probably overlooked, any thoughts?
     

    roxaspwner

    Pokemon Orange Isles Leader
    13
    Posts
    14
    Years
    • Seen Dec 15, 2016
    So, I'm having a major issue. Is it possible to have a control switch (other than control switch A) be turned on at the end of a battle?

    I'm trying to set it up where once you defeat one trainer, the next trainer becomes unlocked, but after the end of the battle currently nothing happens. other than the normal EndSpeeches and such.

    Help? or should I try to clarify myself some more. x;
     

    Vociferocity

    [ bad girls do it well ]
    269
    Posts
    15
    Years
  • All right, that one took me a bit to find, but here it is. In PokeBattle_Pokemon, look for self.level=level and change it to this:
    Code:
    rnd=rand(2)
    rnd2=rand(2)
    if rnd==0
       self.level=$Trainer.party[0].level+rnd2
    else
       self.level=$Trainer.party[0].level-rnd2
    end

    you are just constantly amazing! it's insane. thanks muchly :)

    Firstly, my favourite colour is purple. :classic:

    I knew there was a reason I liked you!

    Also, I notice you say the player will only have one Pokémon at a time, which makes balancing much easier. The rest of my nattering below concerns the general idea of balancing, just for the sake of it.

    yeah I've been playing with different ideas for balancing - I know a few of your points don't really concern me, but the illegal pokemon thing and the encountering trainers more than once and seeing differently leveled pokemon thing worry me a little. so uhhh I think I've come up with a pretty good solution! unfortunately, it gives away a few too many secrets about my game for me to be able to reveal it~*~*~*~
     

    IceGod64

    In the Lost & Found bin!
    624
    Posts
    15
    Years
  • THis isn't an error that I need help with or anything, it's pretty clear what I did wrong. However, I will post it for your amusement.
    2q8age1.jpg

    A game coded in C++ wouldn't even be able to handle that.
     
    Status
    Not open for further replies.
    Back
    Top