Possession! [2.1c]

Status
Not open for further replies.

amperbee

thunderdome denizen
Retired Staff
qaa4Xbe.png




o1aL7Mq.png

5EdrlCZ.png



What is Possession about?
Possession is a game about being fast and dodging people.
When the Master Emerald spawns, players are tasked on finding this rock in the map. Once found, the player that collected it has to possess it until time runs out, while his opponents have to kill him to retrieve the emerald for the same goal.

The catch? Whoever is carrying the emerald will become very vulnerable: The carrier will become unable to shoot, unable to obtain any shields, and unable to use mid-air abilities like thokking, flying or gliding! And even worse, a single hit by anything will render this player dead, regardless of how many rings the player has collected!

A round is finished when a player is successful in holding the rock for 50 seconds (by default) without dying.

Basically that: Grab the emerald, hold it for a few seconds in a row without dying, and instantly win!



As the guy that looks for the emerald:

While you are looking for the emerald, your radar at the bottom right will start blinking and beeping. It will beep faster the closer you get to the emerald, and slower as you get away from it. Just like Emerald Hunt's radar but a little more precise.

If you find the emerald on a place you can't reach, or can but it involves going all around the map and you don't have time for that, or it is on a hazard, you can also shoot the emerald! Shooting it pushes the emerald away, so us it for your advantage. Some rings push the emerald further than others! (This can be toggled by the host)

If the emerald is flying at an amazing speed, players can get damaged by it until it slows down. (This can be toggled by the host)



As the carrier:

Don't move on a straight line! People can attack you easier if you just hold forward.

You can sometimes confuse other players by turning 180 degrees and speeding away instead of taking a normal path.

Even if you can't grab shields or ammunition, try to collect them anyways so you leave none for other players.

Use characters without Possession support to cheat abilities in.



In Team Possession:

As the carrier, you can either find a place to hide and have your team protect you, or run around like carriers do. You can also drop the emerald (This can be toggled by the host) so someone in your team carries it.

If the carrier is in your team, follow them around and protect them. As you know, they die in a single hit, so be there when they die so you can retrieve the emerald as soon as possible, or to knock enemies away so they don't die.

If the carrier is in the enemy team, be prepared. Chances are the carrier is being followed and protected by a mob of enemies. Use weapons that cover an area like explosion and scatter rings for maximum damage.


ElatedRealisticAustraliankestrel.gif
EverlastingRashGossamerwingedbutterfly.gif


HappyNearAruanas.gif
HonoredColdBug.gif


FavorableSpryArcticseal.gif


WhichFluffyFieldspaniel.gif
PalatableEsteemedBeaver.gif


BadEnchantingFinch.gif
EarlyMildAmericanwarmblood.gif


jQB99ry.png

Configuration stuff
possession <0|1>
(Default: On)
Enables or disables possession. When enabled, it will only function in match or team match gametypes.

poss_spawntime <value>
(Default: 5)
Time in seconds to spawn the Master Emerald after the map has loaded.

poss_holdtime <value>
(Default: 50)
Time in seconds that a player has to hold the emerald to win the round.

poss_ringspawnpoint <0|1>
(Default: Off)
Allows the script to use ring map things as spawnpoints. Useful for maps which do not have emerald spawn point, or boss maps, or anything else you have in mind.

poss_shootemerald <0|1>
(Default: On)
Allows players to shoot the emerald to move it.

poss_tossemerald <0|1|2>
(Default: 2)
Allows players to toss the emerald with the Toss Flag button.
A value of 0 disables it, while a value of 1 will just drop the emerald in place.
A value of 2 will let the player throw it a small distance forwards, and is affected by player momentum.

poss_emeraldharm <0|1>
(Default: On)
Allows players getting hurt by the emerald if the emerald collides with them at a high velocity.

poss_deathmomentum <0|1>
(Default: On)
Allows the emerald to keep the momentum of a dead carrier instead of just dropping in place.

poss_globaltimer <0|1|2>
(Default: Off)
Toggles "global timer".
When 0 (Off), Possession will function as usual.
When 1 (On), the hold timer will never reset on carrier death, making everybody use the same timer.
When 2 (Team) (Team Match only!), this will act as 1 with two timers, one of each team.

poss_grasptime <value> (Default: Off)
poss_grasptime_start <value> (Default: 180)
poss_grasptime_decrement <value> (Default: 1)
poss_grasptime_min <value> (Default: 5)
Only functions when the global timer is off.
Normally, the timer always starts from poss_holdtime.
If no players have won the round for quite a while, grasp time begins.
When a carrier dies, the amount of time from when the timer will start will decrease by poss_grasptime_decrement, up to poss_grasptime_min.
(For example, if poss_holdtime is 50, grasp time begun and the carrier dies, the next carrier will have to carry it 48 seconds and so on.)

Other stuff
Changelog:

2.1b & 2.1c
I just changed a few lines

2.1: Big Update!
Fixes:
- Errors when a player disconnects while holding the Emerald.
- A lot of reverse gravity content, including a change in the radar's behaviour.

Changes:
- Using a new way to add score. It should work better in Team Match now.
- A few messages have been changed and colorized a bit, so it looks pretty.
- The HUD emerald carrier name now changes colors depending on the carrier's team.
- Renamed "poss_tospawntime" to "poss_spawntime".
- A bunch of console messages have been reworded.
- If the rock falls on a pit, the respawn sound is played globally.
- If the carrier dies or disconnects, the Emerald retains its momentum instead of falling in place.
- The "time left warning" sound now plays once per second when there are 10 seconds left, and twice when 3 seconds or less.
- Replaced a few sound effects
- With a CVar, you can make rings be used as emerald spawnpoints.

