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.

Harvest Moon Scripts

Harvest Moon Scripts
Hello!,
I'm writing this because I have searched all over the web without any results.
I need some scripter help with a number of Scripts, and I think this will help a lot of people who have asked several times for the same.

Note: I'll start off by saying that I already know that xBrokenSin made a basic Harvest Moon "Starter Kit". These ideas/requests are for improving that system.

Note 2: I'm talking about RMXP here.

Personality/Likes and Dislikes Script

This is basically a Module with a number of variables:
Character id (0) (NPC ID number)
Character Name "Some Name"
Gender (0 for male, 1 for female)
Marriage (If the character is available for marriage. True or False)
Birthday (X, Y). (where X is the day and Y the month number (1 Spring, 2 Summer, 3 Fall, 4 Winter))
Loves [1, 2, 3] Array with Item ID which the character loves.
Likes [4, 5, 6] Array with Item ID which the character likes.
Dislikes [7, 8, 9] Array with Item ID which the character hates.
Relationship (X) This is the relationship the NPC has with your character. With a maximum of 100.

You can then add characters and inside the NPC event (probably comments) put the character ID, so he reacts depending on these variables.
Relationship grows with Likes and dislikes, for example, if I give the NPC something he loves, the relationship will increase by 2; if it's his birthday, all points will be multiplied by 2. and if the character hates the item, the relationship will decrease by 1.
The characters before speaking to you will search for their relationship variable, and change their dialogue depending on the latter.

Active Item Script

This script is pretty basic, and can be made using the equipment script.
Basically you can have only 1 active item, which will be shown over your head. (This has already been made by xBrokenSin). When you press the action button with an active item, it will be tossed. If you speak to an NPC with an active item, it will take it, and send a message related to the "gift".

*************

Well, that's about it for now. I can't think of anything else right now.
So...Thank you for reading and please help us.
 
Ok, Update!!

This is what I have so far:
Code:
module Town

  class People

    def initialize

      @id = 0

      @name = ""

      @marry = false

      @gender = 0

      @birthday = [0, 0]

      @loves = []

      @likes = []

      @dislikes = []

      @relation = 0

      @rs = nil

      

      

    end

    attr_accessor :id

    attr_accessor :name

    attr_accessor :marry

    attr_accessor :gender

    attr_accessor :birthday

    attr_accessor :loves

    attr_accessor :likes

    attr_accessor :dislikes

    attr_accessor :relation

    attr_accessor :rs

  end

    

  Anna = Town::People.new

  Anna.id = 1

  Anna.name = "Anna"

  Anna.marry = true

  Anna.gender = 1

  Anna.birthday = [20,2]

  Anna.loves = [1,2,3]

  Anna.likes = [4,5]

  Anna.dislikes = [6]

  Anna.relation = 0

 

end

 

I can start adding character, because it's working correctly.
Now, the big problem is scripting the likes/dislikes.

I'm thinking about making something like this:

for item_id
when
1 = [
{1, @loves},
{2, @loves},
{3, @dislikes},
{4, @likes}
]

2 = [
{1, @dislikes},
{2, @dislikes},
{3, @likes},
{4, @loves}
]

Explanation:
for Item_ID means the Item ID on the database.
so, for item number 1, i create an array.
1 = [
{1 (character ID), @loves (loves, likes, or dislikes)},
{2 (character 2), @dislikes (character number 2 dislikes the item number 1)}
]

Soo...well I want to finish this, and I need help.
I would like a moderator to move this to script support, because it's more like pointing me on the right direction rather than making me a script.
 
Fallen":pet0z4q0 said:
Bump...please move it...

Try pming a moderator. As for what a character likes and dislikes, all you have to do is search the arrays, like this:

Code:
if Anna.likes.include?(item_id)

  do_whatever

end

You can also expand that so that it includes each of them. Or, even better, you can use this:

Code:
module Town

  class People

    def initialize

      @id = 0

      @name = ""

      @marry = false

      @gender = 0

      @birthday = [0, 0]

      @loves = []

      @likes = []

      @dislikes = []

      @relation = 0

      @rs = nil

    end

    def likes_item?(item_id)

      if @loves.include?(item_id)

        return 1

      elsif @likes.include?(item_id)

        return 2

      elsif @dislikes.include?(item_id)

        return 3

      else

        return 4

      end

    end

    attr_accessor :id

    attr_accessor :name

    attr_accessor :marry

    attr_accessor :gender

    attr_accessor :birthday

    attr_accessor :loves

    attr_accessor :likes

    attr_accessor :dislikes

    attr_accessor :relation

    attr_accessor :rs

  end

    

  Anna = Town::People.new

  Anna.id = 1

  Anna.name = "Anna"

  Anna.marry = true

  Anna.gender = 1

  Anna.birthday = [20,2]

  Anna.loves = [1,2,3]

  Anna.likes = [4,5]

  Anna.dislikes = [6]

  Anna.relation = 0

 

