Indie Dev

Hello Guest!. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, sell your games, upload content, as well as connect with other members through your own private inbox!

Customizable base/home, is it possible?

DrGrimReaper

Villager
Xy$
0.00
Hey guys, hope you are doing well! I been meaning to ask, I want to make some sort of HQ where players can switch their party members and also decorate the place, add people, etc. Would that be possible? If so, could anyone give me some pointers as to how? Thanks!
 

Maebius

Knight
Xy$
0.00
Not entirely sure myself, It's ben a while since I muddled about with RPGMaker, but my young son was just trying to come up with a similar idea for his "game" (a horridly unbalanced MontyHaul thing, but he's enjoying making it). I've been looking into "events" that can be moved around via a Common Event, based on an item usage... but it's tricky.
(aka: make the events in all Decorate-able spaces. Certain Inventory Items can be used to "change the image of that Event" when interacted with?

Hopefully someone will have a better idea or script for it. We were planning on using the concept for Flower Gardens that grew and produced Seeds to spread, in a Sim-like game, not the classic RPM rpg combat-heavy game. ...but it's really unfinished so far.
 

Essy

Towns Guard
Xy$
0.00
I can't think of a nice way of doing it with eventing alone.
You could place an event on every tile or just decoratable tiles, best in order of event id..
so in a hypothetical 2x2 map
[event 001][event 002]
[event 003][event 004]
As long as the map isn't too large it shouldn't lag.

Each of these events would have it's own variable and the type of object would be based on an id.

In a separate autorun event you would modify the appearance of each event based off the variable id.
var xxx1 == 0 could set the first tile to have nothing
var xxx2 == 1 could set the second tile to have a table

and so on.

Then you would just have your interface for changing the object which would probably be an action event interfacing with the tile.


This is a rather heavy handed way of handling it, but it can be done with pure eventing.

ANOTHER OPTION (light scripting used):
If you're willing to use arrays we can reduce it to 1 variable used and thus encapsulate the action event as a common event.
In some event that occurs only once but before you enter the room you can do the following.
Code:
$gameVariables.setValue(1,Array.apply(null, Array(howManyEventsYouHave)).map(Number.prototype.valueOf,0));
That's a mouthful, but just replace the howManyEventsYouHave with your actual number of events.
you can also substitute that 1 for whatever variable id you are going to use. (Be sure to never touch it again outside of script calls.)

In your old autorun event we can use the following(replacing firstEventID with what is appropriate)..
Code:
$gameVariables.value(1)[firstEventID] == idToCompare;
then for the next event..
Code:
$gameVariables.value(1)[firstEventID + 1] == idToCompare;
and so on..
You would replace the idToCompare to what variable value you are checking.

The interface then when choosing an option can now simply set the value with..
Code:
$gameVariables.value(1)[this.eventId()] = valueToSet
.. in a common event.
If we go into pure scripting we can generalize it even more.

tl;dr if you think you can understand the scripting approach then you should start going in that direction. Otherwise construct it only with events.

The end result is the same and scripting is only a means to an end. : ) Best of luck.
 

DrGrimReaper

Villager
Xy$
0.00
Thanks to everyone who replied, so far the ideas I been reading are pretty good. Since I'm still new, I'm trying to do it at a small scale and while not entirely customizable, right now I'm setting up the base so that things start to show up as you progress the game. So for example if you do a sidequest, a trophy shows up in your room and stuff like that.

Hopefully, I'll eventually be able to go a bit deeper and make it fully customizable. But for now, I think that's pretty cool.
 
Top