Ayuda FM_UpdateClientData prediccion
#1
Hola que tal,

hay alguna forma de hacer que el forward "updatecliendata" no cancele toda la prediccion de un arma...
es decir, que no cancele el decals, el spr de disparo, etc...

me dijo un amigo que hay un metodo para que no pase con la misma formula, pero ya lo aplico aca en el codigo pero aun asi me cancela lo que acabo de mencionar

espero que me puedan dar una mano en esto Sonrisa gracias!

Código PHP:
register_forward(FM_UpdateClientData"FW__clientdata_post"1);
    
register_forward(FM_PlaybackEvent"FW__playback_evet");

//____
public FW__clientdata_post(idsend_weaponscd_handled) {
    if (!
is_user_valid_alive(id))
        return 
FMRES_IGNORED
        
    if (
g_currentweapon[id] == CSW_M3) {
        
set_cd(cd_handledCD_flNextAttackget_gametime() + 0.01);
    }
        
    return 
FMRES_HANDLED;
}

public 
FW__playback_evet(flagsidevent) {
    if (!(
<= id <= g_maxplayers))
        return 
FMRES_IGNORED;
        
    if (
g_currentweapon[id] == CSW_M3) {
        
zp_emit_sound(idCHAN_WEAPONSOUND_WEAPON_TESTPITCH_NORM);
    }
    
    return 
FMRES_SUPERCEDE;

Responder
#2
La razón del por qué tienes que recodear la rutina del arma, es debido a que cuando hacemos uso de CD_flNextAttack (que internamente lo que hace es cambiar el valor de m_flNextAttack), el cliente al recibir el update (UpdateClientData), evitamos que la rutina normal del arma se ejecute:

referencia: hl_weapons.cpp (half-life based)
Código PHP:
void HUD_WeaponsPostThinklocal_state_s *fromlocal_state_s *tousercmd_t *cmddouble timeunsigned int random_seed )
{
//.......

// Don't go firing anything if we have died.
 // Or if we don't have a weapon model deployed
 
if ( ( player.pev->deadflag != ( DEAD_DISCARDBODY ) ) && 
 !
CL_IsDead() && player.pev->viewmodel && !g_iUser1 )
 {
 if ( 
player.m_flNextAttack <= )///
 
{
 
pWeapon->ItemPostFrame();///
 
}
 }
//.....


Por ende, con lo anteriormente dicho, no hay metodo conocido que permita cancelar parte de la predicción (o que al menos quien redacta este mensaje conozca).
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)