Author Topic: pikaguy900's scripts (NEW: MoF MarisA-styled options code!)  (Read 7357 times)

Nimono

  • wat
pikaguy900's scripts (NEW: MoF MarisA-styled options code!)
« on: September 20, 2009, 04:11:55 AM »
NEW: Look at my latest post for the Gradius-options code, it's big!

OLD: Suwako A (Updated to fix the freezing when using a bomb)

Updated Download

Frog Sign -Frog Bomb-

It's basically like UFO SanaeB, but the explosions LINGER a bit. ...maybe it's TOO much like SanaeB?

Divine Tool "Moriya's Iron Ring" (taken from UNL) is good for wiping out bullets, but so is Grand Rapids "Overflowing of the Nile", which is also very powerful...and meant to be like Master Spark in a way. Yes~

Also, there's a bit of freezing right before the cutin when you use a Bomb, but removing that cutin doesn't solve the problem, so I have no clue what the problem is... FIXED!

Also included (because I am too lazy to take it out) is Suwako B, but I haven't made Bombs for it yet. It's a homing type based upon Suwako's 22B/C in UNL. Curses...heeheehee. Anyway...
Also, Suwako flaps her arms now. Rejoice~

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

Alice Showdown BETA:

I say "beta" because for one, not every attack even has a proper timer, two, I'm quite sure there's things I could touch up on, which is why I post this now, and three, I'm still working on three player scripts to be bundled with the final version of this boss.

Download

Note the following:

-6 nonspells
-9 spells, 7 normal, 1 survival, 1 hidden Last Spell
-REIMU ONLY (I'm serious, you can only play as Reimu, which is one reason why I'm making three extra player scripts)
-Stage script included to take advantage of both a dialogue (I dislike how most people do dialogues in boss fights) and an unlockable Last Spell that only appears after meeting certain conditions (Of course, you can play this Last Spell outside the boss fight...)


So yeah. Enjoy and stuffs. PLEASE be frank about your thoughts on this. There's some spells and nonspells that I really think I should change, but I want feedback first. ESPECIALLY the survival spell. I was at a loss for good ideas for that to make something that flowed well through each part... Also, read the readme.
« Last Edit: October 07, 2009, 06:33:40 PM by pikaguy900 »

Primula

  • EARL TYPE 222
Re: Alice Showdown beta
« Reply #1 on: September 20, 2009, 04:16:34 AM »
Interesting 8D

Thaws

  • _m廿廿m_
Re: Alice Showdown beta
« Reply #2 on: September 20, 2009, 05:33:47 AM »
The script's nice.

I find the script too hard, a easier mode would be nice. :P

Also, the survival is way too long.
In my opinion, the first phase is too uninteresting and easy, considering how difficult all other spells are, The "nothing-but-red-bullets-streaming" part can be skipped or last just a few seconds, and the blue circular waves can be denser or something.
This is just personal preference, but I didn't like how there's no relation/theme that the two phases of the survival shared, It seemed like it was just two different spellcard.

Johnny Walker

  • Perdition Crisis~
Re: Alice Showdown beta
« Reply #3 on: September 20, 2009, 05:41:14 AM »
Looks good. The first six Spellcards are beatable for me. But the rest are pretty difficulty or impossible ("Forbidden Power" spellcard).

- In "...Starlight Laser", the lasers and slowly forces you to spin clockwise, and most of the times alices moves very close to you with unintended results.

- In "...Forbidden Power...", You need to be very lucky and have lots of bombs >_<. The big orbs make very very difficulty the spellcard... and then... lasers. This is impossible for me >_<.

But I think it's a nice script.
--

And... we are creating similar things.  :P

 

Zengar Zombolt

  • Space-Time Tuning Circle - Wd/Fr
  • Green-Red Divine Clock
Re: Alice Showdown beta
« Reply #4 on: September 20, 2009, 06:28:36 AM »
Playing this with REIMU_B is nothing short of Self-hating. You might want to revise that.

