Posts: 937
Threads: 101
Joined: May 2009
Currently drafting an area devastated by a massive earthquake. The road breaks off into various elevations with open sewer pipes exposed which one may be obligated to pass through to gain higher or lower ground. Some rickety buildings still partially remain and must also be navigated to get through the region. Certain plans include the player pushing a car into a gap to cross from point A to point B, finding goodies in crumbling buildings and also assisting survivors along the way.
Initial development for ReGaL's Editor application starts Monday.
Posts: 11,238
Threads: 649
Joined: May 2009
Some may have seen finalholylight's recent notice in MicKo's Skill Tree script. While a nice system, he found a drastic flaw with the feature that lets one upgrade a skill in their tree:
If you upgrade one skill, anyone else with that skill will have it upgraded too... including your enemy's.
So the question is... WHAT THE HELL DO I DO? I'M USING THE SUCKER IN MY GAME TOO!!!
And the answer.... diagnostic rewrite.
MicKo's system used a system that altered the original $data_skills that was loaded into the game when you started it. And it is both reloaded and saved in your save games. If you increase your heal skill, it overwrites the heal skill in the entire data file and replaces it with another powerful skill. But again, anyone using that skill would also gain that benefit. Imagine increasing your powerful attack to wipe out an evenly matched opponent, only to find you just worked your self like crazy to upgrade his killer skill too!
So MY trick is: Make an array of skill IDs and Levels for each actor. So if you have the generic 32 skills, you have an array of 32 Skill IDs for each actor that can be upgraded. And it references that list when used within Game_Battler's skill system (and a few other parts). By doing so, only the actor doing his skill upgrade will get that upgrade. :D
Oh, and I'm adding a little 'Skill Book' feature too. Read a book, upgrade (or learn) that skill. It's MOSTLY done.... Some cleanup to take care of now. I'll prolly use a .chm help file to to describe the features.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
Above are clickable links
Posts: 494
Threads: 9
Joined: Sep 2013
(07-02-2014, 04:03 AM)DerVVulfman Wrote: If you upgrade one skill, anyone else with that skill will have it upgraded too... including your enemy's. That part sounds like it would make a decent gameplay gamble, not unlikely games that level up enemies along with your characters. You could either chose to became strong at the risk making foes stronger as well or you could opt to remain weak so your enemies would remain weak too.
Posts: 1,038
Threads: 36
Joined: Oct 2011
there's an snes game called 7th saga, and it does that. it's really irritating because the enemies are op
Posts: 422
Threads: 23
Joined: Aug 2011
I think the intent of the script was for everyone to have unique skills. VVulf's version would be useful too, though!
Posts: 11,238
Threads: 649
Joined: May 2009
Well, I got it fixed up. I didn't include the 'Passive Skill Effects' that MicKo had, but it would require full board editing of every detail in a skill and could be a bit of a headache. Trust me.
However, I did as I intended, add arrays to the actors so they could just track their learned skills and do a little copy/paste of skill IDs and increase of skill levels as the needs arise. At the same time, I was always annoyed that you HAD to have skill trees for every actor otherwise you would crash, so I worked out error preventing statements. So if you cycle through the tree system, you get a big blank area for actors without trees. But you can add individual picture backgrounds for them if you want.
And I made sure that the 'Change Actor Skills' method works with the revised skill ranking system and added ... BOOKS ... that you can read and learn new skills with.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
Above are clickable links
Posts: 400
Threads: 13
Joined: Mar 2010
*appears* I... haven't really been doing much of anything with RM. In fact I don't really remember what I did last? Oh, wait no, it was turn order display and changing the behaviour of critical hits.
Lately I've been toying with Ren'py instead. Toying/strangling. But that's not RM. :v
Posts: 11,238
Threads: 649
Joined: May 2009
Hey, Taylor. I got RenPy tags for the forum. Post away.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
Above are clickable links
Posts: 937
Threads: 101
Joined: May 2009
Started a new sub-project dubbed RPGUI, which is short for Ruby Platform Graphical User Interface. It's nothing BIG yet but, for now, a prototype is being built using RGSS then it will be further ported to the RGL core. Yes, it will run on the RGL core but it will not require the actual ReGaL project itself. Instead, it is what I plan on building the Project Editor systems with, BUT... it's just a GUI utilities kind of dealio, you should (in theory) be able to build a graphical interface for any kind of multimedia application.
(Of course things don't always go as planned...)
A sample screenshot of an RPGUI widget...
And the code used to generate it...
Code: #===============================================================================
# ** Scene_SampleGUI
#===============================================================================
class Scene_SampleGUI
#-----------------------------------------------------------------------------
# * Initialize
#-----------------------------------------------------------------------------
def initialize
@bg = GUI::Background.new(160,120,320,240)
@panel = GUI::Panel.new('Panel', 168,128,304,96)
@button1 = GUI::Button.new('OK', 79, 212, @bg.viewport)
@button2 = GUI::Button.new('Cancel', 161, 212, @bg.viewport)
@button2.enabled = false
@objects = []
@objects << @bg
@objects << @panel
@objects << @button1
@objects << @button2
end
#-----------------------------------------------------------------------------
# * Update
#-----------------------------------------------------------------------------
def update
Input.update
Graphics.update
@objects.each {|object| object.update}
end
#-----------------------------------------------------------------------------
# * Dispose
#-----------------------------------------------------------------------------
def dispose
@objects.each {|object| object.dispose}
@disposed = true
end
#-----------------------------------------------------------------------------
# * Disposed?
#-----------------------------------------------------------------------------
def disposed?
@disposed
end
end
#===============================================================================
# ** Begin button test
#===============================================================================
begin
gui = Scene_SampleGUI.new
while !gui.disposed?
gui.update
end
end
exit
Thus far, it uses absolutely no graphics as things are code generated, but it will (optionally) allow for custom widget graphics later on. The current theme is based on VX Ace, but a custom color A and color B can be assigned as well.
Code: #===============================================================================
# * GUI::RedButton
#===============================================================================
class GUI::RedButton < GUI::Button
#-----------------------------------------------------------------------------
# * Color A
#-----------------------------------------------------------------------------
def color_a
@color_a ||= Color.new(160,96,96)
end
#-----------------------------------------------------------------------------
# * Color B
#-----------------------------------------------------------------------------
def color_b
@color_b ||= Color.new(128,64,64)
end
end
#===============================================================================
# ** GUI::BlackBackground
#===============================================================================
class GUI::GreenBackground < GUI::Background
#-----------------------------------------------------------------------------
# * Color A
#-----------------------------------------------------------------------------
def color_a
@color_a ||= Color.new(96,160,80)
end
#-----------------------------------------------------------------------------
# * Color B
#-----------------------------------------------------------------------------
def color_b
@color_b ||= Color.new(0,80,0)
end
end
#===============================================================================
# ** Scene_SampleGUI
#===============================================================================
class Scene_SampleGUI
#-----------------------------------------------------------------------------
# * Initialize
#-----------------------------------------------------------------------------
def initialize
@bg = GUI::GreenBackground.new(160,120,320,240)
@panel = GUI::Panel.new('Panel', 168,128,304,96)
@button1 = GUI::RedButton.new('OK', 79, 212, @bg.viewport)
@button2 = GUI::Button.new('Cancel', 161, 212, @bg.viewport)
@button2.enabled = false
@objects = []
@objects << @bg
@objects << @panel
@objects << @button1
@objects << @button2
end
#-----------------------------------------------------------------------------
# * Update
#-----------------------------------------------------------------------------
def update
Input.update
Graphics.update
@objects.each {|object| object.update}
end
#-----------------------------------------------------------------------------
# * Dispose
#-----------------------------------------------------------------------------
def dispose
@objects.each {|object| object.dispose}
@disposed = true
end
#-----------------------------------------------------------------------------
# * Disposed?
#-----------------------------------------------------------------------------
def disposed?
@disposed
end
end
#===============================================================================
# ** Begin button test
#===============================================================================
begin
gui = Scene_SampleGUI.new
while !gui.disposed?
gui.update
end
end
exit
Producing this:
This is still very early development though, but... there you have it. That's what I've been up to. That and bashing my head against the wall to get various IDEs, compilers, libraries and other development tools to chain together and work, but that's a whole other post for another day :| There is much to plan out, but hopefully the end result will be worth the effort :3
Posts: 11,238
Threads: 649
Joined: May 2009
It is official!!! I am now sporting a new badge!!! I now have the badge of
I just got my first book on C++, so I am can learn C++ for ReGaL. As I am new to C++ coding, I cannot be anything right now than an official C++ Coding Newb!
Yay!!!
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
Above are clickable links
|