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

Maruno

Lead Dev of Pokémon Essentials
5,286
Posts
16
Years
    • Seen May 3, 2024
    I have a bit of an odd question, and it likely won't have a simple solution. When defining trainers to set up trainer battles, you select their pokemon and their levels. Would it be possible to make the levels more dynamic, where they would be adjusted to, say, the average level of your party? If that much is possible, then it would be a small step to something like your party's average + 5 levels, and so on. This would help keep the difficulty consistent, and could punish players who over-level a single pokemon.
    It's possible, yes, if a little involved. There's a part of the scripts that loads a trainer's Pokémon and sets their levels - all you'd have to do would be to insert a formula in there rather than the line "set level equal to whatever it is in the trainers.txt file".

    You'd have to come up with a decent formula, though. To take the average level of the player's party seems a good start, but what if the player just levels up one Pokémon and fills up their party with Level 2 Pidgey? The average of one Level 100 Pokémon and the rest filler is about Level 18 - the one Pokémon they've been training can wipe anything out.

    How about taking the average of the three highest Level Pokémon in the party? How about adding a random number to that level, for variety? How about doing all that, and then taking whichever is the greater of that calculated number and whatever number is in pokemon.txt (so the trainer's Pokémon don't end up being really weak)?

    It'd be tough to come up with a decent formula that wouldn't make things unfair or too easy. And then you might have a problem with the species being used, e.g. a way overleveled Rattata or an impossibly weak Rhydon. A fix that changes the species used would be very complicated indeed.

    Remember that once you can do this to enemy trainers' Pokémon, though, it's almost trivial to do it to wild Pokémon as well.
     

    ~Frozen Darkness~

    It's watching you...
    503
    Posts
    16
    Years
  • I have two questions:

    1. How can I change a species into a different one? This might be misleading, so I'll give an example:

    Basically, I have an event that when you talk to it, it will check if a Deoxys, for example, is the first in a party. That's the easy part.

    Then, if true, I want Deoxys to change into a different Pokemon, say a different form (which I have a way of doing, very tedious, though)

    2. What is the internal dex number of a Pokemon and how can I set one for a Pokemon?

    :) Thanks in advance! :)
     

    incognito322

    let's look towards the future!
    264
    Posts
    16
    Years
  • Again... the first section of the script in Pokemon Utilities has to do with the day and night tinting. Does anyone know what hours the numbers shown represent? Like the #0, #16, #32 and so on? I was hoping to change the tint colors to something less harsh...
     
    386
    Posts
    17
    Years
    • Seen Aug 10, 2015
    incognito322:

    The numbers represent values from 0 through 255. They don't represent specific hours of the day, but represent the amount of shade the sun gives. The values range from 0 for full night, to 255 for full day.
     
    69
    Posts
    14
    Years
    • Seen Nov 19, 2014
    How i can do a npc what do something when i appears in X map and later do other stuff???
    Sorry for my bad english
     

    BlitŻ1

    guahh my dog is so cute
    472
    Posts
    15
    Years
  • I have a bit of an odd question, and it likely won't have a simple solution. When defining trainers to set up trainer battles, you select their pokemon and their levels. Would it be possible to make the levels more dynamic, where they would be adjusted to, say, the average level of your party? If that much is possible, then it would be a small step to something like your party's average + 5 levels, and so on. This would help keep the difficulty consistent, and could punish players who over-level a single pokemon.

    This is a good idea. However, it would take away the leveling curve and an changing amount of difficulty that a game has to make combat fun :P
     

    KitsuneKouta

    狐 康太
    442
    Posts
    14
    Years
    • Seen Nov 20, 2017
    This is a good idea. However, it would take away the leveling curve and an changing amount of difficulty that a game has to make combat fun :P
    I figure I'll keep the wild pokemon progressively stronger, so that you'll have to level up just to get to further areas. Also, I might try to make it vary between two different types of trainers. If it is a gym leader or elite four or something, make all of the pokemon the same level as your strongest pokemon + 5 levels or so. That way, if your team is unbalanced and relies heavily on one high level pokemon, it likely won't survive more than a couple of the opponent's pokemon. If you team is balanced, however, you could expect to fight opponents at your exact level, which tends to be fairly difficult. This way, you can't over level for gym leaders, etc., so that you will always have a challenge. Then for common trainers, make it the same as your highest level pokemon. It'll probably require a little more depth than that, but it's the basic idea. I am not opposed to trying this for wild pokemon as well. In fact, it would make the wild battles more challenging (although there is the problem with over-leveled basic pokemon Maruno mentioned). In this way, you could TRY to do a low level playthrough, but all of the pokemon would give a fair amount of experience, as well as a challenge, making it nearly impossible not to reach high levels by endgame (although repels could be a nuisance in this regard). In order to prevent any workarounds, I'll try to set a minimum level for different trainers and gym leaders pokemon (this part would become quite involved to script), that way you will be required to meet a minimum.
     
    386
    Posts
    17
    Years
    • Seen Aug 10, 2015
    In response to the request for balanced levels, I've made a function that generates a suggested level for opponents based on the levels of the player's Pokemon. The code follows:
    Code:
    def pbBalancedLevel(party)
     return 5 if party.length==0
     # Calculate the mean of all levels
     sum=0
     party.each{|p| sum+=p.level }
     return 5 if sum==0
     average=sum.to_f/party.length.to_f
     # Calculate the standard deviation
     varianceTimesN=0
     for i in 0...party.length
      deviation=party[i].level-average
      varianceTimesN+=deviation*deviation
     end
     stdev=Math.sqrt(varianceTimesN/party.length)
     mean=0
     weights=[]
     # Skew weights according to standard
     # deviation
     for i in 0...party.length
      weight=party[i].level.to_f/sum.to_f
      if weight<0.5
       weight-=(stdev/100.0)
       weight=0.001 if weight<=0.001
      else
       weight+=(stdev/100.0)
       weight=0.999 if weight>=0.999
      end
      weights.push(weight)
     end
     weightSum=0
     weights.each{|weight| weightSum+=weight }
     # Calculate the weighted mean, assigning
     # each weight to each level's contribution
     # to the sum
     for i in 0...party.length
      mean+=party[i].level*weights[i]
     end
     mean/=weightSum
     # Round to nearest number
     mean=mean.round
     # Add 2 to the mean to challenge 
     # the player
     mean+=2
     # Adjust level to minimum and maximum
     mean=1 if mean<1
     if mean>PBExperience::MAXLEVEL
      mean=PBExperience::MAXLEVEL
     end
     return mean
    end
    Here's how code would use this function:
    Code:
     balancedLevel = pbBalancedLevel($Trainer.party)
     
    Last edited:
    69
    Posts
    14
    Years
    • Seen Nov 19, 2014
    How i can do the " ! " symbol for me and/or for other npc.

    See image

    Good bye
     

    KitsuneKouta

    狐 康太
    442
    Posts
    14
    Years
    • Seen Nov 20, 2017
    In response to the request for balanced levels, I've made a function that generates a suggested level for opponents based on the levels of the player's Pokemon. The code follows:
    Code:
    def pbBalancedLevel(party)
     return 5 if party.length==0
     # Calculate the mean of all levels
     sum=0
     party.each{|p| sum+=p.level }
     return 5 if sum==0
     average=sum.to_f/party.length.to_f
     # Calculate the standard deviation
     varianceTimesN=0
     for i in 0...party.length
      deviation=party[i].level-average
      varianceTimesN+=deviation*deviation
     end
     stdev=Math.sqrt(varianceTimesN/party.length)
     mean=0
     weights=[]
     # Skew weights according to standard
     # deviation
     for i in 0...party.length
      weight=party[i].level.to_f/sum.to_f
      if weight<0.5
       weight-=(stdev/100.0)
       weight=0.001 if weight<=0.001
      else
       weight+=(stdev/100.0)
       weight=0.999 if weight>=0.999
      end
      weights.push(weight)
     end
     weightSum=0
     weights.each{|weight| weightSum+=weight }
     # Calculate the weighted mean, assigning
     # each weight to each level's contribution
     # to the sum
     for i in 0...party.length
      mean+=party[i].level*weights[i]
     end
     mean/=weightSum
     # Round to nearest number
     mean=mean.round
     # Add 2 to the mean to challenge 
     # the player
     mean+=2
     # Adjust level to minimum and maximum
     mean=1 if mean<1
     if mean>PBExperience::MAXLEVEL
      mean=PBExperience::MAXLEVEL
     end
     return mean
    end
    Here's how code would use this function:
    Code:
     balancedLevel = pbBalancedLevel($Trainer.party)
    Thanks Poccil, I'll try it out. Also, I found that to actually change the opponents level automatically (to have the script modify it to the specified amount regardless of what you set it at in the editor), you actually to make an edit to PokemonTrainers, not PokemonScreen. I found that Pokemon screen would only change it when you specified the level, and would only change it in regards to current circumstance, never adjust for future changes. By editing PokemonTrainers, it is automatic.

    @VEGET@: Select the Show Animation command in an event, and choose EM Exclamation.

    EDIT: Poccil, I tried it and it worked great, however it only pitted me against pokemon equal to my highest level. Using the script you provided, I think I can change it up a little and make the opponents randomly have pokemon up to five levels lower or higher.
     
    Last edited:
    20
    Posts
    15
    Years
    • Seen Oct 26, 2015
    Hey everyone, I was wondering if anyone knew how to change it so that when you use the running shoes that your sprites auctually changes into a running sprite instead of just walking fast?
     

    Mrchewy

    nom nom nom
    361
    Posts
    16
    Years
  • Hey everyone, I was wondering if anyone knew how to change it so that when you use the running shoes that your sprites auctually changes into a running sprite instead of just walking fast?

    In metadata.txt, replace the second last entry of Player A or B, with the filename of your running sprite minus the extension. For example, the male player (PlayerA) has "Red" set by default; if you had a running sprite called "running.png", then you would replace the second last "Red" with "running".


    I'm probably in over my head here, but would it be possible to modify the Perspective script to support tile priorities, or to an extension, upper-layer support? In other words, how do I make layers 2 and 3 appear 'flat' (i.e buildings and trees)?
     
    20
    Posts
    15
    Years
    • Seen Oct 26, 2015
    Thank you, but auctually I was asking if you could change it so that when you pushed b (well in this case z) that your sprite would change from walking to running and then once you let go the sprite goes back to normal like in a normal pokemon game

    also to anyone who knows how do you change the color of the text in battle?
     
    Last edited:

    Mrchewy

    nom nom nom
    361
    Posts
    16
    Years
  • Xblaze1234, read what I said carefully. I know what you meant; I told you how to do this. By default, "Red" is used for everything, giving the illusion that Essentials doesn't support running sprites (when it actually does). The second last entry in PlayerA is for the running sprite. Changing this value will do exactly what you want it to do.

    As for changing battle text colors, in Pokemon_ActualScene search for the beginning of the "PokeBattle_Scene" class. There's a whole heap of values you can edit to change colors, positions, etc. Here's an exerpt:

    Code:
    class PokeBattle_Scene
    
    USECOMMANDBOX=false # If true, expects a file named Graphics/Pictures/commandbox.png
    USEFIGHTBOX=false # If true, expects a file named Graphics/Pictures/fightbox.png
    MESSAGEBASECOLOR=Color.new(82,82,90)
    MESSAGESHADOWCOLOR=Color.new(165,165,173)
    MENUBASECOLOR=Color.new(82,82,90)
    MENUSHADOWCOLOR=Color.new(165,165,173)
    BOXTEXTBASECOLOR=Color.new(55,49,41)
    BOXTEXTSHADOWCOLOR=Color.new(165,173,148)

    I'm using an older version of Essentials, but I believe this part should be the same in yours.
     
    20
    Posts
    15
    Years
    • Seen Oct 26, 2015
    Ok I figured out the running sprites but sadly I dont have that file in my version of the starter kit for the text color change...

    alright never mind I think I can manage to figure that one out but now to something that I have been very cerious about...what script would you have to write to make a pokemon follow you? and how do you put places on a custom map (for fly and such)
     
    Last edited:

    Mrchewy

    nom nom nom
    361
    Posts
    16
    Years
  • Xblaze1234, you do have that script on your version of Essentials, assuming you are using the latest version. I just downloaded the latest one and checked; its all there. Check lines 185 onwards in Pokemon_ActualScene.

    As for a Pokémon follow script, there was one posted here a while ago.

    Editing the town map is incredibly simple, and is covered in the notes - which I really suggest you read thoroughly. It's usually as simple as usign townmapgen.html.
     
    20
    Posts
    15
    Years
    • Seen Oct 26, 2015
    But you see I cant find Pokemon_ActualScene anywhere even when I search it so it must be under a different file name. Also thank you for helping me with all of this I am new to this kind of thing I would think that these are some pretty dumb questions...
     

    Maruno

    Lead Dev of Pokémon Essentials
    5,286
    Posts
    16
    Years
    • Seen May 3, 2024
    But you see I cant find Pokemon_ActualScene anywhere even when I search it so it must be under a different file name. Also thank you for helping me with all of this I am new to this kind of thing I would think that these are some pretty dumb questions...
    It's not a file, it's a script section. Press F11 while you're in RPG Maker XP, and a window will pop up with all the scripts in it. On the left is a list of all the script sections - PokeBattle_ActualScene is one of those sections (about halfway down).

    I must warn you, though, that if you don't even know this much then trying to edit the scripts is a really dangerous thing to do.
     

    KitsuneKouta

    狐 康太
    442
    Posts
    14
    Years
    • Seen Nov 20, 2017
    I'm probably in over my head here, but would it be possible to modify the Perspective script to support tile priorities, or to an extension, upper-layer support? In other words, how do I make layers 2 and 3 appear 'flat' (i.e buildings and trees)?
    I saw a script like that recently, but can't remember what it was called. It was supposed to be perspective, support priorities, and also "spinning" the map (like in FFT), for a view from different directions. If I come across it again, I'll let you know.
     
    Status
    Not open for further replies.
    Back
    Top