|
Post by realitybites on Aug 3, 2006 18:49:17 GMT -5
How To make the structure for a basic Menu System.
Menu System Guide
Im gonna show you how to make a Menu System using RPGM2
Steps: 1. Making the background 2. Make some events to replace your characters on the menu 3. Scripting what fun!
Making the background Make a dungeon>Name it MENU make the background Blue
Making the Events to Replace Character Ok simply make an Event> use your Main character model make him facing S, Motion>Wait Common now place your Character about 4 spaces above the ground, this way you can have 3 characters on the menu(place your events on the MENU dungeon) Make a VFX for the name, use 2D Text and Place it near the feet. Done for now here is the fun part WOOT WOOT !!
Scripting [Menu] Screen Effects:Black 0F Party>Display Party>Hide Party Screen Effects>Camera>Distance>350 0F Screen Effects>Camera>Vertical Angle>0 0F Screen Effects>Text>Text Box>"Menu" (16,1)<------Coordinates Text Box>"CHARS NAME HERE" (5,2) Screen Effects>Default>30F Input Creations Multiple Choice>Multiple Choice>Equip,Magic,Items,Exit<---------Or whatever you wanna use [Equip] Text Box>"Who"(21,1) Multiple Choice>[Insert the chars name Here] then you insert your Equipment script after your done with that make sure you insert Text Box>Close Text box before you do call script [MENU] after you done with the char choice.
Putting It Together Make your menu script a System Event Go to World organization>Make a new>Insert your Event Placement>click on your second tab at the top>insert your MENU in the ENTER MAP part. Now go to General Settings>Change the starting level to MENU change your position>make the position close to your menu Character but not too close, now also make sure he is in the air too so that way you can see him when you start the MENU. TEST IT OUT NOW.
|
|
|
Post by Neo Samurai on Aug 9, 2006 10:19:43 GMT -5
Using Custom Weapon Properties for a CBS:Try 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 realitybites on Aug 9, 2006 12:12:08 GMT -5
Im using Brock's Jump system with his permission
Steps ------------ Make these flags: No Jumping South East z match? above
Make these variables: TX-TX3 TY-TY3 TD 32 TZ-TZ3 T2X T2Y T2Z Vertical # Fall # T3X-T3Z TD T2D T3D
Now, make an event name it jump,don't use any model, just name it and save thats all. Now time for the actual jump script.
[Jump] 000 Script Branch Condition:Flag[No Jumping] on 001 script control:Force script end 002 Script condition end 003 Member effect:[Main character model] 004 event control:change the target to [Jump event] 005 event move:Bypass members=yes 006 event move bypass objects=yes 007 Script call:[Part as T1] 008 Script call:[Event as T2] 009 Script call:[Distance formula] 010 script:call[go location event] 011 Script call[z match?] 012 Script branch condition:flag[z match?] on 013 Script:Call:[event move1 0F] 014 script call: [party as T1] 015 script:call: [event as T2] 016 script call: [distance formula] 017 SBC:variable:[T3Z]=+0 018 Party:float:30F:10F 019 Party:float:0F:5F 020 Script conrtol:force script end 021 Script condition end 022 script branch condition:flag:[above] off 023 Script branch condition variable [T3z]<=[Vertical#] 024 script branch condition variable[T3Z]=+8 025 script call: [event move1 OF] 026 script call:[party as T1] 027 script call:[event as T2] 028 script call:[distance formula] 029 script branch condition:flag:[above] on 030 Script branch condition:variable:[T3Z]<=[Fall #] 031 party:move:bypass objects=yes 032 Script control Apply together 033 Party:float:30F:10F 034 Script control Apply in order 035 script call: [Part Move 2x] 036 script control Apply together 037 Party:float:30F:10F 038 script apply in order 039 script call: [party move 1 2x] 040 party bypass objects=yes 041 model change[normal] 042 script control force script end 043 Script condition end 044 script condition end 045 script branch condition variable[event z=party z] 046 party bypass objects=yes 047 script control:apply together 048 Party:float:30F:10F 049 Script conrtol apply in order 050 script call:[Party move1 2x] 051 script control:apply together 052 Party:float:30F:10F 053 script conrol apply in order 054 script call: [party move1 2x] 055 Part bypass objects=no 056 script condition end 057 member effects:model:normal model 058 script control: force script end 059 script condition end 060 Script contol apply together 061 Party:float:30F:10F 062 script control apply in order 063 party:bypass objects=yes 064 script call [party move1 2x] 065 Party bypass objects=no 066 script condition end 067 script condition end 068 script branch condition:flag[above] on 069 script branch condition variable: [T3Z]<=[Fall #] 070 script control apply together 071 Party:float:30F:10F 072 script control apply in order 073 party bypass objects=yes 074 script call[ party move1 2x] 075 party bypass objects=no 076 script condition end 077 script condition end 078 script condition end 079 member effect model:normal
Distance Formula: -------------------------------
Data flag: [South]~[above] off data:variable:[T3X]=[T2X]-[TX] data:variable:[T3Y]=[T2Y]-[TY] data:variable:[T3Z]=[T2Z]-[TZ] Script branch condition:variable [T3X]<+0 data:variable: [T3X]=[T3X] X (-1) data:flag:East on script condition end script branch condition:variable: [T3Y]<+0 data:variable: [T3Y]=[T3Y]X(-1) data:flag:South on script condition end script branch condition:variable[T3Z]<+0 data:variable: [T3Z]=[T3Z]X(-1) data:flag: Above on script condition end Script branch condition variable [T3X] >=[T3Y] data:variable: [T3D]=[T3X]+{0 fixed] data:variable: [T3 D2]=[T3Y]+{0 fixed] script condition end Script branch condition: variable [T3X]<[T3Y] data:variable: [T3 D2]=[T3X]+{0 fixed] data:variable: [T3D]=[T3Y]+{0 fixed] script branch condition end
Party as T1 -------------------------- Data:game info:load Data:variable: [TX]=Party X+[0 fixed] Data:variable: [TY]=Party Y+[0 fixed] Data:variable: [TZ]=Party Z+[0 fixed] Data:variable: [TD]=Party Dir+[0 fixed]
Event as T2 ------------------- Event info load Data:variable: [T2X]=Event X+[0 fixed] Data:variable: [T2Y]=Event Y+[0 fixed] Data:variable: [T2Z]=Event Z+[0 fixed] Data:variable: [T2D]=Event Dir+[0 fixed]
Go location event --------------------------- Script branch repeat:flag [south] off script branch condition variable[T3Y]<+0 Script branch: To end Script condition end Data: variable: [T3Y]=[T3Y]-(+1) Event move: direction move N 1 step(s) facing fixed 0F script branch end script branch repeat: flag[south] on script branch condition variable [T3Y]<=+0 script branch: To end script condition end Data: variable: [T3Y]=[T3Y]-(+1) Event move: direction move S 1 step(s) facing fixed 0F script branch end Script branch repeat: flag [East] off script branch condition variable [T3X]<=+0 Data: variable: [T3X]=[T3X]-(+1) Event move: direction move W 1 step(s) facing fixed 0F script branch end Script branch repeat: flag [East] on script branch condition variable [T3X]<=+0 Data: variable: [T3X]=[T3X]-(+1) Event move: direction move E 1 step(s) facing fixed 0F script branch end
Party move1 2x -------------------------- Script branch condition: variable[TD]=+0 Party direction move E 1step(s) facing movement speed=2x script condition end Script branch condition: variable[TD]=+1 Party direction move SE 1step(s) facing movement speed=2x script condition end Script branch condition: variable[TD]=+2 Party direction move S 1step(s) facing movement speed=2x script condition end Script branch condition: variable[TD]=+3 Party direction move SW 1step(s) facing movement speed=2x script condition end Script branch condition: variable[TD]=+4 Party direction move S 1step(s) facing movement speed=2x script condition end Script branch condition: variable[TD]=+5 Party direction move SW 1step(s) facing movement speed=2x script condition end Script branch condition: variable[TD]=+6 Party direction move N 1step(s) facing movement speed=2x script condition end Script branch condition: variable[TD]=+7 Party direction move NE 1step(s) facing movement speed=2x script condition end
Z match? ----------- Event Info load Game info load Flag[z match?] off SBC: event z=partyz Zmatch=on
Event Move0F -------------------- Script Branch: Sort Variable: T2D Apply if: 0 Event:Move E: 1F 0F Script branch:To end Repeated for all directions........
Make an action script for the event
Action Script ------------- Event action:act as member.
Also: set youir Vertical# and your Fall #
|
|
|
Post by thetruecoolness on Aug 14, 2006 23:33:59 GMT -5
CUSTOM CAMERA SYSTEM Should work if you follow the steps
This is how to implement a custom camera script. Note you will need three variables
Camera Dir Camera Angle Camera Zoom
These can be any of the normal variables (300-989)
You will place the camera buttons script on the motion slot (as it is an Action Script) of an event without a model on it, and this event must be in every map you want a custom camera on (doesn't matter where it is).
Now of course feel free to edit the zoom and vertical angles to your liking. You can also integrate the camera buttons script into Nash's one.
Script: Camera Buttons (Action Script)
Camera: Custom Rotate E~E // Makes normal rotate not work since you will already have one. SC: Apply Together SB: Repeat Flag[Off (Fixed)] Off -Input: Buttons: Constant Wait --SB: Sort Vairable [User Button] ---SB: Apply If 10 // L1 ----Data: Var: [Camera Dir] = [Camera Dir] + 1; ----Script: Call [Camera Direction] ---SB: To End ---SB: Apply If 13 // R1 ----Data: Var: [Camera Dir] = [Camera Dir] - 1; ----Script: Call [Camera Direction] ---SB: To End ---SB: Apply If 12 // L3 ----SB: Condition Var [Camera Angle < 9] -----Data: Var: [Camera Angle] = [Camera Angle] + 1; -----Script: Call [Camera Angle] ----SB: Cond End ---SB: To End ---SB: Apply If 15 // R3 ----SB: Condition Var [Camera Angle > 0] -----Data: Var: [Camera Angle] = [Camera Angle] - 1; -----Script: Call [Camera Angle] ----SB: Cond End ---SB: To End ---SB: Apply If 11 // L2 ----SB: Condition Var [Camera Zoom < 9] -----Data: Var: [Camera Zoom] = [Camera Zoom] + 1; -----Script: Call [Camera Zoom] ----SB: Cond End ---SB: To End ---SB: Apply If 14 // R2 ----SB: Condition Var [Camera Zoom > 0] -----Data: Var: [Camera Zoom] = [Camera Zoom] - 1; -----Script: Call [Camera Zoom] ----SB: Cond End ---SB: To End --SB: End SB: End
Script: Camera Dir
SC: Apply Together SB: Condition Var[Camera Dir] > 7 -Data: Var [Camera Dir] = 0 SB: End SB: Condition Var[Camera Dir] < 0 -Data: Var [Camera Dir] = 7 SB: End SB: Sort Var [Camera Dir] -SB: Apply if 0 --Camera: Rotate E 5F -SB: To End -SB: Apply if 1 --Camera: Rotate SE 5F -SB: To End -SB: Apply if 2 --Camera: Rotate S 5F -SB: To End -SB: Apply if 3 --Camera: Rotate SW 5F -SB: To End -SB: Apply if 4 --Camera: Rotate W 5F -SB: To End -SB: Apply if 5 --Camera: Rotate NW 5F -SB: To End -SB: Apply if 6 --Camera: Rotate N 5F -SB: To End -SB: No Application --Camera: Rotate NE 5F -SB: End
Script: Camera Zoom
SB: Sort Var [Camera Zoom] -SB: Apply if 0 --Camera: Distance 100 5F -SB: To End -SB: Apply if 1 --Camera: Distance 150 5F -SB: To End -SB: Apply if 2 --Camera: Distance 200 5F -SB: To End -SB: Apply if 3 --Camera: Distance 300 5F -SB: To End -SB: Apply if 4 --Camera: Distance 375 5F -SB: To End -SB: Apply if 5 --Camera: Distance 433 5F -SB: To End -SB: Apply if 6 --Camera: Distance 500 5F -SB: To End -SB: Apply if 7 --Camera: Distance 600 5F -SB: To End -SB: Apply if 8 --Camera: Distance 700 5F -SB: To End -SB: No Application --Camera: Distance 750 5F SB: End
Script: Camera Angle
SB: Sort Var [Camera Angle] -SB: Apply if 0 --Camera: Vertical Angle 5° 5F -SB: To End -SB: Apply if 1 --Camera: Vertical Angle 15° 5F -SB: To End -SB: Apply if 2 --Camera: Vertical Angle 25° 5F -SB: To End -SB: Apply if 3 --Camera: Vertical Angle 30° 5F -SB: To End -SB: Apply if 4 --Camera: Vertical Angle 35° 5F -SB: To End -SB: Apply if 5 --Camera: Vertical Angle 45° 5F -SB: To End -SB: Apply if 6 --Camera: Vertical Angle 60° 5F -SB: To End -SB: Apply if 7 --Camera: Vertical Angle 70° 5F -SB: To End -SB: Apply if 8 --Camera: Vertical Angle 80° 5F -SB: To End -SB: No Application --Camera: Vertical Angle 90° 5F SB: End
|
|
|
Post by nerussentia on Aug 15, 2006 0:04:36 GMT -5
TRC... Is this exactly like Doan's custom camera system?
|
|
|
Post by thetruecoolness on Aug 15, 2006 0:41:12 GMT -5
Yes it's similar but not exactly the same. His has some extra stuff in it, but it is pretty much the same, but it works for me. And I thought up of mine independently of Doan's.
|
|
|
Post by Neo Samurai on Aug 16, 2006 19:09:30 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.
|
|
|
Post by Doan the Nado on Aug 16, 2006 20:03:46 GMT -5
That is a good tip, and is basically what I used in my Custom Menu script. The only issue here is that a the number 50 would be displayed 050, and 1 would be 001. If you want to allow leading blank spaces, there is a little bit that will need to be added, but it's certainly okay to leave that for others to figure out .
|
|
|
Post by Neo Samurai on Aug 16, 2006 20:10:32 GMT -5
I didn't think of that. Yes, it would end up being 050 if the number was 50. Thank you for pointing that out, Doan. Edit: Fixed it.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Aug 21, 2006 23:53:52 GMT -5
Basic Limit Break Steps:
What you'd want to do is something along these lines:
Every party member has a Limit Variable. Limit Variables start at 0. Every party member also has a Limit Flag. Limit Flags start Off.
When party member is attacked their Limit Variable increases. (this is customizable, you choose when it increases and by how much, I just gave 'is attacked' as the example)
Before party member's action choices (attack/magic/etc.) appear, it checks to see if their Limit Variable is equal to or greater than a certain value. If their Limit Variable is equal to or greater than that value and if their Limit Flag is Off it displays a message 'Got Limit!', teaches them the Limit Ability, and turns their Limit Flag On.
When the Limit is performed, the Limit Flag is turned Off, the Limit Ability is forgotten, and the Limit Variable is reset to 0.
|
|
|
Post by nerussentia on Aug 22, 2006 15:07:28 GMT -5
pretty spiffy idea hahaha. i'd try it. i'd make the ability an item just for the hell of it. kind of the Limit Breaker item in Dirge of Cerberus. once used the item no longer appears and all that variables and flags stuff resets.
|
|
|
Post by realitybites on Aug 25, 2006 14:22:01 GMT -5
Making a HP and MP bar -------------------------------
Make VFX's start at 100%HP-5%HP Just make them go down on different bars or on one, I like using just one, it creates more of a realistic effect. Also make the marker to 1F for a solid bar.
Make these Variables HP% HP/100
Script[Display HP]
[Display HP] Data:Variable:HP/100=Player HP X 100 Data:Variable:HP%=HP/100 / Max Player HP Script Branch Condition:Variable:HP%=>96 Screen Display:Effects:Party:[100%HP]:Leader 1F . . . . . .
.Just subtract 4 from each condition number each time to show 100% you would have SBC:HP%=>96<----100% HP-4 for the next one the condition number would have to be 91<----95% HP-4 Im pretty sure you can figure out the rest from there. Script Branch Condition:Variable:HP%=>5 Screen Display:Effects:Party:[5% HP]Leader 1F Script Control Force SCript end
Repeat the same for MP make the VFX and make the variables just change HP to MP. Now make an action script that is called
[Screen Display] --------------------- Script Branch:Repeat:Flag Off Fixed=off Script control:APply Together Script Call:Display HP Script Call:Display MP Script Control:Apply in order
Insert [Screen Display] into your To Map/Facing or if you have your own custom enter map script insert it there.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Aug 26, 2006 23:31:19 GMT -5
I posted this for doyleman, am thinking I'll do it myself, and figured it's worth putting here: Perhaps you could change the messages slightly? Kind of like what I do: I still use the Message Window but I don't use the exact default messages of '______ prepares to attack...', etc. I think all of us sigh/roll our eyes in agony every time we see something default. What I did in my games was as close to VFX numbers without using VFX. Perhaps you could still have messages but they could be slightly different like: Attack Message_ Message Window: Clear Message Display Input: Common Name Data: tempvariablex = 1 ? 100 Script: Condition: tempvariablex =<50 Call Script: [Poop1] Condition End Message Window: ' attacks ' Script: Condition: tempvariablex >=51 Call Script: [Poop2] Condition End Message Window: '!' Script Poop1_ Data: tempvariabley = 1 ? (however many you come up with) Script Branch: Sort: variable: tempvariabley Apply If: 1 Message Window: 'vicously' To End Apply If: 2 Message Window: 'brutally' To End Apply If: 3 Message Window: 'vigorously' To End Apply If: 4 Message Window: 'furiously' To End ... Branch End Script Poop2_ Data: tempvariabley = 1 ? (however many you come up with) Script Branch: Sort: variable: tempvariabley Apply If: 1 Message Window: 'vicously' To End Apply If: 2 Message Window: 'with brute force' To End Apply If: 3 Message Window: 'like a mighty typhoon' To End Apply If: 4 Message Window: 'by throwing pieces of poop at him' To End ... Branch End I think most people can figure out what those scripts would do, but for those who can't, here are the possible outcomes of those scripts: ______ vicously attacks! ______ brutally attacks! ______ vigorously attacks! ______ furiously attacks! ______ attacks viciously! ______ attacks with brute force! ______ attacks like a mighty typhoon! ______ attacks by throwing pieces of poop at him! The real reason why I don't like the '_______ recieved X points of damaged!' is that it transcends between story and gameplay in a way. Logically, everything has to have a numerical value of life, but it shouldn't be spoken about in such a realistic way. edit: Of course you would use a combination of thesaurus.reference.com/ and Microsoft Word, then RPGM2 to do this.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Aug 27, 2006 0:40:23 GMT -5
I do this funky thing with my VFX and Apply Togethers. Basically, you can take three sword slashes (right to left, left to right, up to down) and turn them into a whole bunch of different moves (Double Slash, Triple Slash, Omni Slash, Cyclone Slash) by just messing with their scripts a tiny bit. I do this with my magic VFX too, but the weapon VFX are easier to imagine so I'll use them as my examples:
Double Slash:
VFX: Right to Left (marker at 12F) VFX: Left to Right (marker at 12F)
Triple Slash:
VFX: Right to Left (marker at 12F) VFX: Left to Right (marker at 12F) VFX: Up to Down (marker at 15F)
Omni Slash:
Apply Together VFX: Right to Left (marker insignificant) Wait 6F VFX: Left to Right (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 6F VFX: Left to Right (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 6F VFX: Left to Right (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 6F VFX: Left to Right (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 6F VFX: Left to Right (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 6F VFX: Left to Right (marker insignificant) Wait 18F VFX: Up to Down (marker insignificant) Wait 22F
Cyclone Slash: Apply Together VFX: Right to Left (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 6F VFX: Right to Left (marker insignificant) Wait 18F VFX: Up to Down (marker insignificant) Wait 22F
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Sept 2, 2006 23:38:57 GMT -5
coatler (new member)___ Anyone who has played final fantasy tactics, and used the ninja class, knows what I'm talking about. The character can equip a weapon, but instead of a shield slot, they have a slot for a second weapon. Can this be done? Doan___ That is a dangerous question to ask an RPGM2 user. The answer is always "Yes." Basically, anything can be done with RPGM2, it's just a question of how hard you want to work at it. If you're trying to stick to the default stuff, you might have a little trouble implementing this. The easiest way would probably be to create "shields" equippable by certain classes which were actually weapons, increasing attack power instead of defense. I haven't messed around with items a whole lot, but I don't really see a fundamental flaw in this approach, as it is easy to implement and as it should, it prevents someone from having 2 weapons and a shield equipped. The only possible issue would be if you wanted to create "two-handed" weapons which would take up both slots; that would require a bit more work. So in short, I think it should be easy. Just because it's called a "shield slot" doesn't mean you can't create a "shield" that is in reality a weapon. Remember, you can name these things whatever you want and cause them to affect the stats however you wish. Me___ Yes, this is possible and I know how, but ALL of what Doan explained is VERY true as well as should DEFINITELY be taken to heart. I don't have time now, but I will be back to explain my method sometime shoon, I hope. Post again to remind me if I forget!!! Also, keep in mind game balance. FFT's Ninjas' dual Ninja Blades and the Ninja class on a whole (as well as the Summoner class), NOT JUST ORLANDU, ruined the game significantly (still good game, but still) by being WAY too effective. If you're incapable of seeing and admitting this about FFT you'll never be able to make a good game yourself (because it will never be well-balanced). For learning more on game balance I refer you to: doansdomain.proboards27.com/index.cgi?board=general&action=display&thread=1156617382Me__ Okay, it's roughly along these lines: Copy/Paste/Edit a 'Shield' called a sword of some sort, and like Doan said have it raise ATK instead of GRD. Copy/Pate/Edit the Normal Attack/Member Direct Effect. Make a new Script like this: Data: Member Info: Change to Member Order var86[Member Number] = var48[Insti Member] + 0 (these two commands find the current member’s database number and store it in var86[Member Number] Script Condition: var?? (default variable, go find it!)[Weapon: Equipped] = (database # of some allowed to be dualed Weapon) Script Condition: var?? (default variable, go find it!)[Shield: Equipped] = (database # of some allowed to be dualed Shield) Call: default script [Battle Formula] Call: default script [Battle Formula] Condition End Condition End Basically, normally it only calls the Battle Formula (does the actual damage) script once, and now it will call it twice when both an allowed to be dualed Weapon AND allowed to be dualed Shield are equipped on the member that is TAKING ACTION. Oh yeah!!!! Put this Script in place of the [Battle Formula] script in the new Direct Effect you Copy/Pasted/Editted!!! Then put this Direct Effect on your Dual Allowed Weapons!!!!
|
|
|
Post by Doan the Nado on Sept 10, 2006 23:04:37 GMT -5
Quick Save / Restore of Member Stats
There was a question in a member forum of how to perform a "quick save" for the party members' stats, so that they could be restored later (i.e. after a party death or something). The simple scripts below will acheive this for you. The scripts assume that you being numbering your party members with #1 (generally a good idea because there are some errors with member 0), and in my example, I have assumed that there are 20 total members. In order to hold the saved stats, you will need twice as many party member slots; in my example, these "backup slots" are 21-40.
Save Stats Data: Variable [Member Number] = 1 (I think the Member Number variable is 56) SB: Repeat: Var [Member Number] <= 20 (number of members) -- Member Info: Load -- Data: Variable [Member Number] = [Member Number] + 20 (# members) -- Member Info: Save -- Data: Variable [Member Number] = [Member Number] - 19 (# members - 1) SB: End
Now that script will simply start with the first member, load his stats, and then save them in Member 21's spot. Then it will load Member 2's stats and save them in member 22's slot. For your own purposes, these numbers may be different, as I have indicated above.
So that takes care of saving the stats, and when you want to restore the stats, you just need to do the opposite:
Restore Stats Data: Variable [Member Number] = 21 (number members + 1) SB: Repeat: Variable [Member Number] <= 40 (# members X 2) -- Member Info: Load -- Data: Variable [Member Number] = [Member Number] - 20 (# members) -- Member Info: Save -- Data: Variable [Member Number] = [Member Number] + 21 (# members + 1) SB: End
That saves the stats of all the members, even those who aren't in the party, but that should not really be a problem. It should still run fast enough that you don't notice the saving occurring.
|
|
Kumo Shinagi
RPGM2 Helper
aka Cloud the Humar
Kumo Shinagi: The one and true master of Chi.
Posts: 151
|
Post by Kumo Shinagi on Oct 12, 2006 20:19:27 GMT -5
Here's somthing that hasn't been put up yet.
How to Make a Title Screen for RPG Maker 2 By KumoShinagi
To do this, you need your game started on Normal Mode, then switched to Hard Mode, just for ease.
Creating the Title Screen:
1. Make 3 flags, name them "Title Screen", "New Game" and "Current Game". I placed mine near the 900 range (987-989) to keep them out of the way for future flags.
2. Make a Dark Dungoen for the title screen. On the custom tab set the Backgroud's "Clear" and "Cloudy" settings to black. Leave the effect page alone.
3. Locate these events: "Enter Map" and "Exit Map. Make a new page in each of them and set the new page conditions for the flag "Title Screen" and set it to "off".
4. Head over to Graphics>World Organization and make a new place. Name it "Title Screen". Assign it the dungeon you just created then close it, we'll come back to it in a bit.
5. Go to the Scripts and you're gonna create 3 scripts. Name them "Start Game", "Start Game 2" and "Title Screen".
6. Put this is "Start Game":
Screen Effect: Color= Black, Black, Black, Black Trans=0% 1F Other: Wait 10 Teleport: Warp [Title Screen] (16, 16, ±0)
Exit out.
7. Put this in "Start Game 2":
Screen Effect: Color= Black, Black, Black, Black Trans=0% 1F Teleport: Warp [Title Screen] (16, 16, ±0)
Exit out.
8. Now head to Events, go to "Enter Map" and go to the second page, click one the "Apply" spot and select the script "Start Game". Save your Changes. Go to "Exit Map", do the same thing execpt select "Start Game 2".
9. Make a new event, name it "Title Screen". Make sure you set it as a "System" type event. Hit "Apply" and select the script "Title Screen".
10. Go back to World Organization and select "Title Screen". Head to the "Script" tab and select the spot where it says "Enter Map". Now select the event, "Title Screen". Save your changes and exit out.
11. Go back to the script "Title Screen" and put this in:
Screen Effect: Color= Black, Black, Black, Black Trans=0% 1F Script Control: Apply Together Party: Display: Hide Party Party: Direction Change(Leader) S 0F Camera: Rotate (N ) 0F Camera: Vertical Angle=+ 15° 0F Script Control: Apply in Order
Now the rest is up to you.
"But Kumo, what do we do about the other two flags?"
You use them to track and monitor the game's status.
I'll give an example:
#When a New Game is started Script Branch: Condition: Flag [New Game] Off Multiple Choice: Start Game, Exit Game Condition: Variable [User Choice] = +1 Data: Flag: [New Game] On Data: Flag: [Current Game] On Data: Flag: [Title Screen] On Condition end
Condition: Variable [User Choice] = +2 Other: Finish Game Condition end
#When a game is continued Script Branch: Condition: Flag [New Game] On Multiple Choice: Continue Game, Exit Game Condition: Variable [User Choice] = +1 Data: Flag: [New Game] On Data: Flag: [Current Game] On Data: Flag: [Title Screen] On Condition end
Condition: Variable [User Choice] = +2 Other: Finish Game Condition end
Useage:
Place this, [Data: Flag: [Title Screen] Off] before "Other: Show New Save Window" in your scripts to send your player to the title screen when he/she loads the game again.
Example:
Data: Flag: [Title Screen] Off Other: Show Save Window Data: Flag: [Title Screen] On
That ends this tutorial!
|
|
|
Post by realitybites on Oct 17, 2006 21:13:05 GMT -5
How to make somewhat intelligent AI movements:
Somewhat jerky, but you can modify to your likings....Mainly for Acbs's but can be used for numerous things.
Make this flag.
<Lock/EvtLD>
Scripts: Courtesy Of thetruecoolness for the lock variables trick. [Lock/Variable] SBR:Lock/EvtLD=on(<---doesn't have to be that, you can use any flag if youd like..) other:wait:1F SBE Data:Flag:Lock/EvtLD=off
[Repeat Step] SBR:FLag fixed=off Event:Movement:Direction Change:Face Leader:5F Other:wait:40F Script:call:[Lock/Variable] Event:Control:Event:Info Load Sort:Event:Dir Apply If 0 Event Move:Direction Move:E 1 step 8frames. Script:Control:To end .......Repeat all the up to 7 Apply if 7 Event MOve:Direction Move:NE 1step 8frames SBE Data:Flag:Lock/EvtLD=off SBE
Just use this method instead of the event action TO LEADER command. Apply If 0
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Oct 21, 2006 21:41:13 GMT -5
For anyone who used my method to make only the party leader visible, this post is to let you know that I just now made an important edit (for those of you that used my method to do that) to my very old post that explained how to do that. It's the 17th post in this topic.
|
|
|
Post by nerussentia on Oct 25, 2006 21:51:22 GMT -5
Here's somthing that hasn't been put up yet. How to Make a Title Screen for RPG Maker 2 By KumoShinagi To do this, you need your game started on Normal Mode, then switched to Hard Mode, just for ease. Creating the Title Screen: 1. Make 3 flags, name them "Title Screen", "New Game" and "Current Game". I placed mine near the 900 range (987-989) to keep them out of the way for future flags. 2. Make a Dark Dungoen for the title screen. On the custom tab set the Backgroud's "Clear" and "Cloudy" settings to black. Leave the effect page alone. 3. Locate these events: "Enter Map" and "Exit Map. Make a new page in each of them and set the new page conditions for the flag "Title Screen" and set it to "off". 4. Head over to Graphics>World Organization and make a new place. Name it "Title Screen". Assign it the dungeon you just created then close it, we'll come back to it in a bit. 5. Go to the Scripts and you're gonna create 3 scripts. Name them "Start Game", "Start Game 2" and "Title Screen". 6. Put this is "Start Game": Screen Effect: Color= Black, Black, Black, Black Trans=0% 1F Other: Wait 10 Teleport: Warp [Title Screen] (16, 16, ±0) Exit out. 7. Put this in "Start Game 2": Screen Effect: Color= Black, Black, Black, Black Trans=0% 1F Teleport: Warp [Title Screen] (16, 16, ±0) Exit out. 8. Now head to Events, go to "Enter Map" and go to the second page, click one the "Apply" spot and select the script "Start Game". Save your Changes. Go to "Exit Map", do the same thing execpt select "Start Game 2". 9. Make a new event, name it "Title Screen". Make sure you set it as a "System" type event. Hit "Apply" and select the script "Title Screen". 10. Go back to World Organization and select "Title Screen". Head to the "Script" tab and select the spot where it says "Enter Map". Now select the event, "Title Screen". Save your changes and exit out. 11. Go back to the script "Title Screen" and put this in: Screen Effect: Color= Black, Black, Black, Black Trans=0% 1F Script Control: Apply Together Party: Display: Hide Party Party: Direction Change(Leader) S 0F Camera: Rotate (N ) 0F Camera: Vertical Angle=+ 15° 0F Script Control: Apply in Order Now the rest is up to you. "But Kumo, what do we do about the other two flags?" You use them to track and monitor the game's status. I'll give an example: #When a New Game is started Script Branch: Condition: Flag [New Game] Off Multiple Choice: Start Game, Exit Game Condition: Variable [User Choice] = +1 Data: Flag: [New Game] On Data: Flag: [Current Game] On Data: Flag: [Title Screen] On Condition end Condition: Variable [User Choice] = +2 Other: Finish Game Condition end #When a game is continued Script Branch: Condition: Flag [New Game] On Multiple Choice: Continue Game, Exit Game Condition: Variable [User Choice] = +1 Data: Flag: [New Game] On Data: Flag: [Current Game] On Data: Flag: [Title Screen] On Condition end Condition: Variable [User Choice] = +2 Other: Finish Game Condition end Useage: Place this, [Data: Flag: [Title Screen] Off] before "Other: Show New Save Window" in your scripts to send your player to the title screen when he/she loads the game again. Example: Data: Flag: [Title Screen] Off Other: Show Save Window That ends this tutorial! I made my own and it worked great, except the load a previous game one. Basically I gave it a multiple choice treatment as the enter map script and a restoration treatment for exit map. I'll do this to see if I can get a quick saved game up and running or something.
|
|
Kumo Shinagi
RPGM2 Helper
aka Cloud the Humar
Kumo Shinagi: The one and true master of Chi.
Posts: 151
|
Post by Kumo Shinagi on Oct 26, 2006 1:52:46 GMT -5
I made my own and it worked great, except the load a previous game one. Basically I gave it a multiple choice treatment as the enter map script and a restoration treatment for exit map. I'll do this to see if I can get a quick saved game up and running or something. I made a slight error in my previous post regrading Save Screen usage. The error has been fixed, just t give you a heads up.
|
|
|
Post by sledgehammur on Oct 28, 2006 0:02:01 GMT -5
Okay, I originally used this script for another game a couple of years ago so i may not fully remember it or have difficulty translating it to the RPGM2 code so I may make some mistakes. It is a common utilitarian mathematical formula and most of us already know it, but I think it would be best to post it here anyways, even though you probably won't use it. (unless you run out of flags.) anyway, they say that there are 10 types of people in the world... so here goes.
P.S. You won't want to use this unless you desperately need more flags. also I only implement 10 flags but you can use as many as you wish. You can use whatever flags / Vars you wan't
Base Translation (2 --> 10)
Data: Set Var: [Var 200] = 0 + 0; SB: Condition: Flag: [Flag 209] == True Data: Variable: [Var 200] = 1 + 0; SB: End SB: Condition: Flag: [Flag 208] == True Data: Variable: [Var 200] = [Var 200] + 2; SB: End SB: Condition: Flag: [Flag 207] == True Data: Variable: [Var 200] = [Var 200] + 4; SB: End SB: Condition: Flag: [206] == True Data: Variable: [Var 200] += 8; SB: End SB: Cond.: Flag: [205] == True Data: Variable: [200] += 16; SB: End SB: Cond.: Flag: [204] == True Data: Variable: [200] += 32; SB: End SB: Cond.: Flag: [203] == True Data: Variable: [200] += 64; SB: Cond.: Flag: [202] == True Data: Variable: [200] += 128; SB: Cond.: Flag: [201] == True Data: Variable: [200] += 256; SB: End SB: Cond.: Flag [200] == True Data: Variable: [200] += 512; SB: End
Okay, this is as far as I am going to go in this example. As you can see, this will compress only 10 flags. (go further if you want, I know the variables can hold more than that, but for this example it is impractical.) To retrieve them, use this script.
Base Translation (10 --> 2)
SB: Condition: Var: [Var 200] >= 512 Data: Set Flag: [Flag 200] = True; Data: Set Var: [Var 200] = [Var 200] - 512; SB: End SB: Condition: Var: [Var 200] >= 256 Data: Set Flag: [Flag 201] = True; Data: Set Var: [Var 200] -= 256; SB: End SB: Condition: Var [Var 200] >= 128 Data: Set Flag: [Flag 202] = True; Data: Set Var: [Var 200] -=128; SB: End SB: Cond.: Var: [Var 200] >= 64 Data: Set Flag: [Flag 203] = True; Data: Set Variable: [Var 200] -= 64; SB: End SB: Cond.: Var: [Var 200] >= 32 Data: Set Flag: [204] = True; Data: Set Var: [200] -= 32; SB: End SB: Cond.: Var: [Var 200] >= 16 Data: Set Flag: [205] = True: Data: Set Var [200] -= 16; SB: End SB: Cond.: Var: [Var 200] >= 8 Data: Set Flag: [206] = True; Data: Set Var: [200] -= 8; SB: End SB: Cond.: Var: [200] >= 4 Data: Set Flag: [207] = True; Data: Set Var: [200] -= 4; SB: End SB: Cond.: Var: [200] >= 2 Data: Set Flag: [208] = True; Data: Set Var: [200] -= 2 SB: End SB: Cond.: Var: [200] = 1 Data: Set Flag: [209] = True; SB: End
This script is designed to be used as a function, so it should be remotely called when you need it. As for its function, it compresses flags into a var. (if you didn't know that by now you shouldn't try using it.) use it however you wan't, but Its original function was to compress flags to use in a password. if it doesn't function properly all the time, try inserting wait functions between the script branches.(remembering a RPGM1 glitch where even during apply in order was applied sometimes the operations were applied out of order.) also part two was completely redone, I remember doing some crazy calculation using modulo but this is (or should be) more efficient for the RPGM2 egine.
good luck with this one, as you may need to print it to make sure you don't make any mistakes.
|
|
|
Post by sledgehammur on Oct 28, 2006 23:28:11 GMT -5
On a Side note - This Thread is getting thick. mabye these scripts should be on a sub-board from RPGM2 Tech support.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Nov 19, 2006 18:32:40 GMT -5
To cancel the Game Over Sequence:
Make a Custom Flag called [Death Allowed]
Turn this Flag On whenever you want the party to be allowed to have the party defeated but not have the "Party Wipe-Out" Script run.
Go to the default "Party Wipe-Out" Script. Copy everything in it. Copy everything in it twice if you're nervous. Then delete everything in it. Make a Condition: Flag: [Death Allowed] = Off command, then Paste what you have copied in between that command and the Condition End command.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Feb 15, 2007 21:08:06 GMT -5
Even if you don't plan on making this (Indirect Effect that halves the cost of all abilities while that party member/enemy is afflicted with that Indirect Effect), everyone who's using the DBS should still read it because it teaches you a both vital and potentially cool thing about Indirect Effects while also going through things thoroughly enough so that you don't need any previous Indirect Effect knowledge nor experience:
Well, you'll want to first (like always) copy and paste a default Indirect Effect so as to make sure that the rest of the slots have the necessary Scripts/Events in them and that the Indirect Effect functions properly otherwise. We'll call that step one. Also, make sure it's a Condition type as opposed to an Action type Indirect Effect.
After that you'll need to make the Indirect Effect a) half the consumption of MP and b) allow Abilities to be casted even when party members have half (or less) the MP cost of an Ability. Those'll be steps two and three. These scripts already occur in the battle system and do not need to be placed anywhere (they're Default scripts).
First, this is the "lesson about Indirect Effects" I was going to give you. Let me now teach you about the Data/Target/Status/Action/Confirm and Data/Target/Status/Condition/Confirm script commands. This is how you will always set it up:
Target Data: Action Status Confirm [Poop] ......... (if the enemy is currently afflicted with the Action Status called Poop, Default Flag 170 Indirect Effect will be turned On) Script Branch: Condition: Flag: [170 Indirect Effect] On ......... (and thus, you set up a script branch using Default Flag 170 Indirect Effect) Text: Message: 'Currently afflicted with Poop!' ......... (if Default Flag 170 Indirect Effect is On, something happens... and you put that something here - your something will hopefully be different ) Script: Condition End
Make sense? I'm sure you could imagine how useful that could be. One example (and by far the most common) would be an item/ability that checks to see if a member/enemy is afflicted with a specific Action Status and heals the member/enemy of their Action Status only if they're currently afflicted with that Action Status (yes, this is the only way to do it), and I'm sure there are a thousand more (such as this gem).
Anywhoo, I'm sure you remembered that our two steps were to a) half the consumption of MP and b) allow Abilities to be casted even when party members have half (or less) the MP cost of an Ability. Well here's a) half the consumption of MP:
Default Script (roughly #41)_Consume MP 1 ......... Delete the whole thing and put in its place: Data: Load Ability Info Battle: Substitute Target Attribute for Variable Data: Variable: TempVar0 = Var156 Ability:Cost + 0 Target Data: Condition Status Confirm [Poop] Script Branch: Condition: Flag: [170 Indirect Effect] On Data: Variable: TempVar0 = TempVar0 / 2 Condition End Data: Variable: Var98 Magic Points = Var98 Magic Points - TempVar0 Battle: Substitute Variable for Target Attribute
And here's b) allow Abilities to be casted even when party members have half (or less) the MP cost of an Ability:
Default Script (roughly #60)_Start MP ......... Delete lines 0-7 and put in their place: Data: Flag: [No Instg Action] Off Data: Load Ability Info Battle: Substitute Target Attribute for Variable Data: Variable: TempVar0 = Var156 Ability:Cost + 0 Target Data: Condition Status Confirm [Poop] Script Branch: Condition: Flag: [170 Indirect Effect] On Data: Variable: TempVar0 = TempVar0 / 2 Condition End Script Branch: Condition: Variable: [Var86 Magic Points] >= TempVar0 Data: Flag: [No Instg Action] On Condition End
|
|