[Reusable] srb2Morphed.exe [2.0.6.2]

This thread contains content that may be reused, modified, or ported by anyone.
Status
Not open for further replies.

Torgo

Member
It is more for people who want to have more SOC actions in their wads/socs. I believe this does have an example wad of what kind of actions you can use for custom bosses.
 

Morph

Member
Torgo said:
It is more for people who want to have more SOC actions in their wads/socs. I believe this does have an example wad of what kind of actions you can use for custom bosses
You are absolutely right. The sole purpose for this mod was to make new soc actions available, allowing to create enemies/objects with more complex or even just different abilities. As for the example file... I removed it because people thought that the thread was about the file itself and not the mod that made it possible. You can still see some of it in action in my TwistedMobile.wad.
Due to lack of time (caused by my studies) I kinda stopped working on this for a while now BUT I am planning to begin working on it somewhere in the distant future again. So it's not totally shelved.

After all SRB2 was and is a great experience and I appreciate the work done here so much that I kinda feel like contributing something.
^__^
 

MascaraSnake

Maybe out of retirement?
Now that this is updated to 2.0.5, were there any new actions added? If so, do we get some documentation?
 

Morph

Member
UPDATE:

version 2.0.5.1 has been released

A new ObjectFlag has been implemented: MF_ALWAYSHARM = 134217728
Objects that have MF_SPECIAL and MF_ALWAYSHARM turned on will always damage a player if he/she touches them. This does not grant invincibility BUT will break spinning and jumping.

These new soc actions have been implemented:
Code:
[B]A_SetObjectTypeState[/B]

Description: Changes the state of all active objects of a certain type in a certain range of the actor.
var1 = state number
var2:
          lower 16 bits = type
          upper 16 bits = range (if == 0, across whole map)[B]

A_Custom3DRotate[/B]

Description: Rotates the actor around its target in 3 dimensions.
var1:
          lower 16 bits = radius in fracunits
          upper 16 bits = vertical offset 
var2 = vertical rotation speed in fracunits per tic

[I]Note: The actor rotates horizontally and vertically around its target. The horizontal speed is defined by the unit's speed in  fracunits. If the actor's target dies so does the actor. This action uses the same mechanic like A_RotateSpikeball which means that it has to be looped infinitely and has to last 1 tic.


[/I][B]A_CheckThingCount[/B]

Description: Calls a state depending on the number of active things in range.
var1:
          lower 16 bits: if var1lw < things in range, call state
          upper 16 bits = thing type 
var2:
          lower 16 bits = state number 
          upper 16 bits = range (if == 0, check whole map)


[B]A_CheckAmbush[/B]

Description: Calls a state if the actor is behind its targeted player.
var1 = unused
var2 = state number[/FONT]


[B]A_ForceStop[/B]

Description: Actor immediately stops its current movement.
var1:
          if var1 == 0, stop x-y-z-movement 
          else, stop x-y-movement only 
var2 = unused
The rar file contains a folder with test socs that will show you some examples how the new soc actions can be used. The files are meant to be loaded one at a time and they all will turn the blue crawlas into something new. They work in connection with the exe mod only:

a_MaceCrawlas.soc => Crawlas swinging maces
a_MaceCrawlas2.soc => Crawlas swinging maces differently
a_SissyCrawlas.soc => Crawlas will try to avoid your attacks
a_BooHooCrawlas.soc => Crawlas will behave like Boohoos from SMB
a_AtomCrawlas.soc => ... It just looked like an atom to me :-p
a_CrawlaPack.soc => Crawlas will hunt in a pack if 3 or more come close to each other



PS: I will update the documentation page as soon as I can but the web hosting service is currently not available. ^^'


Edit:
@ SpiritCrusher:
I was just finishing my post... You're too fast for me! xD
 
Last edited:
UPDATE:

version 2.0.5.1 has been released

A new ObjectFlag has been implemented: MF_ALWAYSHARM = 134217728
Objects that have MF_SPECIAL and MF_ALWAYSHARM turned on will always damage a player if he/she touches them. This does not grant invincibility BUT will break spinning and jumping.

These new soc actions have been implemented:
Code:
[B]A_SetObjectTypeState[/B]
 
Description: Changes the state of all active objects of a certain type in a certain range of the actor.
var1 = state number
var2:
          lower 16 bits = type
          upper 16 bits = range (if == 0, across whole map)
 
[B]A_Custom3DRotate[/B]
 
Description: Rotates the actor around its target in 3 dimensions.
var1:
          lower 16 bits = radius in fracunits
          upper 16 bits = vertical offset 
var2 = vertical rotation speed in fracunits per tic
 
[I]Note: The actor rotates horizontally and vertically around its target. The horizontal speed is defined by the unit's speed in  fracunits. If the actor's target dies so does the actor. This action uses the same mechanic like A_RotateSpikeball which means that it has to be looped infinitely and has to last 1 tic.[/I]
 
 
[B]A_CheckThingCount[/B]
 
