Object Flags 2 - The weapon ring properties ?

Status
Not open for further replies.

Internet Explorer

IT'S NO USE
Another one-
By fooling around on the Wiki, I saw 6 flags used for the FLAGS2 toggle, with the description "Thrown ring has the [weapon ring]'s properties", you can see them by scrolling at the bottom of the Object Flags page.
I would like to know what are precisely these "properties" : if the Object with the MF2_GRENADE flag is a thrown weapon ring, will it be tossed instead of thrown ? (Because the grenade ring has a tossing movement, not a thrown one) or also ; if the Object with the MF2_EXPLOSION flag is a thrown weapon ring too, will it involve a knockback effect ...?
I would like to know actually what these properties are, what do they affect~
 
By amazing(ish) coincidence, less than a week ago I also thought the SRB2 Wiki was lacking in detail about those MF2 flags for the weapon rings, so I dived into SRB2's source code for the millionth time already, and grabbed out some brief points of note for them to throw into a section in this page. (links to the section for stuff for both MF and MF2 stuff; couldn't link directly to the Object Flags 2 section because of SRB2 Wiki's subsection URL name format making it seemingly impossible =| )

Anyway, from what I've found so far, most of the effects of the MF2 weapon ring flags mainly deal with stuff such as how strongly a player hit by them falls back, or what trails they spawn when the SOC Action A_ThrownRing is used. MF2_EXPLOSION, MF2_RAILRING and MF2_SCATTER all have increased knockback strengths.

Turning other objects into Grenade or Scatter ring clones is something MF2_GRENADE and MF2_SCATTER cannot not do exactly, sadly. MF2_RAILRING, on the other hand, appears to be one that you can actually make Rail Ring clones with.

If you want the actual knockback strengths for the flags (which aren't anywhere on the wiki yet), here you go:

Normal knockback strength: 4*FRACUNIT
MF2_RAILRING: 45*FRACUNIT
MF2_EXPLOSION: 30*FRACUNIT
MF2_EXPLOSION + MF2_RAILRING: 38*FRACUNIT
MF2_SCATTER: 128*FRACUNIT - (dist from player)/4 (i.e, the closer the shooting player was to you when the weapon rings were fired and hit you, the strong the knockback)
(4*FRACUNIT is the minimum strength you can be hit with by Scatter)

Hope this post of mine helped you somewhat, Internet Explorer. =x
 
Last edited:
Oh yes, this greatly helped me (I finally managed to remove the knockback from a weapon, and adding it on another, yay).

But, if you're saying that they're especially used for the knockback or the ring trail, this means these flags can't turn an object into an [considered weapon ring] ?
I explain myself with an exemple, it's a little hard to explain.

Let's say I throw an Explosion ring which, when spawned into the field with its SpawnState, use the A_SpawnObjectRelative action every seconds (every 35 tics) until it goes into its deathstate by colliding something other than its target : it will spawn an object, every seconds, thanks to this action. Let's say the invoked object is a CEZ Torch. The thrown explosion ring works correctly when it acts around the other players : the owner OR the other players in the same team of the owner aren't hurt by that Explosion Ring, but the foes are.
So here's the point, do you think it's possible to turn the Torch into a considered Explosion Ring (this means : it only hurts the foes, and displays at the console "[player] has been hurt by [player]'s Explosion Ring" (the explosion ring in this sentence is the Torch.) ?
Or maybe ONLY the Object 223 (which is Thrown Explosion Ring) is able to hurt the foes only and displaying that ...?

(By hoping I've been clear... I'm so sorry for asking confusing things)
 
Last edited:
No, the MF2 weapon flags don't alter those types of messages. Pretty much only the Explosion Ring itself will cause the "[player] has been hurt by [player]'s Explosion Ring" message, as it is indeed hardcoded only for MT_THROWNEXPLOSION to trigger (see p_inter.c in the source). Same obviously applies to the other weapon rings.
 
Ah, yes, so like you say, it's a property only encoded for the Object 223 - Thrown E.Ring.
I have almost no knowledges in C langage, but since some instructions seem logical when I type some keywords with CTRL + F in my text editor, maybe could I edit my Object so it will have the MT_THROWNEXPLOSION property...

Is there a source code file containing all the Objects with their properties, so maybe I could just add the MT_THROWNEXPLOSION toggle to the list of my custom Object's toggles ? (I doubt it's that easy through..)
 
Last edited:
If by "properties" you mean the typical SOC Object properties such as "SpawnState" and "DeathState", info.c is the place for that. (except for translucency settings, which are instead set by p_fab.c)

If you mean everything else linked to the objects though, they're sort of scattered around the place in the source; p_mobj.c and p_inter.c are the main places for those, though p_user.c and p_map.c have a fair bit of object setting stuff also. (Might be some others I've not remembered right now)
 
Status
Not open for further replies.

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

Back
Top