New:
- Global timer! Because it's cool!
- And with that, team global timer!
- Grasp time! which sounds weird
- Status messages at the bottom of the screen
- Little warning messages at the status bar when doing a forbidden action with the emerald (ability, shoot, get shield)
- The Emerald can now be pushed around by shooting it.
- The Emerald can damage players if it collides with one at a very high speed.
- An about command ("poss_about").


2.0.3
- Shield monitors now play sfx_lose when they are popped by the carrier, and no shields are awarded afterwards.
- The "RINGS" display is crossed out when carrying the emerald.
- An "X" graphic is also displayed in the place of the shield icons.
- Fixed a little bug that sent the win message twice.
- Added two global Lua functions (POSS_GetPlayerWithRock and POSS_InPossRound).


2.0.2
- The time left counter now returns to 0 when it finds itself being smaller than 0.


2.0.1b
- I forgot to check for player.valid.


2.0.1
- Time left counter now blinks red and plays a sound when time left is at 10 seconds or lower.
- The radar is a bit more precise.


2.0: HUD update!
LgTYsSn.png

- Revamped HUD
More visuals! (Emerald sprite at the bottom right)
Less words! (Removed "DIST", "Carrier", "Possession", and some other text)
More compact! (Current carrier and time left on top of the emerald in the HUD)
New Emerald Hunt style Radar™! (Beeps when you get closer to the emerald)
And a little ugly height checker that points where's the emerald in relation to your position. (Pretty much that)
- Fixed Master Emerald not spawning when emeralds are disabled.
- Something I forgot to document


1.0
Initial release
As some have noticed with Silver, Shadow, or custom characters in general, is that some special abilities haven't been disabled. Or even compatibility problems with other mods.
The reason being that I do not support those characters or mods.
I usually don't know how do they work or what variables to change, so I'm sorry if there are problems regarding them and Possession. The best I can do, however, is give some support for those modders that would like to include Possession support to their mods.

Included in this WAD, there are two global functions:
POSS_GetPlayerWithRock, which will return the current player holding the rock, and
POSS_InPossRound, which will return if Possession is currently running in the level.
Feel free to use them in your WAD!


Wrapping up

Special thanks to:
  • TehRealSalt, for helping me on making the HUD look neater and for understanding some code.
  • DarkTechno, for helping me get a bunch of 1.0 screenshots.
  • Sapheros, for the square X thing in the HUD.
  • AxelMoon, for some nice enchilada 10/10 and heavy WAD testing.
  • Steel Titanium, for being a good sport. Also, lots of testing.
  • More people, that have helped me in different ways but I forgot their names.


Included in the attachements there is a little reskin for the emerald (enchilada.wad) that used to be as an inside joke, but I decided to include it.
It was originally designed for 1.0, yet it still works!
If you plan on using it, make sure to load Possession first!
UnderstatedLoneAlligatorgar.gif





Last update: 2.1/b/c on 5/16/17
 

Attachments

  • enchilada.zip
    11.9 KB · Views: 680
  • poss2.1.zip
    74.9 KB · Views: 712
  • poss2.1c.zip
    74.9 KB · Views: 570
Last edited:
Nipples The Enchilada Mode was totally worth it. But the overall gametype is fun as hell. Testing it even early on was fun. =P
 
Wow, this sounds fantastic, i cant wait to give it a try. If i encounter any bugs il report them to you.
 
After a while, I finally updated it to 2.1!

Fixes:
- Errors when a player disconnects while holding the Emerald.
- A lot of reverse gravity content, including a change in the radar's behaviour.

Changes:
- Using a new way to add score. It should work better in Team Match now.
- A few messages have been changed and colorized a bit, so it looks pretty.
- The HUD emerald carrier name now changes colors depending on the carrier's team.
- Renamed "poss_tospawntime" to "poss_spawntime".
- A bunch of console messages have been reworded.
- If the rock falls on a pit, the respawn sound is played globally.
- If the carrier dies or disconnects, the Emerald retains its momentum instead of falling in place.
- The "time left warning" sound now plays once per second when there are 10 seconds left, and twice when 3 seconds or less.
- Replaced a few sound effects
- With a CVar, you can make rings be used as emerald spawnpoints.

New:
- Global timer! Because it's cool!
- And with that, team global timer!
- Grasp time! which sounds weird
- Status messages at the bottom of the screen
- Little warning messages at the status bar when doing a forbidden action with the emerald (ability, shoot, get shield)
- The Emerald can now be pushed around by shooting it.
- The Emerald can damage players if it collides with one at a very high speed.
- An about command ("poss_about").
Short version: A few fixes, team Possession, rings can be used as Master Emerald spawners, status messages, global timers, and some sound effects were replaced.
 
Updated to 2.1b 2.1c

rr7pKNU.png

This mini-update consists on a change in the way the radar works, using G_PointToDist2 instead of P_AproxDistance

I left the old version in the post, just in case.

There's a variable named playerWithRock
It points to a player
The script expects an object (mo) so the radar acts accordingly
I didn't give it the playerWithRock.mo it expects, so it doesn't get the XYZ coordinates and breaks

So I fixed it
 
Last edited:
Status
Not open for further replies.

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

Back
Top