View Full Version : Commission : Gravity Gun

13-02-2016, 04:18 AM
Oh boy I miss this guy.

However , I only have concepts , I have no knowledge about to use C++ and angelscript.
If someone made it , I will paid 15$ (PayPal) for rewards.

Here come the concept:

1. Which weapon will be altered by this angelscript?
Displacer, this weapon's animations is very close to the HL2 gravity gun , a opening-mouth like animation can be the grabbed animation.

2. Grabbing
As we know , func_pushable can be lift up if it has spawnflags 1024, but its very unstable to hold it and you need close distance.
But if this weapon can grab it from a longer distance , and func_pushable will more stable when grabbed.
The same you can drop it smoothly by press grab button again.

2. Shoot the grabbed things.
This could be the hardest part to do, but I have some idea:

A. How it shoots func_pushable:

As we lift the func_pushable by the hands and push it away.
This weapon may create a large push force like HL2 gravity shoot it away.

B. Collision:

This is the most complex concepts here....
When it shot , a trigger_once (using same model of grabbed func_pushable , cilent can't trigger) created and it follow the func_pushable by a temporary trigger_setorigin and trigger_copyvalue , also the position of this trigger_once will changed depend on the impact surface of func_pushable.
If a enemy touch this trigger_once , it trigger the "temporary" trigger_hurt_remote , hurt it with impact damage depend on speed of that surface (X-axis,Y-axis,Z-axis).
At the final , if func_pushable touch wall or impact enemy , it hurt itself with impact damage , if the func_pushable was set to unbreakable , it won't hurt.

I. trigger_once's position: it will depend on speed of x-axis, y-axis, z-axis. Example: if speed of z >0 , the trigger_once will be top of func_pushable.

II. trigger_hurt_remote's amount: it depend on speed of x-axis, y-axis, z-axis , if enemy was impacted from x-axis surface, speed of x-axis is 1000 (negetive number will be positive too) , the damage will be ''x-axis's speed(always postive)/100 x default damage".
If default damage is 75 => 1000/100 x 75 = 750.


C. Collision II , sharp blade:

I miss this one too , also I have this idea:

NEW Func_pushable keyvalue:
sharpness "1/0"
weight "number"

If sharpness is set "1" , the pushable shot create a trigger_multiple instead of trigger_once , it explode the prey if the prey's health is lower than trigger_hurt_remote , then this pushable still fly forward until it touch wall or impact an enemy has too many health. (doesn't damage player too)

Weight is obviously , the higher weight the func_pushable set, the harder to grab it.


Hmm...thats it , I'd like to think something wonderful , if someone can make it come true , I will thanks and give you the rewards.

13-02-2016, 06:59 AM

probly pretty easy, for now you could just replace the phaser model in Entmod, if that could be made to run in this. and theres a GRAB ENTITY SCRIPT in the plugins section.

13-02-2016, 07:27 AM

probly pretty easy, for now you could just replace the phaser model in Entmod, if that could be made to run in this. and theres a GRAB ENTITY SCRIPT in the plugins section.

Yeah the entmod grab doing the same gravity gun grab , but the attracting and shooting fatal pushable is much complex

13-02-2016, 12:55 PM
I think this might be doable right now. After looking through Solokiller's vehicle script, I've learned that there are ways to override an entity's "Block" function, so like when a func_pushable detects a player in the way of its movement, it could damage or gib it based on speed/sharpness/weight/etc.

13-02-2016, 02:36 PM
That depends on which movetype the entity has. Pushables use a movetype with bounce behavior so even if you handle blocked events, it will still bounce.