Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Jaiden

1
Fz0 isn't active anymore, so he won't be uploading it again. But to be honest, I don't think you want this, and it's probably not a good idea for it to be re-uploaded or used. It was full of rips, stolen assets, and had absolutely no credit information. You're asking for trouble using any of them in your game, and doubly so if your game is commercial.

Probably best if it stays dead, but obviously someone else can decide that if they still have it.
2
RMXP Script Database / Re: [XP] XP Ace Tilemap
March 07, 2022, 02:29:13 pm
I will eventually make the fork public (I technically am obliged to, due to GPL's terms). Code is currently just too much of a dumping ground to share. You can keep an eye on my Github, if you'd like.
3
Projects / Games / Re: Legends of Astravia
February 09, 2022, 11:05:49 am
Hey all, it's been a minute!

I'm really excited to announce after all these years, a free demo is finally coming to Steam on Monday, February 14th! I hope you're all looking forward to it.

Here is a trailer:

[Media deleted: Please check out the dev archive for the game's visual history!]
4
Quote from: KK20 on May 29, 2021, 12:26:54 pmThat's actually really common. [...] For one, it assumes the game is being launched from the C drive, otherwise the game won't launch.
I'll just weigh in here, having used Enigma for a couple of years, I ran into both of these issues. I had users who were less interested in playing my game's demo because it was both being flagged as a virus and because of the C drive requirement.

Quote from: KK20 on May 29, 2021, 12:26:54 pmAnd I think someone has found a way to get the packaged files, so coming up with your own encryption method is the better way to go.
And yeah, Enigma Virtual Box has been cracked as of last year, unless they updated. So there is no real benefit of using it over standard RGSS encryption (which is also cracked).

Not to mention, every time you make a slight change to your game, be prepared to redistribute a several-hundred megabyte packaged EXE to your players. It's really a poor solution overall.
5
RMXP Script Database / [XP] Extra Fogs & Panorama Lock
October 22, 2019, 01:27:01 pm
Extra Fogs & Panorama Lock
Authors: Jaiden
Version: 1.0
Type: Mapping Enhancement
Key Term: Environment Add-on

Introduction

This is a script that I've used to enhance XP's mapping even further. It allows for an additional fog that is exclusive to the map ID instead of the tileset, plus an additional two fogs: one drawn as a "lightmap" to add lighting effects and one drawn as a "parallax" (like RMVXA's parallax mapping) to add additional little details to the map like vegetation, etc.

Lastly, there is an option to lock the panorama (background image) of a map so it can also be used as a ground layer, effectively giving you two more layers to work with if you know how to drive it.

I've included a demo to help solidify the concept a bit. Note that you will still need to understand how to make parallaxes and lightmaps in GIMP/Photoshop. There are lots of tutorials on this--this script just makes it much easier to apply them.

Features

  • Allows for an additional fog, which is per map instead of per tileset
  • Allows a panorama to lock so it doesn't scroll, allowing it to be used as a ground layer
  • Designated fog for parallax/detail mapping
  • Designated fog for lighting overlay

Screenshots

Nothing to show here, just try the demo if you'd like.

Demo

https://drive.google.com/open?id=1z6Xas94VmIQca1KVA1T_BbLssb_C3l4w

Script
Hosted on Github
Place this script above main just as you would any other custom script.


Instructions

Please see the script for instructions, or check out the demo.

Compatibility

This script aliases the Spriteset_Map class. Place it above main like any other custom script.
It hasn't been extensively tested, but should otherwise play nicely with other map scripts.

Credits and Thanks

  • Game_Guy (for helping with the parallax lock)

Author's Notes

Feel free to let me know if there are any bugs. Commercial use is OK, but I would really appreciate it if you credited me (and showed me what kind of awesome game you're making with it!)

I made this script specifically for use in my game Legends of Astravia. Consider supporting it if you were happy with this script!
6
First, stick this in a blank script above the two I sent you:

Spoiler: ShowHide

alias old_rand rand
def rand(max = 0)
  if max.is_a?(Range)
    diff = max.last - max.first + (max.exclude_end? ? 0 : 1)
    old_rand(diff) + max.first
  else
    old_rand(max)
  end
end


And I've edited my original post, so update the scripts with those.
7
Alright, took a crack at it. Range config is a little bit ugly, but it should do the job.

I can't test it, so let me know how it works out:

Regular
Spoiler: ShowHide

#==============================================================================
# Job-based Level Up Stats                                            Ver 1.0
# By KK20                                                             Dec 14 18
#------------------------------------------------------------------------------
# Purpose:
#  Allows actors to gain bonus stats based on their class/job upon leveling up.
#  For example, a Warrior gains more STR and Max HP while Mages gain more INT
#  and Max MP.
#
# Instructions:
#  Place below default scripts but above Main (the usual). The lower the better.
#  Configure the stat bonuses below (instructions provided there).
#
#==============================================================================
module JobLevelUp
  def self.level_up_stats(id)
    case id
    #-------------------------------------------------------------------------
    # Configure:
    #
    #   when CLASS_ID
    #     [MAX_HP, MAX_SP, STR, DEX, AGI, INT]
    #
    # where CLASS_ID is the database index of the class and each range in the
    # array indicates a random value in which the stat will increase per level up.
    #
    # When a single integer is used, it will select between 1 and the value selected
    # Otherwise, use a range. For example:
    # [2..5, 3, 5..7, 4, 8, 3..10]
    # On level up, they'll get between 2 and 5 HP points, 1 and 3 SP points...etc.
    #-------------------------------------------------------------------------
    #  MAX_HP   MAX_SP   STR      DEX      AGI      INT
    # [low..hi, low..hi, low..hi, low..hi, low..hi, low..hi]
    # If a low value is ommited, selects a value between
    when 1 # Fighter
      [2..7, 2, 3..5, 2..6, 3..8, 2]
    when 2 # Lancer
      [8, 3, 4, 3, 2, 3]
    when 3 # Warrior
      [10, 1, 7, 1, 4, 1]
    when 4 # Thief
      [4, 3, 2, 6, 6, 4]
    else # Classes not defined will use this default value
      [5, 5, 5, 5, 5, 5]
    end
  end
end

class Game_Actor
  alias job_level_up_stats_level level=
  def level=(val)
    start_level = @level
    job_level_up_stats_level(val)
    level_difference = @level - start_level
   
    stat_array = JobLevelUp.level_up_stats(self.class_id)
    level_difference.times {
        self.maxhp += stat_array[0].is_a?(Range) ? rand(stat_array[0]) : stat_array[0]
        self.maxsp += stat_array[1].is_a?(Range) ? rand(stat_array[1]) : stat_array[1]
        self.str   += stat_array[2].is_a?(Range) ? rand(stat_array[2]) : stat_array[2]
        self.dex   += stat_array[3].is_a?(Range) ? rand(stat_array[3]) : stat_array[3]
        self.agi   += stat_array[4].is_a?(Range) ? rand(stat_array[4]) : stat_array[4]
        self.int   += stat_array[5].is_a?(Range) ? rand(stat_array[5]) : stat_array[5]
    }
  end
 
  alias job_level_up_stats_exp exp=
  def exp=(val)
    start_level = @level
    job_level_up_stats_exp(val)
    level_difference = @level - start_level
   
    stat_array = JobLevelUp.level_up_stats(self.class_id)
    level_difference.times {
        self.maxhp += stat_array[0].is_a?(Range) ? rand(stat_array[0]) : stat_array[0]
        self.maxsp += stat_array[1].is_a?(Range) ? rand(stat_array[1]) : stat_array[1]
        self.str   += stat_array[2].is_a?(Range) ? rand(stat_array[2]) : stat_array[2]
        self.dex   += stat_array[3].is_a?(Range) ? rand(stat_array[3]) : stat_array[3]
        self.agi   += stat_array[4].is_a?(Range) ? rand(stat_array[4]) : stat_array[4]
        self.int   += stat_array[5].is_a?(Range) ? rand(stat_array[5]) : stat_array[5]
    }
  end
end


RO Edit
Spoiler: ShowHide

#==============================================================================
# Job-based Level Up Stats (RO Edit)                                    Ver 1.0
# By KK20                                                             Jul 10 19
#------------------------------------------------------------------------------
# Purpose:
#  Allows actors to gain bonus stats based on their class/job upon leveling up.
#  For example, a Warrior gains more STR and Max HP while Mages gain more INT
#  and Max MP.
#
# Instructions:
#  Place below default scripts but above Main (the usual). The lower the better.
#  Place below RO Job/Skill System.
#  Configure the stat bonuses below (instructions provided there).
#
#==============================================================================
module JobLevelUp
  def self.level_up_stats(id)
    case id
    #-------------------------------------------------------------------------
    # Configure:
    #
    #   when CLASS_ID
    #     [MAX_HP, MAX_SP, STR, DEX, AGI, INT]
    #
    # where CLASS_ID is the database index of the class and each range in the
    # array indicates a random value in which the stat will increase per level up.
    #
    # When a single integer is used, it will select between 1 and the value selected
    # Otherwise, use a range. For example:
    # [2..5, 3, 5..7, 4, 8, 3..10]
    # On level up, they'll get between 2 and 5 HP points, 1 and 3 SP points...etc.
    #-------------------------------------------------------------------------
    #  MAX_HP   MAX_SP   STR      DEX      AGI      INT
    # [low..hi, low..hi, low..hi, low..hi, low..hi, low..hi]
    # If a low value is ommited, selects a value between
    when 1 # Fighter
      [2..7, 2, 3..5, 2..6, 3..8, 2]
    when 2 # Lancer
      [8, 3, 4, 3, 2, 3]
    when 3 # Warrior
      [10, 1, 7, 1, 4, 1]
    when 4 # Thief
      [4, 3, 2, 6, 6, 4]
    else # Classes not defined will use this default value
      [5, 5, 5, 5, 5, 5]
    end
  end
end

class Game_Actor
  def level_up_stat_gain(levels, class_id)
    stat_array = JobLevelUp.level_up_stats(class_id)
    # Perform random selection per level gained
    levels.times {
        self.maxhp += stat_array[0].is_a?(Range) ? rand(stat_array[0]) : stat_array[0]
        self.maxsp += stat_array[1].is_a?(Range) ? rand(stat_array[1]) : stat_array[1]
        self.str   += stat_array[2].is_a?(Range) ? rand(stat_array[2]) : stat_array[2]
        self.dex   += stat_array[3].is_a?(Range) ? rand(stat_array[3]) : stat_array[3]
        self.agi   += stat_array[4].is_a?(Range) ? rand(stat_array[4]) : stat_array[4]
        self.int   += stat_array[5].is_a?(Range) ? rand(stat_array[5]) : stat_array[5]
    }
  end

  #----------------------------------------------------------------------------
  # job_level_change
  #  val  - new level value
  #  id   - class ID
  #  flag - determines whether EXP should be updated or not
  #  This method processes change of a job level.
  #----------------------------------------------------------------------------
  alias get_job_level_change_diff job_level_change
  def job_level_change(val, id = @class_id, flag = true)
    old_level = job_level(id)
    get_job_level_change_diff(val, id, flag)
    level_diff = job_level(id) - old_level
    level_up_stat_gain(level_diff, id)
  end

end



8
How do you want to manage this? Do you want a configuration where you set each actor to get 1-5 points per stat per level?
9
Updated to v2.0
Now you can specify what directions the animation displays! Also, KK20 fixed all the bugs and bad logic :)
10
Here are the faces from Pandora's Box, should include at least some of the ones that were in this pack: [link deleted, I no longer have it so please don't ask]
11
Updated it so it can be used in vanilla XP without the save BGM function. Should be OK to put it in the XP DB now.
12
RMXP Script Database / [XP] Audio Extras
February 05, 2019, 12:15:26 pm
Audio Extras
Authors: Jaiden
Version: 1.2
Type: Game System Utility
Key Term: Misc Add-on


Introduction

This script contains a few extra audio functions, and thanks to RPG Maker XP Ace, includes a feature that was only available via RGSS3.

Note that you must have RPG Maker XP Ace installed in order to use the "Pause/Resume BGM" feature of this script.
You can get it here: https://forum.chaos-project.com/index.php/topic,12899.0.html

Otherwise, only the master volume and map volume change features will be available.



Features
  • Ability to pause and resume BGM at the position it was paused [RGSS3/XPA ONLY]
  • Master volume controls for BGM, BGS, and SE
  • Automatic BGM/BGS volume decrease when entering "houses" or any other marked map

Screenshots

Not relevant to the script.

Demo

None at this time.

Script
Hosted on Github


Instructions

Install this script above main as you would any other script.

If you create an options menu that controls the master volume, make sure this script is ABOVE that menu.

See the script for directions on how to use this script. Note that the pause and resume function will not work with MIDI (it can be used, but the MIDI will always start from the beginning).

Compatibility

This script makes modifications to the Game_System class, including re-writing the "bgm/bgs/se_play" methods. Use with caution with any other audio scripts.

As noted above, this script has a feature that will only be accessible if used with RPG Maker XP Ace. This is highly recommended.


Credits and Thanks
  • KK20, as always, for helping me make it not-garbage.


Author's Notes
I created this script for my game, Legends of Astravia, but I figured anyone else using XPA would love to have access to these functions.

I may create an options menu that goes along with this at a later time! Let me know if you run into any bugs.
13
Hey Heretic, someone else saw this error in battle when using MMW:


I don't know if you want to update MMW with the fix I posted earlier in the thread, but I figured I'd give you a heads up.
14
You don't need to bump and spam, you know. That's only if a post gets buried under pages of other posts, which simply won't happen here.
Also, it'll be a while before you get a decent response. No one uses VXA here--we're all mostly XP users.

Can you post the whole script, the command you used to add the actor, or a demo? I need more context than that, but I'm guessing you are using an actor that is becoming nil or aren't setting it correctly.
15
Updated to v1.1; fixed a bug where the map wasn't refreshing correctly and the animation wouldn't always display.
16
RMXP Script Database / [XP] "Inspect" Event Animation
October 01, 2018, 11:14:56 pm
"Inspect" Event Animation
Authors: Jaiden, KK20
Version: 2.0
Type: Event Feature
Key Term: Environment Add-on

Introduction

Do you want to indicate that an event can be interacted with using a nifty animation? This is the script for you! Similar to how most games have some sort of a "press to interact" indicator, this script displays an animation when the player is facing events you've marked for "inspection".

Features

  • Easy to select which event / event page to display on
  • Animation displayed is customizable
  • Should be reasonably compatible with most scripts

Screenshots

Gif example using a custom animation:
Spoiler: ShowHide


Demo

(N/A)

Script
Hosted on Github


Instructions

Instructions are in the script, but it is as simple as putting a comment with "\inspect_event" in the event page you want the animation to display on. Note that the default animation used, "EM Exclamation" plays a sound every time it is looped. I suggest creating a new, silent animation and setting its ID in the configuration.

Compatibility

This script aliases the Game_Map, Game_Event, Game_Character and Sprite_Character classes. This will not be compatible with any scripts that heavily re-write those classes.

Credits and Thanks

  • KK20 for helping with 90% of this
  • Everyone else in the Discord server for helping out and/or dealing with my ramblings

Author's Notes

This is my first script. I figured I'd make a contribution back to Chaos Project since this community has been so helpful in my game's development. Hopefully this script treats someone else just as well!

Credit for this script isn't required, but greatly appreciated, with the exception of redistribution. If you post this script elsewhere, please link back to this original post.
17
Quote from: Kise on March 13, 2018, 01:53:30 pm
Script under this link http://downloads.chaos-project.com/scripts/Blizz-ABSEAL.txt and in the demo are identical. They both reduce the boundary within the screen.

I do believe that's the point. You're supposed to get an idea of how it works and then modify the configuration of the script to fit your needs.
18
New Projects / Re: Places to get your game hosted
March 02, 2018, 09:51:49 am
WOW OZZY FIRST POST IS A NECROPOST WAY TO GO FAM

(actually that doesn't matter, I have a forum post for my game and I link to RMN/itch.io to host it)
19
Updated main post--a bit more organized now.
20
Awesome stuff Heretic, I've been using a majority of your scripts from this bundle in my project so far and love them.

Just a heads up, it seems there is a bug when trying to position a message window over an enemy, I was getting "can't convert Fixnum into String" on line 1489, since it was checking for "abcd" first. Looks like a line in the def reposition method:
  
def reposition
    if $game_temp.in_battle
      if "abcd".include?(@float_id) # must be between a and d
        @float_id = @float_id[0] - 97 # a = 0, b = 1, c = 2, d = 3
        if $scene.spriteset.actor_sprites[@float_id] == nil
          @tail.visible = false
          return
        end
        sprite = $scene.spriteset.actor_sprites[@float_id]
      else
        @float_id -= 1 # account for, e.g., player entering 1 for index 0
        if $scene.spriteset.enemy_sprites[@float_id] == nil
          @tail.visible = false
          return
        end
        sprite = $scene.spriteset.enemy_sprites[@float_id]
      end
#def reposition continues below...


The fix was to replace the line:
if "abcd".include?(@float_id) # must be between a and d


with:
if "abcd".include?(@float_id.to_s) # must be between a and d