Author Topic: Internal commands  (Read 257330 times)

ToasterApocalypse

  • Captain
  • *****
  • Posts: 1010
  • le lenny face
    • View Profile
Re: Internal commands
« Reply #450 on: December 16, 2012, 01:28:02 PM »
Wait, what? I'll check that.
I tried to make people aware with an earlier post that I found out how to execute unlimited internal commands w/o cutscenebars, but noone cared. :P

Oh.

I got bored with backgroundtext and added delays.

It's like VVVVVV.

FIQ

  • Captain
  • *****
  • Posts: 810
  • https://github.com/FredrIQ/
    • View Profile
    • FIQ
Re: Internal commands
« Reply #451 on: December 16, 2012, 01:32:04 PM »
Wait, what? I'll check that.
I tried to make people aware with an earlier post that I found out how to execute unlimited internal commands w/o cutscenebars, but noone cared. :P

Oh.

I got bored with backgroundtext and added delays.

It's like VVVVVV.
You mean procedural text showing up? I did that too, but only managed to get it to work good in 2.1 where you could turn off squeaking (this was before i found out about the thing mentioned above)

ToasterApocalypse

  • Captain
  • *****
  • Posts: 1010
  • le lenny face
    • View Profile
Re: Internal commands
« Reply #452 on: December 16, 2012, 01:34:02 PM »
Wait, what? I'll check that.
I tried to make people aware with an earlier post that I found out how to execute unlimited internal commands w/o cutscenebars, but noone cared. :P

Oh.

I got bored with backgroundtext and added delays.

It's like VVVVVV.
You mean procedural text showing up? I did that too, but only managed to get it to work good in 2.1 where you could turn off squeaking (this was before i found out about the thing mentioned above)

How did it work in 2.0?

FIQ

  • Captain
  • *****
  • Posts: 810
  • https://github.com/FredrIQ/
    • View Profile
    • FIQ
Re: Internal commands
« Reply #453 on: December 16, 2012, 01:43:51 PM »
Wait, what? I'll check that.
I tried to make people aware with an earlier post that I found out how to execute unlimited internal commands w/o cutscenebars, but noone cared. :P

Oh.

I got bored with backgroundtext and added delays.

It's like VVVVVV.
You mean procedural text showing up? I did that too, but only managed to get it to work good in 2.1 where you could turn off squeaking (this was before i found out about the thing mentioned above)

How did it work in 2.0?
Well, with what I did earlier, it worked just fine, but with a terminal sound each line of dialogs.
That's because of how i created the dialog though, and now that i know about how to fix internal commands w/o cutscenebars properly, i can do it w/o the sounds. How did you do it?

ToasterApocalypse

  • Captain
  • *****
  • Posts: 1010
  • le lenny face
    • View Profile
Re: Internal commands
« Reply #454 on: December 17, 2012, 04:55:09 AM »
Wait, what? I'll check that.
I tried to make people aware with an earlier post that I found out how to execute unlimited internal commands w/o cutscenebars, but noone cared. :P

Oh.

I got bored with backgroundtext and added delays.

It's like VVVVVV.
You mean procedural text showing up? I did that too, but only managed to get it to work good in 2.1 where you could turn off squeaking (this was before i found out about the thing mentioned above)

How did it work in 2.0?
Well, with what I did earlier, it worked just fine, but with a terminal sound each line of dialogs.
That's because of how i created the dialog though, and now that i know about how to fix internal commands w/o cutscenebars properly, i can do it w/o the sounds. How did you do it?

Code: [Select]
delay(60)
play(0) [color=beige]as pretty juch everyone knows this is Level Complete[/color]
text(cyan,-1,50,1) [color=beige]thanks for teaching me that trick thing[/color]
TEXTS
backgroundtext
speak
delay(50)
text
delay(50)
text
delay(70)
text(cyan,-1,170,1)
Press action to continue
speak
endtext

Yeah. I discovered it accidentally and I don't know if it works in 2.0

FIQ

  • Captain
  • *****
  • Posts: 810
  • https://github.com/FredrIQ/
    • View Profile
    • FIQ
