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.

Topics - Vexus

1
Script Troubleshooting / Status Screen
March 07, 2015, 05:16:09 pm
After a couple of trial and errors I finally opted to change some stuff in the menus to make it look neater.

Now dialog uses a custom script and all menus show the hotbar at the bottom (Each with a different picture as will be shown in one of the pictures I'm uploading). Anyway, I started fooling around the status screen and stumbled on a text limit.

Spoiler: ShowHide


This name kinda fits but I have a longer name that doesn't. I tried changing values but the bigger name doesn't seem to improve...

What should I be changing to increase the text limit for names?

After fixing this tiny issue I got some other questions if you people don't mind.

Thanks

(The face is probably a placeholder, I just wanted to add something so I could adjust the layout)
2
Script Troubleshooting / Editing Menu
February 09, 2015, 09:07:38 am
I'm editing the basic menu so the choices listed are shown horizontal instead of vertical.

So far, removing everything but the command window is easy but I need to add one thing.

Spoiler: ShowHide


As shown in the picture above, I'm thinking of having that bar visible all the time. Text shows in the window, one line at a time to conserve space. This requires 2 things:

1 - The command window needs to be horizontal instead of vertical because of the menu being icons only.
2 - The command window should not have anything visible other than the cursor itself. The text of each option should be shown on the left side of the bar to indicate what each selection does.

Now this is made in script troubleshooting because I'd like to understand how it's done not someone makes it for me and be done with it. I appreciate the help of course, it's just I'd like to know what has to be changed in case of further adjustments or for future menu ideas.

Thanks for the help.
3
Script Requests / Ring Choice Window
January 18, 2015, 12:06:02 pm
This is not much a request but I've seen it on youtube and was wondering if anyone know if there is the script?

I can't seem to remember which video it was or when I seen it, but I liked the idea.

In short, it's like this: http://forum.chaos-project.com/index.php?topic=12055.0 but instead of showing only text, you have a ring menu around your character with icons and a window with the description of each choice.

Anyone know what I am talking about? I already tried searching on google.

Thanks
4
Event System Troubleshooting / Random Factor
January 16, 2015, 08:50:35 am
I don't know if anyone of you plays or know of the game town of salem but this thread has something to do with it.

I'm experimenting on trying something similar but vs AI in rpg maker xp.

So far I created:
- A random event that picks what house you start in AND what character you are.
- Another event that picks what role you are from a selected few.

Spoiler: ShowHide

Spoiler: ShowHide


Now the tedious part:
- I am creating an event so the AI get their roles picked depending on what you get.

Spoiler: ShowHide


There will be 3 modes:

Easy - 4 people.
Normal - 6 people.
Hard - 8 people.

As you can see, the AI part is not complete yet because I haven't figured out yet how to be able to randomise the remainder 3 roles for the 3 other AI. Once I complete that part, I will have an easier way for the other modes that have more people in them.

Any idea on how to make it?

Thanks
5
General Discussion / This might be silly but..
June 08, 2014, 06:48:26 am
Been so long since I touched rmxp and I'm visiting one of my old unfinished projects (Somnium).

Anyway I'm fooling around the animations and noticed that the casting animation shows over the character which in a side view battle system looks kinda odd. Now I don't want every skill to show under the player but I want those specific casting animations to show under the user/enemy instead of over them.

Is it a hard thing to do? I can't for the life of me find how to do it.

(Apparently the battle system code is too long for a single post if need it I'll split it in two)
6
Hi. as some should know I'm doing a game named Alive and now that I'm doing chapter 2 of the game the infected will start showing.

Now, I haven't started exactly placing the infected on the maps (I test them on test maps at the moment) but this thing has been bugging me for a lot of time so here I am making a thread about it. I'd like that when you are being chased by the infected or even 1 only and you go inside a house or new map that they would keep on following you IF they were close to you when you teleported.

I'm pretty sure this involves switches and such but I'd like to know how to do this in conclusion if they were near you when you teleported or not.

I'm using blizz abs if that is needed to be known.

Thanks
7
I don't know if this is the best place to post this but since I'm using blizz abs it could be held into account.

Anyway on my project alive once I leave the hospital and go outside, the map takes a while to load and even opening/closing menus takes a few seconds to function. I don't know what exactly is the cause, so I'll name all points underneath this message that might have any influence.

1 - The Map is not big it's 45x44.
2 - I'm using a big big tileset (256 x 24448) that might add some time to load but it's a little excessive when somnium had a tileset of comparable size but the map was on 200x200 and didn't lag like this.
3 - There are no enemies/npcs in this map only events. You can interact with some events and texts shows.
4 - At first I thought it might be the day/night script I use as it has a feature to create lights out of objects with a nice effect on the tint of the map but removing it the map still takes some time to load.
5 - Only other script that I doubt is involving on the slowdown of the map is the footsteps script as I don't have performance issues inside the hospital and it's being used there too.

So I don't know what is causing this performance hit, either there are too many events, the tileset is big to load, it's blizzabs involuntary, the day/night script or something else I can't get.

I know by posting this you can't exactly understand or find what is the cause but I am not going to post an open demo of my project alive to the public when there are many custom scripts I'd like they remained exclusive at least for now. (Spent so many time designing the layouts and friend helping on scripting parts etc)

Thanks
8
General Discussion / Other game makers
May 03, 2013, 11:14:21 am
This is something I have been thinking for a lot of time and I need all the opinions possible.

I like rpg maker xp, I like mapping and creating a story that other games wish they had but never do. It's easy to map in with the tileset function and sprites are easy to find with easy features to create events and such BUT there's this big problem.

I want to try an FPS or 3D style game maker even if I have to draw everything myself (When I have some extra money to spend I'm buying a graphic tablet http://bosto-tablet.com/models/19-mb/) I am not a bad drawer but using a mouse really makes me lose patience as it's not the same thng as holding a pencil.

Now that I cleared the graphic part are there any game maker which I could try/use without requiring much coding to comprehend? Rpg maker xp is nice and easy but very limiting tough I could try and make workarounds with scripts.

Thanks
9
Script Troubleshooting / Blizz Abs Combat Help
December 26, 2012, 11:34:11 am
To not flood the sticky with my questions I thought on making a thread where I'll post my problems/questions and hopefully people can help.

Okay so I'm testing the combat system on my project alive as in chapter 2 there will be combat and I'm having some issues that I can't understand and google search not helping.

1 - Can I animate only certain enemy attacks?

I don't need an animation sheet on the infected normal attack or bite but I need an animation on the bandit's attack as it's done with a gun. (Using blank pictures makes the event vanish for a second every time and using the same sprite sheet for each type makes the sprite show double)

2 - For some odd reason my character doesn't want to attack.

I checked controls I have it there, I don't exactly want to deal damage but I even tried changing the "weapon" damage from 1 to 100 still nothing. (In alive you don't fight but I want to have the option on pushing back the enemies which it's not working for me)

3 - Trying to make a ranged enemy and even tough I make it bow or even flail the retard goes melee and stands there.

Now I don't know what I changed but the 2nd enemy that should be attacking the infected goes to melee range and does nothing.

----------------------------------------------------------------

These are my issues for now hopefully people can help.

Thanks

(Once these are solved going to try objects against the infected and I don't know why but I think there will be issues and will need to post again :/ )
10
Script Requests / Drago's Inventory Script Modificated.
October 29, 2012, 06:44:55 am
Hi, I'm trying to get some help on modifying this script to have extra features and better layout for my project mostly.

Link to actual thread:
http://forum.chaos-project.com/index.php/topic,11582.0.html

I'd like the script to have these new features:

1 - Having items that take up more than 1 slot. (Maybe by having the empty grid next to it red or crossed out?)
2 - Adding a small menu that separates items, notes and key items.
3 - Help window smaller. (I was thinking on having an option when you click on any item to get a better detailed explanation.)
4 - Utilizing the marque text script http://forum.chaos-project.com/index.php/topic,12124.0.html for the description/help window just incase.

That's it for features.

Now for layout I was going for this:

Spoiler: ShowHide


Top bar is where the description shows.

The bottom bar remains just like it's currently in the script, showing how much space you have and how many you have filled.

--

I know this is a lot to ask but it's worth a try.

Thanks

(If anyone accepts on helping me I will send you the pictures so you base it off those? Currently they are in a photoshop file but I can separate them if needed.)

Thanks again.
11
Script Troubleshooting / A small problem with Z value
September 22, 2012, 06:48:22 am
Hi, I'm using the event proximity script and since it uses high values to stay on top of everything some things like screen tint and other stuff show underneath the icon which is not what I really want.

I've been trying to find which line to edit to increase the z value of screen tinting to 9999 but can't seem to find it.

So, anyone could help?

Thanks
12
Script Troubleshooting / Weird error?
August 02, 2012, 06:09:26 pm
So I was trying to find a way to increase the z value of the show pictures but I got an error so I reverted it back to how it was now I keep on getting an error on the same line for some reason :S

I tried closing/opening project but still getting error but it's like default..

Anyway the error is:

Script 'Interpreter 5' line 292: ArgumentError occurred.

wrong number of arguments(8 for 9)

All I'm trying to do is show a picture >_>

Please any help?

Thanks
13
New Projects / Alive
June 23, 2012, 09:14:23 am

Abstract: You wake up from a coma in a hospital after a car accident, you can't remember anything from your past not even your name.

Leaving the hospital you find yourself in a deserted town, calling for help is useless, no one responds. You now venture outside trying to find any clues of who you really are and what happened while you where in a coma.

You are Alive.

Genre:  Survival Horror
Engine:

Download:
Currently Chapter 1 is done.

No RTP version:
http://www.mediafire.com/?ni37486mv9ld4nd (21 MB)

With RTP version:
http://www.mediafire.com/?h7xxha77ew36rvr (43 MB)

The demo's length is approximately 30 min to 1 hour depending if you try and search every side of the hospital to find some stuff or just rush to the end. (At the moment there are some hidden stuff but not much. It's inside the hospital only anyway, later on there will be more hidden stuff to find and some unlock those (?) in the load screen and more  :thumbsup:  )

There's an error when you try to save because rmxp compression compressed also the save file... Anyway to solve it make a folder named
"Save File" without the "" and it should work.
(Until I reupload a new demo)

(For new people, RTP is needed to play rpg maker xp games.)

Story
Long Story: ShowHide
While going for a road trip with your family you get involved in a car accident which killed your children on impact, you and your wife survive the accident and get sent into hospital. Your wife injuries were more serious than yours, her symptoms where broken ribs and pneumothorax but she didn't survive the operation. Your symptoms where broken ribs, severe skull fractures and a concussion that made you lose your senses.  

During the operation some complication arised and you fell in coma with some brain damage. Doctors conducted the skull fractures with the concussion could have possibly made you lose some of your memory but they couldn't be certain until you regained senses.

Meanwhile you were in a coma in a foreign island some scientists where experimenting on ways to modify our dna to cure the ageing "malfunction" of our species in hopes of achieving eternal life. Complications rose and instead of finding a remedy to ageing they created a virus that made people lose control. The virus was considered potentially dangerous and so it was kept hidden from the public as ordered by the government.

Weeks passed but the scientists where not getting any conclusive progress from the experiment so the government cut their supply of money. The head scientist, Dr. Chris Gerber creator of the virus was displeased with the news but there was nothing he could do.

Dr. Gerber couldn't neglect all the research he did and all progress done. It was driving him crazy being left alone without the possibility on doing anything, but the project was not left dying, a foreign company contacted Dr. Gerber on the continuation of the research.

Dr. Gerber accepted without any hesitation, little did he know that the company he joined where more interested in turning the research into a weapon than a remedy to cure people.

After a month Dr. Gerber managed to reconstruct the molecule of the virus, now he could continue from where he left. The research started to get some progress done tough it was far from ready.

Tests were being conducted on small animals which concluded the subjects inhaling the virus suffering an exponential increase in aggressivity resulting in a highly contagious rage that kills it's victims after a couple of hours.

The company in charge of Dr. Gerber's research was notified of the progress and dispatched a sample to be tested on some prisoners. The results were terrifying, the virus did raise people from the dead but they were no longer human, they became predators....

The company ordered Dr. Gerber to progress the research so that the virus could be controlled but Dr. Gerber opposed their orders stating his intentions where to find a remedy for ageing not to create a biological weapon. Dr. Gerber didn't want to take part of the modification of the research and requested to be resigned of the project. The company couldn't let him go so easily, he had valuable information and forced him to continue the research against his will.

Without any choice Dr. Gerber had to continue the research.

A week passed and more tests were conducted on these monsters, surprisingly victims raised from the dead didn't seem to suffer any pain when hit or shot unless they were shot in the face or decapitated else they remained dead instead of rising again.  

Dr. Gerber couldn't bear with his research becoming a biological weapon of mass destruction so he modified the formula without the companies consent and managed to reduce its effects exponentially. The modification managed to change the virus from effecting people that where alive; victims had to die for the infection to trigger.

Victims that raised from the dead had infected blood in their systems so if you where bit, scratched or infected blood touching/entering in a victim system it would have caused a bacterial infection killing the victim after a couple of hours and thus triggering the virus.

Later that day Dr. Gerber committed suicide leaving a note stating the project was complete but he didn't want to have any part of it.

Having lost the scientist who created the virus the company thought on having a final test before selling it on the black market. Prisoners were taken into a special room while the company and interested buyers looked from behind a protective barrier for the results. The experiment started without any complications but after a couple of minutes the prisoners started hitting the barrier to get out and one of them got shot. The "dead" prisoner raised from the dead and started attacking the other prisoners and they where turning one by one into these monsters.

The buyers where very impressed with what this virus could do but while they were going to start contracting the infected started hitting the machine and it started overheating, the machine was damaged and it was about to explode exposing the virus into the atmosphere infecting everyone on the planet.

The scientists tried everything they could but there wasn't enough time. The people reviewing the experiment managed to get out before the explosion and after a couple of minutes the whole building collapsed from the explosion leaving several victims dead.

The victims started rising from the dead after a couple of hours, people outside didn't know what was happening inside, they thought the victims coming out were injured from the explosion. The virus was spreading rapidly through the air; people couldn't know what was happening. The infected started attacking the civilians and slowly they were starting to increase in numbers killing and eating all the victims they could find near the area the experiment was conducted.

People were in chaos among trying to escape the living dead.  

Months passed, the virus spread throughout the planet, everyone is infected now but there are still people fighting for their lives while the infected increase in numbers every day.

After a year, infected have overrun most of the planet, hope on humanity salvation is very slim. Some small groups around the planet are still able to fend off the infected but they are not the only thing to look out from, wild animals run in towns scavenging for food, scavengers and bandits roam the abandoned cities looting valuables and destroying anything they find.

It's a new world with no rules, survive of the fittest...

Alive

Setting
The game takes place in modern times not in a fantasy world or such thing.

Characters
Name: ?????
Age: 32

The main character which doesn't remember anything from his life not even his name, left alone after a car accident which sent him into a coma for 2 years.

- Will add more in the future. (If side characters fit here as you're essentially always "alone" eventough you meet people and could stick with them for some time.)

Credits
Credits: ShowHide
Scripts:
-Jens of Zanicuud
For the Item Examine Script, Underline Text Script, Custom Save/Load Screen, Custom Status Screen and for all the help on script problems I had.

- Brewmeister, Gubid, Star
For their Day/Night Script.

-LiTTleDRAgo
For Inventory Script, Fade Effect Script, Custom Pre Menu for Blizz Abs Script and helping me on various scripting problems.

-Heretic
For the Animated Title Script.

-Night_Runner
For the Forced Z Angle On Events Script.

-Game_guy
For the Footsteps Sound Script.

-Ryex
For the Dynamic Sound Script.

-Foreverzer0
For the  Diary Script, Multi Message Script and Event Proximity Script.

-Blizzard
For Blizz Abs Script, ZHud Script.

Resources:
-Pandora's Box (Well that's what they call it) http://forum.chaos-project.com/index.php/topic,11532.0.html
Had a huge amount of resources you can use collected together.

- Ninesages Website www.ninesages.org/XP_Album/index.php
A big thanks to this site which helped me find a lot of resources I needed. (Sadly it seems to be down for quite a while now.)

Audio:
- Freesound http://freesound.org/
Huge selection of sounds if you know what you're searching for and completely free if you register.

- Sound Snap http://www.soundsnap.com/browse
Another good site that has some good sound effects and such but this one requires money.

-Audacity
This program helped me edit some of the sound to make them more ideal to my game.

Screen Shots
Screenshots: ShowHide






Features
Features: ShowHide
- Game is being set in black and white apart of the colour red for blood. (Ala sin city)
- Your character doesn't fight you have to hide, sneak and run to survive.
- Your limited to how many items you can carry by the bag you have.
- You need to eat and drink to survive. (Eating also restores health while drinking also restores stamina to run) - Currently This feature is not implemented.
- Hidden stuff to find and hopefully even traps you can make to gain some time over the infected. - Currently This feature is not implemented.
- Getting bit or scratched by an infected can get you sick and will start to get damaged. Be sure to find or take some medicine to cure yourself or you'll die. - Currently This feature is not implemented.
- Everyone is infected even you but to trigger the infection you need to die. (Unless you get shot in the head or decapitated then you just die)
- You can run, sneak around enemies but running requires stamina so you cant run forever. (To regenerate stamina you either keep walking and regenerate slowly or stand still and regenerate faster)
- You can barricade doors to increase time it takes for infected to breach inside. (Barricading a door requires wood and hammer and once the door is barricaded you can no longer open the door to pass through unless it gets destroyed so think wisely.) - Currently This feature is not implemented.
- Game is set always in the night with some light sources here and there to provide guidance.
- Fade effect inside buildings when you pass from room to room. The previous room goes darker while the one you enter in gets brighter this is going to be used because it adds a little suspense on what could be in the next room.

Progress
Current demo takes place all in the hospital and ends once you go outside.

Chapter 1 is done.
Chapter 2 will start once I finish some stuff.

Known Issues
Sometimes tutorial pictures don't go away after the first Enter or E you press, keep pressing or hold the button and it will work. (Only 1 map has this issue atm but it's not a big deal breaker.)
14
Resource Requests / Police stuff and other things
June 19, 2012, 05:07:42 pm
I've been searching for hours but found nothing.

I'm trying to find some stuff you can find in police offices specially the tape "police line do not cross" and some other stuff that you can find in roads like cones that are placed on the streets, etc etc

So if you know of any or can help me I would really appreciate it :)

Thanks
15
Resource Requests / Emergency stairs
June 02, 2012, 04:37:39 am
I'm trying to find or do it with what I have some emergency exit stairs similar to say silent hill ones where you go from floor to floor by "rotating" stairs but this effect is kinda hard to find in a tileset and with the only tileset I found for now I made something like this:

Spoiler: ShowHide


As you can see it doesn't look bad but if there's something better I'd gladly switch over. (Tough the biggest dilemma is what to put in the dark area.)

So.... do you people know of some decent modern stairs that can portray what I tried to explain?

Thanks
16
I can't find any decent script which has a diary like book to write notes on so I started editing foreverzer0's diary script.

I managed to put a picture as background, managed to move some of the font (Can't find which line moves the chapter's line) and managed to lower the font size BUT for some odd reason the font type doesn't want to change nor the font color eventhough the script command is written correct.

Also when I close the window the picture goes as it should but the window with the words, etc stays for a bit longer then goes off.

This is the edited script:

Spoiler: ShowHide
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
# Diary Scene
# Author: ForeverZer0
# Version: 1.0
# Date: 12.18.2010
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
#
# Introduction:
#
#   This is a basic script that will allow you to keep a "diary" or notepad in
#   your game. It is very simple to use, and uses a simple interface for
#   displaying the notes.
#
# Features:
#
#   - Group your notes into "chapters". 
#   - Automatically formats text to fit on each line in a legible format.
#   - Simple script call to add text.
#   - Option to define each note in the script editor, then simply use a script
#     call to add it.
#   - Option to use the map as the background.
#
# Instructions:
#
#   - Place script above main, and below default scripts.
#   - Make configurations below.
#   - To call the scene, use this syntax:  $scene = Scene_Diary.new
#   - To add an entry, use this syntax:
#
#     Diary.add_entry(CHAPTER, TEXT)
#     
#     CHAPTER: An arbitrary integer to define what group to add the note to.
#     TEXT: Either a string which will be the text added to the diary, or an
#           integer which will return the string defined in the configuration
#           below. The second method will make it easier to make long notes
#           without filling up the little script call box.
#
# Author's Notes:
#
#  - Please be sure to report any bugs/issues with the script. Enjoy!
#
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

module Diary
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#                         BEGIN CONFIGURATION
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
   
  MAP_BACKGROUND = false
  # Set to true if you would like the map to show behind the window.
  RETURN_SCENE = Scene_Map
  # The scene that the game returns to when you exit the diary.
  SCENE_ARGUMENTS = []
  # Define any arguments that may need called with scene if need be. Place them
  # in the array in the order in which they are normally called.
 
  def self.chapter_name(chapter)
    # Define the names of the "chapters".
    # when CHAPTER then "CHAPTER_NAME"
    return case chapter
    when 1 then 'Millenium Fair'
    when 2 then 'What Happened to Marle?'
    end
  end
 
  def self.entry(index)
    # Define the strings that correspond with each index. The index can be called
    # instead of actual text to add an entry.
    # when INDEX then "TEXT"
    return case index
    when 0 then 'I Forgot Today was the day of the big fair! I was supposed to go and see Lucca\'s new invention.'
    when 1 then 'I need to escort Marle around the fair, and maybe play a few games.'
    when 2 then 'Marle was sucked into the vortex. I think it had something to do with that pendant that she was wearing...'
    when 3 then 'This place is very strange, and everyone talks funny. It\'s all vaguely the same, yet different. Where am I?'
    end
  end

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#                           END CONFIGURATION
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
  def self.add_entry(chapter, text)
    # Add the chapter number if it does not exist.
    if $game_party.diary[chapter] == nil
      $game_party.diary[chapter] = []
    end
    if text.is_a?(String)
      # Add the new entry to the end of the chapter.
      $game_party.diary[chapter].push(text)
    elsif text.is_a?(Integer)
      # Get the defined note if the text is a number.
      $game_party.diary[chapter].push(self.entry(text))
    end
  end
end

#===============================================================================
# ** Window_Diary
#===============================================================================

class Window_Diary < Window_Base
 
  attr_reader :lines
 
  def initialize
    super(35, 50, 265, 416) #0, 64, 640, 416
    self.opacity = Diary::MAP_BACKGROUND ? 0 : 0
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = "Zephyr"
    self.contents.font.size = 20
    self.contents.font.color = Color.new(0, 0, 0, 255)
    @lines = []
  end
 
  def chapter=(chapter)
    # Reset the current entries.
    entries = $game_party.diary[chapter]
    entries = [''] if entries == nil
    # Divide the current entries into lines based off the text size and length.
    @lines = entries.collect {|text| self.contents.slice_text(text, 80) } #608
    @lines.flatten!
    refresh
  end
 
  def refresh
    # Dispose bitmap, returning if no lines are defined.
    self.contents.clear
    return if @lines.size == 0
    self.contents.dispose
    # Create bitmap to contain the lines.
    self.contents = Bitmap.new(self.width - 32, @lines.size * 32)
    # Draw each line.
    @lines.each_index {|i| self.contents.draw_text(0, i*32, 608, 32, @lines[i])}# 0, i*32, 608, 32
  end
end

#===============================================================================
# ** Bitmap
#===============================================================================
   
class Bitmap
 
  # Blizzard's slice_text method. This method can be removed if you have another
  # script that already uses it.
  def slice_text(text, width)
    words = text.split(' ')
    return words if words.size == 1
    result, current_text = [], words.shift
    words.each_index {|i|
    if self.text_size("#{current_text} #{words[i]}").width > width
      result.push(current_text)
      current_text = words[i]
    else
      current_text = "#{current_text} #{words[i]}"
    end
    result.push(current_text) if i >= words.size - 1}
    return result
  end
end

#===============================================================================
# ** Scene_Diary
#===============================================================================

class Scene_Diary
 
  def main
    @diary = Sprite.new
    @diary.bitmap = RPG::Cache.picture("Diary.png") #rescue nil
    # Create the windows.
    @sprites = [Window_Help.new, Window_Diary.new]
    if Diary::MAP_BACKGROUND
      @sprites.push(Spriteset_Map.new)
      @sprites[0].opacity = 0 #160
    end
    @sprites[0].opacity = 0 #160
    @keys = $game_party.diary.keys.sort
    @names = @keys.collect {|chapter| Diary.chapter_name(chapter) }
    # Find current index, setting to first chapter if undefined.
    @index = @keys.index(Diary.chapter_name(@chapter))
    @index = 0 if @index == nil
    # Set the information for each window.
    @sprites[0].set_text(@names[@index] == nil ? '' : @names[@index])
    @sprites[1].chapter = @keys[@index]
    # Transition Graphics.
    Graphics.transition
    # Main loop.
    loop { Graphics.update; Input.update; update; break if $scene != self }
    # Dispose windows.
    @diary.dispose
    Graphics.freeze
    @sprites.each {|sprite| sprite.dispose }
  end
 
  def update
    # Branch by what input is recieved.
    if Input.repeat?(Input::UP) || Input.trigger?(Input::UP)
      $game_system.se_play($data_system.cursor_se)
      @sprites[1].oy -= 32 if @sprites[1].oy if @sprites[1].oy > 0
    elsif Input.repeat?(Input::DOWN) || Input.trigger?(Input::DOWN)
      $game_system.se_play($data_system.cursor_se)
      @sprites[1].oy += 32 if @sprites[1].oy < (@sprites[1].contents.height-384)
    elsif Input.trigger?(Input::L) || Input.trigger?(Input::R)
      $game_system.se_play($data_system.decision_se)
      # Change the current index.
      @index += Input.trigger?(Input::L) ? -1 : 1
      @index %= @keys.size
      # Display the name of the current chapter in the header.
      @sprites[0].set_text(@names[@index], 1)
      # Change the current chapter.
      @sprites[1].chapter = @keys[@index]
    elsif Input.trigger?(Input::B)
      # Play cancel SE and return to the defined scene.
      $game_system.se_play($data_system.cancel_se)
      args, scene = Diary::SCENE_ARGUMENTS, Diary::RETURN_SCENE
      $scene = (args == []) ? scene.new : scene.new(*args)
    end
  end
 
end

#===============================================================================
# ** Game_Party
#===============================================================================

class Game_Party
 
  attr_accessor :diary
 
  alias zer0_diary_init initialize
  def initialize
    zer0_diary_init
    @diary = {}
  end
end


Could anyone help?

Thanks

Also here's a picture of what I'm trying to do:

Spoiler: ShowHide


The Chapter should be written on the top while the rest of the words under it.

The only flaw I have is that I can only write on the left page of the diary because I resized the window to be able to move it on the left page.
17
I'm trying to do a menu myself (The layout) and so far it's not that "hard" but there's 2 things I need to do but don't know how to do it, so here I am asking your help you wise scripters.

What I need to know is:

1] How can I make the list show horizontal instead of vertical.

