SES Bestiary v1.2 (Now with Demiurge plugin!)

rpglover88

Rpg & Anime Maniac
Veteran
Joined
May 12, 2013
Messages
169
Reaction score
24
First Language
French
Primarily Uses
Thats a pretty cool script!  :)

I think someone asked this before but is it possible to replace the battler pictures with animated sprites? Most of the monsters in my project are xp sized sprites but i also have 64x64 and 96x96 monster sprites.
 

Enelvon

Slumbering Goddess
Veteran
Joined
Nov 29, 2012
Messages
240
Reaction score
139
First Language
English
Primarily Uses
As I said to the one who originally asked that question, I would be happy to provide support for animated sprites. I just need specifics for the format of said sprites, as there are a number of different scripts for animated battlers. If you provide me with an example spritesheet I will write an addon to allow it to be animated in the bestiary.
 

rpglover88

Rpg & Anime Maniac
Veteran
Joined
May 12, 2013
Messages
169
Reaction score
24
First Language
French
Primarily Uses
Oh! Sorry about that. Here's a few exemples of the monsters im using:

Thats the 4 different size of sprites im using.
 

Enelvon

Slumbering Goddess
Veteran
Joined
Nov 29, 2012
Messages
240
Reaction score
139
First Language
English
Primarily Uses
Ah, so you just want to show an ordinary sprite. I see. Would you like the standard walking animation to play, then?
 

rpglover88

Rpg & Anime Maniac
Veteran
Joined
May 12, 2013
Messages
169
Reaction score
24
First Language
French
Primarily Uses
Yes, please. Thats what i meant by animated.  :p
 
Last edited by a moderator:

Enelvon

Slumbering Goddess
Veteran
Joined
Nov 29, 2012
Messages
240
Reaction score
139
First Language
English
Primarily Uses
I assumed as much, but it was possible that you wanted to have it doing something like turning instead (however unlikely that may be). Are the sprites set as the battler's image, or are they specified via a note tag of some kind?
 

rpglover88

Rpg & Anime Maniac
Veteran
Joined
May 12, 2013
Messages
169
Reaction score
24
First Language
French
Primarily Uses
Oh no no no. A simple walking animation is more than enough. And the battle system script im using uses notetags to show sprites instead of battlers. This is the notetag i use:

<sprite: ImageName, 0>ImageName is for the sprites image name and 0 is the index on the spritesheet.
 

Enelvon

Slumbering Goddess
Veteran
Joined
Nov 29, 2012
Messages
240
Reaction score
139
First Language
English
Primarily Uses
Okay, here you go! Sorry about the wait--I've been bouncing between a lot of things today, and that on top of being sick.

Code:
#--# Bestiary Addon: Basic Animated Sprites v1.0 by Enelvon# =============================================================================## Summary# -----------------------------------------------------------------------------# This addon allows the bestiary to display animated sprites for enemies. These# sprites should be formatted as normal RPG Maker VX Ace sprites and be present# in the Graphics/Characters folder.## Compatibility Information# -----------------------------------------------------------------------------# **Required Scripts:**# SES Core v2.2 or higher.# SES Bestiary v1.0 or higher.## **Known Incompatibilities:**# None.## Usage# -----------------------------------------------------------------------------# This script uses a single Notes tag to accomplish its task.## ### Enemy Note Tags:## `<sprite: !Name!, !Index!>`## Place this in a Notes box to give an enemy an animated sprite.## **Replacements:**## `!Name!` with the name of the sprite's characterset.## `!Index!` with the index of the desired sprite within the characterset.## Aliased Methods# -----------------------------------------------------------------------------# * `class Bestiary`# - `draw_enemy`# - `turn_page`## License# -----------------------------------------------------------------------------# This script is made available under the terms of the MIT Expat license.# View [this page]([URL="http://sesvxace.wordpress.com/license/"]http://sesvxace.wordpress.com/license/[/URL]) for more detailed# information.## Installation# -----------------------------------------------------------------------------# This script requires the SES Core (v2.2 or higher) and the SES Bestiary# (v1.0 or higher) in order to function.# These scripst can be found in the SES source repositories at the following# locations:## * [Core]([URL="https://github.com/sesvxace/core/blob/master/lib/core.rb"]https://github.com/sesvxace/core/blob/master/lib/core.rb[/URL])# * [Bestiary]([URL="https://github.com/sesvxace/bestiary/blob/master/lib/bestiary.rb"]https://github.com/sesvxace/bestiary/blob/master/lib/bestiary.rb[/URL])## Place this script below Materials, but above Main. Place this script below# the SES Core.##++module SES  module Bestiary        # Number of frames to wait before each frame of animation    AnimeSpeed = 24      endendclass Bestiary < Window_Book   alias_method :en_bab_b_de, :draw_enemy  # Draws the current enemy's battler.  def draw_enemy    if @battler_sprite      @battler_sprite.visible = true      return    end    character_name = nil    if !@character_index      @character_index = -1      @enemy.enemy.note.split(/[\r\n]+/).each do |line|        if line[/<sprite:\s*(.+)?,\s*(\d+)>/i]          character_name, @character_index = $1, $2.to_i          break        end      end    end    if @character_index > -1      draw_animated_enemy(character_name)    else      en_bab_b_de    end  end   # Draws an animated enemy sprite.  def draw_animated_enemy(character_name)    @pattern = @anime_count = 0    @battler_sprite = Sprite.new    @battler_sprite.z = 255    @battler_sprite.bitmap = Cache.character(character_name)    sign = character_name[/^[\!\$]./]    if sign && sign.include?('$')      @cw = @battler_sprite.bitmap.width / 3      @ch = @battler_sprite.bitmap.height / 4    else      @cw = @battler_sprite.bitmap.width / 12      @ch = @battler_sprite.bitmap.height / 8    end    update_battler_sprite    xpos, ypos = (@battler_size[0] - @cw) / 2, (@battler_size[1] - @ch) / 2    xpos += @enemy.enemy.bestiary_image_offset    @battler_sprite.x, @battler_sprite.y = max_width + xpos, @draw_y + ypos  end   # Updates the window.  def update    super    if @battler_sprite && !@battler_sprite.disposed?      @anime_count += 1      if @anime_count > AnimeSpeed        update_battler_sprite        @anime_count = 0      end    end  end   # Disposes the window.  def dispose    @battler_sprite.dispose if @battler_sprite    super  end   alias_method :en_bab_b_tp, :turn_page  # Turns the page.  def turn_page(num)    if @battler_sprite      @battler_sprite.dispose      @battler_sprite = nil    end    @character_index = nil    en_bab_b_tp  end   # Refreshes the window.  def refresh    @battler_sprite.visible = false if @battler_sprite    super  end   # Updates the source rectangle of the battler sprite.  def update_battler_sprite    @pattern = (@pattern + 1) % 4    pattern = @pattern < 3 ? @pattern : 1    sx = (@character_index % 4 * 3 + pattern) * @cw    sy = (@character_index / 4 * 4) * @ch    @battler_sprite.src_rect.set(sx, sy, @cw, @ch)  endend
 