Description: Calls a state depending on the number of active things in range.
var1:
          lower 16 bits: if var1lw < things in range, call state
          upper 16 bits = thing type 
var2:
          lower 16 bits = state number 
          upper 16 bits = range (if == 0, check whole map)
 
 
[B]A_CheckAmbush[/B]
 
Description: Calls a state if the actor is behind its targeted player.
var1 = unused
var2 = state number[/FONT]
 
 
[B]A_ForceStop[/B]
 
Description: Actor immediately stops its current movement.
var1:
          if var1 == 0, stop x-y-z-movement 
          else, stop x-y-movement only 
var2 = unused
The rar file contains a folder with test socs that will show you some examples how the new soc actions can be used. The files are meant to be loaded one at a time and they all will turn the blue crawlas into something new. They work in connection with the exe mod only:

a_MaceCrawlas.soc => Crawlas swinging maces
a_MaceCrawlas2.soc => Crawlas swinging maces differently
a_SissyCrawlas.soc => Crawlas will try to avoid your attacks
a_BooHooCrawlas.soc => Crawlas will behave like Boohoos from SMB
a_AtomCrawlas.soc => ... It just looked like an atom to me :-p
a_CrawlaPack.soc => Crawlas will hunt in a pack if 3 or more come close to each other



PS: I will update the documentation page as soon as I can but the web hosting service is currently not available. ^^'


Edit:
@ SpiritCrusher:
I was just finishing my post... You're too fast for me! xD
what do you mean by lower 16 bits and upper 16 bits???
 

Morph

Member
The value of each variable can be devided into...
  • its lowercase value: which equals the assigned value as is (up to 65535).
  • and its uppercase value: which equals how many times 65536 goes into the assigned value. (Sidenote: 65536 because this is the maximal value that can be expressed by 16 bits. You could describe the uppercase value as how many 16 bit units the variable needs to be expressed, too.)
This is nothing I invented or something... the lowercase and uppercase value system is already used by some of srb2's current soc actions. Instead of using one 32 bit variable the storage area is devided into two 16 bit variables. It's kind of hard to explain if you do not know how data is stored by a computer.

:|
 

Morph

Member
UPDATE:

version 2.0.6.1 has been released

Changes:

  • The mod should now be masterserver compatible.

  • A_Custom3DRotate: horizontal rotation speed is now defined by var2's upper 16 bits instead of the object's speed. both vertical and horizontal speed are now worth 1/10 FRACUNITS per tic and not 1 FRACUNIT per tic
New actions that have been implemented:

  • A_CheckTargetRings: Calls a state depending on the number of rings the actor's target is currently owning.
  • A_MissileSplit: Makes missiles able to spawn other missiles with alternate flightpaths that belong to the actor who shot the former missiles in first place.
  • A_SplitShot: Shoots 2 missiles next to the player.
 

Fawfulfan

The Tortured Planet guy
Sounds pretty cool! I think these actions should be added into the official EXE...they could really come in handy for the actual game.

BTW, I notice in your tutorial that you constantly misspell "amount" as "ammount". *shot by people who hate Spelling/Grammar Nazis*
 

Morph

Member
Sounds pretty cool! I think these actions should be added into the official EXE...they could really come in handy for the actual game.

BTW, I notice in your tutorial that you constantly misspell "amount" as "ammount". *shot by people who hate Spelling/Grammar Nazis*
Some of them are crap I guess. Much stuff is experimental and I am constantly changing things... I do not know if it is that advisable to add them to the official game (though I would not reject that idea in general). It's not that hard to use the alternate exefile anyway... ^^'

As for the tutorial: Yay somebody read it. :p
There may be far more grammar and spelling errors than that. After all I am not a native english speaker. In the end the only thing that matters is that it is understandable so that people get what I tried to explain and that it is (hopefully) somewhat helpful.
 
Last edited:

MascaraSnake

Maybe out of retirement?
There may be far more grammar and spelling errors than that. After all I am not a native english speaker. In the end the only thing that matters is that it is understandable so that people get what I tried to explain and that it is (hopefully) somewhat helpful.
I still suspect you of being German :O

That said, I need to add the new actions to the Wiki article if I find the time.
 

Morph

Member
SpiritCrusher said:
I still suspect you of being German :O

That said, I need to add the new actions to the Wiki article if I find the time.
Thought that was well known but good guess anyway.



Speaking of the wiki article...
srb2wiki said:
Objects that have MF_SPECIAL and MF_ALWAYSHARM turned on will always damage a player if they touch them. This does not grant them total invincibility but they can't be destroyed by spinning or jumping. The flags value for this flag is 134217728.
The sentence that was changed is actually not 100% correct. If you spin or jump into an enemy with the flag turned on it will damage you first while taking no damage itself... However, if you are invincible (flickering after beeing hit or by a monitor) and you do the same thing they WILL take damage. It is supposed to simplify creating melee attacks. ^^'
 

MascaraSnake

Maybe out of retirement?
Hmm yeah, I did think that didn't make sense as it was before. Also, is that whole CusVal stuff actually correct in the article? It made my head rotate.
 

