Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Creature Scripts

This collection of scripts are to help people who want to make pokemon style games that is catching creatures training etc.

Scripts in the demo thing:
  • Fix Lead Character
  • Enemies' Stats From Actors (with levels)
  • Multiple Copies of Same Actor
  • Acorn Catching Script (ie masterball)

Explanation Of Scripts
Fix Lead Character
With this you can set a character to be the lead character regardless of if the're in the party.
http://i4.photobucket.com/albums/y139/Fomar0153/Random%20Screenshots/cs01.png[/IMG]
It's that person whose name I don't know
http://i4.photobucket.com/albums/y139/F ... s/cs02.png[/IMG]
But they are not in the party *gasp*

Enemies' Stats From Actors (with levels)
With this enemies take their stats directly from the actors section of the database you can also assign them levels.
(screenshots combined with Multiple Copies of Same Actor)

Multiple Copies of Same Actor
With this you can have two differant characters that take all their information from the same actor in the database.

http://i4.photobucket.com/albums/y139/Fomar0153/Random%20Screenshots/cs03.png[/IMG]
Two level 1 Basils
http://i4.photobucket.com/albums/y139/F ... s/cs04.png[/IMG]
Aluxes doesn't feel worried.
http://i4.photobucket.com/albums/y139/F ... s/cs05.png[/IMG]
What those Basils look like in the database
http://i4.photobucket.com/albums/y139/F ... s/cs07.png[/IMG]
I caught a Basil!!!
http://i4.photobucket.com/albums/y139/F ... s/cs08.png[/IMG]
Aluxes and level 1 Basil feels worried.
http://i4.photobucket.com/albums/y139/F ... s/cs09.png[/IMG]
Aluxes sees double.

Acorn Catching Script (ie masterball)
Just an example of how to catch an enemy.
http://i4.photobucket.com/albums/y139/Fomar0153/Random%20Screenshots/cs06.png[/IMG]
Pokeballs are made from acorns...