Nimono

  • wat
Re: Alice Showdown beta
« Reply #5 on: September 20, 2009, 04:17:58 PM »
Playing this with REIMU_B is nothing short of Self-hating. You might want to revise that.
How so? All the moving? I'll try to fix that. Maybe make her move slower on the spells.


Johnny: I made her move because in my opinion, bosses that don't move can get really easy. I don't really like that. What do you think I should do, slow her down or make her hold one position and maybe rotate the lasers in the opposite direction every other shot?

Also, I guess I'll redo the survival spell from scratch. Honestly, survival spells are difficult for me because everyone says that if you make them long, you need to make them change as the spell goes on... But that becomes difficult for me, because I start losing ideas for that. I'm better off with just one single shot pattern for each spell, but I don't want to make the spell too short. Otherwise, I'd be better off just making it a normal spell. :/

Thaws: I'll try making it easier after fixing up things with this version. Also, I did the streaming thing at the start as both a test of what all those bullets would look like and to start it off simple, make you think it's gonna be easy or something. ...I think. I can't remember now. Also, not gonna make that part denser. My laptop has a hard time playing some scripts, so if my scripts start lagging, I try to remove bullets. Like, the second spellcard. That honestly wasn't my original plan for it, but I HAD to leave it as it is now because any more bullets and I start dipping down to about 35 FPS... Seriously need a better laptop.


By the way, any suggestions for how I might be able to make the survival spell actually fit its name and imply "extreme destructive force that must never be seen again"?

Thanks for all the feedback, everyone. What are your favorite spells in this boss? I want to know! Also, what happened to feedback for Alice's 9th spell? Feel free to test it outside the stage script! :D

Nimono

  • wat
Re: pikaguy900's scripts (SICK OF REMAKING THIS THREAD!) (NEW: Suwako A!)
« Reply #6 on: September 25, 2009, 03:20:59 AM »
NEW: Suwako A update

Download

Frog Sign -Frog Bomb-

It's basically like UFO SanaeB, but the explosions LINGER a bit. ...maybe it's TOO much like SanaeB?

Divine Tool "Moriya's Iron Ring" (taken from UNL) is good for wiping out bullets, but so is Grand Rapids "Overflowing of the Nile", which is also very powerful...and meant to be like Master Spark in a way. Yes~

Also included (because I am too lazy to take it out) is Suwako B, but I haven't made Bombs for it yet. It's a homing type based upon Suwako's 22B/C in UNL. Curses...heeheehee. Anyway...
Also, Suwako flaps her arms now. Rejoice~


Enjoy, everyone.
« Last Edit: September 25, 2009, 04:39:35 AM by pikaguy900 »

Re: pikaguy900's scripts (SICK OF REMAKING THIS THREAD!) (NEW: Suwako A!)
« Reply #7 on: September 25, 2009, 03:30:35 AM »
Hmm that freeze is kinda weird. Are you sure you aren't accidently running a bunch of yields somewhere?

Nimono

  • wat
Re: pikaguy900's scripts (SICK OF REMAKING THIS THREAD!) (NEW: Suwako A!)
« Reply #8 on: September 25, 2009, 04:29:04 AM »
Hmm that freeze is kinda weird. Are you sure you aren't accidently running a bunch of yields somewhere?

I'm sure. I have the same problem with some of my other player scripts, and when I asked about this problem, I was told to remove the cutin... That didn't help any. :/ I'm really not sure why it's freezing. Maybe it's because the task "run" is being started in Initialize, which has no yield;?

EDIT: Nope. That's not it... AHA! The problem has been solved! It's the size of the file being loaded for the spells! I shrank it by a lot, and lo and behold, the thing's sped up! Reuploading very soon!
« Last Edit: September 25, 2009, 04:34:17 AM by pikaguy900 »

