Jump to content

One Screen Massacre

Photo

Documentation for Scripts


  • Please log in to reply
2 replies to this topic

#1 Anthus

Anthus

    Lord of Liquids

  • Members
  • Location:Ohio

Posted 17 August 2018 - 06:09 PM

Dimentio, and Orithan are the defacto scripters for this project. If you guys want me to edit this in any way, please let me know.

 

Script headers used in the project so far:

  • ghost.zh
  • scrollingDraws.zh
  • LinkMovement.zh
  • ffcscript.zh
  • DrawLayerFix.zh

FFC Scripts:

  • BabaBud (25)
  • Beamos (13) [ghosted enemy]
  • Beamos (39) [ghosted enemy]
  • blockPermSecrets (11)
  • ChangeSecretTypeAttribute (44)
  • CopyScreen (42)
  • Diving_Swanmola (4) [ghosted enemy]
  • EnemySpawner (22)
  • EnterFromAbove (2)
  • EnterFromBelow (3)
  • ffcShooter (29)
  • ffcShooterRepeater (30)
  • fullConveyor (12)
  • KeeseMinigame (40)
  • L1BossKeyPuzzle (15)
  • Linked_Secrets (24)
  • LttP_BomWall (18)
  • LttP_Bumper (9)
  • LttP)LockedDoor (17)
  • LttP_Shutter (16)
  • Mimic (20) [ghosted enemy]
  • Moving_Platform_Circular (6)
  • Moving_Platform_StepActivate (43)
  • MovingPlatform (5)
  • NPCScript (28)
  • NPCScript_Simple (27)
  • ScreenDAcrossScreens (43)
  • secretspawnitem (21)
  • SetTF (31)
  • ShopUpdate (45)
  • ShuffleRoom (14)
  • Solid_FFC (8 )
  • SpawnerSecret (23)
  • SuperSecretPassage (41)
  • Switch_HitAll (33)
  • Switch_Remote (34)
  • Switch_Secret (35)
  • Switch_Sequential (36)
  • Switch_Trap (37)
  • SyncFFC (10)
  • TradeSequence (38)
  • Trampoline (1)
  • Transform_Thing (32)

Item Scripts:

  • FeatherAction (3)
  • GhostZHClockScript (2)
  • itemBundle (5)
  • itemPickupScreenD (6)
  • LaunchBoy (4)
  • WallKick (1)

 

 