Morph

Member
A_RelayCustomValue said:
If Var1 is 0, the custom value of the target is used instead.
=> If Var1 is 0, the custom value of actor who targeted the target is used instead.

A_UseCusValMemo said:
3 ### New memory value is custom value multiplied with old memory value divided by 100 ### New custom value is memory value multiplied with old custom value divided by 100
=> 3 ### New memory value is custom value modulo old memory value ### New custom value is memory value modulo old custom value.


Other than that you really did a good job. ^^'
 

Morph

Member
UPDATE

Version 2.0.6.2 is out and this time I was up to something more complicated (at least that's what it felt like). I tried to come up with ideas for new hardcoded special character abilities and implemented some of them. Like Thok, Glide, Fly, Double Jump... etc. these abilities will be applied to a character by changing the ability parameter in the character's S_SKIN.

So here we go:

  • Telekinesis

    Ability # 50
    Description: Enemies or other players who are next to the character will be pushed away by pressing JUMP in mid-air or will be pulled towards the player by pressing SPIN in mid-air. The parameter actionspd will determine the pulling/pushing force.


  • Fall Switch

    Ability # 51
    Description: The character's current vertical movement speed will be inversed by pressing JUMP in mid-air. The parameter actionspd has no effect.


  • Jump Boost

    Ability # 52
    Description: The character will jump higher the faster he is moving. Jumping while standing still will perform a normal jump. The parameter actionspd determines the jumping force increase.


  • Air Drill

    Ability # 53
    Description: The character will change into drilling mode by pressing JUMP in mid-air. In drilling mode the character will slowly start accelerating into its facing direction until a certain amount of time has passed or the character is touching ground. While Air Drill is activated the player keeps in control of his/her facing direction and his/her falling speed is decreased. The parameter actionspd determines the drilling acceleration.[/FONT]


The new download file additionally contains 4 placeholder characters (using old, color palette shifted Morphling sprites) who each make use of one of the abilities. Feel free to mess around with them or testing for bugs.

Also it would be nice if you could leave a comment if the abilities are overpowered, pointless or if you have ideas for improvement.

;D


EDIT: I am going to update the documentation page soon... right now I have some problems with my web hosting provider.
 
Last edited:

MotorRoach

Roach when Sonic
Sonic Team Junior
I've been testing these new abilities, it's kinda amusing to play with them if ya ask me

It's kinda random using these in a character with ability2 = 1, like, it can kinda be random depending of the ability and how you use it, lol
 

MascaraSnake

Maybe out of retirement?
I must say that I kinda didn't expect this, but I'm very pleased with having new character ability options. The ones you made were quite useful and balanced, with the possible exception of the Air Drill. It's nothing more than a time-constrained glide that makes you lose control.

The other ones were very nice though. Telekinesis is obviously very dependent on the level but that's to be expected. I had a lot of fun messing around with it in Aerial Garden, because it makes combating flying enemies much easier. Fall Switch is quite useful in general, but in levels with pools of water, it can get out of hand due to the additional acceleration. That's not your fault though. Jump Boost is a great idea, and I'd really love to see a Mario character with it. You could also try changing Sonic's ability to this for Mario Mode, similarly to what ShufflarB2 did in 1.09.4.

I'm really pleased with this update, and I hope someone will use these features in some way in the future. Keep up the good work :)
 

Morph

Member
I've been testing these new abilities, it's kinda amusing to play with them if ya ask me

It's kinda random using these in a character with ability2 = 1, like, it can kinda be random depending of the ability and how you use it, lol
Yeah activating multiability is possible for Telekinesis, Fall Switch and Air Drill, though I did not think about the consequences. Air Drill is pretty messed up with multiability turned on, I guess, while multi Fall Switch means infinite air bouncing. Maybe I should handle multiability differently like increasing jump height instead or something... ^^'
Glad you had fun fooling around with 'em, anyway.



SpiritCrusher said:
The ones you made were quite useful and balanced, with the possible exception of the Air Drill. It's nothing more than a time-constrained glide that makes you lose control.
Hmmmm... You might have a point there, though it differs from gliding by accelerating speed and by not beeing interruptable if you release the jump key.
I could try limiting the maximum speed and make the character raising instead of limiting the falling speed while using the ability. That way it would be kind of a hybrid between Double Jump, Thok and Glide. Would that be better or worse?
SpiritCrusher said:
I'm really pleased with this update, and I hope someone will use these features in some way in the future. Keep up the good work :)
Thanks ;D
 

MascaraSnake

Maybe out of retirement?
I could try limiting the maximum speed and make the character raising instead of limiting the falling speed while using the ability. That way it would be kind of a hybrid between Double Jump, Thok and Glide. Would that be better or worse?
Or you could make the player not lose any height while performing the maneuver. That way, it would be kind of like a hybrid between thok and glide.
 
Status
Not open for further replies.

Who is viewing this thread (Total: 1, Members: 0, Guests: 1)

Top