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.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
[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
what do you mean by lower 16 bits and upper 16 bits???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:
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: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
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
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.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.)
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... ^^'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*
I still suspect you of being German :OThere 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.
Thought that was well known but good guess anyway.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.
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. ^^'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.
=> If Var1 is 0, the custom value of actor who targeted the target is used instead.A_RelayCustomValue said:If Var1 is 0, the custom value of the target is used instead.
=> 3 ### New memory value is custom value modulo old memory value ### New custom value is memory value modulo old custom value.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
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... ^^'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
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.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.
Thanks ;DSpiritCrusher 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 :)
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.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?