Re: Internal commands
« Reply #455 on: December 17, 2012, 07:07:18 AM »
Wait, what? I'll check that.
I tried to make people aware with an earlier post that I found out how to execute unlimited internal commands w/o cutscenebars, but noone cared. :P

Oh.

I got bored with backgroundtext and added delays.

It's like VVVVVV.
You mean procedural text showing up? I did that too, but only managed to get it to work good in 2.1 where you could turn off squeaking (this was before i found out about the thing mentioned above)

How did it work in 2.0?
Well, with what I did earlier, it worked just fine, but with a terminal sound each line of dialogs.
That's because of how i created the dialog though, and now that i know about how to fix internal commands w/o cutscenebars properly, i can do it w/o the sounds. How did you do it?

Code: [Select]
delay(60)
play(0) [color=beige]as pretty juch everyone knows this is Level Complete[/color]
text(cyan,-1,50,1) [color=beige]thanks for teaching me that trick thing[/color]
TEXTS
backgroundtext
speak
delay(50)
text
delay(50)
text
delay(70)
text(cyan,-1,170,1)
Press action to continue
speak
endtext

Yeah. I discovered it accidentally and I don't know if it works in 2.0

Yeah, that's approx what I did too, but I didn't realize delay() makes the text force-appear when backgrounded, so I instead called a new script (which also makes the text force-appear even if backgrounded). That's what I meant with "a sound plays every row of text".

Also, you should be able to call a gamestate and then switch back to gamestate 0 (default), if you want the "Level complete!" part of the dialog with big text as in the maingame. That's how I did to make the "Game complete!" dialog in Back to VVVVVV.

Try this:

Code: [Select]
test2:
say(5)
delay(10)
play(0)
gamestate(3006)
delay(1)
text(1,0,0,4)
say(3)
gamestate(0)
delay(50)
text(1,0,0,4)
say(5)
text(gray,-1,100,1)
You did it!
backgroundtext
speak
text(1,0,0,4)
say(2)
delay(70)
text(1,0,0,4)
say(5)
text(cyan,-1,170,1)
 Press ACTION to continue
speak
endtext
loadscript(stop)
text(1,0,0,4)
« Last Edit: December 17, 2012, 07:14:44 AM by FIQ »

allison

  • Captain
  • *****
  • Posts: 924
  • monolithic since 2012??
    • View Profile
    • Allison Fleischer
Re: Internal commands
« Reply #456 on: December 17, 2012, 05:10:51 PM »
An answer the the clipping problem with VVVVVV Man:

He was never meant to be playable. All that VVVVVV Man actually does in-game is walk around, and the exploding walls are hardcoded in.

blue626

  • Captain
  • *****
  • Posts: 672
  • I changed my avatar!
    • View Profile
Re: Internal commands
« Reply #457 on: December 18, 2012, 09:38:48 AM »
(deleted some quotes)

Oh.

I got bored with backgroundtext and added delays.

It's like VVVVVV.
You mean procedural text showing up? I did that too, but only managed to get it to work good in 2.1 where you could turn off squeaking (this was before i found out about the thing mentioned above)

How did it work in 2.0?
Well, with what I did earlier, it worked just fine, but with a terminal sound each line of dialogs.
That's because of how i created the dialog though, and now that i know about how to fix internal commands w/o cutscenebars properly, i can do it w/o the sounds. How did you do it?

Code: [Select]
delay(60)
play(0) [color=beige]as pretty juch everyone knows this is Level Complete[/color]
text(cyan,-1,50,1) [color=beige]thanks for teaching me that trick thing[/color]
TEXTS
backgroundtext
speak
delay(50)
text
delay(50)
text
delay(70)
text(cyan,-1,170,1)
Press action to continue
speak
endtext

Yeah. I discovered it accidentally and I don't know if it works in 2.0

What are those "text"s in the middle of the code? Couldn't you just use delay(170) (between speak and text(cyan,-1,170,1))?

Wait, what? I'll check that.
I tried to make people aware with an earlier post that I found out how to execute unlimited internal commands w/o cutscenebars, but noone cared. :P

Well, I cared, I read almost very post*. Yet, I'm never going to use it in a non-test level. :P