Hi hi. I decided to just post about it instead of PMing you, just because some of this information could be useful to other people (despite the fact I'm just gonna rail on your script like there's no tomorrow).

Man she shoots a lot of shit. Oh well, that's cool. Shotgunning is beastly. So the first thing she needs is some left and right movement animations. They themselves don't need modulus-influenced/array animated sections, just the one frame is fine for left and right movement. But it is practically necessary from an aesthetic point of view (which I say because some people completely disregard aesthetics... Read: Me). Also on the subject of prettying things up, I think he arms flap way too fast. As I mentioned on IRC, that's fine for a bomb phase since I think it would look cool, but for normal movement I think they should be slowed down, mostly because it's very distracting. Now this doesn't mean wait more frames before moving to the next section of arm flap, I mean animate an in between animation for the arm flap. For example, if the arms are at 0 degrees starting and then 45 degrees for the next animation frame, then I think the animation could do with a 22.5 degree frame stuck in between there, lasting for just as long. The less difference between each frame the better, since it looks more fluid. Plus animating arm flaps isn't very high on the animation difficulty tier.

Next order of business: hitbox. Set her intersection circle to have a radius of 0. THis is to allow her to be used with all current scripts, since both REIMU and MARISA have hitboxes of 0, so all scripts are balanced to allow for that size hitbox. A larger one feels extremely clunky and practically unplayable for more difficult scripts (anything I make). Stuffman's Sakuya A suffered from the same problem, but he's released a fixed version. Same with Josette. Also, steal the hitbox code from my Sanae player scripts, that little red dot is garbage (it also appears under bullets, unlike Drake's and my hitbox code, which appears on top of XXX03's and the like).

You know about the obscene damage her focused bomb does, so as a reminder to other people:
Test your scripts on spellcards that have 100/100 damage/bomb ratios! Compare the damage output to the default REIMU and MARISA players on the same spellcards, or use Stuffman's damage output calculation script. Just make sure it's consistant! This makes your player script more playable!

Alright, this is all I have time to write up for now, so yeah. It's a pretty well done script, dispite the lack of prettiness. I'll test it's damage output a little more in a bit (don't have the time at the moment). Keep up the good work.

Nimono

  • wat
Re: pikaguy900's scripts (SICK OF REMAKING THIS THREAD!) (NEW: Suwako A BUGFIX!)
« Reply #10 on: September 25, 2009, 03:44:43 PM »
Naut:

1: I'll see what I can do for the left/right stuff... I'll dread making graphics for that.

2: For the animation, I was actually going to have those "speed line" things you see when she flaps her arms in UNL, but it looked bad when I tried it, so I ditched that. I'll try more angles, though.

3: Okay. I didn't realize that MARISA had a radius of 0, too. I thought Reimu was the only one to have that size, and thus, should logically be the only official Touhou player to have that radius size... Also, I forgot all about the hitbox. I honestly WAS going to add in a better one, but I forgot. Oops. (I hate the current red dot for a different reason than you probably do- it blends in WAY too much with the CtC Reimu player graphics!) Before I actually do it, a question- should I put it in DrawLoop, or make an effect object out of it? ...Also where did you ever release the Sanae players? I've only seen them used in videos. o_O

4: Yup, I've already done a bit of fixing on the focused Bomb.

Naut, I don't care that you, as you said, "railed" on my script. In fact, I'd be horribly upset if you HADN'T. :O

EDIT: I propose a question for you all. Do you think that I should change the SuwakoA player into a (possibly slight) homing shot ALONG with what it's already got? I'm already coding it, but I'd like your opinions. I'm still worried it's currently WAY too much like SanaeB in UFO, aside from option positioning and bombs... Of course, I'd then change SuwakoB to be some needle or whatever... It's your choice, everyone.
« Last Edit: September 25, 2009, 10:06:52 PM by pikaguy900 »

Primula

  • EARL TYPE 222
