Mejora de Velocidad de Recarga
#1
Bueno, estaba haciendo limpieza y encontré este .sma de Connor que había probado para hacer una mejora de Velocidad de Recarga. Lo usé y me funcionó, lo único que tendría que corregirse son las animaciones ya que se bugean y no paran cuando terminas de recargar.

Código PHP:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Reload Speed"
#define AUTHOR "ConnorMcLeod"
#define VERSION "0.2.0"

#define ammount_reload(%1)        (1 - (%1 * 0.1)) 

const NOCLIP_WPN_BS    = ((1<<2)|(1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
const 
SHOTGUNS_BS    = ((1<<CSW_M3)|(1<<CSW_XM1014))

// weapons offsets
const m_pPlayer            41
const m_iId                43
const m_flNextPrimaryAttack    46
const m_flNextSecondaryAttack    47
const m_flTimeWeaponIdle        48
const m_fInReload            54

const m_flNextAttack 83

stock 
const Float:g_fDelay[CSW_P90+1] = {
    
0.002.700.002.000.000.55,   0.003.153.300.004.50
         
2.703.503.352.453.30,   2.702.202.502.634.70
         
0.553.052.123.500.00,   2.203.002.450.003.40
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)

    new 
szWeapon[17]
    for(new 
i=1i<=CSW_P90i++)
    {
        if( !(
NOCLIP_WPN_BS & (1<<i)) && get_weaponname(iszWeaponcharsmax(szWeapon)) )
        {
            if( !(
SHOTGUNS_BS & (1<<i)) )
            {
                
RegisterHam(Ham_Item_PostFrameszWeapon"Item_PostFrame_Post"1)
            }
        }
    }
}

public 
Item_PostFrame_Post(iEnt)
{    
    if( 
get_pdata_int(iEntm_fInReload4) )
    {
        new 
Float:fDelay g_fDelay[get_pdata_int(iEntm_iId4)] * ammount_reload(variable_de_mejoras[id])
        
set_pdata_float(get_pdata_cbase(iEntm_pPlayer4), m_flNextAttackfDelay5)
        
set_pdata_float(iEntm_flTimeWeaponIdlefDelay 0.54)
    }

Responder
#2
Podrías explicar eso que hace exactamente y que es lo que mejora?

Para saber es que yo no entiendo el plugin claro..
Responder
#3
la animacion no se puede fixear, por lo que lei en un post de arkshine
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)

(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Responder
#4
(26/03/2014, 06:46 PM)xPecie escribió: Podrías explicar eso que hace exactamente y que es lo que mejora?

Para saber es que yo no entiendo el plugin claro..

Es el code para el que quiera hacer una mejora que sea velocidad de recarga, que muchos lo buscaban y lo encontre por ahí en una carpeta.
Responder
#5
Más velocidad recargando cualquier arma?
Responder
#6
si quieren una animacion acorde a la velocidad, tendrian que editar el model e.e
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#7
(26/03/2014, 09:10 PM)xPecie escribió: Más velocidad recargando cualquier arma?

Responder
#8
Yo la otra vez utilize el mismo codigo para hacer lo mismo pero se me bugio, despues me di cuenta que era porque le ponia valores excesivos a la velocidad de las armas, como no todas tienen la misma velocidad de disparo pienso que abria que checkear cada velocidad del arma y de hay sacar alguna operacion para setear uniformemente el speed a cada una sin que se traben.
Responder
#9
(27/03/2014, 04:17 AM)3mcy daimont escribió: Yo la otra vez utilize el mismo codigo para hacer lo mismo pero se me bugio, despues me di cuenta que era porque le ponia valores excesivos a la velocidad de las armas, como no todas tienen la misma velocidad de disparo pienso que abria que checkear cada velocidad del arma y de hay sacar alguna operacion para setear uniformemente el speed a cada una sin que se traben.

g_fDelay es lo que hace, ahí tienes todas las velocidades de recarga de las armas ordenadas según su CSW_ID.

@wiD
no se puede arreglar la animación de ningún modo, pero sí que se puede hacer que antes de que se acabe la animación ya puedas utilizar el arma.

en el caso de las escopetas olvídate porque es muy diferente a las demás armas.

yo tengo algo así en Ham_Reload:
Código PHP:
set_pdata_float(id83new_delay5)
set_pdata_float(weapon_ent48new_delay 0.54)
set_pev(idpev_frame200.0

id, es el dueño del arma, tienes que obtenerlo.
weapon_ent, es el arma, no hace falta obtener, Ham_Reload ya te lo da.
new_delay, es los valores de g_fDelay a los que resto alguna cantidad para hacer que la velocidad sea más rápida.
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)