2] Fixed

That's it I think.

Thanks

[Edit]

Oh it's on rpg maker xp.

18
Script Requests / Small edit for this script
May 13, 2012, 07:41:40 am
Hi, I was wondering if it's possible to give this run script a sound when your at 50% and another sound when you deplete your stamina to warn people how much stamina you have left without having any hud as this script doesn't have anything showing how much stamina you got left.

Spoiler: ShowHide
#===============================================================================
# Stand/Walk/Run Script --- RMXP Version
#===============================================================================
# Written by Synthesize
# Version 2.50
# January 26, 2008 (v1)
#     Revised: March 1, 2008 (v2)
#     Revised: September 4, 2010 (v2.5)
#===============================================================================
# Customization
#-------------------------------------------------------------------------------
module StandWalkRun
  Use_run = true   # Use Run Points?
  Use_run_sprite = false    # Use a Running sprite?
  Run_speed = 4   # Player speed while running
  Walk_speed = 3  # Player speed while walking
  Run_sprite_suffix = '_run'   # Running Sprite Suffix
  Run_points = 300   # The maximum amount of Run Points
  Run_points_restore = 1   # 1 Run Point is restored in X Frames
  Restore_run_while_walking = false   # Restore points while walking?
  Use_idle_sprite = false   # Use Idle Sprite?
  Idle_sprite_suffix = '_idle'   # idle Sprite Suffix
  Use_anime = true   # Animate your Idle Sprite?
  Idle_time = 40    # Time before sprite is animated
