Chaos Project

RPG Maker => Tutorials => Tutorial Database => Topic started by: Blizzard on January 12, 2008, 12:50:57 pm

Title: Blizzard's little tricks
Post by: Blizzard on January 12, 2008, 12:50:57 pm
Blizzard's little tricks
Version: 0.4



The idea

Ever got tired of wanting to make something pretty simple in your game, but you can't figure out how, so you request a script? RMXP has many possibilities beyond your knowledge. I am making a collection of simple add ons in the database and/or events and I need your help to make this tute better. Suggestions are more than welcome.


1. Defined-damage skills

Want to make a skill, that does 5000 damage everytime it is used?!
Pictures tell more than words:

Spoiler: ShowHide
(http://i67.photobucket.com/albums/h316/bblizzard/Screenies/defined_damage.png)



2. Killed characters have 1 HP after the end of the battle

You need a script? Don't be silly!

Spoiler: ShowHide
(http://i67.photobucket.com/albums/h316/bblizzard/Screenies/1hp_after_death.png)



3. The Powers of Variables

Note: To understand this tutorial you need the knowledge how to use the "Call Script" event command.
Note: You do not really need to understand variables for this tutorial.
Note: Everything that I will show you now also works for switches, but I recommend using variables.

a) Not only numbers!

You want to show the name of the first character in your party in a message window. But RMXP only supports the \n[X] command that refers to the database, not the current party. There is a trick how to override this. Open the event editor and find that command.

Spoiler: ShowHide
(http://img246.imageshack.us/img246/2774/powerofvarsbji9.png)


Try this here:

Spoiler: ShowHide
(http://img132.imageshack.us/img132/3571/powerofvarsaco3.png)


Very useful if you have a game where party leader can be chosen and you want the party leader to say all the important things. You can even go further and make a conditional branch with the script command and type into the little window:

$game_variables[1] == "Johnny"

and make it with an "else" branch. Johnny will say something different than i.e. Maria. Of course you have to make both messages for Maria and Johnny. Don't forget to use the "Variable Operation" command and set it to a numeric value again if you use it also for other purposes.

a) Unlimited PARTIES!

Use the same Call script command and type:


$game_variables[1] = $game_party
$game_party = Game_Party.new


Your current party will be stored for later and you have a new fresh party for your game with new inventory, new money etc. If you want to restore your old party just type:


$game_variables[2] = $game_party
$game_party = $game_variables[1]


This will store the second party into variable 2 for later, while you can continue playing again with the first party. You can create an unlimited (*cough*) number of parties and make a mulitple game with two stories OR make a game where you play a party in the past, a party in the present and a party in the future OR etc. It's up to you.


4. Create different skills

Note: To understand this tutorial you need the knowledge how to use the "Call script command"

a) Chain skills

Bored of ordinary skills? How about an entire chain reaction of skills? It is very simple. Make one normal skill. It even doesn't'need to do anything, but I'll make it attack the enemy. I'll call it Phoenix Burner. Make the skills call an event and name it however you want (I named it Phoenix process).

Spoiler: ShowHide
(http://img97.imageshack.us/img97/419/chainskillsams7.png)


Now make a second skill that is supposed to be executed right after your first skill. Make the SP cost 0. You can name it however you want. I named it "Phoenix is being summoned", because it has a Phoenix animation.

Spoiler: ShowHide
(http://img71.imageshack.us/img71/7411/chainskillsbfx3.png)


And now comes the most important part: The common event! My common event activates the second skill, removes "Defeated" and adds "Auto-Revive". Note that this common event only works for actor 1 in the party. If you want more than one actors to have the same chain skill, you need to make another starting chain skill for each character and you need another common event for each character.

Spoiler: ShowHide
(http://img71.imageshack.us/img71/1193/chainskillscfe0.png)


Of course you can play around with the event however you like it. i.e. THIS Phoenix Burner skill would cause nearly the same effect as the one before, but only nearly. There is an 80% chance he will revive dead actors, after that another 80% chance of adding Auto-Revive and after that again an 80% chance of executing the second chain skill again. All in all:



Spoiler: ShowHide
(http://img71.imageshack.us/img71/4750/chainskillsdil3.png)



5. Hero switch

This will allow you to switch the party leading hero by pressing SHIFT one th map. Of course you can change the button. Just use this common event and turn on the appropriate switch. Note that the order in during battle also changes.

Spoiler: ShowHide
(http://img141.imageshack.us/img141/126/snap46cc6.png)



6. Universal Script tricks

a) Add an option into the normal Menu

Find in your extra script lines like this one:

      $scene = Scene_Map.new


Change them to:

      $scene = Scene_Menu.new(INDEX)


where INDEX is the choice on what the cursor should be placed when returning to the menu.
Open Scene_Menu and change

    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "Save"
    s6 = "End Game"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])


to

    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "NEW_OPTION"
    s6 = "Save"
    s7 = "End Game"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])


Now find this part further below in the same script:

      when 4  # save
        if $game_system.save_disabled
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Save.new
      when 5  # end game
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_End.new
      end


(I removed the comments.) Change it to:

      when 4  # Bestiary
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_NEW_OPTION.new
      when 5  # save
        if $game_system.save_disabled
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Save.new
      when 6  # end game
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_End.new
      end


Now you have a new option in your menu.

b) Ultimate Font Override

This little script will do the job:

#==============================================================================
# Game_System
#==============================================================================

class Game_System
 
 attr_reader   :fontname
 attr_reader   :fontsize
 
 alias init_ultimate_font_override_later initialize
 def initialize
   init_ultimate_font_override_later
   self.fontname = "Arial"
   self.fontsize = 24
 end
 
 def fontname=(name)
   $defaultfonttype = $fontface = @fontname = name
 end
   
 def fontsize=(size)
   $defaultfontsize = $fontsize = @fontsize = size
 end
 
end

#==============================================================================
# Bitmap
#==============================================================================

class Bitmap

 alias init_font_override_later initialize
 def initialize(w, h = nil)
   if w.is_a?(Numeric) and h.is_a?(Numeric)
     init_font_override_later(w, h)
   else
     init_font_override_later(w)
   end
   if $game_system.fontname != nil and not $scene.is_a?(Scene_Title)
     self.font.name = $game_system.fontname
     self.font.size = $game_system.fontsize
   else
     self.font.name = "Arial"
     self.font.size = 24
   end
 end
 
end


You can change the font/fontsize with

$game_system.fontname = "FONTNAME"
$game_system.fontsize = FONTSIZE


It will override the font from any RMXP version.


Thanks to:
Title: Re: Blizzard's little tricks
Post by: winkio on January 26, 2008, 11:21:51 am
Can you make defined damage weapons the same way as the skills?  I tried it and it didn't work...
Title: Re: Blizzard's little tricks
Post by: Blizzard on January 26, 2008, 11:27:30 am
Nope. Hm... How about I make this add-on now and release it in Tons of Add-ons? Right now I'm working on a new release of CRLS, RO Job/Skill System and Easy Party Switcher since I have some free time today.
Title: Re: Blizzard's little tricks
Post by: Calintz on January 26, 2008, 12:22:28 pm
Alright...These ARE nifty!! ;D
Title: Re: Blizzard's little tricks
Post by: Nortos on January 27, 2008, 06:02:38 am
I got something you could add Blizz random battle music
change this line in scene_map
$game_system.bgm_play($game_system.battle_bgm)

to...
 Audio.bgm_play("Audio/BGM/battlemusic" + rand(10).to_s, 100, 100)


where 10 is the amount of songs have and you name all your songs battlemusic0, battlemusic1, battlemusic2 and so forth
Title: Re: Blizzard's little tricks
Post by: Calintz on January 27, 2008, 01:43:21 pm
Good thinking Nortos...
Title: Re: Blizzard's little tricks
Post by: G_G on August 19, 2008, 10:23:39 pm
Hey blizz add this in here, the little dash trick

Hold Shit to Run: ShowHide
 
Branch if A is being held
   Change Speed to 5
else
   Change Speed to 4
End