end

This one will return a 1 if the character loves the item, a 2 if they like it, a three if they dislike it, and a 4 if they are indifferent.
 
Thank you for the response, You've helped me a bit to make up my ideas.

2 questions:
1) what does the "include?" do (specialy the "?" symbol, couse I've seen it a lot)
2) what does .push do? for example: "@states.push(state_id)"
 
Fallen":2eqi8eq3 said:
Thank you for the response, You've helped me a bit to make up my ideas.

2 questions:
1) what does the "include?" do (specialy the "?" symbol, couse I've seen it a lot)
2) what does .push do? for example: "@states.push(state_id)"

Try looking up arrays in the help file.

.include? will search the array for the value that comes after it. If the array includes that specific value, it will return as true.
.push will add the value that comes after it to the end of the specified array.
 
Thank you Glitchfinder for your time.

I have managed to do what you said.

1) I modified the Town module, so it is easier to read:
module Town

id = 1
NAME[id] = "Mayor Louis"
MARRY[id] = false
GENDER[id] = 0
BIRTHDAY[id] = [13,1]
LOVES[id] = [27,28,9]
LIKES[id] = [1,2,4,5,22,23,24,25]
DISLIKES[id] = [26,30]
RELATION[id] = 100

end

So now inside a call script I use this code:
if Town::LOVES[1].include?(5)
$game_variables[1] = 1
elsif Town::LIKES[1].include?(5)
$game_variables[1] = 2
elsif Town::DISLIKES[1].include?(5)
$game_variables[1] = 3
else
$game_variables[1] = 4
end
Message changes according to the 1 variable.

So now the big problem is blending this script with the active item script.
I'm still waiting for someone to help me with active item script. BTW, the active item was already made by xBrokenSin. http://www.megaupload.com/?d=TPAJ2PR8
If anyone can help me figure it out, it would be great.

Thank You.
 
If you're willing to wait, I can get around to it tomorrow. Anyway, are you using that Harvest Moon starter kit? If you are, I'd love a link to that.

OK, I looked through the starter kit you liked us to, and I have a few comments. FIrst off, it is horribly incomplete. It has the basic structures for the systems, but that is all. Next, it doesn't have nearly enough of the ripped graphics from FOMT to be completed. I've looked around, and there are apparently no complete rips of that game. On the other hand, I did find an entirely complete set of rips from on the the SNES games, if you wanted me to link them to you. (They are set up for older versions of RPG Maker, however, so they need a little work to use) Finally, I realized that although I could give you the script you are requesting, you wouldn't be able to make the game functional without a great deal of help from a scripter to flesh out the rest of the systems. (Incidentally, this prompted me to make a short script that can change the tileset on any given map so that you can change seasons without making a map for each season. It is unfinished at this point, however)
 
Glitchfinder":2u1byk0k said:
(Incidentally, this prompted me to make a short script that can change the tileset on any given map so that you can change seasons without making a map for each season. It is unfinished at this point, however)

There already is such a script - made by Ryethe:

Code:
class Game_Map

  attr_accessor :new_tileset

  alias setup_Ryethe setup

  

  def setup(map_id)

    @new_tileset = false

    setup_Ryethe(map_id)

  end

  

  def replace_tileset(new_tiles)

    tileset = $data_tilesets[new_tiles]

    @tileset_name = tileset.tileset_name

    @autotile_names = tileset.autotile_names

    @panorama_name = tileset.panorama_name

    @panorama_hue = tileset.panorama_hue

    @fog_name = tileset.fog_name

    @fog_hue = tileset.fog_hue

    @fog_opacity = tileset.fog_opacity

    @fog_blend_type = tileset.fog_blend_type

    @fog_zoom = tileset.fog_zoom

    @fog_sx = tileset.fog_sx

    @fog_sy = tileset.fog_sy

    @battleback_name = tileset.battleback_name

    @passages = tileset.passages

    @priorities = tileset.priorities

    @terrain_tags = tileset.terrain_tags

    $game_map.new_tileset = true

  end

 

end

 

class Spriteset_Map

  alias update_Ryethe update

 

  def update

    if $game_map.new_tileset == true

      @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)

      @tilemap.priorities = $game_map.priorities

      for i in 0..6

        autotile_name = $game_map.autotile_names[i]

        @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)

      end

      $game_map.new_tileset = false

    end

    update_Ryethe

  end

end

 

I'm also working on some of the Harvest Moon scripts, but they are mostly unfinished, complicated and bugged.
 
Maria1":19fn55xv said:
Glitchfinder":19fn55xv said:
(Incidentally, this prompted me to make a short script that can change the tileset on any given map so that you can change seasons without making a map for each season. It is unfinished at this point, however)

There already is such a script - made by Ryethe:

I'm also working on some of the Harvest Moon scripts, but they are mostly unfinished, complicated and bugged.