Set-Up: (Copied from Dimentio, and Orithan's discord posts)

 

MovingPlatforms:

  1. Set the effect height and effect width of the platform to match it's size in pixels
  2. If you want the moving platform to sync with another FFC without having to deal with ffc->Link bullcrap, set D0 to the id of the FFC to be synced to
  3. If you want the FFC to be solid, set up the entire FFC tile block as a combo block
  4. And apply the wanted solidity of each combo individually to each combo(edited)
  5. then set the FFC to the top left of this and set D1 to something above 0

 

LttP Doors: setup found here (thanks Moosh): https://www.purezc.n...=scripts&id=290

 

 

Transformations!:
Added monster forms. Currently there's only Gels, Zols, and Minimentus. They might fit in as a secondary gimmick to level 2, but that's really up to you guys and how you use them. If you're curious about how they play, try them out and play with them yourself! To use them, use the Transform_Thing script.
 
Setup:
D0: Form to change to (0 = Link, 1 = Gel, 2 = Minimentus, 3 = Zol, More TBA in future (maybe))
D1: if this is greater than 0, stepping on a flag of this number will activate the transformation
D2: if this is greater than 0, stepping on a combo of this number will activate the transformation
D3: if this is greater than 0, stepping on the combo type this corresponds to will activate the transformation (check the CT_ constants in std_constants)
D4: if this is greater than 0, touching this FFC will activate the transformation
D5: if this is greater than 0, touching a corresponding enemy weapon type this corresponds to will activate the transformation (check the EW_ contants in std_constants)
D6: if you're using D5 and this is greater than 0, the sprites of the weapons specified by D5 will change to this sprite.
 
Alternatively, you can use the SetTF script, which will activate the transformation specified by D0 upon entering the room with the FFC (probably useful for cutscenes or multiroom shenanigans).
 
 
ShopUpdate (FFC script):
//A hapazard way of changing the contents of a built-in shop depending on the screen->D.
//This script uses the left and right halves of the decimal point to squeeze 16 variables out of the FFC's D args.
//When setting args on the right side of the decimal point, always make sure there are exactly four digits (including 0s at the front). To make sure it is set correctly, be sure to recheck what the args on the right side of the decimal point are being set to.
//D0 (Left): The value the script is listening for.
//D0 (Right): First register to check. Set to 8 or higher to disable it.
//D1 (Left): Second register to check. Set to 8 or higher to disable it.
//D1 (Right): Third register to check. Set to 8 or higher to disable it.
//You can ignore any of these if their respective registers are disabled.
//D2 (Left): ID of the shop that is switched to if only the first register returns the value.
//D2 (Right): ID of the shop that is switched to if only the second register returns the value.
//D3 (Left): ID of the shop that is switched to if only the third register returns the value.
//D3 (Right): ID of the shop that is switched to if only the first and second registers returns the value.
//D4 (Left): ID of the shop that is switched to if only the first and third register returns the value.
//D4 (Right): ID of the shop that is switched to if only the second and third registers returns the value.
//D5: ID of the shop that is switched to if all three registers return the value.

 

 

CopyScreen (FFC script):
//When run, this script copies a screen from anywhere in the game world to a screen elsewhere in the game world. This copies the base layer of the screen, not any layers the screen has attached to.
//D0 - Map reference of destination screen. If this is set to 0, this uses the current SCREEN regardless of what D1 is set to. If set to an invalid map (< 0, > NUM_MAPS), this script returns an error message and does nothing.
//D1 - Destination screen on D0 map to copy screen to. If this refers to an invalid screen, the script prints an error and does nothing.
//D2 - Map reference to pull screen from. If this is < 1 or > NUM_MAPS, the script prints an error and does nothing.
//D3 - Screen reference to pull screen on. If the screen is invalid, the script prints an error and does nothing.
//D4 - D register to listen into to determine wherever the script should copy the screen. If that register > 0, copy the screen and quit the script. Set this to -1 if you don't want it to listen into a D register and have it just copy instantly. If the D register is invalid, the script prints an error and does nothing.
//When you add maps, update NUM_MAPS to reflect this
 
 
ScreenDAcrossScreens (FFC script):
//Sets D variables across screens
//This script uses the left and right halves of the decimal point to squeeze 16 variables out of the FFC's D args.
//When setting args on the right side of the decimal point, always make sure there are exactly four digits (including 0s at the front). To make sure it is set correctly, be sure to recheck what the args on the right side of the decimal point are being set to.
//D0 (Left): The value you want to set the D variables to.
//D0 (Right): The Screen->D indicie to be set across the screens
//D1-7 (Left): The DMap reference of the screen you want to set the Screen->D on. Leave this at 0 if you don't want to change the D of that screen
//D1-7 (Right): The DMap screen you want to set the Screen->D on.
//eg. Setting D0 to 1.0000, D1 to 1.0004 and D2 to 10.0120 sets Screen->D[0] of Screen 04 of DMap 1 and Screen 78 of DMap 10 to 1.
//For now, this should stay as Script 43
 
 
ItemPickupScreenD (Item pickup script):
//Changes the screen D of up to 6 screens upon pickup.
 
 
ChangeScreenTypeAttribute (FFC script):
//D0: Register to check
//D1: Value to check for.
//D2: Not used for some reason 
//D3: New attribute. 
//D0: Message to be played on pickup
//D1-7: D0-6 of the args to set for ffc script ScreenDAcrossScreens


#2 P-Tux7

P-Tux7

    💛

  • Members

Posted 18 August 2018 - 03:18 AM

What is the difference between the two Beamos scripts?



#3 Anthus

Anthus

    Lord of Liquids

  • Members
  • Location:Ohio

Posted 18 August 2018 - 01:02 PM

What is the difference between the two Beamos scripts?

 

I'm not sure, actually. I haven't used it myself in a while, but I think that Beamos' are placed with two separate scripts/ FFCs? One for the "body" and one for the head/ part that shoots? Maybe someone else can clarify though.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users