Remember to add switches to turn it off durint the cutscene. Blizzard told me this
Title: Re: Blizzard's little tricks
Post by: Chaze007 on August 20, 2008, 04:24:15 am
heh these helped a lot, thanks.
Title: Re: Blizzard's little tricks
Post by: Blizzard on August 20, 2008, 06:00:36 am
No, game_guy, that's an event system, not a simple functionality of RMXP that can be actually done without complicated events/scripts.
Title: Re: Blizzard's little tricks
Post by: shdwlink1993 on August 21, 2008, 01:53:19 am
Umm... game_guy? You might want to edit shit to shift. :^_^': I certainly do not want to hold a bunch of crap whenever I feel like running, thanks anyway. :haha:
Title: Re: Blizzard's little tricks
Post by: cstb on August 22, 2008, 10:24:42 am
Blizz how can i make hero switch change the first 2 characters in the database alone?Because When i use it then my third character switches to the first one.
EDIT:*bump*
Title: Re: Blizzard's little tricks
Post by: cstb on September 03, 2008, 04:11:02 pm
bump.ANSWER MAH QUESTION plz?...
Title: Re: Blizzard's little tricks
Post by: Blizzard on September 03, 2008, 04:26:03 pm
It cycles through the party when you use that script, no skipping. And how would you expect this to work? It would look pretty dumb if you changed it like this:

1234
2341
1234
Title: Re: Blizzard's little tricks
Post by: cstb on September 03, 2008, 08:08:33 pm
ooo.because i was hoping that i could switch my main characters and not the guests.
Title: Re: Blizzard's little tricks
Post by: Blizzard on September 03, 2008, 08:10:50 pm
You should have tried it out first. :P
Title: Re: Blizzard's little tricks
Post by: Satoh on December 02, 2008, 09:14:56 am
Somehow I think I'd run if I were holding shit.... >.>
Title: Re: Blizzard's little tricks
Post by: Calintz on January 11, 2009, 02:02:50 pm
Blizzard...
You're a sneeeeaky little bastard!!
Title: Re: Blizzard's little tricks
Post by: Shining Riku on February 03, 2009, 01:16:07 am
 :huh: Heya, I was just wondering. I really like your Stormtronics custom menu, Blizz, but i'd like to add a few more options into it.

All the stuff you said about adding an extra option in this tute, does that work for your menu too? Am I even allowed to modify it? :wacko:
'Cause I really love the menu interface and I don't want to change it back to the default menu. Bleah.

...........Is this even the right place to ask those questions anyways? :(
Title: Re: Blizzard's little tricks
Post by: Calintz on February 03, 2009, 01:24:36 am
...Lol, I am sure Blizzard doesn't care if you tweak the script to adapt to YOUR GAME'S specific needs, so long as you don't attempt to take credit for the changes. Let's face it...Adding an option or two into his CMS doesn't give anybody the right to claim any form of credit...

Hell, I have tweaked his CMS to fit my game.
My main character has an artbook where you can view the important pictures that are viewed throughout the game. I added this artbook to the menu so that you can view them anytime you feel like it =)
Title: Re: Blizzard's little tricks
Post by: Shining Riku on February 03, 2009, 01:48:24 am
Sweet. Thanks for the fast reply, Calintz. :) So, just making sure...If I wanna add another option to his menu I do all that in the Stormtronics CMS script, righto?
Title: Re: Blizzard's little tricks
Post by: Calintz on February 03, 2009, 01:48:58 am
Yup yup...
Title: Re: Blizzard's little tricks
Post by: Shining Riku on February 03, 2009, 01:54:30 am
Thanks a bundle, Calintz!  :up: BTW, I really like the sound of your game project that you're working on. Good luck with it!  :)
Uh, if you need any help, I could prolly help out. :ninja:

Maybe.
Title: Re: Blizzard's little tricks
Post by: Calintz on February 03, 2009, 01:59:54 am
OFF TOPIC
Spoiler: ShowHide
Hey I really appreciate that...
Just keep on checking in there from time to time.

I am always updating the Main Post of the Thread...

Here very soon, I will creating the Title Screen to my game, and from it I will extract enough of the photo to make a banner for my thread. I will do the same for my Sprite Workshop, while adding every completed sprite into the banner itself...



But back to the topic...
I am thinking there should be more to this thread...

How about we all help Blizzard out if he doesn't mind that is?? Wait for a reply before posting anything in here, and if he doesn't mind. I say we all jump in on this and post any little tricks that we might have discovered during out time as game makers =)
Title: Re: Blizzard's little tricks
Post by: winkio on February 03, 2009, 02:13:16 am
QuoteBlizzard's little tricks


Make your own thread Calintz ;p
Title: Re: Blizzard's little tricks
Post by: Blizzard on February 03, 2009, 07:07:20 am
Quote from: Blizzard on January 12, 2008, 12:50:57 pm
I am making a collection of simple add ons in the database and/or events and I need your help to make this tute better. Suggestions are more than welcome.
...
Thanks to:

  • Oops, nobody yet




Nope, winkio. ;)
I like the idea, Calintz. :)

Quote from: Calintz16438 on February 03, 2009, 01:24:36 am
...Lol, I am sure Blizzard doesn't care if you tweak the script to adapt to YOUR GAME'S specific needs, so long as you don't attempt to take credit for the changes. Let's face it...Adding an option or two into his CMS doesn't give anybody the right to claim any form of credit...


Yeah, you can edit it all you like. I don't even mind if you credit yourself as editor, but remember to give appropriate credit to me. ;)

Quote from: Calintz16438 on February 03, 2009, 01:24:36 am
Hell, I have tweaked his CMS to fit my game.
My main character has an artbook where you can view the important pictures that are viewed throughout the game. I added this artbook to the menu so that you can view them anytime you feel like it =)


I edited it myself as well. ._.; Well, actually I made my version first, then I removed stuff from it and released it as public script. One reason is that my game uses some special things that are not really plug-and-play for other games. Another one is obviously that my game has original stuff I don't want to share like the info window that explains commands, options and even shows SR ability descriptions when you use it on equipment parts. :P
Title: Re: Blizzard's little tricks
Post by: winkio on February 03, 2009, 10:17:22 am
yeah sorry about that.  And my last few posts as well.  They were made at 3 in the morning.  I had bad insomnia last night.

Anyways, besides the fact that you have two a)'s under 3, here is an easy way to make a switch puzzle:

First, create the events for the switches with graphics and all, but nothing in the body yet.
Then, find a single variable that is either a temporary variable or is dedicated to this puzzle.
In the body of each event write a different mathematical operation to do with the command (For example, if you have 4 switches, go with + 3, - 3, * 3, / 3)
Then, find out what the variable would end up as if you hit the switches in the right order (Ex order 1324 == 2, or order 4231 == -6)
Then, just have each of your switches check for that value after you press them.  If the value is correct, let the player move on.

That's it.  I know that it's kind-of lame, but I know people that try and use a ton of switches and conditionals for these things when they really don't need to.
Title: Re: Blizzard's little tricks
Post by: Blizzard on February 03, 2009, 11:26:51 am
It might be a good idea. I also think my push-to-move would be quite interesting. o.o
Title: Re: Blizzard's little tricks
Post by: Calintz on February 03, 2009, 11:51:34 am
I think that this would be a really good topic for posting the general stuff too...

Like, whenever you go to a new forum, you always see questions like: How I make the character jump?? How do I make him run?? And you see this several times by different people. I think this little tricks thread should contain the answer to these over-asked questions as well...

This would be a good thread to add event snippets as well as script snippets...
Title: Re: Blizzard's little tricks
Post by: Calintz on March 13, 2009, 07:29:35 pm
I have a contribution Blizzard...Nothing big, but I am an aesthetics guy, and I found a way to center the Hero's names in the battlestatus window.

7. Battle Status - Center the Hero's Name



Spoiler: ShowHide

      case i
      when 0
        draw_actor_name(actor, actor_x + 36, 24)
      when 1
        draw_actor_name(actor, actor_x + 44, 24)
      when 2
        draw_actor_name(actor, actor_x + 32, 24)
      when 3
        draw_actor_name(actor, actor_x + 32, 24)
      else
        draw_actor_name(actor, actor_x, 0)
      end


**In order to center your hero's names, you will need to tinker with the x-coordinate a little bit for each character. A different font will cause a larger appearance, requiring a different x-coordinate, along with the #of letters in each characters name...etc.

**If you have more than 4characters in your party, then you will need to add a condition for each character...

**Changing the y-coordinate is also available :D