*The exceptions are some long posts in "VVVVVV Levels" about levels I didn't play yet when I read them.

An answer the the clipping problem with VVVVVV Man:

He was never meant to be playable. All that VVVVVV Man actually does in-game is walk around, and the exploding walls are hardcoded in.

I read somewhere that its hotbox is the lower edge and an equivalent to normal Viridian in the top left. Being only that, it can easily go through walls.
When I exploited a glitch that lets explore Dim. VVVVVV as VVVVVVMan, I eventually reached the Super Gravitron room (by going through walls). In there, VVVVVVman was invisible. Why? ???

EDIT. Off-topic: This has more than 2x the # of replies in "YYYYYY".
« Last Edit: December 18, 2012, 09:40:44 AM by blue626 »

Rapidgame

  • Crewmate
  • **
  • Posts: 20
  • I'm making a fan-made "The Tower". Scroll madness!
    • View Profile
Re: Internal commands
« Reply #458 on: December 21, 2012, 08:15:39 AM »
Erm...
Can someone tell me how to make my red friend to clip against the spikes?

ToasterApocalypse

  • Captain
  • *****
  • Posts: 1010
  • le lenny face
    • View Profile
Re: Internal commands
« Reply #459 on: December 21, 2012, 08:31:38 AM »
Erm...
Can someone tell me how to make my red friend to clip against the spikes?

As far as I know, it's impossible to do that.

Rapidgame

  • Crewmate
  • **
  • Posts: 20
  • I'm making a fan-made "The Tower". Scroll madness!
    • View Profile
Re: Internal commands
« Reply #460 on: December 21, 2012, 09:29:03 AM »
Where I can get the entity list for createentity(?)?
And... the effects list?
And all these commands that needs a list?

Because I have to test every number on the universe (for the entities) and I finished adding unnecesary Viridians!

FIQ

  • Captain
  • *****
  • Posts: 810
  • https://github.com/FredrIQ/
    • View Profile
    • FIQ
Re: Internal commands
« Reply #461 on: December 21, 2012, 09:47:41 AM »
Where I can get the entity list for createentity(?)?
And... the effects list?
And all these commands that needs a list?

Because I have to test every number on the universe (for the entities) and I finished adding unnecesary Viridians!
0-27, 55 and 56 are the ones that do anything at all.

There's a list posted earlier, i'll post it in this post shortly.

All commands that need a list is posted in the second post except gamestates (which is posted shortly after and extended by me @same page), and entities (posted in a page in the topic).

Entities is posted below. "Metadata" shows one, possibly two (which should be used in the specified order then) extra setting you can use. All are numbers, but you'll have to experiment what different numbers do. Modified by earlier list posted by ToasterApocalypse
Code: [Select]
0 - The player

1 - Enemy
Metadata: movement type, movement speed
Due to lacking needed data, you will only ever get a purple enemy box, unless you're in the VVVVVV polar dimension while doing the command

2 - Moving platform
Metadata: movement type, movement speed
Note that conveyors is implemented as moving platforms, see movement type 8 and 9.

3 - A disappearing platform

4 - A 1x1 quicker quicksand block

5 - A flipped Viridian, you will flip gravity when touched

6 - Weird red flashy thingy that disappears quickly

7 - Same as above, but doesn't flash and is coloured cyan

8 - A coin from the prototype
Metadata: Coin ID

9 - Trinket
Metadata: Trinket ID
Note that trinket ID start at 0, and everything above 19 will not be saved in the savefile once you restart the level

10 - Checkpoint
Metadata: Checkpoint state (0=flipped, 1=normal), Checkpoint ID (checks if the checkpoint is active or not)

11 - Horisontal gravity line
Metadata: Length in pixels

12 - Vertical gravity line
Metadata: Length in pixels

13 - Warp token
Metadata: Destination in tiles X axis, destination in tiles Y axis

14 - The round teleporter
Metadata: Checkpoint ID(?)

15 - Verdigris
Metadata: AI state

16 - Vitellary (flipped)
Metadata: AI state

17 - Victoria
Metadata: AI state

18 - Crewmate
Metadata: Colour (using raw color list, not the crewmate colors), mood

