[CS/CZ] Tiempo de recarga de cada arma
#1
[CS/CZ] Tiempo de recarga de cada arma



Con el siguiente plugin, podemos saber algo que a muchos nos inquietaba.

Si, el tiempo de recarga de cada arma.

Este plugin lo que hace es que al recargar un arma, te muestra un mensaje donde te dice el tiempo

(segundos en decimales) que necesitamos para poder disparar con el arma portada.



Gracias a Ven por su plugin 'Reload Bar' que me ayudo

Gracias a RauliTop por la sugerencia



Sin más vueltas, los dejo con el plugin:



Código PHP:
#include <amxmodx>

#include <fakemeta>

#include <hamsandwich>



// Definimos los offsets para entender mejor los códigos

// Estos offsets lo podes sacar de la siguiente página

// http://wiki.alliedmods.net/Category:CS_Class_List

#define OFFSET_WEAPON_CBASE_PLAYER_WIN32 41

#define OFFSET_WEAPON_ID_WIN32 43

#define OFFSET_WEAPON_IN_RELOAD_WIN32 54

#define OFFSET_PLAYER_NEXT_ATTACK_WIN32 83

#define OFFSET_WEAPON_LINUX_DIFFERENCE 4



// Esta función nos sirve para comprobar si el jugador esta recargando balas

// Si no tiene cargadores, devolverá 0 (cero)

#define IsWeaponInReload(%1) !!get_pdata_int(%1, OFFSET_WEAPON_IN_RELOAD_WIN32, OFFSET_WEAPON_LINUX_DIFFERENCE)



// Definimos las armas que no serán hookeadas porque no se pueden recargar

// Las escopetas son un caso especial porque se puede disparar mientras recargas y aunque

// hookeemos las escopetas, no hará nada

#define WEAPONS_SHOTGUNS_NONGUNS ((1<<CSW_HEGRENADE) | (1<<CSW_XM1014) | (1<<CSW_C4) | (1<<CSW_SMOKEGRENADE) | (1<<CSW_M3) | (1<<CSW_FLASHBANG) | (1<<CSW_KNIFE))



public plugin_init()

{

    
register_plugin("Tiempo de recarga""1.0""alan_el_more")

    

    
// Creamos unas variables para llevar a cabo el loop

    
new iNameWeap[20]

    

    
// Hacemos un loop para todas las armas

    // CSW_P228 = 1 y CSW_P90 = 30, entre esos números están todos los índices de las armas

    
for(CSW_P228;<= CSW_P90;i++)

    {

        
// Si el arma es una escopeta o no es un arma, salteamos al arma siguiente

        
if((1<<i) & WEAPONS_SHOTGUNS_NONGUNS)

            continue

        

        
// Tomamos el nombre del arma (weapon_*)

        // get_weaponname() devuelve 0 (cero) si el índice del arma no existe

        // Esto es para saltear el índice 2 (dos) que no existe y, de paso, ya tomamos el nombre

        
if(get_weaponname(iNameWeap19))

            
// Hookeamos la función sobre weapon_* para que llame la función cuando

            // se recarga un arma.

            
RegisterHam(Ham_Weapon_ReloadNameWeap"HamWeaponReloadPost"1)

    }

}



// Hook de recarga de armas

public HamWeaponReloadPost(ent)

{

    
// Si no puede recargar (sin cargadores), ignoramos todo el hook

    
if(!IsWeaponInReload(ent))

        return 
HAM_IGNORED

    

    
// Tomamos el índice del jugador que porta el arma

    
new id get_pdata_cbase(entOFFSET_WEAPON_CBASE_PLAYER_WIN32OFFSET_WEAPON_LINUX_DIFFERENCE)

    

    
// Tomamos el weapon_* para mostrarlo en el mensaje solo para que quede mejor visualmente e.e

    // Aclaración: En el primer parámetro, tomamos el índice del arma (CSW_*)

    
static WeaponName[20]

    
get_weaponname(get_pdata_int(entOFFSET_WEAPON_ID_WIN32OFFSET_WEAPON_LINUX_DIFFERENCE), WeaponName19)

    

    
// Mostramos el mensaje

    // Primera Aclaración: WeaponName[7] se usa para mostrar solo el nombre del arma sin el weapon_

    // Por ejemplo: Si tenemos 'weapon_m249', mostrara 'm249'

    // Segunda aclaración: %0.2f muestra un float como lo hace %f, con la diferencia que

    // muestra solo dos dígitos despues de la coma

    
client_print(idprint_center"Tiempo de recarga [%s]: %0.2f"WeaponName[7], get_pdata_float(idOFFSET_PLAYER_NEXT_ATTACK_WIN32))

    

    return 
HAM_HANDLED





Si quieren, pueden hacer una lista de cuanto dura la recarga de cada arma para ponerlo en el post



Si tienen alguna sugerencia, duda o encontraron un error, por favor, no dudes en postearlo


Archivos adjuntos Miniatura(s)
   

Ni te molestes en enviarme un mensaje privado para pedirme ayuda porque NO lo voy a contestar.
Gracias por su atención.
Responder
#2
y en el caso de querer cambiar la velocidad de recarga de un arma y a la vez la velocidad en que ocurre la animacion como seria?
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
#3
(23/10/2013, 02:58 PM)roccoxx escribió: y en el caso de querer cambiar la velocidad de recarga de un arma y a la vez la velocidad en que ocurre la animacion como seria?



la animacion se jode Ragestart
(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
#4
Buen plugin lo usare en mi sv c:
Responder
#5
(23/10/2013, 02:58 PM)roccoxx escribió: y en el caso de querer cambiar la velocidad de recarga de un arma y a la vez la velocidad en que ocurre la animacion como seria?



Dejame hacer unas pruebas y te contesto. Seguramente mañana

Ni te molestes en enviarme un mensaje privado para pedirme ayuda porque NO lo voy a contestar.
Gracias por su atención.
Responder
#6
(23/10/2013, 05:28 PM)alan_el_more escribió:
(23/10/2013, 02:58 PM)roccoxx escribió: y en el caso de querer cambiar la velocidad de recarga de un arma y a la vez la velocidad en que ocurre la animacion como seria?



Dejame hacer unas pruebas y te contesto. Seguramente mañana



si consigues que se pueda ver bien la animación, eres mi diosCrab
(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
#7
encontraste algo con respecto a la animacion?
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
#8
(09/11/2013, 01:09 PM)roccoxx escribió: encontraste algo con respecto a la animacion?



Hice un par de pruebas pero no encontre solución más que la de editar el model



Si encuentro algo lo voy a postear

Ni te molestes en enviarme un mensaje privado para pedirme ayuda porque NO lo voy a contestar.
Gracias por su atención.
Responder
#9
muchas gracias, te lo agradezco
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


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)