AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Instant Reload (https://forums.alliedmods.net/showthread.php?t=143580)

Owner123 11-21-2010 15:36

Instant Reload
 
Hi.
I have one problem with instant reload. I want to make instant reload when weapon is reloading (Ham_Weapon_Reload with post=0). All is ok, but when player press R server crash :F
Anyone know how to solve this problem?

ConnorMcLeod 11-21-2010 15:51

Re: Instant Reload
 
plugin ?

Owner123 11-21-2010 15:53

Re: Instant Reload
 
PHP Code:

new szWeapon[64];
    for(new 
CSW_P228<= CSW_P90i++)
    {
        if(
get_weaponname(iszWeaponcharsmax(szWeapon)))
            
RegisterHam(Ham_Weapon_ReloadszWeapon"fwHamWeaponReload");
    }

public 
fwHamWeaponReload(ent)
{
    if(!
pev_valid(ent))
        return 
HAM_IGNORED;
    
    new 
id get_pdata_cbase(ent414);
    
    if(!
g_bHavePower[id])
        return 
HAM_IGNORED;
    
    
set_pdata_int(ent5414);
    
ExecuteHam(Ham_Item_PostFrameent);
    
    return 
HAM_IGNORED;



ConnorMcLeod 11-21-2010 16:02

Re: Instant Reload
 
PHP Code:

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

#define VERSION "0.0.1"
#define PLUGIN ""

#define XO_PLAYER    5
#define m_afButtonPressed 246
#define m_pActiveItem 373

#define XO_WEAPON                4
#define m_fInReload                54

public plugin_init()
{
    
register_plugin(PLUGINVERSION"ConnorMcLeod")
}

public 
client_PostThink(id)
{
    if( 
is_user_aliveid ) && get_pdata_int(idm_afButtonPressedXO_PLAYER) & IN_RELOAD )
    {
        new 
iWeapon get_pdata_cbase(idm_pActiveItemXO_PLAYER)
        if( 
iWeapon )
        {
            
set_pdata_int(iWeaponm_fInReload1XO_WEAPON)
            
set_pev(idpev_buttonpev(idpev_button) & ~IN_RELOAD)
        }
    }



Owner123 11-22-2010 08:22

Re: Instant Reload
 
Now i have code like this:
PHP Code:

#define m_flInReload 54
#define m_pActiveItem 373
#define m_afButtonPressed 246
#define m_pWeaponOwner 41
#define DIFF_WEAPON 4
#define DIFF_PLAYER 5

public plugin_init()
{
    new 
szWeapon[64];
    for(new 
CSW_P228<= CSW_P90i++)
    {
        if(
get_weaponname(iszWeaponcharsmax(szWeapon)))
            
RegisterHam(Ham_Weapon_ReloadszWeapon"fwHamWeaponReload");
    }
}

public 
fwHamWeaponReload(ent)
{
    if(!
pev_valid(ent))
        return 
HAM_IGNORED;
    
    new 
id get_pdata_cbase(entm_pWeaponOwnerDIFF_WEAPON);
    
    if(!
gbHavePower[id])
        return 
HAM_IGNORED;
    
    
set_pdata_int(entm_flInReload1DIFF_WEAPON);
    
ExecuteHam(Ham_Item_PostFrameent);
    
    return 
HAM_IGNORED;
}

public 
client_PostThink(id)
{
    if(
is_user_alive(id) && get_pdata_int(idm_afButtonPressedDIFF_PLAYER) & IN_RELOAD)
    {
        new 
wid get_pdata_cbase(idm_pActiveItemDIFF_PLAYER);
        if(
wid 0)
        {
            
set_pdata_int(widm_flInReload1DIFF_WEAPON);
            
set_pev(idpev_buttonpev(idpev_button) & ~IN_RELOAD);
        }
    }


And i still have crashes ;/

ConnorMcLeod 11-22-2010 08:36

Re: Instant Reload
 
If you use my code, you don't need to hook Ham_Weapon_Realod.
If you use your first code, try to supercede the Reload if you reload weapon by yourself, or hook it post and if m_fInReload is 1, send ItemPostFrame.

Owner123 11-22-2010 09:49

Re: Instant Reload
 
When i hook this post and send ItemPostFrame i have crash.
So, i return SUPERCEDE when i reload weapon by myself.

ConnorMcLeod 11-22-2010 10:07

Re: Instant Reload
 
If you send ItemPostFrame, remove IN_RELOAD from player button, else, ItemPostFrame gonna call Reload and make an infinite loop, that's why your server crashes.


All times are GMT -4. The time now is 11:24.

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