Re: pikaguy900's scripts (SICK OF REMAKING THIS THREAD!) (NEW: Suwako A BUGFIX!)
« Reply #11 on: September 25, 2009, 10:07:59 PM »
Ooh a Suwako-downloads-

Lawence Codye

  • The Nine Tails of Subconscious...
  • Come & your desires shall all become reality...
Re: pikaguy900's scripts (SICK OF REMAKING THIS THREAD!) (NEW: Suwako A BUGFIX!)
« Reply #12 on: September 26, 2009, 08:53:47 AM »
Suwako...I have to try her out...& on to downloading it...
I am the Nine Tails of Subconscious...

Come & your greatest desires will be reality...

Primula

  • EARL TYPE 222
Suwa-chan goes flap flap 8D

Nimono

  • wat
Re: pikaguy900's scripts (NEW: Nets are back! Sample code?!)
« Reply #14 on: October 07, 2009, 06:31:43 PM »
yay my nets are back

as celebration have some MoF MarisA options

Code: [Select]
let optionx = 224;
let optiony = 400;
let optionx2 = 224;
let optiony2 = 400;
let optionx3 = 224;
let optiony3 = 400;
let optionx4 = 224;
let optiony4 = 400;
let PrevFrameX = [224,224,224,224,224,224,224];
let PrevFrameY = [400,400,400,400,400,400,400];
let PrevFrameX2 = [224,224,224,224,224,224,224,224,224,224,224,224,224,224];
let PrevFrameY2 = [400,400,400,400,400,400,400,400,400,400,400,400,400,400];
let PrevFrameX3 = [224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224];
let PrevFrameY3 = [400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400];
let PrevFrameX4 = [224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224];
let PrevFrameY4 = [400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400];
let CurFrameXPos = 224;
let CurFrameYPos = 400;
let PrevFrameXPos = 224;
let PrevFrameYPos = 400;
let Speed = 4.199997;
let PrevFrameSpeed = [4.199997];
let PrevFrameSpeed2 = [4.199997];
let PrevFrameSpeed3 = [4.199997];
let PrevFrameSpeed4 = [4.199997];
^Initial variables.