Screenshot
Spoiler: ShowHide
(http://i212.photobucket.com/albums/cc283/Derek16438/RMXP%20Screenshots/Horizontal%20Actor%20Command%20Window%20Battle%20Add-On/CenterNames.jpg)
Title: Re: Blizzard's little tricks
Post by: Blizzard on March 14, 2009, 06:36:36 am
Actually there's a better way to center the name. :P

I'm too lazy to update the first post, but feel free to post stuff here.
Title: Re: Blizzard's little tricks
Post by: Calintz on March 14, 2009, 10:11:54 am
Hey now!!
You just gonna tell us about an easier way, and not reveal it!? :P

**I figured that there would be when I was creating this snippet, because I have seen icons and other text center justified. I just don't know how to justify the text myself, so I used this to go around it. XD
Title: Re: Blizzard's little tricks
Post by: Reno-s--Joker on March 14, 2009, 08:00:36 pm
It's probably just (width - actornamewidth)/2 - that way you don't need to tinker with the numbers. Maybe.
Title: Re: Blizzard's little tricks
Post by: Calintz on March 14, 2009, 10:24:00 pm
I bet it is, but I didn't know the syntax, so I will try to incorporate that now, and we will see what happens. I will get back to all of you momentarily.
Title: Re: Blizzard's little tricks
Post by: legacyblade on March 14, 2009, 10:34:25 pm
If someone figures out how to get the width of a specified string, I could come up with a simple "center name" script
Title: Re: Blizzard's little tricks
Post by: Reno-s--Joker on March 14, 2009, 10:41:19 pm
Shouldn't it be:
actornamewidth = contents.text_size(@actor.name).width

With @actor.name being a string...?

(i.e.
blah = contents.text_size("Reno-s--Joker").width

would work too.)


I see it in custom scripts a lot.
Title: Re: Blizzard's little tricks
Post by: Calintz on March 14, 2009, 10:56:45 pm
Haha, perhaps...

**But an entire custom script would definitely not be needed, which is why I posted this feature into this thread. It is best left as an edit to the default 'battle_status' window.
Title: Re: Blizzard's little tricks
Post by: legacyblade on March 14, 2009, 10:58:29 pm
I'll have something up tomorrow (and I meant script snipper, something like what you posted)
Title: Re: Blizzard's little tricks
Post by: Calintz on March 14, 2009, 11:03:24 pm
Haha ok...I look forward to it XD.

I doubt I will use it, because my system currently works perfect, so...But you can def. throw yours up and outclass mine XD.
Title: Re: Blizzard's little tricks
Post by: Reno-s--Joker on March 14, 2009, 11:08:08 pm
Quote from: Calintz16438 on March 14, 2009, 10:56:45 pm
**But an entire custom script would definitely not be needed, which is why I posted this feature into this thread. It is best left as an edit to the default 'battle_status' window.


I should have said I learned this from custom scripts. You only need one line or something. But I'll let lb do it. <3
;)
Title: Re: Blizzard's little tricks
Post by: Calintz on March 14, 2009, 11:09:29 pm
Haha...Reno so nice XD...
Title: Re: Blizzard's little tricks
Post by: winkio on March 14, 2009, 11:19:28 pm
I'm calling the 'already exists' flag here.  It's built in to the default scripts.

draw_text(x, y, width, height, text, positioning)

make width the width of the text it needs to be centered over, replace text with the text, and put in 1 for positioning.  Centered.  I 'think' that this is what Blizz was referring to.
Title: Re: Blizzard's little tricks
Post by: Calintz on March 14, 2009, 11:24:32 pm
Another contribution...

Infirmary





So you have seen this feature used in games like Dragonquest(dragonwarrior)...In Dragonquest, however, this feature takes place in a chapel, but does the same thing.

**This little trick will make it so you have two separate restorative franchises in your game. What this really means...is that you will have your Inn(heal all characters if they still have some HP left) and an infirmary(revives characters from a knockout state).

**This feature adds a very realistic effect to any game, as a character in critical condition will not make a full recovery by simply resting over night. This system simulates the use of extra care to help revive a player. This is a very simple feature to add to your game...

Most inns are created along this basis...
Spoiler: ShowHide

The inn keeper introduces himself and explains the inn's rate.
The inn keeper offers you the choice to stay for the night.
You set up the handler for your character's choice.


To add this feature to your game, simply create your inn along this basis...
Spoiler: ShowHide

The inn keeper introduces himself and explains the inn's rates.
The inn keeper offers you the choice to stay for the night.
After you choose your option, add a handler that checks for the knockout state.
You will need to either add this handler 4x(one for each character) or you can use the call script command to check for the knockout state on all characters at once. (I do not know the proper syntax for this).
The rest is history...heal only the party members who do not have the knockout state inflicted on them.


When Creating your infirmary, do the same, but revive and heal the characters WITH the knockout state. XD
Title: Re: Blizzard's little tricks
Post by: Blizzard on March 15, 2009, 06:22:01 am
Yup, winkio got it right. You just need to set the text drawing area width properly. Can somebody quickly make a minisystem that will cause damage each second when walking over / standing on tiles that have a specific terrain tag? It's an parallel process with 5 commands and 1 conditional branch. xD
Title: Re: Blizzard's little tricks
Post by: Shining Riku on April 08, 2009, 04:04:11 pm
I could. I actually know how to do that kind of stuff now.

(Your tute on slippy floors actually taught me that, Blizz.)
Easy peasy. If anybody wants i'll actually post the stuff, but since i'm on another computer that doesn't have RPG Maker XP, I can't reference it at the moment.

I post it later...Is that ok?
And unlike some types of people I actually intend to back up my statement. I'll be back.
Title: Re: Blizzard's little tricks
Post by: Blizzard on April 09, 2009, 04:40:54 am
Sure thing. I'll be looking forward to it.
Title: Re: Blizzard's little tricks
Post by: Shining Riku on April 27, 2009, 09:46:44 pm
Ok, five commands...

Something like THIS, perhaps?

