So I am trying to mimic something similar to Tifa's Limit break. Where in battle a bunch of reels come up, each real has the words Yeah!, Hit, and Miss
And each time the player hits "Ok" one of the reels, it will stop right on whatever "Ok" was pressed on.
Yeah = 1.3 on 1st reel and increases each reel.
Miss = attack misses
Hit = normal power
Each "hit" or "yeah" will trigger a skill.
So if player lands on, let's say 5 "hit" reels. Then 5 different skills will play in order, one after another.
Does anyone know how I can do this?
I feel like I have an idea how to but then at the same time I feel lost haha
Obviously it would be simplest with a custom plugin, but many minigames are viable wherever, so long as you can make an event for them and trigger it at the appropriate time. I'm guessing this is a skill, so you could simply attach a Common Event effect to that skill? The event itself would be somewhat complex, though:
Show/Move Picture is OK but displaying a convincing "rolling" reel could be quite challenging without a plugin;
You'd need a loop to check for input once per frame or so, to change the pictures and internal variables accordingly;
Yes, this approach would require variables (and maybe a switch or two).
If you want the first "Yeah!" to boost all future "hits" and "Yeahs" you could make it boost whatever stat the skill uses as well, and have that boost removed after the last one goes off or whiffs
Thanks guys. I figured it would be complex, I don't think there is a plugin that I could use for this. I've gone through the master list already and didn't see anything I could use, unless I missed it since there is a ton in there and several links no longer work. So I will see if I can get an idea through your suggestion @caethyril
As far the skills playing consecutively if needed. I'm guessing I can use, if and or else statements within the action sequences note tags. I'm guessing I will need to use the variables. Though not sure how haha I've never really used them like that.
Edit: About the stack actions, yeah, your right. That would be an extra challenge. Think if I add a switch at the end of the comment event to trigger the next comment event would work?
Parallel/autorun events only ever run on the map. You may be able to rig something with troop events if needed (Condition: Switch X is ON, turns off at end of event, Scope: Moment), but I imagine it'd be a bit messy.
If you're using action sequences, though, that may actually makes things much easier! Particularly if the hits all use a similar damage formula, e.g.
Code:
(a.atk * 4 - b.def * 2) * v[5] / 10
Then, assuming the default value of variable 5 is 10, you can increase/decrease the variable value in your event (or in the action sequence) to adjust the damage output. Action sequences also give you control over animations, motions, etc, so you can make each hit look different from the others!
You'd need to decide how you want to track the Miss/Hit/Yeah result in your event for that to be checked in your action sequence; possibilities include two switches per reel (e.g. hit/miss and hit/crit) or a base-3 variable (e.g. 0, 1, or 2 for miss, hit, or yeah respectively). Then, as you guessed, you can check variable or switch values using the "if" action, e.g.
Code:
if $gameSwitches.value(1) && $gameSwitches.value(2)
...actions if switches 1 & 2 are both on...
else if $gameSwitches.value(1)
...actions if only switch 1 is on...
end
if $gameVariables.value(5) > 0
...actions if variable 5 is more than 0...
end
Thanks! I will check that out as well. I know making this will be a pain but once it's set and done. I will see if I can upload a video on how it came out or how it looks, along with any issue encountered if any.
@caethyril I'm still lost on this haha. I'm not sure how to get my image to move from Y axis 270 to Y axis 350 and have it stored in a variable. When I try it, my image moves randomly between those points.
Which destroys the smooth transition of the move image command.
Let alone have it done for the other 2 images so that they look like actual reels, where the next image can be seen coming down.
@caethyril I'm still lost on this haha. I'm not sure how to get my image to move from Y axis 270 to Y axis 350 and have it stored in a variable. When I try it, my image moves randomly between those points.
Which destroys the smooth transition of the move image command.
I'm not sure what you mean by "moves randomly"...it starts jumping around the screen and stuff? Move Picture ought to make the picture start moving in a straight line to the target point, over the specified number of frames. But yes, the whole reel thing is pretty complex unless you want to do it frame-by-frame, because the default commands don't give you picture cropping abilities. More on this later~
For the variable thing: it's easiest to perform the picture and variable operations completely separately. Set the picture moving, then have the variable update inside the "input check" loop. The position of your reel picture can be thought of as representing a time; the variable gets updated every frame (i.e. time) to represent the reel's current position. Probably sounds complicated, but it's not that bad!
For example, in that li'l "timedInput" demo I linked in my first response, I add 4 to the "angle" variable each frame, because the dial is rotating at a speed of 4 degrees per frame. Analogously, let's say your reels move at 8 px per frame (480 px/second), then you'd simply add 8 to the variable each frame so it matches what the pictures are telling the player. I.e. the variable will always correspond to the current "position" of the reel, then when you get player input and exit the loop, you can simply check that variable to see "where" the input was received and see whether that classifies as a Miss, Hit, or Yeah result.
Yea, I think the reel thing will need a plugin unless you're OK with presenting it in a different way. I found a "crop picture" plugin by Aloe Guvner over here; if you don't have (or want) Yanfly's Plugin Commands Switches & Variables plugin (or equivalent) then I think you could use a script call each frame to update the display area to match the variable value, e.g. something like this?
Code:
var id = 1; // picture ID
// top-left coordinates of display area from "reel" picture
var x = 0;
var y = $gameVariables.value(4);
// width/height of reel display (fixed)
var width = 250;
var height = 120;
$gameScreen.picture(id).setCrop(x, y, width, height);
You'd need a picture with 4 "rows" (e.g. Miss, Hit, Yeah, Miss) so it'll wrap correctly from top to bottom. You can use the Mod operator of Control Variables in order to get the remainder after dividing by a number, that way you can ensure your y-value always stays between 0 and "3 reel heights". For instance, 17 Mod 5 returns 2, because 17/5 = 3 remainder 2. It's the same principle as used in telling the time, e.g. 5 hours after 11 am is 4 pm: 16 mod 12. The "update variable each frame" part of your event might then look like this, assuming your reels are each 120 px high:
Code:
◆Comment:Increase by "reel speed per frame"
◆Control Variables:#0004 Input += 8
◆Comment:Wrap around to zero if value exceeds three reel heights
◆Control Variables:#0004 Input %= 360
I.e. each frame, +8 to the variable, then mod 360 to ensure it doesn't go "off the bottom" of the image. You'll probably want to replace those numbers to match your desired speed and image height.
Wow that kinda sounded really complex to me haha, I probably understood like 10% of that. I will give it another go to see if I can get it to work for me.
Since using variables like this is out of my expertise, it kinda boggles my brain.
I'll try to read this several times, maybe something will click if I'm reading this again while working on it
Oh, yea, I reread my post and made a few edits for clarity, mostly to the second paragraph. Long text explanations aren't my strong point, sorry; maybe someone else could help phrase things more clearly.
The maths behind it isn't actually particularly tricky, just speed = distance / time. The input loop thing is relatively simple once you get the hang of it, example below. I think the picture stuff is the most complex part, since you need to work out how and when to show/move the picture(s) to accurately align with the variable.
Code:
◆Text:None, Window, Bottom
: :Press the Shift button after this message and I'll
: :tell you how much time you spent making me wait.
◆Control Variables:#0020 Time = 0
◆Loop
◆If:Button [Shift] is pressed down
◆Break Loop
◆
:Else
◆Control Variables:#0020 Time += 1
◆Wait:1 frame
◆
:End
◆
:Repeat Above
◆Text:None, Window, Bottom
: :You took \v[20] frames to press the button!
It often helps to tackle things in steps, e.g. first get the variable and input-checking working, then get it integrated with an action sequence, then try to add the picture stuff so players know when to press the buttons (and keep a copy of the previous step's "working correctly" event each time, just in case something goes wrong!). Best of luck~
Yay, now back in action Happy Christmas time, coming back!
Back in action to develop the indie game that has been long overdue... Final Fallacy. A game that keeps on giving! The development never ends as the developer thinks to be the smart cookie by coming back and beginning by saying... "Oh bother, this indie game has been long overdue..." How could one resist such? No-one c
To whom ever person or persons who re-did the DS/DS+ asset packs for MV (as in, they are all 48x48, and not just x2 the pixel scale) .... THANK-YOU!!!!!!!!! XwwwwX
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.