end
#-------------------------------------------------------------------------------
# Scene_Map:: The main functions of the script are here
#-------------------------------------------------------------------------------
class Scene_Map
  # Aliases
  alias syn_map_update update
  #-----------------------------------------------------------------------------
  # Initiate variables
  #-----------------------------------------------------------------------------
  def initialize
    if $game_player.old_character_name == nil
     $game_player.old_character_name = $game_player.character_name
    end
    @wait_time = 0
    @wait_time2 = 0
  end
  #-----------------------------------------------------------------------------
  # Update:: Update the scene
  #-----------------------------------------------------------------------------
  def update
    syn_map_update
    if Input.dir4 == 0
      wait(1, false) if StandWalkRun::Use_idle_sprite
      if $game_player.move_route_forcing == false
        call_idle($game_player.character_name + StandWalkRun::Idle_sprite_suffix, StandWalkRun::Use_anime) if @wait_time == StandWalkRun::Idle_time
        $game_temp.syn_state = "idle"
      end
      restore_run if StandWalkRun::Use_run
      else
      $game_temp.syn_state = ""
      restore_run if StandWalkRun::Restore_run_while_walking
      call_idle($game_player.old_character_name, false) if $game_player.character_name != $game_player.old_character_name
      @wait_time = 0
      end
      if $game_temp.sprite_changed == true
      $game_player.old_character_name = $game_player.character_name
      $game_temp.sprite_changed = false
      end
    end
  #-----------------------------------------------------------------------------
  # Call_Idle:: Sets and animates the idle Sprite
  #-----------------------------------------------------------------------------
  def call_idle(sprite, anime)
    $game_player.set_step_anime(anime)
    $game_player.set_graphic(sprite)
  end
  #-----------------------------------------------------------------------------
  # Restore_Run: Restore Run Points
  #-----------------------------------------------------------------------------
  def restore_run
    if $game_player.run_points < $game_player.max_run_points
      wait(1, true)
      $game_player.run_points += 1 if @wait_time2 == StandWalkRun::Run_points_restore
      @wait_time2 = 0 if @wait_time2 == StandWalkRun::Run_points_restore
    end
  end
  #-----------------------------------------------------------------------------
  # Wait:: Allows Wait Times
  #-----------------------------------------------------------------------------
  def wait(duration, value)
    for i in 0...duration
      @wait_time += 1 if value == false
      @wait_time2 += 1 if value
      break if i >= duration / 2
    end
  end