Control variables: (Name of variable here) =Player's terrain tag
Conditional Branch: If variable = tag of tile that causes damage
    wait 40 frames 'cause I think that's an in-game second
    deal damage to party (set the damage to whatever.


Actually, That's four commands. Pbth. Did I do something wrong?

Reverse the last two commands...I just thought about that. Deal damage first THEN wait the 40 frames.
And it HAS to be a parallel event.

Yay if I got it right, darn if i didn't.  :P
Title: Re: Blizzard's little tricks
Post by: G_G on April 27, 2009, 09:51:29 pm
Spoiler: ShowHide
(http://i307.photobucket.com/albums/nn318/bahumat27/eventcode.png)


A bit easier to see then actually reading code :P But yes you were right.

Added random damage bit so its not precise every single time.

Obligatory image thingie message. :3 ~Love, Starrodkirby86
Title: Re: Blizzard's little tricks
Post by: Shining Riku on April 27, 2009, 10:08:42 pm
Sweet. Didn't really know there was a random damage command, but then again most of my eventing knowledge is all stuff i've figured out on my own. Thanks for putting up a picture, i'm just too lazy, lol.

SO....(Powers up)

Thank ya, game_guy!
Title: Re: Blizzard's little tricks
Post by: Mightylink on May 03, 2009, 07:49:31 pm
Hero switch is really neat, I just wonder if it will cause problems down the road like in cutscenes :P
Title: Re: Blizzard's little tricks
Post by: G_G on May 03, 2009, 10:52:14 pm
Quote from: Mightylink on May 03, 2009, 07:49:31 pm
Hero switch is really neat, I just wonder if it will cause problems down the road like in cutscenes :P



Make it a parallel process and it'll only work when the switch Cutscene Off is on then just turn off the switch during cutscenes.
Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 12:24:55 am
Hello, I'm having problems adding new menu options, I do what you say, but it still doesn't show up.  I'm trying to put your bestairy in the menu.
Title: Re: Blizzard's little tricks
Post by: Landith on May 31, 2009, 12:26:24 am
Send me the script and I'll do it for you :)

Or if you tell me what script you are currently using I can help you.

Edit:
Wait, did you put '$scene = Scene_NEW_OPTION.new'?
That's suppose to be there is '$scene = Scene_Bestiary.new'

and

s5 = "NEW_OPTION" is suppose to be s5 = "Bestiary"

If you did that then send me the script and I'll do it for you :)

Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 12:31:04 am
I think I did, let me make sure and i'll tell you in a second.

Edit:
Still doesn't seem to be working, but I did correct a spelling error.


#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Bestiary by Blizzard
# Version: 2.21b
# Type: Enemy Catalogue Display
# Date: 5.7.2006
# Date v1.1: 18.9.2006
# Date v1.2b: 23.2.2007
# Date v1.3b: 7.7.2007
# Date v2.0b: 12.7.2007
# Date v2.1b: 6.8.2007
# Date v2.2b: 24.9.2007
# Date v2.21b: 8.4.2008
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# Compatibility:
#
#   98% compatible with SDK v1.x. 70% compatible with SDK v2.x. May cause
#   incompatibility issues with exotic CBS-es. WILL corrupt your old savegames.
#
#
# Features:
#
#   - display of full data of enemies
#   - option to disable different information
#   - integrated support for my "Advanced Analyze System"
#   - press SHIFT/ENTER to change the appearance of the Bestiary window
#   - use LEFT/RIGHT/UP/DOWN to navigate through the information database
#
# new in v1.1b:
#   - bugs fixed
#
# new in v1.2b:
#   - improved coding (uses less RAM now and processes faster)
#
# new in v1.3b:
#   - increased compatibility
#
# new in v2.0b:
#   - completely overworked and fixed compatibility issues
#
# new in v2.1b:
#   - added custom info possibility
#
# new in v2.2b:
#   - rewritten conditions using classic syntax to avoid RGSS conditioning bug
#   - added SORT_BEASTS option
#   - improved coding
#
# new in v2.21b:
#   - improved coding
#
#
# Instructions:
#
# - Explanation:
#
#   This script will allow your characters to retrieve information about
#   enemies during battle and show them in a window. It also has built-in
#   compatibility for my "Advanced Analyze System" script and allows adding
#   enemies to it only if enemies were analyzed at least once. This script can
#   easily be used for Pokémon typed games.
#
# - Configuration:
#
#   Configure the part below and make one or more skills, that can analyze
#   enemies. Add the IDs into the array called ANALYZE_IDS and separate them
#   with commas. If you have one or more scripts using dummy elements (e.g. my
#   EQUAP Skills, SephirothSpawn's Limit Break, etc.) be sure to include every
#   dummy element ID in the array called ELM_DUMMIES, also separated by commas.
#   Below is everything explained, how to set the bestiary up. It has
#   additional options for rendering single or all enemies "Unknown" and adding
#   them into the bestiary as such. Later you can use a syntax described below
#   to enable their information display (e.g. like in Pokémon games, you get
#   the real info about a pokémon not when you meet it, but when you catch it).
#   You can use $game_system.bestiary_missing? to check how many enemies were
#   not added into the Bestiary. If you wish to see how many were added, use
#   $game_system.beasts.size
#
#
# Important notes:
#
#   You MUST configure the part below if you have scripts that use dummy
#   elements! Do NOT give your enemies MORE than 11 elements/status effects of
#   one resistance type (e.g. 12 or more elements, that are absorbed), because
#   they won't be displayed.
#
#
# If you find any bugs, please report them here:
# http://www.chaosproject.co.nr
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

ELM_DUMMIES = [] # include EVERY dummy element ID, that is used by other scripts
STA_DUMMIES = [] # include EVERY dummy status effect ID, that you use
EVASION = 'Eva' # word used to display Evasion
MAP_BACKGROUND = true # true will show the map background, false won't
BESTIARY_SIZE = 999 # change this if to as many
NEVER_ADD = [] # include IDs of enemies which will never be added
SORT_BEASTS = true # set to false if you don't want all enemies to be sorted by ID

# enemy IDs from enemies, that are unknown (e.g. bosses), to make an enemy
# known use $game_system.enable(ENEMY_ID) through the event command
# "Call Script" to enable the display of information

if $override_bestiary
 UNKNOWN = [4] # overrides the commands further below
else
 UNKNOWN = [] # DO NOT TOUCH THIS
end

# every enemy is initially unknown (e.g. for Pokémon games), so you don't have
# to fill the array above with all the IDs of your enemy database

ALL_UNKNOWN = false

# If a display below is disabled, the appropriate part above will be overriden.
# The values below can also be changed during gameplay by just calling the
# "Call script" event command and changing the values like below
# DO NOT SET EVERYTHING TO true! THIS WILL BUG YOUR BESTIARY!

# set to true to disable display of basic info
DISABLE_BEAST_BASIC = false
# set to true to disable display of basic stats
DISABLE_BEAST_STATS = false
# set to true to disable display of extended stats
DISABLE_BEAST_EXTSTATS = false
# set to true to disable display of extreme element weakness
DISABLE_BEAST_XTRWEAK = false
# set to true to disable display of element weakness
DISABLE_BEAST_WEAK = false
# set to true to disable display of element resistance
DISABLE_BEAST_RESIST = false
# set to true to disable display of element nullification
DISABLE_BEAST_NULLIFY = false
# set to true to disable display of element absorbtion
DISABLE_BEAST_ABSORB = false
# set to true to disable display of extreme status effect weakness
DISABLE_BEAST_XTRWEAK_S = false
# set to true to disable display of status effect weakness
DISABLE_BEAST_WEAK_S = false
# set to true to disable display of status effect resistance
DISABLE_BEAST_RESIST_S = false
# set to true to disable display of status effect nullification
DISABLE_BEAST_NULLIFY_S = false
# set to true to disable display of status effect absorbtion
DISABLE_BEAST_ABSORB_S = false
# set to false to enable custom display
DISABLE_BEAST_CUSTOM = false

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

if $DUMMY_ELEMENTS == nil
 $DUMMY_ELEMENTS = ELM_DUMMIES.clone
else
 $DUMMY_ELEMENTS |= ELM_DUMMIES
end
ELM_DUMMIES = nil
if $DUMMY_STATES == nil
 $DUMMY_STATES = STA_DUMMIES.clone
else
 $DUMMY_STATES |= STA_DUMMIES
end
STA_DUMMIES = nil

$bestiary_enabled = 2.21

#==============================================================================
# Game_System
#==============================================================================

class Game_System
 
 attr_accessor :window_mode
 attr_accessor :known
 
 def get_bestiary_info(id)
   return get_analyze_info(id) if $override_bestiary_info
   case id
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Custom Beast Info Database
#
# Use following template to add custom information about monsters:
#
#    when ID then return "STRING"
#
# ID is the enemy ID and STRING is a string with the information that should be
# displayed. Type all the information into one string, the script will slice
# the text by itself. Note that special characters like a " (double quote)
# need the use of the escape character \ (backslash). If you get and error
# with your string or the character doesn't appear right on the screen, try to
# use the escape character (i.e. for a " it would be \" instead of just ").
# The backslash itself needs an escape character (i.e. \\).
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
   when 1 then return "Until now I believed there is no such thing as a ghost. It's hard to not believe in something that is trying to kill you."
   when 2 then return "These creatures can be found in swamps and marshes. They are said to be able to have the ability to turn anything they glaze at into stone. If this rumor is true, these creatures can be considered as part of the family of \"Gorgons\"."
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Custom Beast Info Database
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
   end
   return 'Unknown'
 end

 alias init_beast_later initialize
 def initialize
   init_beast_later
   @window_mode, @beasts, @known = 0, [], []
 end
 
 def beasts
   return ($bestiary_override ? @analyzed : @beasts) - NEVER_ADD
 end
 
 def add_beast(beast)
   unless @beasts.include?(beast)
     @beasts.push(beast)
     @beasts.sort! if SORT_BEASTS
   end
 end
 
 def bestiary_missing?
   return (BESTIARY_SIZE - @beasts.size)
 end
 
 def enable(id)
   $game_system.known.push(id) unless $game_system.known.include?(id)
   return
 end
 
end

#==============================================================================
# RPG::Enemy
#==============================================================================

class RPG::Enemy
 
 def known
   return ($game_system.known.include?(self.id)) if ALL_UNKNOWN
   return (!UNKNOWN.include?(self.id))
 end
 
end

#==============================================================================
# Window_Base
#==============================================================================

class Window_Base
 
 def draw_bestiary_battler(enemy, w, h)
   bitmap = RPG::Cache.battler(enemy.battler_name, enemy.battler_hue)
   bitmap_w = bitmap.width / 2
   bitmap_h = bitmap.height / 2
   src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
   self.contents.blt(w/2 - bitmap_w, h/2 - bitmap_h, bitmap, src_rect, 192)
 end
 
end

#==============================================================================
# Bitmap
#==============================================================================

class Bitmap
 
 def slice_text(text, width)
   result, last_word, current_text = [], 0, ''
   (0..text.size).each {|i|
       if text[i, 1] == ' ' || i == text.size
         word = text[last_word, i-last_word]
         if self.text_size("#{current_text} #{word}").width > width
           result.push(current_text)
           current_text = word
         else
           current_text += (current_text == '' ? word : " #{word}")
         end
         last_word = i+1
       end}
   result.push("#{current_text} #{text[last_word, text.size-last_word]}")
   return result
 end
 
end

#==============================================================================
# Window_Beast
#==============================================================================

class Window_Beast < Window_Base

 attr_accessor :mode
 
 def initialize
   super(0, 0, 576, 416)
   @index_enemy = 0
   @index_page = 0
   @d = [DISABLE_BEAST_BASIC, DISABLE_BEAST_STATS, DISABLE_BEAST_EXTSTATS,
         DISABLE_BEAST_XTRWEAK, DISABLE_BEAST_WEAK, DISABLE_BEAST_RESIST,
         DISABLE_BEAST_NULLIFY, DISABLE_BEAST_ABSORB, DISABLE_BEAST_XTRWEAK_S,
         DISABLE_BEAST_WEAK_S, DISABLE_BEAST_RESIST_S, DISABLE_BEAST_NULLIFY_S,
         DISABLE_BEAST_ABSORB_S, DISABLE_BEAST_CUSTOM]
   @pages = 14 - ((0..13).find_all {|i| @d[i]}).size
   @mode = $game_system.window_mode
   @enemies = []
   for id in ($override_bestiary ? $game_system.analyzed : $game_system.beasts)
     @enemies.push($data_enemies[id]) if id != nil
   end
   self.contents = Bitmap.new(width - 32, height - 32)
   if $fontface != nil
     self.contents.font.name = $fontface
     self.contents.font.size = $fontsize
   elsif $defaultfonttype != nil
     self.contents.font.name = $defaultfonttype
     self.contents.font.size = $defaultfontsize
   end
   self.x = 320 - self.width / 2
   self.y = 240 - self.height / 2
   refresh
 end
 
 def update
   return if @enemies.size == 0
   if Input.trigger?(Input::RIGHT)
     $game_system.se_play($data_system.cursor_se)
     @index_enemy = (@index_enemy + 1) % @enemies.size
     refresh
   elsif Input.trigger?(Input::LEFT)
     $game_system.se_play($data_system.cursor_se)
     @index_enemy = (@index_enemy + @enemies.size - 1) % @enemies.size
     refresh
   elsif Input.trigger?(Input::DOWN)
     $game_system.se_play($data_system.cursor_se)
     @index_page = (@index_page + 1) % @pages
     refresh
   elsif Input.trigger?(Input::UP)
     $game_system.se_play($data_system.cursor_se)
     @index_page = (@index_page + @pages - 1) % @pages
     refresh
   end
 end
 
 def refresh
   self.contents.clear
   x = y = 0
   ox = x + 64
   enemy = @enemies[@index_enemy]
   if enemy == nil
     self.contents.draw_text(0, 64, 544, 32, 'Bestiary is empty', 1)
     return
   end
   self.contents.draw_text(0, 0, 544, 32, "#{enemy.id}.  #{enemy.name}", 1)
   draw_bestiary_battler(enemy, self.width, self.height)
   if enemy.known
     case @index_page
     when (0 - ((0..0).find_all {|i| @d[i]}).size)
       if enemy.item_id > 0
         drop = $data_items[enemy.item_id]
         t = "#{drop.name} (#{enemy.treasure_prob}% chance)"
       elsif enemy.weapon_id > 0
         drop = $data_weapons[enemy.weapon_id]
         t = "#{drop.name} (#{enemy.treasure_prob}% chance)"
       elsif enemy.armor_id > 0
         drop = $data_armors[enemy.armor_id]
         t = "#{drop.name} (#{enemy.treasure_prob}% chance)"
       end
       self.contents.draw_text(x, 32, 128, 32, $data_system.words.hp)
       self.contents.draw_text(x, 96, 128, 32, $data_system.words.sp)
       self.contents.draw_text(x, 160, 128, 32, 'EXP')
       self.contents.draw_text(x, 224, 128, 32, $data_system.words.gold)
       self.contents.draw_text(x, 288, 128, 32, 'Drops')
       self.contents.draw_text(ox, 64, 256, 32, enemy.maxhp.to_s)
       self.contents.draw_text(ox, 128, 256, 32, enemy.maxsp.to_s)
       self.contents.draw_text(ox, 192, 256, 32, enemy.exp.to_s)
       self.contents.draw_text(ox, 256, 256, 32, enemy.gold.to_s)
       self.contents.draw_text(ox, 320, 256, 32, (drop != nil ? t : 'nothing'))
     when (1 - ((0..1).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 128, 32, $data_system.words.str)
       self.contents.draw_text(x, 96, 128, 32, $data_system.words.dex)
       self.contents.draw_text(x, 160, 128, 32, $data_system.words.agi)
       self.contents.draw_text(x, 224, 128, 32, $data_system.words.int)
       self.contents.draw_text(ox, 64, 256, 32, enemy.str.to_s)
       self.contents.draw_text(ox, 128, 256, 32, enemy.dex.to_s)
       self.contents.draw_text(ox, 256, 256, 32, enemy.agi.to_s)
       self.contents.draw_text(ox, 192, 256, 32, enemy.int.to_s)
     when (2 - ((0..2).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 128, 32, $data_system.words.atk)
       self.contents.draw_text(x, 96, 128, 32, $data_system.words.pdef)
       self.contents.draw_text(x, 160, 128, 32, $data_system.words.mdef)
       self.contents.draw_text(x, 224, 128, 32, EVASION)
       self.contents.draw_text(ox, 64, 256, 32, enemy.atk.to_s)
       self.contents.draw_text(ox, 128, 256, 32, enemy.pdef.to_s)
       self.contents.draw_text(ox, 192, 256, 32, enemy.mdef.to_s)
       self.contents.draw_text(ox, 256, 256, 32, enemy.eva.to_s)
     when (3 - ((0..3).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 544, 32, 'Extremely efficient elements:')
       draw_elements(enemy, x, 1)
     when (4 - ((0..4).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 544, 32, 'Efficient elements:')
       draw_elements(enemy, x, 2)
     when (5 - ((0..5).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 544, 32, 'Elemental resistances:')
       draw_elements(enemy, x, 4)
     when (6 - ((0..6).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 544, 32, 'Elemental nullifications:')
       draw_elements(enemy, x, 5)
     when (7 - ((0..7).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 544, 32, 'Elemental absorbtions:')
       draw_elements(enemy, x, 6)
     when (8 - ((0..8).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 544, 32, 'Extremely efficient status effects:')
       draw_states(enemy, x, 1)
     when (9 - ((0..9).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 544, 32, 'Efficient status effects:')
       draw_states(enemy, x, 2)
     when (10 - ((0..10).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 544, 32, 'Status effect resistances:')
       draw_states(enemy, x, 4)
     when (11 - ((0..11).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 544, 32, 'Strong status effect resistances:')
       draw_states(enemy, x, 5)
     when (12 - ((0..12).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 544, 32, 'Status effect immunities:')
       draw_states(enemy, x, 6)
     when (13 - ((0..13).find_all {|i| @d[i]}).size)
       self.contents.draw_text(x, 32, 544, 32, 'Informations:')
       draw_info(enemy, x)
     end
   else
     self.contents.draw_text(0, 64, 544, 32, 'Unknown', 1)
   end
 end
 
 def draw_elements(enemy, x, index)
   elements = []
   (1...$data_system.elements.size).each {|id|
       if !$DUMMY_ELEMENTS.include?(id) &&
           index == $data_enemies[@enemies[@index_enemy].id].element_ranks[id]
         elements.push($data_system.elements[id])
       end}
   elements = ['Nothing'] if elements.size == 0
   elements.each_index {|i|
       self.contents.draw_text(x, 64 + i * 32, 544, 32, elements[i])}
 end
   
 def draw_states(enemy, x, index)
   states = []
   (1...$data_states.size).each {|id|
       if !$DUMMY_STATES.include?(id) &&
           index == $data_enemies[@enemies[@index_enemy].id].state_ranks[id]
         states.push($data_states[id].name)
       end}
   states = ['Nothing'] if states.size == 0
   states.each_index {|i|
       self.contents.draw_text(x, 64 + i * 32, 544, 32, states[i])}
 end
 
 def draw_info(enemy, x)
   text = self.contents.slice_text($game_system.get_bestiary_info(enemy.id), 528)
   text.each_index {|i|
       self.contents.draw_text(x, 64 + i*32, 544, 32, text[i])}
 end
   
end

#==============================================================================
# Scene_Bestiary
#==============================================================================

class Scene_Bestiary
 
 def main
   @spriteset = Spriteset_Map.new if MAP_BACKGROUND
   @beast_window = Window_Beast.new
   Graphics.transition
   loop do
     Graphics.update
     Input.update
     update
     break if $scene != self
   end
   Graphics.freeze
   @spriteset.dispose if MAP_BACKGROUND
   @beast_window.dispose
 end
 
 def update
   @beast_window.update
   if MAP_BACKGROUND && (Input.trigger?(Input::A) || Input.trigger?(Input::C))
     Graphics.freeze
     $game_system.se_play($data_system.cursor_se)
     case @beast_window.mode
     when 0 then @beast_window.back_opacity = 128
     when 1 then @beast_window.opacity = 0
     when 2 then @beast_window.opacity = @beast_window.back_opacity = 255
     end
     $game_system.window_mode = ($game_system.window_mode+1) % 3
     @beast_window.mode = $game_system.window_mode
     Graphics.transition(5)
   end
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     $scene = Scene_Map.new
   end
 end


end
 
#==============================================================================
# Scene_Battle
#==============================================================================

class Scene_Battle
 
 alias update_beast_later update
 def update
   if @log == nil && !$override_bestiary
     @log = true
     $game_troop.enemies.each {|enemy| $game_system.add_beast(enemy.id)}
   end
   update_beast_later
 end
 
end


It would help if you just pasted both of the scripts [Bestairy and Scene_menu.  I haven't made any other changes to Scene_Menu on my current game, so you don't need to worry]


Don't double post within 24 hours.  There's a Modify button for a reason.
~Aqua
Title: Re: Blizzard's little tricks
Post by: G_G on May 31, 2009, 12:39:57 am
If you havent changed anything on the scene menu how can you expect the Bestiary to appear on the menu?
Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 12:41:20 am
No, I mean like changing it for other scripts.  I've already done the things he said, that's the only difference from the default scripts.   ;)
Title: Re: Blizzard's little tricks
Post by: Landith on May 31, 2009, 01:08:05 am
Give me a few minutes.


Spoiler: ShowHide


#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs menu screen processing.
#==============================================================================

class Scene_Menu
 #--------------------------------------------------------------------------
 # * Object Initialization
 #     menu_index : command cursor's initial position
 #--------------------------------------------------------------------------
 def initialize(menu_index = 0)
   @menu_index = menu_index
 end
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 def main
   # Make command window
   s1 = $data_system.words.item
   s2 = $data_system.words.skill
   s3 = $data_system.words.equip
   s4 = "Status"
   s5 = "Bestiary"
   s6 = "Save"
   s7 = "End Game"
   @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
   @command_window.index = @menu_index
   # If number of party members is 0
   if $game_party.actors.size == 0
     # Disable items, skills, equipment, and status
     @command_window.disable_item(0)
     @command_window.disable_item(1)
     @command_window.disable_item(2)
     @command_window.disable_item(3)
   end
   # If save is forbidden
   if $game_system.save_disabled
     # Disable save
     @command_window.disable_item(4)
   end
   # Make play time window
   @playtime_window = Window_PlayTime.new
   @playtime_window.x = 0
   @playtime_window.y = 224
   # Make steps window
   @steps_window = Window_Steps.new
   @steps_window.x = 0
   @steps_window.y = 320
   # Make gold window
   @gold_window = Window_Gold.new
   @gold_window.x = 0
   @gold_window.y = 416
   # Make status window
   @status_window = Window_MenuStatus.new
   @status_window.x = 160
   @status_window.y = 0
   # Execute transition
   Graphics.transition
   # Main loop
   loop do
     # Update game screen
     Graphics.update
     # Update input information
     Input.update
     # Frame update
     update
     # Abort loop if screen is changed
     if $scene != self
       break
     end
   end
   # Prepare for transition
   Graphics.freeze
   # Dispose of windows
   @command_window.dispose
   @playtime_window.dispose
   @steps_window.dispose
   @gold_window.dispose
   @status_window.dispose
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
   # Update windows
   @command_window.update
   @playtime_window.update
   @steps_window.update
   @gold_window.update
   @status_window.update
   # If command window is active: call update_command
   if @command_window.active
     update_command
     return
   end
   # If status window is active: call update_status
   if @status_window.active
     update_status
     return
   end
 end
 #--------------------------------------------------------------------------
 # * Frame Update (when command window is active)
 #--------------------------------------------------------------------------
 def update_command
   # If B button was pressed
   if Input.trigger?(Input::B)
     # Play cancel SE
     $game_system.se_play($data_system.cancel_se)
     # Switch to map screen
     $scene = Scene_Map.new
     return
   end
   # If C button was pressed
   if Input.trigger?(Input::C)
     # If command other than save or end game, and party members = 0
     if $game_party.actors.size == 0 and @command_window.index < 4
       # Play buzzer SE
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     # Branch by command window cursor position
     case @command_window.index
     when 0  # item
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to item screen
       $scene = Scene_Item.new
     when 1  # skill
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Make status window active
       @command_window.active = false
       @status_window.active = true
       @status_window.index = 0
     when 2  # equipment
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Make status window active
       @command_window.active = false
       @status_window.active = true
       @status_window.index = 0
     when 3  # status
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Make status window active
       @command_window.active = false
       @status_window.active = true
       @status_window.index = 0
     when 4
       $game_system.se_play($data_system.decision_se)
       # Switch to beastiary screen
       $scene = Scene_Bestiary.new
     when 5  # save
       # If saving is forbidden
       if $game_system.save_disabled
         # Play buzzer SE
         $game_system.se_play($data_system.buzzer_se)
         return
       end
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to save screen
       $scene = Scene_Save.new
     when 6  # end game
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to end game screen
       $scene = Scene_End.new
     end
     return
   end
 end
 #--------------------------------------------------------------------------
 # * Frame Update (when status window is active)
 #--------------------------------------------------------------------------
 def update_status
   # If B button was pressed
   if Input.trigger?(Input::B)
     # Play cancel SE
     $game_system.se_play($data_system.cancel_se)
     # Make command window active
     @command_window.active = true
     @status_window.active = false
     @status_window.index = -1
     return
   end
   # If C button was pressed
   if Input.trigger?(Input::C)
     # Branch by command window cursor position
     case @command_window.index
     when 1  # skill
       # If this actor's action limit is 2 or more
       if $game_party.actors[@status_window.index].restriction >= 2
         # Play buzzer SE
         $game_system.se_play($data_system.buzzer_se)
         return
       end
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to skill screen
       $scene = Scene_Skill.new(@status_window.index)
     when 2  # equipment
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to equipment screen
       $scene = Scene_Equip.new(@status_window.index)
     when 3  # status
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to status screen
       $scene = Scene_Status.new(@status_window.index)
     end
     return
   end
 end
end




That should work. If not tell me and I'll fix it. Kinda half asleep right now...

Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 01:18:00 am
That didn't fix it, so it must be with the bestiary script.
Title: Re: Blizzard's little tricks
Post by: Landith on May 31, 2009, 01:28:24 am
I'll try it real fast. Just half asleep...

It works perfectly for me...
No errors or anything. I used the bestiary script you posted and everything.

What's wrong with it?
Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 01:34:12 am
Nothing shows up in the menu.   Do I have to do something to activate it or something?  Like scan an enemy [Scanning script that goes with it]
Title: Re: Blizzard's little tricks
Post by: Landith on May 31, 2009, 01:36:22 am
You have to fight an enemy, that's it.
Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 01:46:01 am
That doesn't seem to work, I will try again myself...

EDIT:  Still isn't working.
Title: Re: Blizzard's little tricks
Post by: Blizzard on May 31, 2009, 06:11:40 am
*scrolls through Landith's code* Landith, you posted the default menu script without edits.
Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 01:27:20 pm
I did notice that he didn't put the (s7) thingie, but that didn't fix anything.  It seems that the option would function properly if it showed up.
Title: Re: Blizzard's little tricks
Post by: G_G on May 31, 2009, 01:49:16 pm
Try that
Spoiler: ShowHide
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs menu screen processing.
#==============================================================================

class Scene_Menu
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Make command window
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "Save"
    s6 = "Bestiary"
    s7 = "End Game"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
    @command_window.index = @menu_index
    @command_window.height = 224
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    # If save is forbidden
    if $game_system.save_disabled
      # Disable save
      @command_window.disable_item(4)
    end
    # Make play time window
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 224
    # Make steps window
    @steps_window = Window_Steps.new
    @steps_window.x = 0
    @steps_window.y = 320
    # Make gold window
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
    # Make status window
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update windows
    @command_window.update
    @playtime_window.update
    @steps_window.update
    @gold_window.update
    @status_window.update
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
    # If status window is active: call update_status
    if @status_window.active
      update_status
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when command window is active)
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If command other than save or end game, and party members = 0
      if $game_party.actors.size == 0 and @command_window.index < 4
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Branch by command window cursor position
      case @command_window.index
      when 0  # item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to item screen
        $scene = Scene_Item.new
      when 1  # skill
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4  # save
        # If saving is forbidden
        if $game_system.save_disabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to save screen
        $scene = Scene_Save.new
      when 5
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Bestiary.new
      when 6  # end game
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when status window is active)
  #--------------------------------------------------------------------------
  def update_status
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Make command window active
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 1  # skill
        # If this actor's action limit is 2 or more
        if $game_party.actors[@status_window.index].restriction >= 2
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to skill screen
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to status screen
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end
Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 01:55:25 pm
That didn't work, so it probably must be in the bestiary script.
I can't wait to get this to work!  :wacko:
Title: Re: Blizzard's little tricks
Post by: G_G on May 31, 2009, 01:56:11 pm
What do yo umean it doesnt work? It works fine for me
Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 01:59:39 pm
That's strange, but it just won't show up.  Not any errors or anything.  Is there something to do to trigger it showing up?  That would actually be convient.
Title: Re: Blizzard's little tricks
Post by: Aqua on May 31, 2009, 02:01:23 pm
Are you putting the script in a new slot below the default RTP scripts but above Main...?

Refer here
http://forum.chaos-project.com/index.php?topic=198.0
Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 02:05:58 pm
Yes, I am.  Perhaps it could have something to do with SDK or the other scripts I have.
Title: Re: Blizzard's little tricks
Post by: Aqua on May 31, 2009, 02:07:46 pm
Hm... you don't happen to have another script that modifies Scene_Menu?
Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 02:11:40 pm
Would a title screen skip do that?
Current Scripts:
SDK
Pixelmovement script v 1.3
Skip Title Screen
Scanning Script [blizz]
Bestiary [blizz]

I'm sorry, but I really need the answer.  -bump-


Don't double post within 24 hours.  Modifying your post will auto-bump it.
~Aqua
Title: Re: Blizzard's little tricks
Post by: Ryex on May 31, 2009, 03:17:32 pm
make a demo with the problem and all the scripts your using, upload it, and I'll see what I can do
Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 03:28:55 pm
http://www.gigasize.com/get.php?d=h6qq6kx4lmd
^^Download link
Title: Re: Blizzard's little tricks
Post by: Landith on May 31, 2009, 03:35:47 pm
*Sigh...*

The SDK is messing it up. It edits the default Scene_Menu and replaces it with a "better" one...

Just paste the Scene_Menu below the SDK and it should work.

Stupid SDK...

@Blizz: What do you mean? I posted it with the edited s5-s7 and the edited when 4-6, was there anything else I was suppose to edit?
Title: Re: Blizzard's little tricks
Post by: soniclink386 on May 31, 2009, 03:40:16 pm
You did it!  Thank you so much everybody that helped!  I can't belive it was the SDK the whole time. >_<

EDIT:  Now to get a quest option on there... *sigh*
Title: Re: Blizzard's little tricks
Post by: Ryex on May 31, 2009, 03:42:57 pm
Quote from: soniclink386 on May 31, 2009, 03:40:16 pm
I can't belive it was the SDK the whole time. >_<

BELIEVE IT!
the SDK is suckish and shouldn't be used unless absolutely nessacery
Title: Re: Blizzard's little tricks
Post by: Blizzard on May 31, 2009, 04:06:25 pm
@Landith: My bad. I don't know what I've been looking at that I overlooked "when 6".
Title: Re: Blizzard's little tricks
Post by: fugibo on June 01, 2009, 03:02:27 pm
Meh. SDK just sucks because it's name makes no sense (it's not even used for development, just for run-time!)
Title: Re: Blizzard's little tricks
Post by: Juan on June 01, 2009, 07:00:00 pm
I'm surprised no one made a sdk flame topic. @Wcw thats so true. But it also mades certain scripts incompatable with non sdk scripts which does suck. But I suspect that knew that.
Title: Re: Blizzard's little tricks
Post by: Blizzard on June 02, 2009, 03:11:30 am
Actually... http://forum.chaos-project.com/index.php?topic=1070.0, but SDK doesn't need its own topic. Its suckishness is omnipresent.
Title: Re: Blizzard's little tricks
Post by: Ryex on June 15, 2009, 02:33:25 pm
my contribution

Change Another Event's Self Switches


module Ryex #you can really name it wtat ever you want you don't have to use my name
 def self.flip_switch(event_id, switch, state)
   key = [$game_map.map_id, event_id, switch]
   $game_self_switches[key] = state
   $game_map.need_refresh = true
 end
end


called like this
Ryex.flip_switch(<event_id>, <Self_switch can be "A", "B", "C", or "D">, <state/ can be true or false>)


while this code is simple it open a whole lot of possibilities in the world of event systems. like this code

Spoiler: ShowHide

class Game_Event
 attr_reader :id
end

module CP
 
 def self.first_event_comment(event, comment)
   return (event.list.is_a?(Array) && event.list[0].code == 108 &&
        event.list[0].parameters[0] == comment)
 end
 
 def self.find_first_event(dir = $game_player.direction, range = 1, string = '')
   case dir
   when 2
     (1..range).each {|i| $game_map.events.each_value {|event|
     if event.x == $game_player.x && event.y == $game_player.y + i &&
         CP.first_event_comment(event, string)
       return event.id
     end}}
   when 4
     (1..range).each {|i| $game_map.events.each_value {|event|
     if event.y == $game_player.y && event.x == $game_player.x - i &&
         CP.first_event_comment(event, string)
       return event.id
     end}}
   when 6
     (1..range).each {|i| $game_map.events.each_value {|event|
     if event.y == $game_player.y && event.x == $game_player.x + i &&
         CP.first_event_comment(event, string)
       return event.id
     end}}
   when 8
     (1..range).each {|i| $game_map.events.each_value {|event|
     if event.x == $game_player.x && event.y == $game_player.y - i &&
         CP.first_event_comment(event, string)
       return event.id
     end}}
   end
   return 0
 end
 
 def self.trigger(string, range, switch)
   event_id = self.find_first_event($game_player.direction, range, string)
   return if event_id == 0
   key = [$game_map.map_id, event_id, switch]
   $game_self_switches[key] = true
   $game_map.need_refresh = true
 end
 
end


called like
CP.trigger(<string your searching for>, <range in fount of player>, <switch to turn>, 

it searches the number of squares specified in the range for events that have the specified string in a comment in the first line, then it turns a self switch in the first event it finds.
this small piece of code allows people to use common event called form skills and other places to target very specific events on any map, cool right?
Title: Re: Blizzard's little tricks
Post by: Aqua on June 15, 2009, 03:06:36 pm
*gasp*
With this... a hookshot for Blizz-ABS /should/ be possible!!! :O

*levels up*
Title: Re: Blizzard's little tricks
Post by: Ryex on June 15, 2009, 03:45:20 pm
thanks but you should lv up blizz too because he helped me with the second part
Title: Re: Blizzard's little tricks
Post by: fugibo on June 15, 2009, 05:40:14 pm
Ry, you realize you can speed that up slightly by using more inline code, right? For example:

    key = [$game_map.map_id, event_id, switch]
    $game_self_switches[key] = state

can be

    $game_self_switches[[$game_map.map_id, event_id, switch]] = state
Title: Re: Blizzard's little tricks
Post by: Zeriab on June 15, 2009, 06:13:08 pm
Good work Ryexander :D
The difference insignificant and I find the split method easier to read. I prefer the presented version.
Title: Re: Blizzard's little tricks
Post by: Blizzard on June 15, 2009, 06:25:01 pm
:???: Hookshot = Event that runs on a specific flail weapon. Did nobody notice that yet?

Also, I think this topic is going the wrong way.
Title: Re: Blizzard's little tricks
Post by: Ryex on June 15, 2009, 06:37:08 pm
Quote from: Blizzard on June 15, 2009, 06:25:01 pm
:???: Hookshot = Event that runs on a specific flail weapon. Did nobody notice that yet?

Also, I think this topic is going the wrong way.


I think Aqua meant the hookshot from Zelda where you could stick it into walls / other objects and get pulled to them, so you could stick it into a rock on the other side of a gap and get pulled across... and theoretically yes that you could do

and what do you meant by 'going the wrong way'
Title: Re: Blizzard's little tricks
Post by: Blizzard on June 16, 2009, 03:02:26 am
This topic isn't about scripts. It's about what simple small useful things you can do with RPG Maker, yet people are stupid enough to make scripts for that kind of functionality.
Title: Re: Blizzard's little tricks
Post by: Zeriab on June 16, 2009, 05:49:25 am
Terrain tags <3
Self-switches in common events <3

:3

http://paste-bin.com/view/ea2858c4

>_>

*runs*
Title: Re: Blizzard's little tricks
Post by: Memor-X on June 23, 2009, 07:17:40 pm
just wondering, i know that you can store more that numbers in a variable but can you make a variable as an array or can you only do that in scripts
Title: Re: Blizzard's little tricks
Post by: Blizzard on June 23, 2009, 07:19:21 pm
$game_variables[ID] = [1, 2, 3]

Now it's an array containing 1, 2 and 3. Just be careful when not using variables what they were intended for: numbers.
Title: Re: Blizzard's little tricks
Post by: Calintz on June 23, 2009, 08:51:34 pm
Hey Blizzard, does that command line work as syntax for the "call script" command??
Title: Re: Blizzard's little tricks
Post by: G_G on June 23, 2009, 10:13:59 pm
yes it does.
Title: Re: Blizzard's little tricks
Post by: Calintz on June 23, 2009, 11:17:51 pm
Thanx =D
That will shorten up CACCES.
Title: Re: Blizzard's little tricks
Post by: winkio on July 02, 2009, 11:11:56 am
This is somewhat random, and I don't know how useful, but you can make faster/slower bgs sounds by pitching it higher or lower.  So, you could get a really fast river or a really slow river just by pitching the river bgs.  Could be used to make a part like in ff7 where you cant cross a bridge when the wind is blowing really hard, or else you get blown off.  Just thought I'd throw this out here.
Title: Re: Blizzard's little tricks
Post by: Shining Riku on July 31, 2009, 10:23:58 pm
Hey, I need some help with an issue I found with an event/script system I set up.

Initially I created it using Blizz's trick for assigning an actor's name to a variable. Using that trick I set up a multi-strike skill system that'd make the person using the skill use it again three more times for example.

However, it seems once the game stores the whole party's names in the variables I have, they don't reset when the party gets switched around/party members removed, and the like.

So basically once it stores those names in the variables the first time, it saves those settings! I can't get the variables to reset, and I was wondering if there was some way to, well, reset variables the hard way and clean them all out. This is the script sniplet I used in the Script commands. Once this gets fixed (if it does) I'll post the multi-hit system.

Spoiler: ShowHide
$game_variables[1] =
$game_party.actors[0].name


So after I do this, if the name it stores is "Joe", it stores Joe permanently and if I make Joe switch slots with Bob, Bob ends up being forced to use the remainder of Joe's attacks when he uses the multi-strike skill.

Did I explain enough? Too long winded and complicated? I seriously would like to know if there's a way to get the game to reset that variable...because it's making a few of my skills completely useless and I've done everything I can to make it work. >_>
Title: Re: Blizzard's little tricks
Post by: winkio on July 31, 2009, 10:44:06 pm
you set one variable to another.  It keeps the value that you set it to until you change it, in this case, Joe.  It you switch slots, you need to reset it the exact same way,

$game_variables[1] =
$game_party.actors[0].name

So just call that each time you switch slots.
Title: Re: Blizzard's little tricks
Post by: Shining Riku on July 31, 2009, 11:09:00 pm
I have it so each time the skills are used, it assigns those values and it should be reseting them, but it isn't.

It's in a common event, and that common event is run every time that skill is used. I have multiple people using the same system though with different skills. So, to prevent dumb stuff from happening I have a different set of skills and common events for every multi-hit skill.

So for whatever reason it won't reset, even with everything being checked every time the skills are used.
EDIT:

OMG...I figured out my issue. It's so stupid. I'm sorry I bothered you guys, but for whatever reason it helps me to figure out what I've done. Thanks for lending an ear. :D
Title: Re: Blizzard's little tricks
Post by: Shining Riku on August 05, 2009, 12:58:24 am
I promised I'd post my skill system so here it is. No need to credit me, but don't steal it, k'?  :(

Stuff needed: 5 variables, the skills to be used for the Multi-Hit, and a common event.

Step 1: First, you need to create the multi-hit skill in your skills tab. Give it an MP cost. After it's set up copy that same skill and paste it into an empty slot and remove the MP cost from it unless if you want the skill to take additional MP for every attack.

Step 2: Now that your SKILL is set up, now go create a Common event. You can name it whatever you want, but I name my common events after the skills just for reference. Set up the common event like this:
Spoiler: ShowHide
(http://i302.photobucket.com/albums/nn118/ShiningRiku/Multi-Strikeexample1.png)

Spoiler: ShowHide
(http://i302.photobucket.com/albums/nn118/ShiningRiku/Multi-Strikeexample2.png)

Keep in mind this system is actor specific! Only actors named Bob can use this one in the example.

Step 3: Your common event is almost finished. Now, to make it work, change the Bob to the name of your actor that will be using the skill. Each slot is for one of the four positions in your party. In the first conditional branch, put in some Forced Actor actions like this:
Spoiler: ShowHide
(http://i302.photobucket.com/albums/nn118/ShiningRiku/Multi-Strikeexample3.png)


Now when Bob uses Sword Dance, if he's the first person in the party He'll use it once. You could make him use it a hundred times if you wanted. Anyhow, notice the Variable the branch is calling is a 1. That's the actor's position in the party. Make the forced actions be used by the first actor, and always have it "execute now" You could have him use a whole bunch of different skills if you wanted! The possibilities are endless.

I'm going to have Bob use sword dance 3 times. This is what you do:
Spoiler: ShowHide
(http://i302.photobucket.com/albums/nn118/ShiningRiku/Multi-Strikeexample4.png)


Now, he's covered no matter what position he has in the party. He'll use the skill three times after the first skill activates it, going for a grand total of four strikes. I explained this as best as I could.

Step 4: Now, all you need to do is connect this common event to your first Sword Dance skill in the skill setup tab. Now you need to Make sure Bob learns the skill, the one with the MP cost and the common event attached to it.

You're finished. Now test it out and have fun. There are many MANY things you can do with this system, but it takes some eventing knowledge to pull it off. PM me if you have any questions!  ;)

Hot! Lemme cover those images in spoilers first, they're burnin' my eyes off~ ~Love, Starrodkirby86
Title: Re: Blizzard's little tricks
Post by: lonely_cubone on May 06, 2010, 07:20:42 pm
Sorry if this is a necropost, but I was hoping I could get some help using one of these.

I'm making a game where there are 4 main characters. At first you play as all of them seperately, but they eventually all meet each other. I'm currently using trick 5b (actually 5a #2) where you store the parties in variables and make new ones. However, is there some way to combine all of the parties at some point, including their items, gold, etc.?
Title: Re: Blizzard's little tricks
Post by: Blizzard on May 07, 2010, 02:47:30 am
That had to be done manually.
Title: Re: Blizzard's little tricks
Post by: lonely_cubone on May 07, 2010, 08:47:01 am
By checking each individual item, using event commands? Isn't there some way to add the arrays together or something? Sorry, I'm terrible with Ruby syntax, so I don't really know how to do stuff like this.
Title: Re: Blizzard's little tricks
Post by: Blizzard on May 07, 2010, 09:42:17 am
You still had to add each array manually.
Title: Re: Blizzard's little tricks
Post by: lonely_cubone on May 07, 2010, 09:47:45 am
What I'm asking is, how exactly do I do that?
Title: Re: Blizzard's little tricks
Post by: Futendra on December 31, 2010, 07:52:30 am
Great Tricks,

The title made me laugh :D (Think about Old Spice)
Title: Re: Blizzard's little tricks
Post by: The Niche on January 02, 2011, 11:39:44 am
Well, that was a pointless necro :V:

Anyway, I need some script calls.

A) Is there way to take the damage (Read: NOT the power) done by a skill and store it in a variable?

B) How do I store the attack value of a weapon in a variable and set another weapon equal to this value?
Title: Re: Blizzard's little tricks
Post by: WhiteRose on January 02, 2011, 03:24:00 pm
Quote from: The Niche on January 02, 2011, 11:39:44 am
Well, that was a pointless necro :V:

Anyway, I need some script calls.

A) Is there way to take the damage (Read: NOT the power) done by a skill and store it in a variable?

B) How do I store the attack value of a weapon in a variable and set another weapon equal to this value?


I'm not sure posting here is the quickest way to get those questions answered.
Title: Re: Blizzard's little tricks
Post by: JellalFerd on July 11, 2011, 04:34:06 pm
Apologies for necropost.
I was just wondering how you changed the RMXP database's skin.
Title: Re: Blizzard's little tricks
Post by: G_G on July 11, 2011, 04:41:38 pm
That has to do with unofficial themes and skinning. It really has nothing to do with changing RMXP. Here's some windows 7 skins. http://browse.deviantart.com/customization/skins/ You'll have to google universal theme patcher for those to work.
Title: Re: Blizzard's little tricks
Post by: JellalFerd on July 12, 2011, 02:54:14 am
Oh.
Thanks, G_G.