Instructions
In the module constants you need to set Start_From
Currently it makes you have 1 non repeated character who you can refer to with $game_actors[1] after this number are where I intended the repeatable characters to go.
In fix lead character line 8 you can set the default (0 makes it as if this script doesn't exist).
You can change the lead during the game.
To make an enemy use an actor's stats just name the enemy the same as the actor, to set the level encase it inbetween two ~.
E.g. Basil~4~ gives a level 4 Basil
Hi~1~lda gives a level 1 Hilda

Download
http://www.savefile.com/files/606562
http://download.35mb.com/fomar0153/Creature Scripts.zip

Planned Updates
  • Party Changer
  • Catching Options (ie join party or reserve party)
  • Merge with large party script
  • Minor bug fix I just realised existed while making this topic but after uploading demo (won't affect you)
  • Option for whether enemies are in the state they were in when caught

Credits
Fomar0153 (me)

Closing
No I will not merge this with <insert script here>
I may do a few sensible add-ons etc.
Enjoy
 
i really like these scripts but i was wondering if you can make an edit to the acorn catching script so that it only catches when theres a certain % of hp left because right now it acts like a masterball and catches no matter what
 
Here I gave it a quick go:
Code:
class Game_Battler
  
  Item_Catch_Base = {
  33=>[40, 1],
  34=>[50, 2],
  35=>[60, 3],
  36=>[200, 0]
  }
  Catch_Resistence = {
  3=>50,
  4=>100
  }
  
  alias acorn_item_effect item_effect
  def item_effect(item)
    
    unless Item_Catch_Base[item.id] == nil
      x = Item_Catch_Base[item.id][0]
      x += (100 - ((100 * self.hp)/self.maxhp)) * Item_Catch_Base[item.id][1]
      unless Catch_Resistence[self.id] == nil
        x -= Catch_Resistence[self.id]
      end
      x -= rand(100)
      if x > 0
        flag = $game_actors.make_actor(self.actor_id, self.level)
        if flag
          self.hp = 0
        end
      end
      return true
    end
    
    return acorn_item_effect(item)
  end
end
Instructions:
You set the "pokeballs" etc up by making them an entry in the hash e.g.
Code:
33=>[40, 1],
So the 33 is the item's id in the database, the 40 is the base rate and the 1 is the health multiplier, what that means is, it's probably easier to explain the formula.
Firstly you have the base rate e.g. the pokeball (acorn) has 40 as it's base rate next you add the health multiplier by the damage done to that enemy (as a percent), so the higher the health multiplier is the easier it is to catch enemies with low health. Also there is something called catch resistence:
Code:
3=>50,
where 3 is the id of an enemy in the enemy tab and 50 is his resistence. This resistence is taken from the current rate of success and then a random number between 0 and 99 is subtracted from this rate if the rate is above 0 then the catch attempt succeeded if not it failed. This formula is reasonably balanced with the defaults inclined to creatures being easier to catch, you'll probably want to change these values for your own games.

I hope that helped.

Also is there any other scripts you'd like to see added here being as i'm going to try and get back into scripting at the weekend?
 

Zeyd

Member

thanks soo much
can you make a demo please with a tuturial ?
ohh yes i found a script on this site
http://www.rmxp.org/forums/showthread.php?t=7626
can you make it so that defend changed with party where you can change the characters. or can you make a script with a large party and a main leader and only one character in battle and where you can change the characters please

sorry for my bad english I?m from germany
 
nice i have always been a big fan of your scripts specialy the large party script i hope youcan make a demo of that with ccoas cbss 3.20
 
Zeyd;242294 said:
thanks soo much
can you make a demo please with a tuturial ?
ohh yes i found a script on this site
http://www.rmxp.org/forums/showthread.php?t=7626
can you make it so that defend changed with party where you can change the characters. or can you make a script with a large party and a main leader and only one character in battle and where you can change the characters please

sorry for my bad english I?m from germany

In the next update which I hope to start and finish in a few days will have a reserve party thing ie computer from pokemon or the farm from Dragon Warrior Monsters. A merge with my party control script and in battle swapping.

Any other features that are really missing from this starter kit thing?
 
Would there be a trainer card sort of thing? Like something that just keeps track of the player stats. Like how many creatures were caught, how many trainers/gym leaders were beaten and the like. Or just a method on calling the parameters myself, so I could make it would be fine ^_^

Very nice compilation though. I haven't found any bugs yet ^_^
 
It seems that i get some errors when i put it in my game:

when walking around on the map i get:
"script'Game_Party' line 294:NoMethodError occurred.
undefined method 'hp' for nil:nilclass"
that block is:
Code:
  def check_map_slip_damage
    for actor in @actors
(294)if actor.hp > 0 and actor.slip_damage?
        actor.hp -= [actor.maxhp / 100, 1].max
        if actor.hp == 0
          $game_system.se_play($data_system.actor_collapse_se)
        end
        $game_screen.start_flash(Color.new(255,0,0,128), 4)
        $game_temp.gameover = $game_party.all_dead?
      end
    end
  end

when trying to do battle test i get:
"script'Game_Party' line 45: NoMethodError occurred
undefined method 'Level=' for nil:nilclass"
That block is:
Code:
  def setup_battle_test_members
    @actors = []
    for battler in $data_system.test_battlers
      actor = $game_actors[battler.actor_id]
(45)  actor.level = battler.level
      gain_weapon(battler.weapon_id, 1)
      gain_armor(battler.armor1_id, 1)
      gain_armor(battler.armor2_id, 1)
      gain_armor(battler.armor3_id, 1)
      gain_armor(battler.armor4_id, 1)
      actor.equip(0, battler.weapon_id)
      actor.equip(1, battler.armor1_id)
      actor.equip(2, battler.armor2_id)
      actor.equip(3, battler.armor3_id)
      actor.equip(4, battler.armor4_id)
      actor.recover_all
      @actors.push(actor)
    end

when trying to battle in game i get:
"script'Window_Base' line 123: NoMethodError occurred
undefined method 'name' for nil:nilclass"
That block is:
Code:
  def draw_actor_name(actor, x, y)
    self.contents.font.color = normal_color
(123)self.contents.draw_text(x, y, 120, 32, actor.name)
  end
 
I like the idea of this, but incorporating this in your game really is too easy. Reason is because you catch those monsters without any trouble. You should use variables where "how lower the HP, the higher the catch rate is" work. You know what I mean?

Because now its pretty useless to use this system yet.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top