AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   General (https://forums.alliedmods.net/forumdisplay.php?f=7)
-   -   (CS) Shooting under water (https://forums.alliedmods.net/showthread.php?t=301431)

Ricky 09-20-2017 16:05

(CS) Shooting under water
 
Anyone else have issues with shooting the galil, famas, and both shotguns underwater? These guns are all jammed underwater for me.

klippy 09-20-2017 16:57

Re: (CS) Shooting under water
 
As far as I know that's how it's supposed to work.

Ricky 09-20-2017 17:32

Re: (CS) Shooting under water
 
It doesn't make much sense especially with the galil. Can anyone write up a simple script to override the restrictions?

JusTGo 09-20-2017 19:02

Re: (CS) Shooting under water
 
for galil, untested :
PHP Code:

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

const XO_CBASEPLAYERWEAPON 4
const XO_CBASEPLAYER 5
const XO_PLAYER 41

enum
{
    
WATERLEVEL_NOT,
    
WATERLEVEL_FEET,
    
WATERLEVEL_WAIST,
    
WATERLEVEL_HEAD
};

public 
plugin_init()
{
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_galil""Weapon_PrimaryAttack_Pre")
}

public 
Weapon_PrimaryAttack_Pre(ent)
{
    new 
id get_pdata_cbase(entXO_PLAYERXO_CBASEPLAYERWEAPON)
    
    new 
waterlevel pev(idpev_waterlevel)
    
    if(
waterlevel == WATERLEVEL_HEAD)
    {
        
set_pev(id,pev_waterlevel,WATERLEVEL_WAIST)
    }



Ricky 09-20-2017 19:44

Re: (CS) Shooting under water
 
Quote:

Originally Posted by JusTGo (Post 2549988)
for galil, untested :
PHP Code:

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

const XO_CBASEPLAYERWEAPON 4
const XO_CBASEPLAYER 5
const XO_PLAYER 41

enum
{
    
WATERLEVEL_NOT,
    
WATERLEVEL_FEET,
    
WATERLEVEL_WAIST,
    
WATERLEVEL_HEAD
};

public 
plugin_init()
{
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_galil""Weapon_PrimaryAttack_Pre")
}

public 
Weapon_PrimaryAttack_Pre(ent)
{
    new 
id get_pdata_cbase(entXO_PLAYERXO_CBASEPLAYERWEAPON)
    
    new 
waterlevel pev(idpev_waterlevel)
    
    if(
waterlevel == WATERLEVEL_HEAD)
    {
        
set_pev(id,pev_waterlevel,WATERLEVEL_WAIST)
    }



It works except the gunshots are silent. Can't hear the bullet sounds of the galil. If you can fix that part and add a string for the other 3 weapons, this would make a good fix for this bug. After retesting your latest nade version plugin, I haven't had any issues so far. Thanks!

aron9forever 09-20-2017 21:02

Re: (CS) Shooting under water
 
it's not a bug, that's how the game has always been

PRoSToTeM@ 09-20-2017 21:25

Re: (CS) Shooting under water
 
Code:
#include <amxmodx> #include <engine> #include <fakemeta> #include <hamsandwich> const m_pPlayer = 41; const m_pPlayer_osdiff = 4; new g_oldWaterLevel; new bool:g_isFiringUnderwater; public plugin_init() {     register_plugin("Shoot underwater enabler", "1.0", "PRoSToC0der");         static const weaponClassnames[][] = {         "weapon_galil",         "weapon_famas",         "weapon_xm1014",         "weapon_m3"     };         for (new i = 0; i < sizeof(weaponClassnames); ++i) {         RegisterHam(Ham_Weapon_PrimaryAttack, weaponClassnames[i], "WeaponFiring", .Post = false);         RegisterHam(Ham_Weapon_PrimaryAttack, weaponClassnames[i], "WeaponFired", .Post = true);     }     RegisterHam(Ham_Item_PostFrame, "weapon_famas", "WeaponFiring", .Post = false);     RegisterHam(Ham_Item_PostFrame, "weapon_famas", "WeaponFired", .Post = true);         register_forward(FM_PlaybackEvent, "PlaybackingEvent", ._post = false); } public PlaybackingEvent(flags, invoker, eventIndex, Float:delay, Float:origin[3], Float:angles[3],     Float:floatParam1, Float:floatParam2, integerParam1, integerParam2, bool:booleanParam1, bool:booleanParam2) {     if (!g_isFiringUnderwater) {         return FMRES_IGNORED;     }         playback_event(flags & ~FEV_NOTHOST, invoker, eventIndex, delay, origin, angles,         floatParam1, floatParam2, integerParam1, integerParam2, booleanParam1, booleanParam2);     return FMRES_SUPERCEDE; } public WeaponFiring(weapon) {     new owner = get_pdata_cbase(weapon, m_pPlayer, m_pPlayer_osdiff);     new waterLevel = pev(owner, pev_waterlevel);     if (waterLevel == 3) {         g_oldWaterLevel = waterLevel;         set_pev(owner, pev_waterlevel, 0);                 g_isFiringUnderwater = true;     } } public WeaponFired(weapon) {     if (g_isFiringUnderwater) {         g_isFiringUnderwater = false;                 new owner = get_pdata_cbase(weapon, m_pPlayer, m_pPlayer_osdiff);         set_pev(owner, pev_waterlevel, g_oldWaterLevel);     } }

Ricky 09-21-2017 02:00

Re: (CS) Shooting under water
 
Quote:

Originally Posted by PRoSToTeM@ (Post 2550006)
Code:
#include <amxmodx> #include <engine> #include <fakemeta> #include <hamsandwich> const m_pPlayer = 41; const m_pPlayer_osdiff = 4; new g_oldWaterLevel; new bool:g_isFiringUnderwater; public plugin_init() {     register_plugin("Shoot underwater enabler", "1.0", "PRoSToC0der");         static const weaponClassnames[][] = {         "weapon_galil",         "weapon_famas",         "weapon_xm1014",         "weapon_m3"     };         for (new i = 0; i < sizeof(weaponClassnames); ++i) {         RegisterHam(Ham_Weapon_PrimaryAttack, weaponClassnames[i], "WeaponFiring", .Post = false);         RegisterHam(Ham_Weapon_PrimaryAttack, weaponClassnames[i], "WeaponFired", .Post = true);     }     RegisterHam(Ham_Item_PostFrame, "weapon_famas", "WeaponFiring", .Post = false);     RegisterHam(Ham_Item_PostFrame, "weapon_famas", "WeaponFired", .Post = true);         register_forward(FM_PlaybackEvent, "PlaybackingEvent", ._post = false); } public PlaybackingEvent(flags, invoker, eventIndex, Float:delay, Float:origin[3], Float:angles[3],     Float:floatParam1, Float:floatParam2, integerParam1, integerParam2, bool:booleanParam1, bool:booleanParam2) {     if (!g_isFiringUnderwater) {         return FMRES_IGNORED;     }         playback_event(flags & ~FEV_NOTHOST, invoker, eventIndex, delay, origin, angles,         floatParam1, floatParam2, integerParam1, integerParam2, booleanParam1, booleanParam2);     return FMRES_SUPERCEDE; } public WeaponFiring(weapon) {     new owner = get_pdata_cbase(weapon, m_pPlayer, m_pPlayer_osdiff);     new waterLevel = pev(owner, pev_waterlevel);     if (waterLevel == 3) {         g_oldWaterLevel = waterLevel;         set_pev(owner, pev_waterlevel, 0);                 g_isFiringUnderwater = true;     } } public WeaponFired(weapon) {     if (g_isFiringUnderwater) {         g_isFiringUnderwater = false;                 new owner = get_pdata_cbase(weapon, m_pPlayer, m_pPlayer_osdiff);         set_pev(owner, pev_waterlevel, g_oldWaterLevel);     } }

Works fine so far and I'll report back if any issues. Thanks! I don't know if the restrictions were intended but it still makes no sense and considered a bug to me. Maybe when putting out 1.6, valve had edited shotgun mechanics and forgot to tweak these 4 weapons underwater.

DjSoftero 09-22-2017 13:18

Re: (CS) Shooting under water
 
Quote:

Originally Posted by Ricky (Post 2550024)
Works fine so far and I'll report back if any issues. Thanks! I don't know if the restrictions were intended but it still makes no sense and considered a bug to me. Maybe when putting out 1.6, valve had edited shotgun mechanics and forgot to tweak these 4 weapons underwater.

adding a check if player is underwater to prevent it from shooting doesnt seem like a bug to me

voed 09-22-2017 18:25

Re: (CS) Shooting under water
 
Quote:

Originally Posted by Ricky (Post 2550024)
Works fine so far and I'll report back if any issues. Thanks! I don't know if the restrictions were intended but it still makes no sense and considered a bug to me. Maybe when putting out 1.6, valve had edited shotgun mechanics and forgot to tweak these 4 weapons underwater.

https://github.com/s1lentq/ReGameDLL...wpn_m3.cpp#L60
Looks like it was a feature, not bug


All times are GMT -4. The time now is 09:17.

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