Code: [Select]
if(CurFrameXPos != GetPlayerX)
{
CurFrameXPos = GetPlayerX;
}
if(CurFrameYPos != GetPlayerY)
{
CurFrameYPos = GetPlayerY;
}
if((|CurFrameXPos - PrevFrameXPos|) < (|CurFrameYPos - PrevFrameYPos|))
{
Speed = (|CurFrameYPos - PrevFrameYPos|);
}
else{Speed = (|CurFrameXPos - PrevFrameXPos|);}
if(((|Speed|) < 1 && (|Speed|) > 0) || Speed > 4.199997)
{
Speed = 4.199997;
}
if(GetKeyState(VK_SLOWMOVE) == KEY_PUSH || GetKeyState(VK_SLOWMOVE) == KEY_HOLD)
{
let i = 0;
while(i < length(PrevFrameX))
{
if((GetKeyState(VK_DOWN)==KEY_PUSH || GetKeyState(VK_DOWN)==KEY_HOLD) && GetPlayerY<446)
{
if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
{
PrevFrameX[i] = PrevFrameX[i] + (|Speed|);
PrevFrameY[i] = PrevFrameY[i] + (|Speed|);
}
else if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
{
PrevFrameX[i] = PrevFrameX[i] - (|Speed|);
PrevFrameY[i] = PrevFrameY[i] + (|Speed|);
}
else
{
PrevFrameY[i] = PrevFrameY[i] + (|Speed|);
}
}
else if((GetKeyState(VK_UP)==KEY_PUSH || GetKeyState(VK_UP)==KEY_HOLD) && GetPlayerY>33)
{
if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
{
PrevFrameX[i] = PrevFrameX[i] + (|Speed|);
PrevFrameY[i] = PrevFrameY[i] - (|Speed|);
}
else if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
{
PrevFrameX[i] = PrevFrameX[i] - (|Speed|);
PrevFrameY[i] = PrevFrameY[i] - (|Speed|);
}
else
{
PrevFrameY[i] = PrevFrameY[i] - (|Speed|);
}
}
else if((GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD) && GetPlayerX<402)
{
PrevFrameX[i] = PrevFrameX[i] + (|Speed|);
}
else if((GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD) && GetPlayerX>45)
{
PrevFrameX[i] = PrevFrameX[i] - (|Speed|);
}
i++;
}
let i = 0;
while(i < length(PrevFrameX2))
{
if((GetKeyState(VK_DOWN)==KEY_PUSH || GetKeyState(VK_DOWN)==KEY_HOLD) && GetPlayerY<446)
{
if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
{
PrevFrameX2[i] = PrevFrameX2[i] + (|Speed|);
PrevFrameY2[i] = PrevFrameY2[i] + (|Speed|);
}
else if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
{
PrevFrameX2[i] = PrevFrameX2[i] - (|Speed|);
PrevFrameY2[i] = PrevFrameY2[i] + (|Speed|);
}
else
{
PrevFrameY2[i] = PrevFrameY2[i] + (|Speed|);
}
}
else if((GetKeyState(VK_UP)==KEY_PUSH || GetKeyState(VK_UP)==KEY_HOLD) && GetPlayerY>33)
{
if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
{
PrevFrameX2[i] = PrevFrameX2[i] + (|Speed|);
PrevFrameY2[i] = PrevFrameY2[i] - (|Speed|);
}
else if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
{
PrevFrameX2[i] = PrevFrameX2[i] - (|Speed|);
PrevFrameY2[i] = PrevFrameY2[i] - (|Speed|);
}
else
{
PrevFrameY2[i] = PrevFrameY2[i] - (|Speed|);
}
}
else if((GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD) && GetPlayerX<402)
{
PrevFrameX2[i] = PrevFrameX2[i] + (|Speed|);
}
else if((GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD) && GetPlayerX>45)
{
PrevFrameX2[i] = PrevFrameX2[i] - (|Speed|);
}
i++;
}
let i = 0;
while(i < length(PrevFrameX3))
{
if((GetKeyState(VK_DOWN)==KEY_PUSH || GetKeyState(VK_DOWN)==KEY_HOLD) && GetPlayerY<446)
{
if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
{
PrevFrameX3[i] = PrevFrameX3[i] + (|Speed|);
PrevFrameY3[i] = PrevFrameY3[i] + (|Speed|);
}
else if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
{
PrevFrameX3[i] = PrevFrameX3[i] - (|Speed|);
PrevFrameY3[i] = PrevFrameY3[i] + (|Speed|);
}
else
{
PrevFrameY3[i] = PrevFrameY3[i] + (|Speed|);
}
}
else if((GetKeyState(VK_UP)==KEY_PUSH || GetKeyState(VK_UP)==KEY_HOLD) && GetPlayerY>33)
{
if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
{
PrevFrameX3[i] = PrevFrameX3[i] + (|Speed|);
PrevFrameY3[i] = PrevFrameY3[i] - (|Speed|);
}
else if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
{
PrevFrameX3[i] = PrevFrameX3[i] - (|Speed|);
PrevFrameY3[i] = PrevFrameY3[i] - (|Speed|);
}
else
{
PrevFrameY3[i] = PrevFrameY3[i] - (|Speed|);
}
}
else if((GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD) && GetPlayerX<402)
{
PrevFrameX3[i] = PrevFrameX3[i] + (|Speed|);
}
else if((GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD) && GetPlayerX>45)
{
PrevFrameX3[i] = PrevFrameX3[i] - (|Speed|);
}
i++;
}
let i = 0;
while(i < length(PrevFrameX4))
{
if((GetKeyState(VK_DOWN)==KEY_PUSH || GetKeyState(VK_DOWN)==KEY_HOLD) && GetPlayerY<446)
{
if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
{
PrevFrameX4[i] = PrevFrameX4[i] + (|Speed|);
PrevFrameY4[i] = PrevFrameY4[i] + (|Speed|);
}
else if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
{
PrevFrameX4[i] = PrevFrameX4[i] - (|Speed|);
PrevFrameY4[i] = PrevFrameY4[i] + (|Speed|);
}
else
{
PrevFrameY4[i] = PrevFrameY4[i] + (|Speed|);
}
}
else if((GetKeyState(VK_UP)==KEY_PUSH || GetKeyState(VK_UP)==KEY_HOLD) && GetPlayerY>33)
{
if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
{
PrevFrameX4[i] = PrevFrameX4[i] + (|Speed|);
PrevFrameY4[i] = PrevFrameY4[i] - (|Speed|);
}
else if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
{
PrevFrameX4[i] = PrevFrameX4[i] - (|Speed|);
PrevFrameY4[i] = PrevFrameY4[i] - (|Speed|);
}
else
{
PrevFrameY4[i] = PrevFrameY4[i] - (|Speed|);
}
}
else if((GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD) && GetPlayerX<402)
{
PrevFrameX4[i] = PrevFrameX4[i] + (|Speed|);
}
else if((GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD) && GetPlayerX>45)
{
PrevFrameX4[i] = PrevFrameX4[i] - (|Speed|);
}
i++;
}
if((GetKeyState(VK_DOWN)==KEY_PUSH || GetKeyState(VK_DOWN)==KEY_HOLD) && GetPlayerY<446)
{
if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
{
optionx+=(|Speed|);
optiony+=(|Speed|);
optionx2+=(|Speed|);
optiony2+=(|Speed|);
optionx3+=(|Speed|);
optiony3+=(|Speed|);
optionx4+=(|Speed|);
optiony4+=(|Speed|);
}
else if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
{
optionx-=(|Speed|);
optiony+=(|Speed|);
optionx2-=(|Speed|);
optiony2+=(|Speed|);
optionx3-=(|Speed|);
optiony3+=(|Speed|);
optionx4-=(|Speed|);
optiony4+=(|Speed|);
}
else
{
optiony+=(|Speed|);
optiony2+=(|Speed|);
optiony3+=(|Speed|);
optiony4+=(|Speed|);
}
}
else if((GetKeyState(VK_UP)==KEY_PUSH || GetKeyState(VK_UP)==KEY_HOLD) && GetPlayerY>33)
{
if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
{
optionx+=(|Speed|);
optiony-=(|Speed|);
optionx2+=(|Speed|);
optiony2-=(|Speed|);
optionx3+=(|Speed|);
optiony3-=(|Speed|);
optionx4+=(|Speed|);
optiony4-=(|Speed|);
}
else if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
{
optionx-=(|Speed|);
optiony-=(|Speed|);
optionx2-=(|Speed|);
optiony2-=(|Speed|);
optionx3-=(|Speed|);
optiony3-=(|Speed|);
optionx4-=(|Speed|);
optiony4-=(|Speed|);
}
else
{
optiony-=(|Speed|);
optiony2-=(|Speed|);
optiony3-=(|Speed|);
optiony4-=(|Speed|);
}
}
else if((GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD) && GetPlayerX<402)
{
optionx+=(|Speed|);
optionx2+=(|Speed|);
optionx3+=(|Speed|);
optionx4+=(|Speed|);
}
else if((GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD) && GetPlayerX>45)
{
optionx-=(|Speed|);
optionx2-=(|Speed|);
optionx3-=(|Speed|);
optionx4-=(|Speed|);
}
}
else
{
if((GetKeyState(VK_DOWN)==KEY_PUSH || GetKeyState(VK_DOWN)==KEY_HOLD) || (GetKeyState(VK_UP)==KEY_PUSH || GetKeyState(VK_UP)==KEY_HOLD) || (GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD) || (GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD))
{
if(length(PrevFrameX) > 0)
{
if(floor(optionx) < floor(PrevFrameX[0]))
{
optionx+=PrevFrameSpeed[0];
}
if(floor(optionx) > floor(PrevFrameX[0]))
{
optionx-=PrevFrameSpeed[0];
}
}
if(length(PrevFrameY) > 0)
{
if(floor(optiony) < floor(PrevFrameY[0]))
{
optiony+=PrevFrameSpeed[0];
}
if(floor(optiony) > floor(PrevFrameY[0]))
{
optiony-=PrevFrameSpeed[0];
}
if((optionx >= PrevFrameX[0]-5 && optionx <= PrevFrameX[0]+5) && (optiony >= PrevFrameY[0]-5 && optiony <= PrevFrameY[0]+5))
{
optionx = PrevFrameX[0];
optiony = PrevFrameY[0];
PrevFrameX = erase(PrevFrameX, 0);
PrevFrameY = erase(PrevFrameY, 0);
PrevFrameSpeed = erase(PrevFrameSpeed, 0);
}
}

if(length(PrevFrameX2) > 0)
{
if(floor(optionx2) < floor(PrevFrameX2[0]))
{
optionx2+=PrevFrameSpeed2[0];
}
if(floor(optionx2) > floor(PrevFrameX2[0]))
{
optionx2-=PrevFrameSpeed2[0];
}
}
if(length(PrevFrameY2) > 0)
{
if(floor(optiony2) < floor(PrevFrameY2[0]))
{
optiony2+=PrevFrameSpeed2[0];
}
if(floor(optiony2) > floor(PrevFrameY2[0]))
{
optiony2-=PrevFrameSpeed2[0];
}
if((optionx2 >= PrevFrameX2[0]-5 && optionx2 <= PrevFrameX2[0]+5) && (optiony2 >= PrevFrameY2[0]-5 && optiony2 <= PrevFrameY2[0]+5))
{
optionx2 = PrevFrameX2[0];
optiony2 = PrevFrameY2[0];
PrevFrameX2 = erase(PrevFrameX2, 0);
PrevFrameY2 = erase(PrevFrameY2, 0);
PrevFrameSpeed2 = erase(PrevFrameSpeed2, 0);
}
}

if(length(PrevFrameX3) > 0)
{
if(floor(optionx3) < floor(PrevFrameX3[0]))
{
optionx3+=PrevFrameSpeed3[0];
}
if(floor(optionx3) > floor(PrevFrameX3[0]))
{
optionx3-=PrevFrameSpeed3[0];
}
}
if(length(PrevFrameY3) > 0)
{
if(floor(optiony3) < floor(PrevFrameY3[0]))
{
optiony3+=PrevFrameSpeed3[0];
}
if(floor(optiony3) > floor(PrevFrameY3[0]))
{
optiony3-=PrevFrameSpeed3[0];
}
if((optionx3 >= PrevFrameX3[0]-5 && optionx3 <= PrevFrameX3[0]+5) && (optiony3 >= PrevFrameY3[0]-5 && optiony3 <= PrevFrameY3[0]+5))
{
optionx3 = PrevFrameX3[0];
optiony3 = PrevFrameY3[0];
PrevFrameX3 = erase(PrevFrameX3, 0);
PrevFrameY3 = erase(PrevFrameY3, 0);
PrevFrameSpeed3 = erase(PrevFrameSpeed3, 0);
}
}

if(length(PrevFrameX4) > 0)
{
if(floor(optionx4) < floor(PrevFrameX4[0]))
{
optionx4+=PrevFrameSpeed4[0];
}
if(floor(optionx4) > floor(PrevFrameX4[0]))
{
optionx4-=PrevFrameSpeed4[0];
}
}
if(length(PrevFrameY4) > 0)
{
if(floor(optiony4) < floor(PrevFrameY4[0]))
{
optiony4+=PrevFrameSpeed4[0];
}
if(floor(optiony4) > floor(PrevFrameY4[0]))
{
optiony4-=PrevFrameSpeed4[0];
}
if((optionx4 >= PrevFrameX4[0]-5 && optionx4 <= PrevFrameX4[0]+5) && (optiony4 >= PrevFrameY4[0]-5 && optiony4 <= PrevFrameY4[0]+5))
{
optionx4 = PrevFrameX4[0];
optiony4 = PrevFrameY4[0];
PrevFrameX4 = erase(PrevFrameX4, 0);
PrevFrameY4 = erase(PrevFrameY4, 0);
PrevFrameSpeed4 = erase(PrevFrameSpeed4, 0);
}
}
PrevFrameX = PrevFrameX ~ [GetPlayerX];
PrevFrameY = PrevFrameY ~ [GetPlayerY];
PrevFrameX2 = PrevFrameX2 ~ [GetPlayerX];
PrevFrameY2 = PrevFrameY2 ~ [GetPlayerY];
PrevFrameX3 = PrevFrameX3 ~ [GetPlayerX];
PrevFrameY3 = PrevFrameY3 ~ [GetPlayerY];
PrevFrameX4 = PrevFrameX4 ~ [GetPlayerX];
PrevFrameY4 = PrevFrameY4 ~ [GetPlayerY];
PrevFrameSpeed = PrevFrameSpeed ~ [(|Speed|)];
PrevFrameSpeed2 = PrevFrameSpeed2 ~ [(|Speed|)];
PrevFrameSpeed3 = PrevFrameSpeed3 ~ [(|Speed|)];
PrevFrameSpeed4 = PrevFrameSpeed4 ~ [(|Speed|)];
}
}
^Main code. Put anywhere in @MainLoop. I put it at the start, as I do with all my option code... Yes, it's huge.