19 - Vermilion
Metadata: AI state

20 - Terminal
Metadata: Sprite, Script ID(?)

21 - Same as above but when touched the terminal doesn't light up
Metadata: Sprite, Script ID(?)

22 - Collected trinket
Metadata: Trinket ID

23 - Gravitron square
Metadata: Direction
If you input negative X coordinate (or too high), an arrow shows instead, just like in the real Gravitron

24 - Intermission 1 crewmate
Metadata: Raw color, mood
Doesn't seem to be affected by hazards, but should be. I'll have to look into this one

25 - Trophy
Metadata: Challenge identifier, sprite
If the challenge is completed, the base sprite ID (what you get if you use sprite=0) will change. Only use 0 or 1 if you want predictable results (0=normal, 1=flipped)

26: The warp token to the Secret Lab
Keep in mind that the warp is just implemented as a nice looking sprite. You'll have to script the functionality for yourself

55 - Rescueable crewmate
Metadata: Crewmate color. Color >6 will always show a *happy* Viridian

56 - Custom level enemy
Metadata: Movement type, movement speed
Keep in mind that if there's no enemies in the room, the enemy sprite data isn't updated correctly and it will just show what enemy you saw last time, or a square enemy

Undefined entities (27-50, 57+) give glitchy Viridians.
« Last Edit: December 21, 2012, 10:26:38 AM by FIQ »

blue626

  • Captain
  • *****
  • Posts: 672
  • I changed my avatar!
    • View Profile
Re: Internal commands
« Reply #462 on: December 21, 2012, 10:23:17 AM »
Where I can get the entity list for createentity(?)?
And... the effects list?
And all these commands that needs a list?

Because I have to test every number on the universe (for the entities) and I finished adding unnecesary Viridians!
0-27, 55 and 56 are the ones that do anything at all.

There's a list posted earlier, i'll post it in this post shortly.

All commands that need a list is posted in the second post except gamestates (which is posted shortly after and extended by me @same page), and entities (posted in a page in the topic).

Like Dav999 said in the quote, 28-50 and 57-59 (and perhaps >59) create the same thing as 27.

And... the effects list?

Do you mean the list for playef(x)? I don't know, and there isn't a list anywhere in this topic, but I'd like to know too.
EDIT: In the 2nd posts, Dav999 said he has a list, but I don't remember it being posted anywhere (and considering that this topic has >450 replies, I'm not going to search everything).

EDIT 2: Removed create entity list as FIQ posted one with more info on his post.
« Last Edit: December 21, 2012, 12:19:30 PM by blue626 »

Rapidgame

  • Crewmate
  • **
  • Posts: 20
  • I'm making a fan-made "The Tower". Scroll madness!
    • View Profile
Re: Internal commands
« Reply #463 on: December 21, 2012, 12:36:11 PM »
Thanks for thee entity info, now I'll wait for the effect list.  ;D

FIQ

  • Captain
  • *****
  • Posts: 810
  • https://github.com/FredrIQ/
    • View Profile
    • FIQ
Re: Internal commands
« Reply #464 on: December 21, 2012, 02:15:13 PM »
Thanks for thee entity info, now I'll wait for the effect list.  ;D
Code: [Select]
0 - Flip to ceiling
1 - Flip back to floor
2 - Cry
3 - Trinket collected
4 - Coin collected
5 - Checkpoint touched
6 - Quicker quicksand block touched
7 - Normal quicksand block touched
8 - Gravity line touched
9 - Flash
10 - Warp
11 - Viridian squeak
12 - Verdigris squeak
13 - Victoria squeak
14 - Vitellary squeak
15 - Violet squeak
16 - Vermilion squeak
17 - Terminal touched
18 - Teleporter touched
19 - Alarm
20 - Terminal squeak
21 - Time trial countdown "3", "2", "1"
22 - Time trial countdown "Go!"
23 - VVVVVV Man breaking walls
24 - Crewmates (de)combining into VVVVVV Man
25 - New record in Super Gravitron
26 - New trophy in Super Gravitron
27 - Rescued crewmate (in custom levels)

28+ segfaults