Actually, I'm planning to make mine modify the tileset in the map file itself, so that it will automatically load. It also means that you don't have to update it until you change seasons again.
 
Glitch:

Im aware that the Harvest Moon kit was left less than half complete, but even a start is enough for some people to be able to build.
About the Tileset and Graphics, I'm trying to complete the starter kit, and in fact I have already done some Graphics:

Inside.png

Jack_Jumping.png

Jack_Relax.png

Karen.png


I truly belive this Starter Kit can be finished with some help. And I have already made some scripts, apart from the ones I asked help with.
So...in a few more days I'll try to clean up my work and upload it, so you can check it out and help me.

P.S: About the tileset script, It would be a great idea. I'll be looking forward to it.
 
Fallen":373c0xau said:
Glitch:

Im aware that the Harvest Moon kit was left less than half complete, but even a start is enough for some people to be able to build.
About the Tileset and Graphics, I'm trying to complete the starter kit, and in fact I have already done some Graphics:

I truly belive this Starter Kit can be finished with some help. And I have already made some scripts, apart from the ones I asked help with.
So...in a few more days I'll try to clean up my work and upload it, so you can check it out and help me.

P.S: About the tileset script, It would be a great idea. I'll be looking forward to it.

Are you ripping these graphics? If you are, you have to make four tilesets for each outdoor tileset. Not only that, but every object must be in the exact same place on each tileset. My script, which I am currently attempting to give the ability to edit any map, will act in an identical fashion to you right clicking and changing the tileset on the map. (If you've never tried it, I'd advise you do, just to see what I mean) If you aren't ripping the graphics, I can give you the tools necessary to rip them directly from the game, instead of taking screenshots. ANd yes, I do believe that a great deal of hard work has already been done on that kit.

Incidentally, I am exploring the possiblity of giving events what I like to call "self variables" (Kind of like self switches) as well as the possibility to make them a condition of an event page through comments. This would help greatly with Harvest Moon, because the current script is incomplete, and the plants will only take one day to grow larger. (Whereas, with one self variable and one self switch, you can do whatever you need)
 
Glitchfinder":2zey30g8 said:
Actually, I'm planning to make mine modify the tileset in the map file itself, so that it will automatically load. It also means that you don't have to update it until you change seasons again.
You're right, that would be much better.


Also, if the two of you really mean this seriously, I believe I should tell the truth:
I've actually been working on my own Harvest Moon SDK for quite some time now and it's much closer to completition than xBrokenSin's. I exaggerated about the scripts, because I didn't want anybody to know until it's finished, but now I think it would be better if we helped each other. If nothing else, I've got a lot of graphics I ripped myself, so I could share those with you if you want.
 
That would be fantastic Maria1! I really think this can end up beig a great utility.
I'm now making tilesets and other graphics, so if you can help with some scripts and Graphics, it would be great!.

About the season changing script, it's a great idea, and I think I can make what you ask for (about the tileset locations).
I am not ripping sprites yet, instead i'm using this page (http://www.spriters-resource.com/gamebo ... index.html).
this is a pic of how the map looks:
itemgive.png


And about the ripping tool, I would really love to have it, because there are still some maps unripped in that website.
 
Fallen":2ea09fuz said:
And about the ripping tool, I would really love to have it, because there are still some maps unripped in that website.

Well, there will be differences between getting the tiles from that site, and ripping them. The first difference is that you won't be ripping the map, but instead you'll be ripping tiles. Depending on how the game is actually assembled, you'd actually be better off taking screenshots from an emulator. Why? Because if it is anything like the Pokemon GBA games, then the tilesets are actually assembled from smaller pieces, then displayed on a map. Not to mention that those pieces follow several different pallettes. It makes things a little complex to rip directly. Other things, like sprites, animations, etc, should be perfectly fine.
 
Glitchfinder":3jyv8a9s said:
Well, there will be differences between getting the tiles from that site, and ripping them. The first difference is that you won't be ripping the map, but instead you'll be ripping tiles. Depending on how the game is actually assembled, you'd actually be better off taking screenshots from an emulator. Why? Because if it is anything like the Pokemon GBA games, then the tilesets are actually assembled from smaller pieces, then displayed on a map. Not to mention that those pieces follow several different pallettes. It makes things a little complex to rip directly. Other things, like sprites, animations, etc, should be perfectly fine.
Yes, I can confirm that taking screenshots is much better in this case. I did one map this way and it was enough - trying to get hundreds of 8x8 pixels squares to tile correctly while choosing the right one of fifteen different pallettes for each of them really isn't my idea of "easy".
Example:
tilesl.png

I recommend just using something that can disable layers. And as for animations: isn't that what we have Animget for?
 
yeah, I have already managed to rip lots of characters, but actually Maria1 your graphics pack is HUGE (lol) so I don't think I'll need to rip any more for some time...
 

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