end 
#-------------------------------------------------------------------------------
# Game_Temp:: Create current state
#-------------------------------------------------------------------------------
class Game_Temp
  attr_accessor :syn_state
  attr_accessor :sprite_changed
  alias syn_temp_init initialize
  def initialize
    @syn_state = ""
    @sprite_changed = false
    syn_temp_init
  end
end
#-------------------------------------------------------------------------------
# Game_Character:: Create the Change_Sprite method
#-------------------------------------------------------------------------------
class Game_Character
  # Attr(s)
  attr_accessor :old_character_name
  attr_accessor :run_points
  attr_accessor :max_run_points
  alias syn_ch_init initialize
  #-----------------------------------------------------------------------------
  # Initialize Variables
  #-----------------------------------------------------------------------------
  def initialize
    @run_points = StandWalkRun::Run_points
    @max_run_points = @run_points
    syn_ch_init
  end
  #-----------------------------------------------------------------------------
  # Set Setp Animation
  #-----------------------------------------------------------------------------
  def set_step_anime(value)
    @step_anime = value
    return @step_anime
  end
end
#-------------------------------------------------------------------------------
# Game_Player:: This handles the dash process
#-------------------------------------------------------------------------------
class Game_Player < Game_Character
  alias syn_player_update update
  alias syn_player_refresh  refresh
  alias syn_player_move_type_custom move_type_custom
  def dash?
    return false if @run_points == 0 and StandWalkRun::Use_run
    return true if Input.press?(Input::A)
  end
  def refresh
    syn_player_refresh
    self.old_character_name = @character_name
  end
  #-----------------------------------------------------------------------------
  # Update:: Update the scene
  #----------------------------------------------------------------------------
  def update
    if dash?
      if Input.dir4 == 0
        $game_player.set_graphic($game_player.old_character_name)
      end
      unless $game_temp.syn_state == "idle"
        set_graphic(@character_name + StandWalkRun::Run_sprite_suffix) if StandWalkRun::Use_run_sprite
        @move_speed = StandWalkRun::Run_speed
        @run_points -= 1
        syn_player_update
      end
    else
      @move_speed = StandWalkRun::Walk_speed
      syn_player_update
    end
  end
  def set_graphic(character_name)
    @tile_id = 0
    @character_name = character_name
  end
  #--------------------------------------------------------------------------
  # * Move Type : Custom
  #--------------------------------------------------------------------------
  def move_type_custom
    old_ch_name = @character_name
    syn_player_move_type_custom
    if old_ch_name != @character_name # Change Graphic
      self.old_character_name = @character_name
    end
  end
