|
Post by Neo Samurai on Mar 12, 2005 18:14:09 GMT -5
I think I'm goin' to start a thread for stuff I learn from RPGM2. Though I don't have as much to share, since most, I know have been done, I'll share a couple:
[glow=blue,2,300]Learning Abilities Through Equipment: [/glow]
Create these scripts first:
Learn (Ability): Data/Target/Equip & Abilities/Abilities/Learn (Ability)
Forget (Ability): Data/Target/Equip & Abilities/Abilities/Remove (Ability)
Next, of course, make system events for them.
Then, create an Indirect Effect and place the event with Learn (Ability) in New Success and the event for Forget (Ability) in Forced End.
Now, create a piece of equipment and place your new Indirect Effect in Custom/Equip/Indirect Effect.
Now, when a character equips that item, he/she will learn a new ability. However, when you remove it he/she will forget it.
[glow=blue,2,300]Being Able to Remove Equipment:[/glow]
Okay, create a script. Call it "Remove Equip". This is what it should look like:
Remove Equip: Data/Load Item Data SB/Sort/Item Type Apply If +1 (I believe this number is for weapons. You can always check to see by pressing start on the "Item Type" Variable (I think that two of them may be mixed up, and should be the others. I might be thinking of the User Button Variable, though)) Data/Target/Equip & Abilities/Remove Equip (Weapon) To End (Repeat until you've done every piece of equipment)
Now, go to Error Messages and delete everything between Apply If +23 and its To End. Now, call that script you created earlier. Now, whenever you want to remove a piece of equipment, instead of giving it to another member, placing it in the bag, or throwing it out, you can select equip and it will unequip that item.
|
|
|
Post by Neo Samurai on Mar 28, 2005 14:04:43 GMT -5
I have yet another trick. If you notice in Merchant Lists of shops, they never give a description of the items, which totally sucks (Having no idea what you could be buying). So, I've solved that problem. [glow=blue,2,300]Descriptions for Merchant Items[/glow]Here's what you do. First, create a variable called "Money Memory". Next, create a Multiple Choice option in the Merchant Script along with "Buy", "Sell", etc. that is called "Description". When the User Choice Variable is equal to whatever User Choice you assigned "Description" to, call a script called "Description". Description:Display Money Off Load Game Info Data/Variable/Money Memory= Total Money Data/Variable/Total Money= (whatever maximum number is) Save Game Info SB/Repeat/Flag/Off Fixed=Off Display Buy Menu SB/Condition/Variable/User Choice=0 To End Condition End Load Item Info Display Content/Common Name Message (Have Enter here by pressing the ^ button) Display Content/Item Description (Called) Input Creation/Buttons/Constant Wait Close Message Window Branch End Data/Variable/Total Money= Money Memory Save Game Info Display Money On ------------------------------------------------------------------------ See how it works? You see, you cannot select an item from the Buy List if you do not have enough money for it. So, by turning off the money display, placing your money in "Money Memory" and placing "Total Money" to its maximum level, you can trick the game into thinking the player can select any of the items, thus allowing you to display the descriptions of the items. Then, once the player leaves, it will upload the money back into "Total Money" and display it again, as if the player never lost the money. I've tested out this script and it works perfectly. If you have any questions/comments/feedback, please don't hesitate to post.
|
|
|
Post by Neo Samurai on Apr 5, 2005 14:48:47 GMT -5
Hey. It's me, and I'm back for another exciting addition of Hitou's Tips and Tricks! For today, I'll be showing you a really cool trick that's used for some spells in the FF games. I'm speaking, of course, about finding multiples of a number: [glow=blue,2,300]Finding Multiples of a Number[/glow]As some of you may know, there are some spells in the FF games that depend on multiples of a character's level (ex. L4 Suicide). I've been thinking for a while, "how could this be done on RPG Maker 2?" I knew there had to be a way, but I was clueless. Finally, I got an idea. To find the multiples of a number, what you would do is create a Repeat SB that is greater than what you're using to find the multiple. Then, between the Repeat SB, subtract the number from the so-called multiple. Eventually, it will reach a point where it is equal to or less than the number. If it is equal to the number, it is a multiple of that number. However, if it is less, than it is not. For those that are confused, I will use an example. Let's say you're trying to find out if an ally's level is a multiple of 5: Load Member Info Data/Variable/TempVariable0 = Level SB/Repeat/TempVariable0 < 5 Data/Variable/TempVariable0 = TempVariable0 - 5 Branch End SB/Condition/TempVariable0 = 5 (Do whatever you want here when the Level is a multiple of 5) Condition End ------------------------------------------------------------------------ So, there you have it! Any questions, comments, etc. are welcome.
|
|
|
Post by vespuleth on Apr 6, 2005 1:16:58 GMT -5
ummm... why wouldnt you just divide by the number, and then remultiply it. if the end result is the same as the start result, the number is a multiple.
like so:
data>>variable>>tempvar0 = level data>>variable>>tempvar0 = tempvar0 / 5 data>>variable>>tempvar0 = tempvar0 * 5 condition>>variable>>tempvar0 = level whatever you want to happen end condition
this works because rpm2 drops off decimals. so say you have 27:
27 / 5 = 5.something rpgm2 will translate it as 5 but 5 * 5 = 25, which is /= 27. so its not a multiple
with 23:
23/5 = 4.something rpgm2 will translate it as 4 but 4*5 = 20, which is /= 23, so its not a multiple.
only exact divisibles will work.
|
|
|
Post by Neo Samurai on Apr 6, 2005 10:47:18 GMT -5
I guess either way works. But I might just stick with my method since it was pretty much an original idea.
|
|
|
Post by Dungeon Warden on Apr 6, 2005 13:13:30 GMT -5
There is a very simple way to do this is RPG Maker 2. Use % (not percent, but mode). This math symbol divides by a number and returns the remander. all you need to do is check if the remainder is 0 or not.
For example: 27 % 5 = 2 not zero, so the number is not evenly divided by 5 23 % 5 = 3 still not zero 25 % 5 = 0 the result is zero, so the number is divisable by 5.
Therefore to check if a level is a multiple of 5, use:
Data : variable : temp 1 = Level % 5 Script Branch : Condition Temp 1 = 0 * the spell works * End Script Branch : Condition Temp 1 /= 0 (not equal) * the spell fails * End
|
|
|
Post by Neo Samurai on Apr 6, 2005 14:52:03 GMT -5
I didn't know it could do that. Thanks, DW.
|
|
|
Post by The Final Rune on Apr 8, 2005 11:08:51 GMT -5
I haven't even begun to use the math possibilities in my scripts beyone simple stuff for my script branches.
|
|
|
Post by Neo Samurai on Aug 9, 2006 10:37:06 GMT -5
Been a while. Anyway, here's a new tip/trick. Using Custom Weapon Properties for a CBSTry using the NormalVariables. This is just like my tip on my site about learning abilities through equipment. Create these scripts: Get (Weapon Property) Substitute Attribute for Variable Variable: NormalVariable0= 1 (Note: It doesn't matter what NormalVariable you use. It's up to you. For this example, let's say that 1 is a Fire property)Substitute Variable for Attribute Lose (Weapon Property) Substitute Attribute for Variable Variable: Normal Variable0= -1 (Note: -1 is when a character doesn't have a weapon property)(If you want the weapon property of the original weapon to return, do the following.) Load Member Info Sort: Variable: [Weapon Equipped] Apply If +1 (Fire Lance) Apply If +7 (Fire Sword) Variable: Normal Variable0= 1 To End Apply If +2 (Water Harpoon) Apply If +10 (Wet Brand) Variable: Normal Variable0=2 To End (Repeat for all weapons and weapon properties) Script Branch End (Note: Placing the corny weapon names aside , as you can see, each weapon that has the same property will end up having the same result (Fire Weapons will be 1, and Water Weapons will be 2))Substitute Variable for Attribute Create two system events for each of these scripts. Next, create a Custom Indirect Effect. Place the "Get (Weapon Property)" event in New Success and "Lose (Weapon Property)" in Forced End. Now, for when applying damage to enemies. You'll need a variable for the weapon property the enemy is weak against and strong against. I use two methods for this. Method 1: Create your own variable. Name it "Enemy1Weakness" or something like that. Make that for each enemy. Then, create a variable called "Enemy1Strength" for each enemy. Method 2: Create a blank party member and name it "Enemy 1". Use one of the "Normal Variables" for the enemy's weakness and strength. Make a blank party member for each enemy. However, you'll need to create a variable called "MemberElement". I prefer Method 2 because I can save some variables, but you can do whatever you want. Now, place this script before a script that applies damage to an enemy. I'll show you what you need to do, depending on what method you prefer. Method 1: "Elemental Check" Load Member Info SBC: [NormalVariable0]=[Enemy1Weakness] Data: Variable: [Damage]= [Damage]*2 Script Branch End SBC: [NormalVariable0]=[Enemy1Strength] Data: Variable: [Damage]= [Damage]/2 Script Branch End (Note: You'll have to do this for every enemy. I'd use Sort Branches to check if the enemy is correct.)Method 2: (Note: In this example, the enemy's NormalVariable0 is its weakness and NormalVariable1 is its strength.)"Elemental Check" Load Member Info Data: Variable: [MemberElement]=[NormalVariable0] Data: Variable: [Member Number]=(Whatever number you need to call the enemy's blank member data) Load Member Info SBC: [MemberElement]=[NormalVariable0] Data: Variable: [Damage]=[Damage]*2 Script Branch End SBC: [MemberElement]=[NormalVariable1] Data: Variable: [Damage]=[Damage]/2 Script Branch End (Note: You'll have to do this for every enemy. I'd use Sort Branches to check if the enemy is correct.)
|
|
|
Post by Neo Samurai on Aug 17, 2006 11:07:09 GMT -5
This really isn't a breakthrough, but I've noticed that there are no scripts on how to display large VFX numbers on this board. This can be used in CBSs to display HP or damage taken. Here's how to do it: Displaying Large VFX Numbers the Easy Way:(DISCLAIMER: This tip is only to understand how this process works. Creating the following script will not be guaranteed to work in your DBS, CBS, etc. This tip is to help you to grasp the theory of displaying VFX numbers.) What you need to know first is what will be the maximum number that can be displayed (we'll work with 5000 as an example). Once you've decided how high you want your VFX numbers to reach, create 10 VFXs for each digit. So, it would be something like this: VFXs: Zero (One Digit) One (One Digit) Two (One Digit) (Repeat that for numbers 3-9) Zero (Ten Digit) One (Ten Digit) Two (Ten Digit) (Hopefully, you get the idea) (Note: Since we are only going up to 5000 in this example, we wouldn't need to have to create VFXs for numbers 6-9 and 0 for the thousand digit) Of course, the VFXs should display their appropriate numbers and one digit numbers should be displayed on the far right and thousand digits on the far left. Now, create an event (give it a model) and name it "Display #". Create a content script for "Display #". This is what it should look like: "Display #" Data: Variable: TempVariable0= 1 ? 5000 (Note: We're just generating a random number for this example. This will probably not be used in your DBS or CBS.)Data: Variable: TempVariable1= TempVariable0 % 10 (One Digit)Script Branch: Condition: TempVariable0 >= 10 Data: Variable: TempVariable2= TempVariable0 % 100 Data: Variable: TempVariable2= TempVariable2 / 10 Script Branch End(Ten Digit)Script Branch: Condition: TempVariable0 >= 100Data: Variable: TempVariable3= TempVariable0 % 1000 Data: Variable: TempVariable3= TempVariable3 / 100 Script Branch End(Hundred Digit)Script Branch: Condition: TempVariable0 >= 1000Data: Variable: TempVariable4= TempVariable0 / 1000 Script Branch End(Thousand Digit)Apply Together Call Script: [Display One Digit] Call Script: [Display Ten Digit] Call Script: [Display Hundred Digit] Call Script: [Display Thousand Digit] Data: Variable: TempVariable1= -1 Data: Variable: TempVariable2= -1 Data: Variable: TempVariable3= -1 Data: Variable: TempVariable4= -1 (Note: % is the remainder of two numbers divided together. For instance, if you divide 5434 with 10, instead of getting 543, you'd get 4.)Of course, you should create the four scripts I mentioned in the "Display #" script. Here's what they should look like: "Display One Digit" Script Branch: Sort: [TempVariable1] Apply If +0 Effects: [Zero (One Digit)] To End Apply If +1 Effects: [One (One Digit)] To End (Repeat for #'s 2-9) No Application Script Branch End (Repeat this process for the other scripts, but in the "Display Thousand Digit" script, only make Apply If #'s 0-5) Place the event on a map and test it out. -------------------------------------------------------------------------------------- Bear in mind that this is not a completed product that can be used in a DBS, CBS, etc. It's just to help you understand how this works. You'll have to create a script for your DBS, CBS, etc. yourself. Edit: The green text is an update. Thanks to Doan, I realized a mistake that would cause the VFXs to display 0's in unneccesary spaces.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Aug 17, 2006 19:53:13 GMT -5
Sounds awesome!
|
|
|
Post by Neo Samurai on Aug 27, 2006 16:19:24 GMT -5
All right, here's a couple tips for those doing CBSs:
*When using enemies, you'll save a lot of variables if you use the Normal Variables and Statistics from Blank Party Members. Then, whenever you need that particular enemy, you can load the database number of the blank party member into a Member Info Load. It will save you a lot of time, variables, and memory.
*This goes without saying, but if you want to create HP, MP, etc. beyond the default 999, you can always use Normal Variables in their place.
*If you run out of Normal Variables to use for a member, here are two things you can do.
1) You can use the statistics if you aren't using them and if the numbers that will be going in them will be 999 or below anyway.
2) Create all the party members that you will use in your game. Then create another set of the same party members in the same order. Like so:
Member 1: Hero Member 2: Mage Member 3: Knight ----------------------- Member 4: Hero Member 5: Mage Member 6: Knight
Now, whenever you need the "extra" variables, here's how you would load them:
Data: Variable: Member Number= (Database number of member you want to load) + (Total party members in your game all together (not counting the enemies, if you are using them))
This will load the extra Normal Variables and statistics that you need.
(Note: I recommend this as a last resort, if you are using the statistics and/or if the number exceeds above 999. You probably won't ever need to do this, but if by the off chance that you might, then you can give this a try)
|
|