BlazeHedgehog
Member
Code:
#Patch File for SRB2 Final Demo v1.1
#SASRB2 Junk v1.2
#Note: Use the pound sign ('#') to start comment lines.
SRB2 version = 11
#This is where the main stuff goes. SSTage_Start is the start of he special stage maps.
#Invulntics and Sneakertics are the length Speedshoes and Invincibility Last, in tics
#I think AJ said 35tics = 1 second...?
#Introtoplay Specifies the cutscene number to play as the game's intro.
#Generally, always end everything you do with an additional linebreak.
#Especially at the end of the file.
#AJ uses linebreaks to determine when a command has stopped and when a new one
#has started.
Maincfg Category
IntroToPlay = 1
Invulntics = 740
Sneakertics = 880
#This is cutscene junk. Most of it should be self explanitory.
Cutscene 1
NumScenes 9
Scene 1
NumberOfPics = 3
Pic1Name = DISCLAIM
Pic1Duration = 200
Pic1XCoord = 0
Pic1YCoord = 0
Pic2Name = BFPINTR
Pic2Duration = 100
Pic2XCoord = 0
Pic2YCoord = 0
Pic3Name = STJRINT
Pic3Duration = 100
Pic3XCoord = 0
Pic3YCoord = 0
TextXPos = 1
TextYPos = 320
SceneText = "SONIC THE HEDGEHOG!"
Tails called out over the cool summer
breeze. "Come quick, you gotta come see
this!"#
Scene 2
NumberOfPics = 1
Pic1Name = SAINTRO0
Pic1Duration = 1050
Pic1XCoord = 0
Pic1YCoord = 0
MusicSlot = 98
TextXPos = 1
TextYPos = 152
SceneText = Deep inside a top secret
base of operation... a mad doctor plots
his next grand scheme...#
Scene 3
NumberOfPics = 1
Pic1Name = SAINTRO1
Pic1Duration = 1050
Pic1XCoord = 0
Pic1YCoord = 0
TextXPos = 1
TextYPos = 152
SceneText = "Oooh yes! It's just as the hyroglyphs
depicted!" Eggman chortled, to himself,
intently gazing at the computer's readout.#
Scene 4
NumberOfPics = 1
Pic1Name = SAINTRO2
Pic1Duration = 1050
Pic1XCoord = 0
Pic1YCoord = 0
TextXPos = 1
TextYPos = 152
SceneText = "Using this information... I will
gain the ultimate power! Hohoho!"#
Scene 5
NumberOfPics = 1
Pic1Name = SAINTRO3
Pic1Duration = 1050
Pic1XCoord = 0
Pic1YCoord = 0
TextXPos = 1
TextYPos = 152
SceneText = "This will put an end to him once
and for all! No longer will I have to deal
with that meddlesome creature named..."#
Scene 6
NumberOfPics = 2
Pic1Name = SAINTRO4
Pic2Name = SAINTRO5
Pic1Duration = 125
Pic2Duration = 1050
Pic1XCoord = 0
Pic1YCoord = 0
Pic2XCoord = 0
Pic2YCoord = 0
MusicSlot = 99
TextXPos = 1
TextYPos = 152
SceneText = "SONIC THE HEDGEHOG!"
Tails called out over the cool summer
breeze. "Come quick, you gotta come see
this!"#
Scene 7
NumberOfPics = 1
Pic1Name = SAINTRO6
Pic1Duration = 1024
Pic1XCoord = 0
Pic1YCoord = 0
TextXPos = 1
TextYPos = 152
SceneText = "I, Doctor Eggman, great scientific
genius extrordinare, have built a
battle station capable of obliterating the
entire planet. Surrender, or else."#
Scene 8
NumberOfPics = 1
Pic1Name = SAINTRO7
Pic1Duration = 1024
Pic1XCoord = 0
Pic1YCoord = 0
TextXPos = 1
TextYPos = 152
SceneText = "Now what are we gonna do?" Tails
asked worryingly. "The same thing we always
do!" Sonic exclaimed.#
Scene 9
NumberOfPics = 1
Pic1Name = SAINTRO8
Pic1Duration = 1024
Pic1XCoord = 0
Pic1YCoord = 0
TextXPos = 1
TextYPos = 152
SceneText = "We're gonna find Eggman and defeat him!
C'mon...Let's go!"#
#This is where I start editing "things". You know, in-game objects like enemies.
#Most of this relates to Doom DeHackEd stuff, but because SRB2 isn't Doom,
#Alot of the variables set here don't pertain to what they do in Doom. Infact
#most enemies variables are custom-made just for them.
#Basic stuff that pertains to all objects/enemies:
#"Thing #" is what object they are. GFZ3 Eggman is Thing 3, Blue Crawla is thing 1, etc.
#To figure the thing # for your object, truthfully, you need a list of all things in the game.
#That, combined with a text editor that displays line #, helps a great deal.
#Spawnhealth is the health given to an object when they're spawned in a map.
#One bonk on the head = one health point. The higher the number, the more it takes
#To kill them.
#I begin with modifying a few lights; those of you who run in software mode won't notice these.
#However, they are a very pretty effect that OpenGL users benefit from. Here I change the lights
#For Eggman's Jet Exauhst, the Invincibility Stars, and the Torches
#Light Number obviously identifies which light you are editing. At this time, SRB2 has no "unused slots" so
#If you're going to edit a light, you have to edit an existing one.
#To find a list of the SRB2 lights, open up the source code and look for hw_light.c
#hw_light.c is a list of every light in the game along with all the default settings for said light.
#hw_light.h contains a much smaller list (making it easier to find the number). Most of the
#lights in these two files have very self-explanitory names.
#Type determines what type of light you'll use; 1 (Corona), 2 (Dynamic), 3 (Both).
#Note: As of this time it appears if you want a corona, you have to use 3 as 1 doesn't work (?)
#A corona is the ball of light, a dynamic is what you see shining on the walls
#CoronaRadius and DynamicRadius sets how far you want the light to spread.
#I never reccomend going over 128-200 for Coronas unless you're insane.
#CoronaColor and DynamicColor are what color your lights are.
#The easiest way to find the color is if you know HTML. Open the Windows Calculator
#Change it to "Scientific", and "Hex". Now, enter it as you would enter HTML colors
#A word of caution, though, the Red and Blue values are flipped. So while HTML is RRGGBB
#This will be BBGGRR (R = Red, G = Green, B = Blue).
#Once you have your color entered, change it to Dec. That's your color!
#The darker the color, the softer the light.
#OffsetX and OffsetY are for Coronas, it determines where they appear on the sprite.
#OffsetY is actually the height from the bottom of the sprite, going upwards.
#I would cover how to append lights to different sprites other than the default ones
#But I haven't actually tried that yet. From what I've been told... It's
#Sprite x
#LightType = y
#Sprite x being the sprite you want to append the light to
#LightType being the number of the light you want to give it.
#Ring - I like my ring coronas just a tad bigger
Light 1
CoronaRadius = 64
#Invince
Light 4
Type = 3
DynamicRadius = 0
CoronaRadius = 64
CoronaColor = 16733491
OffsetX = 10
OffsetY = 10
#Flame
Light 21
DynamicRadius = 128
CoronaRadius = 128
Type = 3
CoronaColor = 1131775
DynamicColor = 3355647
OffsetX = 10
OffsetY = 10
#Eggman Jet Fire
Light 25
DynamicRadius = 64
Type = 3
CoronaColor = 16737860
OffsetY = 16
CoronaRadius = 64
#These make the shields actually glow
#I know long ago, AJ told me
#that this sort of effect is ugly.
#But if you're gonna make them glow
#at least make it look natural ;)
#Shield - Green
Light 5
CoronaRadius = 256
Type = 3
OffsetX = 16
OffsetY = 4
CoronaColor = 1140241
#Shield - Blue
Light 6
CoronaRadius = 256
Type = 3
OffsetX = 16
OffsetY = 4
CoronaColor = 8917265
#Shield - Yellow
Light 7
CoronaRadius = 256
Type = 3
OffsetX = 16
OffsetY = 4
CoronaColor = 1140326
#Shield - Red
Light 8
CoronaRadius = 256
Type = 3
OffsetX = 16
OffsetY = 4
CoronaColor = 1118600
#Super Sonic - Again, more natural light
Light 2
CoronaRadius = 300
Type = 3
OffsetX = 16
OffsetY = 4
CoronaColor = 1135957
DynamicColor = 1135957
#Here we have the two bosses. Speed is obvious -- that's the speed they move at.
#Damage is when the enemy enters it's "panic" state. IE - When Eggman changes attacks.
#GFZ3 Eggman enters "fly around the room" mode when his health hits 3. EggSlimer
#Enters Pogo mode when his health hits 8 (right after the first hit).
#Seesound is the # of the sound that will play when Eggman first sees you. ("Get a load of this!")
#Again, to find the Sound # of an object, you need a list of the sounds in the game. 125 is DSMARIO8.
#124 is obviously DSMARIO7, so on and so forth.
#Mass is used for the "Flee sound" -- the sound Eggman plays when he's flying away after being defeated.
#In this case, "UNTIL WE MEET AGAIN! HA HA HA HA HA!". Painsound is the sound played when you bonk Eggman.
#Which is "HUAH", DSMARIO5. I'll explain misslestate/meleestate in a bit.
#Additionally, setting Painchance for EggSlimer will be what he shoots out -- I'll explain that in abit.
# GFZ3 Boss
Thing 3
spawnhealth = 9
speed = 8
damage = 3
missilestate = 90
meleestate = 92
seesound = 125
mass = 124
painsound = 122
# EggSlimer (THZ3 Boss)
Thing 178
spawnhealth = 9
damage = 8
seesound = 125
mass = 124
painsound = 122
#Here is Deton. Just like Eggman, his Seesound is the sound he plays when he goes in to attack you.
#Speed should control his speed -- not sure, doesn't look that different to me, but eh.
#Painchance is something interesting. It's the radius in fracunits in which Deton can "see" you. In this instance
#If you get 780 fracunits near Deton, he sees you, and attacks you.
#I'll explain Reactiontime when we get to the Crawlas.
# Hello, I am your Deton for tonight
Thing 93
seesound = 123
speed = 75
Painchance = 780
Reactiontime = 2
#This is for sounds. "Pitch" in this case is used for how loud a sound is.
#IE - how far away an enemy can be for you to hear the sound they make.
#AJ reccomended 67, and it seems if I set it any higher (say, 128) it actually
#seems to make it more quiet instead of louder. I dunno!
# No Way, I can't believe this!
Sound 124
pitch = 67
# DETON SEE FRESH MEAT!
Sound 123
pitch = 67
#These are frames. This is where things get a little tricky. Go up, and look at GFZ3 Eggman.
#See "MeleeState" and "MissleState"? You'll notice the numbers they reference are close to these.
#Just like there are sounds lists and things lists, there is a "frames" list that contains each frame of
#Animation in the entire game. For GFZ3 Eggman, these frames are:
#Frame 89 = Eggman takes his finger off the button.
#Frame 90 = Eggman goes to press the right button.
#Frame 91 = Eggman presses the right button.
#Frame 92 = Eggman goes to press the left button.
#Frame 93 = Eggman presses the left button.
#Duration is how long the frame of animation plays.
#action is what "action" Eggman does while this frame is playing.
#Just like frames, sounds, and things, there is an actions list, but that's not as important.
#A_TurretStop and A_TurretFire are for the THZ2 Turret.
#When you tell Eggman's frames to use this action, instead of firing a missle, he fires THZ2 Turret
#Chaingun fire, and he fires it for as long as the frame of animation plays (the duration).
Frame 89
duration = 50
action A_TurretStop
Frame 91
duration = 250
action A_TurretFire
Frame 93
duration = 100
action A_TurretFire
#This is the Blue Crawla, obviously.
#In SASRB2, I sped him up a little bit -- but there was a problem with this.
#The duration for the Blue Crawla's walking animation frames was too big
#So when I increased his speed, he moved very choppily. The solution?
#Lower the duration of his frames! This sped him up and smoothed him out.
#default speed for blue crawla is 3.
Thing 1
Speed = 4
Frame 45
duration = 1
Frame 46
duration = 1
Frame 47
duration = 1
Frame 48
duration = 1
Frame 49
duration = 1
Frame 50
duration = 1
Frame 51
duration = 1
Frame 52
duration = 1
Frame 53
duration = 1
Frame 54
duration = 1
Frame 55
duration = 1
Frame 56
duration = 1
Frame 57
duration = 1
Frame 58
duration = 1
Frame 59
duration = 1
Frame 60
duration = 1
Frame 61
duration = 1
#This is for the Jetty-Syn Gunner. Instead of firing his normal gun,
#He shoots GFZ3 Eggman's Missles. "A_CyberAttack" comes from Doom.
#Way, way back, GFZ3 Eggman replaced Cyber Demon, which is why he shoots
#Missles. "A_CyberAttack" is a left over remnant of the Cyber Demon, his missle attack.
# S_JETGSHOOT1
Frame 557
Action A_CyberAttack
#And here's the Red Crawla. As you can see, I slowed him down.
#Reaction time is the duration between his attacks, in seconds.
#Because I made the Red Crawla shoot Jetty-Syn gunfire
#His misslestate is 921 - I'll explain that later.
#Raisestate is what he shoots; it's just like Painchance on Eggslimer.
#Painchance here, on the RedCrawla, works just like Painchance on the Deton.
#It's the radius in fracunits you have to be before it'll attack you.
#I requested this because SRB2 isn't doom -- having an enemy from half a map's
#length shoot at you and not being able to shoot back sucks.
# MT_REDCRAWLA
Thing 2
ReactionTime = 3
MissileState = 921
RaiseState = 91
Speed = 3
Painchance = 775
#Because of how SRB2 works, if you want a projectile to make a sound when shot
#You need to give the projectile itself a seesound. It's anal, but it works.
# SYN-Gunfire
Thing 91
seesound = 126
#This is tricky as well. Frame 921 WAS the axe in Mario Koopa Blast. But, for the
#"Red-Crawla-Shoots-Jetty-Syn-Ammo" mod, we needed to hijack it.
#"Next = #" is the next frame in the sequence for this to go to.
#Sprite Number, I think, is the number of the frame used for the shooting anim.
#I forget what SpriteSubnumber is.
#There are probably Sprite/SpriteSub lists.
#You get that right?
#One more time -- The Red Crawla didn't have a "shooting at player" frame, so we had to give it one.
#To do this we hijacked a frame of animation from another object in the game, from an object we weren't
#going to use. We then made the frame display what we wanted it to display and do what we wanted it to
#do. If you understand that, congrats -- this is the hardest, most confusing part of SOC editing.
# New Frame
Frame 921
Next = 68
SpriteNumber = 3
SpriteSubnumber = 0
Duration = 1
Action A_JetgShoot
#These things are Item monitors. I gave them all the SA "Bubblepop" sound when you "kill" them.
#You know, when you destroy them. Doom thinks they "died".
Thing 185
deathsound = 127
Thing 132
deathsound = 127
Thing 131
deathsound = 127
Thing 49
deathsound = 127
Thing 48
deathsound = 127
Thing 18
deathsound = 127
Thing 16
deathsound = 127
Thing 15
deathsound = 127
Thing 14
deathsound = 127
Thing 10
deathsound = 127
Thing 9
deathsound = 127
Thing 7
deathsound = 127
Thing 6
deathsound = 127
#This is for editing the character selection screen.
#Most of these are obvious.
#Playername is the name of the player. You know, "Sonic", "Knux", "Zim".
#Menu position is where they show up on the character list.
#Sonic's default menuposition is 20, Tails is 40, Knux is 60.
#PicName is the icon shown for who you're chosing.
#Status, not sure -- 32 is "active" and 122 is "inactive".
#Character numbers are who is who -- these are determined by the
#Order characters are loaded. Always, always, they are loaded in
#this order:
#Sonic (0), Tails (1), Knuckles (2) and Zim (3).
#Any characters loaded after those are custom characters.
#In this case, satails.plr and saknux.plr are 4 and 5.
#By setting the other characters to "inactive" they don't display
#on the character selection list. PlayerText is for their descriptions.
#Spacing is so they match up with the text in the selection screen.
Character 1
Status = 122
Character 2
Status = 122
Character 3
Status = 122
Character 4
PlayerName = Tails
MenuPosition = 30
PicName = TAILCHAR
Status = 32
PlayerText = Slow
Flying
While slowest
out of the three, Tails
is unique due to his
ability at being able
to fly.
#
Character 5
PlayerName = Knuckles
MenuPosition = 40
PicName = KNUXCHAR
Status = 32
PlayerText = Medium
Climb/Gliding
Fast, but
not as fast as Sonic
Knuckles can climb
up walls and glide.
Good for beginners.
#
And now you know everything I know. AJ and a441 can add whatever they want to my ramblings incase I got something wrong.