VVVVVV Prototype (a small side thing)

Started by Fussmatte, February 10, 2013, 08:27:10 AM

Previous topic - Next topic

Fussmatte

As a side thing to Dim. Derping, I have recreated the Space Station level in the VVVVVV prototype in one sitting. It was a combination of wits and Snipping Tool.  :D

SCREENSHOTS!




Tell me if I missed anything (other than the To do: Add quick intro to story or Prototype Complete dialouges), if there's any bugs, and/or if this has been done before ( ::) ). Thanks!

EDIT: Fixed typo in name and description.

Chillius


Fussmatte

I found the quick dissolving 1x1 tiles from the prototype via Direct Mode and put them in the level where the were supposed to be  :viridian:
Updated the .zip with the new version.

Dav999

Note that you can also place the coins in the level (they're still in VVVVVV :P) with internal scripting, but it would require at least two scripts for each room which has them, and you have to find coordinates for all 78 of them, so it may not be worth it. Still, there is a background tile with the shape of a coin in direct mode, so you can check with that if they are in the right location.

FIQ

Quote from: Dav999 on February 13, 2013, 09:09:16 AM
Note that you can also place the coins in the level (they're still in VVVVVV :P) with internal scripting, but it would require at least two scripts for each room which has them, and you have to find coordinates for all 78 of them, so it may not be worth it. Still, there is a background tile with the shape of a coin in direct mode, so you can check with that if they are in the right location.
Do coin collection still get stored in the save file?

Dav999

Quote from: FIQ on February 13, 2013, 03:50:54 PM
Quote from: Dav999 on February 13, 2013, 09:09:16 AM
Note that you can also place the coins in the level (they're still in VVVVVV :P) with internal scripting, but it would require at least two scripts for each room which has them, and you have to find coordinates for all 78 of them, so it may not be worth it. Still, there is a background tile with the shape of a coin in direct mode, so you can check with that if they are in the right location.
Do coin collection still get stored in the save file?

Hmmm..... I thought coin collection worked in the same way as trinket collection (also the coin in my 3rd level which had the same ID as a trinket would also make that trinket disappear).

I just looked at a random save file and there are <collect> and <customcollect> tags with numbers between them. Both of the tags have far more than 20 numbers in them, so it might work:

<collect>1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,</collect>
<customcollect>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,</customcollect>


Still, the best way to know is to see what happens in practice.

Fussmatte

I knew about the coins with internal scripting, but I didn't bother 'cause I am awful at finding coordinates (which is why the crewmates in my internal scripting test fall from mid-air when they appear) and I'm lazy.

Dav999

Quote from: Doormat on February 13, 2013, 10:22:10 PM
I knew about the coins with internal scripting, but I didn't bother 'cause I am awful at finding coordinates (which is why the crewmates in my internal scripting test fall from mid-air when they appear) and I'm lazy.

Did you also know that the 'To do: write quick intro to story' dialog is also still in the game as a gamestate? Though it might be better to just use a reply command for that. :P

Fussmatte

#8
Quote from: Dav999 on February 14, 2013, 07:42:49 AM
Did you also know that the 'To do: write quick intro to story' dialog is also still in the game as a gamestate? Though it might be better to just use a reply command for that. :P

Yes, I knew, I read the entire Internal commands topic :P
I personally think using the gamestate would be better, since there's a colon in the dialog. And we all know what happens when there's a colon in a script.

EDIT: Nevermind, when I try to use the gamestate, I can't do anything, thus rendering it useless. Time to go edit the XML file.
EDIT2: Yay! I used in the XML and it appeared as a colon in Viridian's dialog! Oh yeah :viridian:
(And it also appears as a colon on the forums, even in the code tag, so I had to use an image ::) )

Hilbert

Quote from: Doormat on February 15, 2013, 01:02:14 AM
Quote from: Dav999 on February 14, 2013, 07:42:49 AM
Did you also know that the 'To do: write quick intro to story' dialog is also still in the game as a gamestate? Though it might be better to just use a reply command for that. :P

Yes, I knew, I read the entire Internal commands topic :P
I personally think using the gamestate would be better, since there's a colon in the dialog. And we all know what happens when there's a colon in a script.

EDIT: Nevermind, when I try to use the gamestate, I can't do anything, thus rendering it useless. Time to go edit the XML file.
Just use
say(-1)
text:1,0,0,4)
say(4)
gamestate(I think it's 1?)
endcutscene
untilbars
loadscript(stop)

Fussmatte

Grr... when I wanted to use non-breaking spaces by using &nbsp; in the Prototype Complete dialog in the XML, it appeared as
nbsp;nbsp;nbsp;Prototype Complete
Congrats! More Info Soon!

And the game just crashed when I used . WHY CAN'T I HAVE NON-BREAKING SPACES TERRY WHY

Dav999

#11
Quote from: RoskillaHULK!! on February 15, 2013, 01:37:20 AM
Quote from: Doormat on February 15, 2013, 01:02:14 AM
Quote from: Dav999 on February 14, 2013, 07:42:49 AM
Did you also know that the 'To do: write quick intro to story' dialog is also still in the game as a gamestate? Though it might be better to just use a reply command for that. :P

Yes, I knew, I read the entire Internal commands topic :P
I personally think using the gamestate would be better, since there's a colon in the dialog. And we all know what happens when there's a colon in a script.

EDIT: Nevermind, when I try to use the gamestate, I can't do anything, thus rendering it useless. Time to go edit the XML file.
Just use
say(-1)
text:1,0,0,4)
say(4)
gamestate(I think it's 1?)
endcutscene
untilbars
loadscript(stop)


It's gamestate 2, and I think there were no cutscene bars, so it becomes this:

Code (intro_load) Select
ifflag(1,stop)
flag(1,on)
iftrinkets(0,intro)


(that is just a load script, so it only runs once and otherwise the internal-commands-without-cutscene-bars-method doesn't work)

Code (intro) Select
say(4)
gamestate(2)
delay(x)
gamestate(7)
loadscript(stop)
text(1,0,0,4)


With exactly one blank line at the end of this script.

Quote from: Doormat on February 15, 2013, 01:51:49 AM
Grr... when I wanted to use non-breaking spaces by using &nbsp; in the Prototype Complete dialog in the XML, it appeared as
nbsp;nbsp;nbsp;Prototype Complete
Congrats! More Info Soon!

And the game just crashed when I used . WHY CAN'T I HAVE NON-BREAKING SPACES TERRY WHY

Try using a character with a low ASCII number, and check if it has the same width as a space.

EDIT: delay(x) + gamestate(7)

FIQ

It hasn't, I already tried this.

However you can have multiple spaces inside with &#20; - it will strip them during save, but it will *read* it correctly. Basically, you can have a seperate file preparing the scripts manually, and then once the level is done and you're going to release it, insert it manually and then release.

Dav999

#13
Small correction, instead of this:

Code (intro) Select
say(2)
gamestate(2)
loadscript(stop)
text(1,0,0,4)


... it should become this:

Code (intro) Select
say(4)
gamestate(2)
delay(60)
gamestate(7)
loadscript(stop)
text(1,0,0,4)


Gamestate 7 removes the text box. The delay(60) is the waiting time between appearing and disappearing of the text box, you can change the number to make it as close to the original as possible.

EDIT: In the prototype you have to press action for the text box to disappear, and using speak or speak_active wouldn't work in this case, unless you write the text box yourself... Which is what you already did.