AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Plugins (https://forums.alliedmods.net/forumdisplay.php?f=108)
-   -   [L4D2] Grenade Launcher Random Projectile v1.1 [30-November-2022] (https://forums.alliedmods.net/showthread.php?t=340219)

NoroHime 11-03-2022 14:55

[L4D2] Grenade Launcher Random Projectile v1.1 [30-November-2022]
 
7 Attachment(s)
about
  • make for funny, chance to launch variant projectile
  • the projectiles include tank rock / pipe bomb / spitter acid / vomit jar / molotov
  • you can set very small chance to launch spitter acid make surprise to your player or something else
  • can press key to make projectile anti-gravity, maybe not relevant, but i really need it


ConVar

PHP Code:

// chance to trigger random Projectiles, if not set, use *_type
grenadelauncher_random_chance "0.5"

// make projectile anti-gravity -1=always 0=never other=specifis key pressed 131072=shift 4=ctrl
grenadelauncher_random_fly "131076"

// if trigger by *_chance, which projectiles random launch by Grenade Launcher
// 1=molotov 2=pipe bomb 4=spitter 8=vomit jar 16=tank rock -1=All
// add numbers together you want.
grenadelauncher_random_rand "-1"

// time(seconds) of timeout to detonate the grenade
grenadelauncher_random_timeout "6.0"

// plugin default type if trigger
// 0=vanilla 1=molotov 2=pipe bomb 4=spitter 8=vomit jar 16=tank rock
grenadelauncher_random_type "0" 


changelog
  • v1.0 just releases; 4-November-2022
  • v1.0.1 fix issue 'some grenade doesnt have owner'; 4-November-2022(2nd time)
  • v1.0.2 doubled the double check, for safe; 4-November-2022(3rd time)
  • v1.1 for dev,
    add forward event 'void OnGLProjectileReplaced(int before, int after, int client)'
    add natives 'void DisableGLListener()', 'void EnableGLListener()'; 30-November-2022

Installation
for Developers
PHP Code:

forward void OnGLProjectileReplaced(int beforeint afterint client);

public 
void OnGLProjectileReplaced(int beforeint afterint client) {}

native void DisableGLListener();
native void EnableGLListener(); 

Related Plugins
[L4D2] Grenade Launcher Random Projectile - work together, and make random projectile has extra explosion
[L4D2] Remote Control Grenade Launcher with Random Projectile (SourceMod)

Mr. Man 11-03-2022 16:50

Re: [L4D2] Grenade Launcher Random Projectile v1.0 [4-November-2022]
 
Does the spit and tank rock do damage to non-survivors?

NoroHime 11-04-2022 00:56

Re: [L4D2] Grenade Launcher Random Projectile v1.0 [4-November-2022]
 
Quote:

Originally Posted by Mr. Man (Post 2792071)
Does the spit and tank rock do damage to non-survivors?

no doubt in the game tank rock can crash zombies.
to control spit acid damages, you should need [L4D2] Spitter Acid Damage by Silvers.
or set *_rand to 27 (this mean 31 - 4), make spit acid wont appear

HarryPotter 11-04-2022 04:01

Re: [L4D2] Grenade Launcher Random Projectile v1.0 [4-November-2022]
 
That is so funny to see rock coming from grenade launcher, great job

HarryPotter 11-04-2022 06:44

Re: [L4D2] Grenade Launcher Random Projectile v1.0 [4-November-2022]
 
PHP Code:

L 11/04/2022 16:16:16: [SMException reportedNULL not allowed
L 11
/04/2022 16:16:16: [SMBlamingleft4dhooks.smx
L 11
/04/2022 16:16:16: [SMCall stack trace:
L 11/04/2022 16:16:16: [SM]   [0SDKCall
L 11
/04/2022 16:16:16: [SM]   [1Line 1355l4dd\l4dd_natives.sp::Native_CMolotovProjectile_Create
L 11
/04/2022 16:16:16: [SM]   [3L4D_MolotovPrj
L 11
/04/2022 16:16:16: [SM]   [4Line 141l4d2_grenadelauncher_random.sp::ReplaceProjectile
L 11
/04/2022 16:16:16: [SM]   [5Line 121l4d2_grenadelauncher_random.sp::ReplaceProjectileVVel
L 11
/04/2022 16:16:19: [SMException reportedEntity -(-1is invalid
L 11
/04/2022 16:16:19: [SMBlamingl4d2_grenadelauncher_random.smx
L 11
/04/2022 16:16:19: [SMCall stack trace:
L 11/04/2022 16:16:19: [SM]   [0GetEntProp
L 11
/04/2022 16:16:19: [SM]   [1Line 593entity_prop_stocks::GetClientButtons
L 11
/04/2022 16:16:19: [SM]   [2Line 158l4d2_grenadelauncher_random.sp::SetProjectileMoveType
L 11
/04/2022 16:16:19: [SM]   [3Line 129l4d2_grenadelauncher_random.sp::ReplaceProjectile
L 11
/04/2022 16:16:19: [SM]   [4Line 116l4d2_grenadelauncher_random.sp::OnProjectileCreated
L 11
/04/2022 16:16:21: [SMException reportedEntity -(-1is invalid
L 11
/04/2022 16:16:21: [SMBlamingl4d2_grenadelauncher_random.smx
L 11
/04/2022 16:16:21: [SMCall stack trace:
L 11/04/2022 16:16:21: [SM]   [0GetEntProp
L 11
/04/2022 16:16:21: [SM]   [1Line 593entity_prop_stocks::GetClientButtons
L 11
/04/2022 16:16:21: [SM]   [2Line 158l4d2_grenadelauncher_random.sp::SetProjectileMoveType
L 11
/04/2022 16:16:21: [SM]   [3Line 129l4d2_grenadelauncher_random.sp::ReplaceProjectile
L 11
/04/2022 16:16:21: [SM]   [4Line 116l4d2_grenadelauncher_random.sp::OnProjectileCreated
L 11
/04/2022 16:16:24: [SMException reportedEntity -(-1is invalid
L 11
/04/2022 16:16:24: [SMBlamingl4d2_grenadelauncher_random.smx
L 11
/04/2022 16:16:24: [SMCall stack trace:
L 11/04/2022 16:16:24: [SM]   [0GetEntProp
L 11
/04/2022 16:16:24: [SM]   [1Line 593entity_prop_stocks::GetClientButtons
L 11
/04/2022 16:16:24: [SM]   [2Line 158l4d2_grenadelauncher_random.sp::SetProjectileMoveType
L 11
/04/2022 16:16:24: [SM]   [3Line 129l4d2_grenadelauncher_random.sp::ReplaceProjectile
L 11
/04/2022 16:16:24: [SM]   [4Line 116l4d2_grenadelauncher_random.sp::OnProjectileCreated 


PHP Code:

void OnProjectileCreated(int entity) {

    if ( 
entity <= MaxClients || !IsValidEntity(entity) ) return;

    ...



NoroHime 11-04-2022 07:40

Re: [L4D2] Grenade Launcher Random Projectile v1.0 [4-November-2022]
 
thanks report, looks some grenade_launcher_projectile didnt have owner, anyway double check it

update v1.0.1
Quote:

v1.0.1 fix issue 'some grenade doesnt have owner'; 4-November-2022(2nd time)

HarryPotter 11-04-2022 08:59

Re: [L4D2] Grenade Launcher Random Projectile v1.0 [4-November-2022]
 
Quote:

Originally Posted by NoroHime (Post 2792116)
thanks report, looks some grenade_launcher_projectile didnt have owner, anyway double check it

You still have to check if entity is valid in SDKHook_SpawnPost.


PHP Code:


SDKHook
(entitySDKHook_SpawnPostOnProjectileCreated);

void OnProjectileCreated(int entity) {

    if ( 
entity <= MaxClients || !IsValidEntity(entity) ) return;

    ...


Better use EntIndexToEntRef if using RequestFrame, entity could be removed or invalid on next frame.

PHP Code:

RequestFrame(ReplaceProjectileVVelEntIndexToEntRef(entity));

void ReplaceProjectileVVel(int entity)
{
    if( (
entity EntRefToEntIndex(entity)) != INVALID_ENT_REFERENCE )
    {
        .....
    }



NoroHime 11-04-2022 11:31

Re: [L4D2] Grenade Launcher Random Projectile v1.0 [4-November-2022]
 
alright, but why we need check projectile isnt client?
anyway patched it, just in case if someone kill the projectile entity on OnEntityCreated()

update
Quote:

  • v1.0.2 doubled the double check, for safe; 4-November-2022(3rd time)



All times are GMT -4. The time now is 00:50.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.