rpglover88

Rpg & Anime Maniac
Veteran
Joined
May 12, 2013
Messages
169
Reaction score
24
First Language
French
Primarily Uses
Thanks alot and i hope youll recover quickly! :)

Before i forget, if you still want to improve your bestiary script with new features, heres some suggestions:

- Replacing the blue background by a battleback. Lets say you encounter a goblin for the first time in a cave, then the goblins BG would become a cave.

- An option that would tell the player where they can find a monster. For exemple:

Monster Locations:

Cave  <= Places where the player

Plains <= already saw the monster.

??? <= Places where the player didnt

??? <= visit yet or places where the player

??? <= didnt encounter the monster yet.

- A completion rate at the bottom of the screen. Maybe something like "Monsters Seen: 12/56" or "15% Completed".

That's all i can think of at the moment.

Anyway, thanks again and ill be looking forward to see what kind of scripts youll make in the future! :D
 
Last edited by a moderator:

RainbowGrenade

Paint Princess
Veteran
Joined
Jan 21, 2013
Messages
278
Reaction score
329
First Language
English
Primarily Uses
RMMV
So, I'm having somewhat of a weird problem, and I'm hoping you can help. For some reason. certain monsters aren't showing up in the list, even though they'll be added to the count of total monsters encountered. Like, Slimes, which are enemy number 3, not only don't become visible on the list, but that number just gets skipped over. Other monsters work fine, so I know I'm using the right script call. I'm very confused. Did I just miss somethign obvious?

Also, When I chose some to be hidden with the `<Bestiary Hide !Type!>` tag, it still shows a spot with "????" in its place. Is there any way to get a slot to be completely removed from the lineup? I've got item enemies and the like , that don't need to be listed.
 
Last edited by a moderator:

Enelvon

Slumbering Goddess
Veteran
Joined
Nov 29, 2012
Messages
240
Reaction score
139
First Language
English
Primarily Uses
About to run off to work, but I replied on the blog and copy/pasting that here:

Both of those problems are coming from the HiddenEnemies array in the config section (you can CTRL+F for it, or if you haven't added any new lines to the config it should be line 429). The example hides enemies 3 and 6-19. Any enemy IDs placed in there will be completely removed--I did it as an array rather than a tag because this way you can easily hide a contiguous block of enemies without needing to add a bunch of tags.
 

RainbowGrenade

Paint Princess
Veteran
Joined
Jan 21, 2013
Messages
278
Reaction score
329
First Language
English
Primarily Uses
RMMV
Ah! I'm dumb! XD

Thank you so much for your fast response. :)
 

Enelvon

Slumbering Goddess
Veteran
Joined
Nov 29, 2012
Messages
240
Reaction score
139
First Language
English
Primarily Uses
The Bestiary now has a plugin for the Demiurge Note Editor, available here! Demiurge's release topic is currently awaiting moderation, but it should be available soon. To use the plugin, create a file named enelvon_bestiary.rb in Demiurge's plugins directory and paste the contents of the plugin into it. Run the program and you're good to go!
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,858
Messages
1,017,023
Members
137,565
Latest member
Callmelogann
Top