Code: [Select]
PrevFrameXPos = CurFrameXPos;
PrevFrameYPos = CurFrameYPos;
^Put at end of @MainLoop.


Code: [Select]
@Missed
{
optionx = 224;
optiony = 400;
optionx2 = 224;
optiony2 = 400;
optionx3 = 224;
optiony3 = 400;
optionx4 = 224;
optiony4 = 400;
PrevFrameX = [224,224,224,224,224,224,224];
PrevFrameY = [400,400,400,400,400,400,400];
PrevFrameX2 = [224,224,224,224,224,224,224,224,224,224,224,224,224,224];
PrevFrameY2 = [400,400,400,400,400,400,400,400,400,400,400,400,400,400];
PrevFrameX3 = [224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224];
PrevFrameY3 = [400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400];
PrevFrameX4 = [224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224];
PrevFrameY4 = [400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400];
}
^Oh yes, I used THAT. :D

Add this stuff to your player, and it should work fine... Change up the variables as you wish. Enjoy.

Primula

  • EARL TYPE 222
Re: pikaguy900's scripts (NEW: MoF MarisA-styled options code!)
« Reply #15 on: October 07, 2009, 09:55:39 PM »
O-O Errr what Marisa file?

Nimono

  • wat
Re: pikaguy900's scripts (NEW: MoF MarisA-styled options code!)
« Reply #16 on: October 07, 2009, 10:09:38 PM »
O-O Errr what Marisa file?

I was stating that this code will let you have options that follow your movements, like MarisaA does in Mountain of Faith, which, of course, was taken from the options from Gradius, which do the exact same thing. Focusing locks their position in relation to you.

Re: pikaguy900's scripts (NEW: MoF MarisA-styled options code!)
« Reply #17 on: October 08, 2009, 12:50:25 AM »
Fucking God tier, pikaguy900. Fucking. God tier. Good work.