end
#-------------------------------------------------------------------------------
#            * This script is not compatible with RPG Maker XP *
#-------------------------------------------------------------------------------
# Written by Synthesize
# Version 2.00
# Requested by Cerulean Sky
#===============================================================================
# Stand/Walk/Run   - RMXP Version
#===============================================================================


Also I was wondering in what line can I edit the amount of stamina you regen as currently it regens 1 stamina per x frames but since i made it regen only when standing still 1 stamina per x frames can be a tad long if you have say 300 stamina.

Thanks
19
Resource Requests / A better version of this tileset
April 26, 2012, 05:48:45 pm
Hi, well I was wondering if anyone knew if there is any better version of this tileset (Link: http://www.ninesages.org/XP_Album/displayimage.php?album=83&pos=34) with more options on rocks, vegetations, etc etc

If you don't know any I wouldn't mind other tilesets that could match the style and I would merge them together into a single tileset myself. It's kinda annoying making decent maps with so little options.

These are just examples I did with the few options available:

Spoiler: ShowHide



As you can see there is a bit of a repetition (I kinda hate the repetitions I had to use for the rock but since there's only one to choose from I had no choice :/)

(These where going to be used on the competition project but well it's stopped for now so better time for me to find more tilesets in advance :) )
20
Script Troubleshooting / Simple Event Ai conflict
April 18, 2012, 07:51:47 am
Well I'm trying to use this script:
http://forum.chaos-project.com/index.php/topic,5756.0.html

But this small line of code conflicts with it:
http://www.rpgrevolution.com/forums/?showtopic=8475

The 2nd link let's you edit game map and your able to put events with names # and they will never be updated but it seems to conflict with the event ai script.

Error is:



Also for some reason when you use the event ai script on an event with random movement or custom movement said event doesn't go towards the player but keeps on walking normally.

Anyone can help?
21
I'm using this multi message script that was edited by foreverzer0 (link: http://forum.chaos-project.com/index.php?topic=5907.0)

The "problem" is that when an event outside the screen shows a message a window shows at the bottom of the screen for a second and goes away for every message which can be a little annoying when you want to make some npcs converse together as I'm trying to do.

Anything can be done?

Thanks
22
Script Troubleshooting / [RESOLVED] Opacity
April 13, 2012, 12:39:02 pm
Using this script: http://forum.chaos-project.com/index.php/topic,114.0.html

I am trying badly on finding a way on editing the opacity but it's no use since it remains the same, seems like I'm doing something wrong :/

Where do I need to edit to change the back_opacity to 200?

Thanks
23
Event Systems / Barricade Doors
April 11, 2012, 02:39:54 pm
Not sure where to post this as I'm only showing my idea for the public to see what people think about it, excuse me if I posted in the wrong place.

So apart of somnium I have some plans on another game which will be horror. I am trying to make it hard by having to defend yourself with the surroundings not with weapons (Thinking on not giving the player any "weapon") so I thought about the idea of barricading doors/windows so that you could stop the infected from reaching you fast at the cost of locking the door completely unless the infected destroy it.

Here's a video showing a simple thing I did to preview it:
http://www.youtube.com/watch?v=fwDLilU19g4

Obviously the wording will change into something neater, (Instead of wooden plank 1, an icon of the item would show.) and don't mind the infected eating the corpse it was an experiment I was doing with priority :P. (The crawling model is not finished yet.)

I am planning on using BlizzABS and having the doors a "living thing" so that they could have life when attacked by the infected and by barricading them they would get a boost in their duration (Life) to give you more time to escape or plan some trap/s.

So what do you people think?

It's not something that hard apart of having to make models for each type of door/window that can be barricaded but I'll gladly do it.

Cheers.
24
Script Requests / Need a simple and small script.
April 05, 2012, 08:17:29 pm
I am planning on using a compass in my game which requires a picture for every direction which I have.

Currently I'm showing it by an event with show picture but the problem is that I got several maps which show pictures and going out of the rooms removes said pictures (Lights) so the compass would conflict with them.

Anyone would be so kind to make me a small script that shows the compass picture based on what direction I'm moving? (If possible on having a required switch on for it to show would be awesome as I was planning on having it as a treasure)

Thanks.
25
New Projects / Somnium
March 25, 2012, 06:46:47 pm



(In dreams we seek fate in life)


Genre- Fantasy/Medieval
Platform- RMXP

Story
Spoiler: ShowHide
This is the history of our existence on this world for what we know.

In the beginning of the years this planet was filled with jungles, beautiful islands
and among other things people were living in peace and harmony, but everything
changes with time...

Greed started rising and lust for power was becoming clear on the lords of some legions.

Years passed and humans stupidity never ceased to end.

Wars kept on rising for any possible reason, power, wealth, women or in some cases
even for satisfaction!

What had the world turned into? Mindless slaughter? And for what?

Something had to be done to end that madness.. but who in their right mind would
have risked their life? The old Heroes were long forgotten there was no one left,
only hope and prayers.

It was year 1000, I have never seen so much violence and blasphemy as these past
years.. "Where are you divinities? Can't you give us any help?.. Please we need your
assistance or this world will end."

The divinities heard their suffering, they hoped people would redeem and bring back
peace and joy back to this world without their aid but they where wrong.

Losing hope they warned them for the last time of all the evil that was going on and
that there would have been serious consequences if they kept on ruining
this beautiful planet but they didn't stop and shortly afterwards a loud
frightening shout was heard which started shaking the whole world destroying all
the sinful realms and all people in them.

Some outside colonies were spared as they proved there could still be kindness in
some people's hearts, the world was given a chance to redeem it's sins and after
some time it could be again the beautiful place it used to be long ago.

The punishment was not the only consequence but the worst part was that while
the earth was shaking and people where dying the divinities yelled that the humanity
has failed them again and from that day onwards they would have not aided them again.
Now it was their problem if anything bad happened unless drastic changes where done,
only time could tell .

Years passed and wars seemed to have ended for the time being but for how long?

People prayed for the divinities help but no response was given they told them there
would have been consequences but people didn't care and so they suffered.

Towns have been rebuilt and small wars were visible again sadly some people never
learn but this time the divinities wouldn't have helped.

Now the fate of the world resides in the hands of humanity either for the good or for the bad,
only time will tell.

(Any Opinions on the story and Ideas would be great)


Characters
There is a total of 17 characters including yourself that can be found throughout the game and 3 beasts/pets that two of the characters get to have. (Starting with 1 and unlocking the rest throughout the main storyline or side quests. Using this specific character in team you must also have his partner in your team which takes a slot of another member and is controlled by the computer not yourself).

Spoiler: ShowHide
Marcus:

Your main character which starts as a scout and throughout the main story and some side quest will have the option of changing classes (One particular class will make your character look different which is unlockable from a side quest). Marcus is just a normal boy who gets to live a simple life, he dreams for one day to go adventuring in the world outside and so he practises in the fields and sometimes fending off monsters that try to attack their small town.

Bastion:
Marcus and Bastion were friends when they were little but growing up made them go different routes making the 2 become less connected with each other. Bastion is a soldier in the army of the ruler of your region (Still no specific name) he is a good swordsman always trying his best to gain ranks within the army, sometimes even recklessly risking his life.

Hilary:
Hilary is an apprentice magician studied in the wizards guild but had to leave after her father died while defending his family from a bandit raid. The bandit raid made her family poor and risked on losing their house and fields.

She now practises alone at home while helping her mother and sister gaining some coins to maintain their property.

Leonard:
Leonard is a knight fighting for the order of the snake. (Can be changed in the future) For some people it's considered to be ruled by a king corrupted by greed and power. 

Leonard is a determined person and accomplishes any tasks given to him by his superiors. He doesn't talk much and has a fast temper when his comrades waste time drinking in bars or fail tasks given to them.

Fiona:
An elven knight which unlike most of her tribe doesn't judge a person by it's race. She's kind hearted but don't think she's fragile as she can kick your ass if you take her lightly. Fiona's duty is to protect her queen in order to maintain peace and harmony in their regions.

Throughout several battles, she earned several awards ranking her to knight which is not something usual for a female.

Sophia:
She's a lively person and likes to go running in the fields watching the sky and smelling flowers. Sophia is a beastkin (Can change) which are people that are half beast half human.

These people are often laughed at, insulted and even made rough jokes on them because they are not a pure race. Beastkins prefer to stay hidden deep in the forests where they are free to be who they want without people judging them. Sophia has a pin point eye sight making her a formidable archer and able to hunt beasts for food with no sweat.

Joshua:
A priest working in the order of the sun. (Can change) Joshua is a smart lad which spends most of his time in the cathedral reading books.

He has a natural talent in healing wounds although he gets dizzy with blood. He's a bit fragile but being a priest he has the ability on aiding his team making him a good ally to have around.

Melanie:
A rebel living with a group of bandits. Had no choice when she was little she makes a living robbing people and caravans off their valuables. Being with a group of bandits, she became agile and deadly a perfect combo for a thief.

Gremond:
Being abandoned as a child he grew up alone as a savage living in some cave on the mountains.

While his education is very poor with all that free time he had, he became very strong and brutal in battles! Having to defend his cave from beasts and bandits he learned a few tricks on beating even the toughest enemies. While it wasn't his choice of life, people are scared of him and call him Gremond the bone breaker.

Mark:
A selfish rich boy that studied in the art of magic when he was young. He likes to make pranks to people with his magic.

He never shuts his mouth making him not welcome in clubs and this makes him do more bad deeds in town to attract attention. Many would want to smack his head with a rock but thanks to his studies he can fend well in fights with his magic skills so you better think twice before making a fight with him!

Alexander:
Alexander is a noble which spent most of his life studying with an old powerful guild of warmages that doesn't often train new people. These mages only teach their secret arts to the honest and kind hearted. Trained to defend the poor and helpless people, Alexander made it his goal in life to help any people in need while he adventures around the world seeking his true goal in this world.

Warmage is a secret art in which a person is trained in magic while also able to fend people when they get near making him a deadly enemy to have against.

Timoty:
A confused little boy, lost his memory when bandits raided his town. Timoty was taken hostage and now serves the bandits thinking they are his family.

Don't take him lightly because of his age, he has proved to be able to handle swords quite effectively, some thought he could have trained as a swordsman.

Bandits thought him the arts of being a theif making him unique among their tribe.

Helix:
Not much is know of this person, he wears a mask and robe covering his identity. No one knows his true identity and he doesn't get along with anyone. He prefers to travel alone from town to town doing his business.

Rei:
Another beastkin half wolf half human. These people are very agile fighters and are able to call for help from the wildlife getting an advantage over overconfident enemies if they fall in their traps.

Axel:
A mercenary always seeking jobs to earn some coins for a living. Working in a circus in his childhood he is very proficient in taming wild animals and controlling them. He has a very fond relationship with animals and often brings along a beast as partner with him as extra help.

Noah:
Not much is known of this person, he tends to stay together with his group. He prefers to stay hidden in the shadows. All is known are just rumours from people about a certain tribe called the order of the dark lord (Can change) in which is said they learn the dark arts which would make them a very dangerous enemy to have against if it were true.

Aiden:
Trained as a ninja he likes to mimic people in their fighting styles.

He is different from the people he hangs with which are often rumoured to be in the order of the dark lord, unlike the others he always have something to say and can't stay 5 minutes without saying a word which can make him annoying.

Proficient in stealth kills, he manages to effectively do sneaking tasks with ease.

[Pets]

And then there is the 3 beasts currently available in the game:

Drakni a tamed tiger (Axel starter pet), Fang (Rei's starter pet) a white wolf and Toca Taca (Unlockable) a strange beast from the seas.


Screen Shots
Spoiler: ShowHide



An interior house.

A house during the night (Lights need to be fixed for the walls)

Wander into the woods and find new places.

A random place you can find into the woods (Will trigger a cutscene when near the place).

Another event found in the woods, also showing the tinting of the night.

The more you stay out in the night wandering in the wild the tinting will get darker (Will obviously add some light sources and a torch if you want to wander in the night)

Some catacombs.

An item shop.

The entrance of one of the mapped dungeons. (It's obvious which one)

Some random shot in the wilderness.

Another random shot near the town.

Storage room.



A Dungeon:
Spoiler: ShowHide






And a picture of ingame to show you the atmosphere inside the caves.


Another Dungeon:
Spoiler: ShowHide




And a screen of ingame with the new windowskin which frankly I prefer from the previous one:



Annnnnd yes, another Dungeon:
Spoiler: ShowHide










And a preview of one of the rooms:


Custom Equip Screen:
Spoiler: ShowHide


A slightly edited status screen by myself:
Spoiler: ShowHide


Videos:
A video showing all the custom/editted icons I have plus a small peak on the battle system:
http://www.youtube.com/watch?v=njBTM4pxc3o&feature=g-upl&context=G255b240AUAAAAAAAAAA
(The sprites are being changed because they don't fit with the RTP style)

A video showing all the animations (90% of the enemies) I have for now:
http://www.youtube.com/watch?v=vbOCjYegW2s&feature=youtu.be


Features
- While there are classes they won't affect what you can or can't equip, (Excluding some rare or high tier items found later in the game.) so basically it's classless.

- Anyone can learn magic and same goes for weapon skills.

- Skills have requirements, thrust for example can't be done with an axe or hammer.

- While your free on equipping anything, weapons and even armours will give a passive effect giving bonuses and negatives to your states!

- Certain enemies need to be fought with a different tactic. (Currently some enemies can fly and melee weapons can't hit them, be sure to be well armed!)

- When you level you get some points to spend on your states how you desire. (Excluding pets, they level normally)

- The game is planned on being sandboxish BUT having a main storyline. (You won't be forced to do the storyline instantly but you'll need to do some parts of it in the future to unlock certain zones/skills/items/players.)

- I will be clear from the beginning, the storyline won't be one of the usual "You are some guy with mysterious powers and you and some random guys can beat the evil bully and save the world!" but will be with choices. (You will be free on being good, bad or even neutral till a certain point)

Choices throughout the game will make you risk some party members or even gain new ones among other things so be careful on what you do!

Feel free to criticise and/or offer some advices and share opinions. This project is in alpha mode but will try my best to finish it :)

Thanks for reading.
26
Currently I don't have much done but slowly I'm adding more.

These are the current sprites I edited for my upcoming project:






As you can see, there are versions of the same sprite but I'm going to try and add as many variations as possible. (I was thinking on the possibility on having the variations as the same character ingame. Meaning when damaged till a specific amount it's sprite switches. That might take me a lot tough, having to do variations for every possible sprite I'll do, we'll see in the future.)

So.... what do you think? Good/Bad/Dunno

Please let me know :)
27
Resource Requests / Heartbeat monitor
March 11, 2012, 12:40:32 pm
Hi I don't know if it's an easy task so sorry in advance if it takes a lot to do.

I'm looking for someone to make me a heartbeat wave to show in my game indicating the life of the player. I would like 3/4 versions indicating the levels of health the character has left (One green meaning he's fine, one yellow/orange indicating he's damaged and one in red indicating he's badly injured with maybe another red version with a line for death.) in a dimension something near 100x40. They need to be animated but I don't know exactly if rmxp can load gif images so it probably has to be a sequence of images or something like that.

I don't know if it's hard to do but I could really use these for my game.

Thanks for the help.
28
Script Troubleshooting / Shadow script
March 04, 2012, 07:07:25 am
I'm using this script which is an editted version by derwulfmen:

#==============================================================================
# ** Sprite Sun
#------------------------------------------------------------------------------
#    Based on Sprite Shadow
#    modified by Rataime
#    New Edits by DerVVulfman
#    February 12, 2008
#------------------------------------------------------------------------------
#
# Introduction:
#
#  This system allows you and all 'prepared' events to generate shadows while
#  on the field map. The player can move around while a programmed 'sun' will
#  display a shadow.   Likewise,  events with a special comment  within their
#  event list can also generate shadows.
#
#------------------------------------------------------------------------------
#
# Instructions:
#
#  -- The Sun
#     To create a sun effect, you'll need to create a map event that's to be
#     used 'as' the sun itself.   Under most circumstances,  this will be an
#     event without a characterset graphic. You don't want to 'SEE' the sun,
#     do you?
#
#     To make one of these events a 'sun,  you'll need to insert a couple of
#     things into that event's  "List of Event Commands".   These things are
#     nothing more than comments. 
#
#     The first comment  to add is "begin Sun" (without quotes).  It informs
#     the system that this map  has a sun effect in use.   The remaining two
#     values  are optional  and have  default values  in  the  configuration
#     section  (only just added  into the script).   They too  are added  as
#     comments.
#
#     self_angle  'number'  --- How much of an angle each shadow will have.
#     self_opacity 'number' --- How dark the shadow will be.
#
#     After that, your characters can now move about and generate shadows.
#
#  -- Other Events
#     Events do not know that they can generate shadows.   To let them gene-
#     rate a shadow,  all you need to do is add a special comment into their
#     "List of Event Commands".   This comment needed  is merely  the phrase
#     'begin Shadow' (again, without quotes).
#
#
#------------------------------------------------------------------------------
#
# Revisions to note:
#
#  1) Added formatted headers and comments throughout the script.
#  2) Encapsulated a comment/parameter code in an XPML module.
#  3) Set the sun shadow array into an instance value to lower resource costs.
#  4) Compatability with Near Fantastica's Squad Movement systems.
#  5) Compatability with Ccoa's Caterpillar system.
#  6) Compatability with Trickster's Caterpillar system.
#  7) Added default shadow settings into the configuration section.
#
#==============================================================================



   #========================================================================
   #  **  C  O  N  F  I  G  U  R  A  T  I  O  N      S  Y  S  T  E  M  **  #
   #========================================================================
    # Caterpillar Systems
    CATERPILLAR_COMPATIBLE      = true    # Toggle for Fukuyama's original 
    SQUAD_MOVE_COMPATIBLE       = false   # Toggle for Near Fantastica's SBABS
    CCOA_CATER_COMPATIBLE       = false   # Toggle for Ccoa's Caterpillar
    TRICKSTER_CATER_COMPATIBLE  = false   # Toggle for Trickster's Caterpillar
   
    # Sun Specific Systems
    SUN_WARN                    = true    # Checks for older sun systems
    SUN_ANGLE                   = 45      # Angle for sun-generated shadow
    SUN_OPACITY                 = 128     # Darkness setting for sun shadow

   
   #========================================================================
   #  ****   E N D   O F   C O N F I G U R A T I O N   S Y S T E M   ****  #
   #========================================================================
   
   

#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
#  This class handles temporary data that is not included with save data.
#  Refer to "$game_temp" for the instance of this class.
#==============================================================================

class Game_Temp
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :sun_spriteset            # holds spritesets for 'sun' shadows
end



#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
#  This class handles the party. It includes information on amount of gold
#  and items. Refer to "$game_party" for the instance of this class.
#==============================================================================

class Game_Party
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader :characters
end



#==============================================================================
# ** Sprite_Sun
#------------------------------------------------------------------------------
#  This sprite is used to position character shadows relative to map position.
#  It observes the Game_Character class and automatically changes sprite
#  conditions.
#==============================================================================

class Sprite_Sun < RPG::Sprite
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :character           
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     viewport  : viewport
  #     character : character (Game_Character)
  #     id        : id
  #--------------------------------------------------------------------------
  def initialize(viewport, character = nil, id=0)
    super(viewport)
    @character = character
    params=$game_temp.sun_spriteset.sun[id]
    self_angle    = SUN_ANGLE
    self_opacity  = SUN_OPACITY
    self_angle    = params[0]   if params.size > 0
    self_opacity  = params[1]   if params.size > 1
    @self_angle   = self_angle
    @self_opacity = self_opacity
    update
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #-------------------------------------------------------------------------- 
  def update
    super
    # If tile ID, file name, or hue are different from current ones
    if @tile_id != @character.tile_id or
       @character_name != @character.character_name or
       @character_hue != @character.character_hue
      # Remember tile ID, file name, and hue
      @tile_id = @character.tile_id
      @character_name = @character.character_name
      @character_hue = @character.character_hue
      # If tile ID value is valid     
      if @tile_id >= 384
        self.bitmap = RPG::Cache.tile($game_map.tileset_name,
          @tile_id, @character.character_hue)
        self.src_rect.set(0, 0, 32, 32)
        self.ox = 16
        self.oy = 32
      # If tile ID value is invalid       
      else
        self.bitmap = RPG::Cache.character(@character.character_name,
          @character.character_hue)
        @cw = bitmap.width / 4
        @ch = bitmap.height / 4
        self.ox = @cw / 2
        self.oy = @ch
      end
    end
    # Set visible situation
    self.visible = (not @character.transparent)
    # If graphic is character
    if @tile_id == 0
      # Set rectangular transfer   
      sx = @character.pattern * @cw
      @direct = @character.direction
      if self.angle > 90 or angle < -90
        sy = ( 4 - 2) / 2 * @ch                   if @direct == 6
        sy = ( 6 - 2) / 2 * @ch                   if @direct == 4
        sy = (@character.direction - 2) / 2 * @ch if @direct != 4 and @direct != 6
      else
        sy = (@character.direction - 2) / 2 * @ch
      end
      self.src_rect.set(sx, sy, @cw, @ch)
    end
    # Set sprite coordinates
    self.x = @character.screen_x
    self.y = @character.screen_y-5
    self.z = @character.screen_z(@ch) - 1
    # Set opacity level, blend method, and bush depth
    self.opacity = @self_opacity
    self.blend_type = @character.blend_type
    self.bush_depth = @character.bush_depth
    # Animation
    if @character.animation_id != 0
      animation = $data_animations[@character.animation_id]
      animation(animation, true)
      @character.animation_id = 0
    end
    self.angle = @self_angle.to_i - 90
    self.color = Color.new(0, 0, 0)
  end
end



#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
#  This sprite is used to display the character.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Character < RPG::Sprite
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias sun_initialize initialize
  alias sun_update update
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     viewport  : viewport
  #     character : character (Game_Character)
  #--------------------------------------------------------------------------
  def initialize(viewport, character = nil)
    @character = character
    super(viewport)
    @sunlist=[]
    if character.is_a?(Game_Event) and $game_temp.sun_spriteset.sun != []
      params = XPML.XPML_read("Shadow", @character.id, 2)
      if params != nil
        for i in 0...$game_temp.sun_spriteset.sun.size
          @sunlist.push(Sprite_Sun.new(viewport, @character, i))
        end
      end
    end
    if character.is_a?(Game_Player) and $game_temp.sun_spriteset.sun != []
      for i in 0...$game_temp.sun_spriteset.sun.size
        @sunlist.push(Sprite_Sun.new(viewport, $game_player, i))
      end
      #===================================================
      # * Compatibility with Caterpillar Functions
      #===================================================
      if CATERPILLAR_COMPATIBLE and $game_party.characters != nil
        for member in $game_party.characters
          for i in 0...$game_temp.sun_spriteset.sun.size
            @sunlist.push(Sprite_Sun.new(viewport, member, i))
          end
        end
      end
      if SQUAD_MOVE_COMPATIBLE and $game_allies.values != nil
        for member in $game_allies.values
          for i in 0...$game_temp.sun_spriteset.sun.size
            @sunlist.push(Sprite_Sun.new(viewport, member, i))
          end
        end
      end
      if CCOA_CATER_COMPATIBLE and $game_train.actors != nil
        for member in $game_train.actors
          for i in 0...$game_temp.sun_spriteset.sun.size
            @sunlist.push(Sprite_Sun.new(viewport, member, i))
          end
        end
      end
      if TRICKSTER_CATER_COMPATIBLE and $game_party.followers != nil
        for member in $game_party.followers
          for i in 0...$game_temp.sun_spriteset.sun.size
            @sunlist.push(Sprite_Sun.new(viewport, member, i))
          end
        end
      end
      #===================================================
      # ** End of the compatibility
      #===================================================       
    end
    # Perform the original call
    sun_initialize(viewport, @character)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #-------------------------------------------------------------------------- 
  def update
    sun_update
    if @sunlist != []
      for i in 0...@sunlist.size
        @sunlist[i].update
      end
    end
  end 
end



#==============================================================================
# ** Game_Event
#------------------------------------------------------------------------------
#  This class deals with events. It handles functions including event page
#  switching via condition determinants, and running parallel process events.
#  It's used within the Game_Map class.
#==============================================================================

class Game_Event < Game_Character
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :id
end



#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
#  This class brings together map screen sprites, tilemaps, etc.
#  It's used within the Scene_Map class.
#==============================================================================

class Spriteset_Map
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #-------------------------------------------------------------------------- 
  attr_accessor :sun
  #--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------   
  alias sun_initialize initialize
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------   
  def initialize
    @sun = []
    $game_temp.sun_spriteset = self
    warn = false
    for k in $game_map.events.keys.sort
      if ($game_map.events[k].list != nil and
          $game_map.events[k].list[0].code == 108 and
          ($game_map.events[k].list[0].parameters == ["sun"] or
          $game_map.events[k].list[0].parameters == ["o"]))
        warn = true
      end
      params = XPML.XPML_read("Sun", k, 2)
      $game_temp.sun_spriteset.sun.push(params) if params != nil
    end
    if warn == true and SUN_WARN
      p "Warning : At least one event on this map uses an obsolete way to add a sun effect"
    end
    # Perform the original call
    sun_initialize
  end 
end


#==============================================================================
# ** module XPML
#------------------------------------------------------------------------------
#  This module handles the reading and passing of 'comment' parameters
#
#  The main XPML method is used to check and read event comments.
#  * It returns 'nil' if the markup 'check' text isn't even present.
#  * It returns [] if no parameters are passed
#  * It returns a parameter list with "int" converted as int.
#       eg :
#       begin first
#       begin second
#       param1 1
#       param2 two
#       begin third
#       anything 3
#
#   p XPML_read("first", event_id) -> []
#   p XPML_read("second", event_id) -> [1,"two"]
#   p XPML_read("third", event_id) -> [3]
#   p XPML_read("forth", event_id) -> nil
#===================================================

module XPML
  module_function
  #--------------------------------------------------------------------------
  # * XPML_read
  #     markup           : text in event comment to check
  #     event_id         : event ID
  #     max_param_number : maximum number of parameter/comments to load
  #-------------------------------------------------------------------------- 
  def XPML_read(markup, event_id, max_param_number = 0)
    parameter_list = nil
    event = $game_map.events[event_id]
    return if event.list == nil
      for i in 0...event.list.size
        if event.list[i].code == 108 and
          event.list[i].parameters[0].downcase == "begin " + markup.downcase
          parameter_list = [] if parameter_list == nil
          for j in i + 1...event.list.size
            if event.list[j].code == 108
              parts = event.list[j].parameters[0].split
              if parts.size != 1 and parts[0].downcase != "begin"
                if parts[1].to_i != 0 or parts[1] == "0"
                  parameter_list.push(parts[1].to_i)
                else
                  parameter_list.push(parts[1])
                end
              else
                return parameter_list
              end
            else
              return parameter_list
            end
            if max_param_number != 0 and j == i + max_param_number
              return parameter_list
            end
          end
        end
      end
    return parameter_list
  end
end


And this script has a small problem which is it doesn't update in the map unless you enter/exit some place or open/close menu.

Anyone would be kind enough to see if it can be fixed? I was thinking on utilising foreverzero time script among this one so that the shadow would turn depending on the time.

Thanks.
29
General Discussion / Game colour
March 02, 2012, 07:26:11 am
I was wondering if it was possible to get a theme colour in a game (Screen colour tone) but being able to let a specific colour appear normally.

I mean you make a game with the "fog" that colours all the map in brownish but you want the light to still appear in yellow. (Think about a tone like in sin city)

Is it possible?

Thanks.
30
RPG Maker Scripts / Gradient Bars Edit
February 22, 2012, 05:33:46 pm
There's this menu script of ryex: http://forum.chaos-project.com/index.php/topic,2365.0.html and frankly I don't like the black border of the gradient bars and was wondering if it's possible to fix it into something neater.

I I hope it's not something hard to edit but that black border doesn't look good at all and even though I tried searching I have no idea how to change it as I don't know how to script.

Thanks.