Raised This Month: $ Target: $400
 0% 

Viewmodel bodygroup switch example


Post New Thread Reply   
 
Thread Tools Display Modes
Hanna
Member
Join Date: Sep 2016
Old 09-05-2016 , 13:40   Re: Viewmodel bodygroup switch example
Reply With Quote #11

Quote:
Originally Posted by Syturi0 View Post
Same.

And the plugins it self are a TOTAL mess, its unreadable.
xD, it's easy to read if you know what everything does. But for newbies should be hard, yes.
Hanna is offline
Syturi0
Veteran Member
Join Date: Aug 2014
Location: Your mom house -Portugal
Old 09-05-2016 , 13:51   Re: Viewmodel bodygroup switch example
Reply With Quote #12

Quote:
Originally Posted by Hanna View Post
Right. No anim and body switch bug.
http://image.prntscr.com/image/922e3...581a962ea.jpeg

Sub-Model or Skin?
Syturi0 is offline
PRoSToTeM@
Veteran Member
Join Date: Jan 2010
Location: Russia, Ivanovo
Old 09-05-2016 , 13:54   Re: Viewmodel bodygroup switch example
Reply With Quote #13

Quote:
Originally Posted by Syturi0 View Post
Sub.
__________________
PRoSToTeM@ is offline
Send a message via ICQ to PRoSToTeM@ Send a message via Skype™ to PRoSToTeM@
Hanna
Member
Join Date: Sep 2016
Old 09-05-2016 , 15:38   Re: Viewmodel bodygroup switch example
Reply With Quote #14

Upd. Fixed the shoot anim while switching to cl_lw 0
I've used playback event to avoid this, so now shouldn't be any bug.
Hanna is offline
KORD_12.7
Senior Member
Join Date: Aug 2009
Location: Russia, Vladivostok
Old 09-07-2016 , 10:12   Re: Viewmodel bodygroup switch example
Reply With Quote #15

Lol. What a mess, your style is some kind of shit.
__________________

Vi Veri Veniversum Vivus Vici
Russian Half-Life and Adrenaline Gamer community
KORD_12.7 is offline
Send a message via ICQ to KORD_12.7
Syturi0
Veteran Member
Join Date: Aug 2014
Location: Your mom house -Portugal
Old 09-07-2016 , 10:41   Re: Viewmodel bodygroup switch example
Reply With Quote #16

Quote:
Originally Posted by Hanna View Post
xD, it's easy to read if you know what everything does. But for newbies should be hard, yes.
It has nothing to do with newbies.
This is the oposite of "easy to read", in fact the first time i saw this code i tought it was a troll. It is extremely messy and NOT easy to read. You didn't even used spaces or blank lines...

Anyways, will you finish this? (All weapons code, Shells working, and maybe some .mdl with sub-models to download and test)

Last edited by Syturi0; 09-07-2016 at 10:41.
Syturi0 is offline
addons_zz
Veteran Member
Join Date: Aug 2015
Location: Dreams, zz
Old 09-07-2016 , 11:21   Re: Viewmodel bodygroup switch example
Reply With Quote #17

Quote:
Originally Posted by KORD_12.7 View Post
Lol. What a mess, your style is some kind of shit.
If works for him, no problem. That is why I use https://github.com/uncrustify/uncrustify to read someone else's code.



PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

// CBasePlayerItem
stock m_pPlayer 41// CBasePlayer *

// CBasePlayerWeapon
stock m_flNextPrimaryAttack 46// float
stock m_flTimeWeaponIdle    48// float

// CBaseMonster
stock m_flNextAttack 83// float

// CBasePlayer
stock m_pActiveItem 373// CBasePlayerItem *

#define NEW_KNIFE     7853 // Weapon Key, Any
#define NewWeapon(%0) ( pev( %0, pev_impulse ) == NEW_KNIFE )

new const V_GIRL_KNIFE[] = "models/v_knife_w.mdl";
new 
cvar_switch_sexg_iKnife_w;

public 
plugin_init()
{
    
register_plugin"weapon_knife""1.2""Hanna" );
    
register_forwardFM_UpdateClientData"Forward_UpdateClientData_Post");

    
RegisterHamHam_Item_Deploy"weapon_knife""HamF_Item_Deploy_Post");
    
RegisterHamHam_Weapon_PrimaryAttack"weapon_knife""HamF_Weapon_PrimaryAttack" );
    
RegisterHamHam_Weapon_SecondaryAttack"weapon_knife""HamF_Weapon_SecondaryAttack" );
    
RegisterHamHam_Weapon_WeaponIdle"weapon_knife""HamF_Weapon_WeaponIdle" );

    
g_iKnife_w      engfuncEngFunc_AllocStringV_GIRL_KNIFE );
    
cvar_switch_sex register_cvar"switch_sex""1" );
}

public 
plugin_precache()
{
    
engfuncEngFunc_PrecacheModelV_GIRL_KNIFE );
}

public 
Forward_UpdateClientData_PostidiWeaponsiCD )
{
    static 
iEntiEnt get_pdata_cbaseidm_pActiveItem);

    if( !
is_user_aliveid ) || !pev_validiEnt ) )
    {
        return 
FMRES_IGNORED;
    }

    if( !
NewWeaponiEnt ) )
    {
        return 
FMRES_IGNORED;
    }

    
set_cdiCDCD_ID);

    return 
FMRES_HANDLED;
}

public 
HamF_Item_Deploy_PostiEnt )
{
    static 
idid get_pdata_cbaseiEntm_pPlayer);

    new 
model64 ];  pevidpev_viewmodel2model63 );

    if( 
equalmodel"models/v_knife.mdl" ) )
    {
        
set_peviEntpev_impulseNEW_KNIFE );
    }

    if( !
NewWeaponiEnt ) )
    {
        return 
HAM_IGNORED;
    }

    
set_pdata_floatidm_flNextAttack1.0);
    
set_pdata_floatiEntm_flTimeWeaponIdle1.2);

    if( 
get_pcvar_numcvar_switch_sex ) )
    {
        
set_pevidpev_viewmodelg_iKnife_w );
    }

    
UTIL_SendWeaponAnimid);

    return 
HAM_IGNORED;
}

public 
HamF_Weapon_PrimaryAttackiEnt )
{
    if( !
NewWeaponiEnt ) )
    {
        return 
HAM_IGNORED;
    }

    static 
idid get_pdata_cbaseiEntm_pPlayer);

    
ExecuteHamHam_Weapon_PrimaryAttackiEnt );
    
set_pdata_floatidm_flNextAttack0.4);
    
set_pdata_floatiEntm_flTimeWeaponIdle1.2);

    if( 
pevidpev_weaponanim ) == )
    {
        
UTIL_SendWeaponAnimid);
    }
    else
    {
        
UTIL_SendWeaponAnimid);
    }

    return 
HAM_SUPERCEDE;
}

public 
HamF_Weapon_SecondaryAttackiEnt )
{
    if( !
NewWeaponiEnt ) )
    {
        return 
HAM_IGNORED;
    }

    static 
idid get_pdata_cbaseiEntm_pPlayer);

    
ExecuteHamHam_Weapon_PrimaryAttackiEnt );
    
set_pdata_floatidm_flNextAttack1.0);
    
set_pdata_floatiEntm_flTimeWeaponIdle1.5);
    
UTIL_SendWeaponAnimid);

    return 
HAM_SUPERCEDE;
}

public 
HamF_Weapon_WeaponIdleiEnt )
{
    if( !
NewWeaponiEnt ) )
    {
        return 
HAM_IGNORED;
    }

    static 
idid get_pdata_cbaseiEntm_pPlayer);

    if( 
get_pdata_floatiEntm_flTimeWeaponIdle) > 0.0 )
    {
        return 
HAM_IGNORED;
    }

    
UTIL_SendWeaponAnimid);
    
set_pdata_floatiEntm_flTimeWeaponIdle13.0);

    return 
HAM_SUPERCEDE;
}

UTIL_SendWeaponAnimpPlayeriAnim )
{
    
set_pevpPlayerpev_weaponanimiAnim );
    
message_beginMSG_ONE_UNRELIABLESVC_WEAPONANIM_pPlayer );
    
write_byteiAnim );
    
write_byte);
    
message_end();

__________________
Plugin: Sublime Text - ITE , Galileo
Multi-Mod: Manager / Plugin / Server

Support me on Patreon, Ko-fi, Liberapay or Open Collective

Last edited by addons_zz; 09-07-2016 at 13:51. Reason: misspelling
addons_zz is offline
Syturi0
Veteran Member
Join Date: Aug 2014
Location: Your mom house -Portugal
Old 09-07-2016 , 11:57   Re: Viewmodel bodygroup switch example
Reply With Quote #18

Quote:
Originally Posted by addons_zz View Post
If works for him, no problem. That is why I use https://github.com/uncrustify/uncrustify to read something else's code.



PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

// CBasePlayerItem
stock m_pPlayer 41// CBasePlayer *

// CBasePlayerWeapon
stock m_flNextPrimaryAttack 46// float
stock m_flTimeWeaponIdle    48// float

// CBaseMonster
stock m_flNextAttack 83// float

// CBasePlayer
stock m_pActiveItem 373// CBasePlayerItem *

#define NEW_KNIFE     7853 // Weapon Key, Any
#define NewWeapon(%0) ( pev( %0, pev_impulse ) == NEW_KNIFE )

new const V_GIRL_KNIFE[] = "models/v_knife_w.mdl";
new 
cvar_switch_sexg_iKnife_w;

public 
plugin_init()
{
    
register_plugin"weapon_knife""1.2""Hanna" );
    
register_forwardFM_UpdateClientData"Forward_UpdateClientData_Post");

    
RegisterHamHam_Item_Deploy"weapon_knife""HamF_Item_Deploy_Post");
    
RegisterHamHam_Weapon_PrimaryAttack"weapon_knife""HamF_Weapon_PrimaryAttack" );
    
RegisterHamHam_Weapon_SecondaryAttack"weapon_knife""HamF_Weapon_SecondaryAttack" );
    
RegisterHamHam_Weapon_WeaponIdle"weapon_knife""HamF_Weapon_WeaponIdle" );

    
g_iKnife_w      engfuncEngFunc_AllocStringV_GIRL_KNIFE );
    
cvar_switch_sex register_cvar"switch_sex""1" );
}

public 
plugin_precache()
{
    
engfuncEngFunc_PrecacheModelV_GIRL_KNIFE );
}

public 
Forward_UpdateClientData_PostidiWeaponsiCD )
{
    static 
iEntiEnt get_pdata_cbaseidm_pActiveItem);

    if( !
is_user_aliveid ) || !pev_validiEnt ) )
    {
        return 
FMRES_IGNORED;
    }

    if( !
NewWeaponiEnt ) )
    {
        return 
FMRES_IGNORED;
    }

    
set_cdiCDCD_ID);

    return 
FMRES_HANDLED;
}

public 
HamF_Item_Deploy_PostiEnt )
{
    static 
idid get_pdata_cbaseiEntm_pPlayer);

    new 
model64 ];  pevidpev_viewmodel2model63 );

    if( 
equalmodel"models/v_knife.mdl" ) )
    {
        
set_peviEntpev_impulseNEW_KNIFE );
    }

    if( !
NewWeaponiEnt ) )
    {
        return 
HAM_IGNORED;
    }

    
set_pdata_floatidm_flNextAttack1.0);
    
set_pdata_floatiEntm_flTimeWeaponIdle1.2);

    if( 
get_pcvar_numcvar_switch_sex ) )
    {
        
set_pevidpev_viewmodelg_iKnife_w );
    }

    
UTIL_SendWeaponAnimid);

    return 
HAM_IGNORED;
}

public 
HamF_Weapon_PrimaryAttackiEnt )
{
    if( !
NewWeaponiEnt ) )
    {
        return 
HAM_IGNORED;
    }

    static 
idid get_pdata_cbaseiEntm_pPlayer);

    
ExecuteHamHam_Weapon_PrimaryAttackiEnt );
    
set_pdata_floatidm_flNextAttack0.4);
    
set_pdata_floatiEntm_flTimeWeaponIdle1.2);

    if( 
pevidpev_weaponanim ) == )
    {
        
UTIL_SendWeaponAnimid);
    }
    else
    {
        
UTIL_SendWeaponAnimid);
    }

    return 
HAM_SUPERCEDE;
}

public 
HamF_Weapon_SecondaryAttackiEnt )
{
    if( !
NewWeaponiEnt ) )
    {
        return 
HAM_IGNORED;
    }

    static 
idid get_pdata_cbaseiEntm_pPlayer);

    
ExecuteHamHam_Weapon_PrimaryAttackiEnt );
    
set_pdata_floatidm_flNextAttack1.0);
    
set_pdata_floatiEntm_flTimeWeaponIdle1.5);
    
UTIL_SendWeaponAnimid);

    return 
HAM_SUPERCEDE;
}

public 
HamF_Weapon_WeaponIdleiEnt )
{
    if( !
NewWeaponiEnt ) )
    {
        return 
HAM_IGNORED;
    }

    static 
idid get_pdata_cbaseiEntm_pPlayer);

    if( 
get_pdata_floatiEntm_flTimeWeaponIdle) > 0.0 )
    {
        return 
HAM_IGNORED;
    }

    
UTIL_SendWeaponAnimid);
    
set_pdata_floatiEntm_flTimeWeaponIdle13.0);

    return 
HAM_SUPERCEDE;
}

UTIL_SendWeaponAnimpPlayeriAnim )
{
    
set_pevpPlayerpev_weaponanimiAnim );
    
message_beginMSG_ONE_UNRELIABLESVC_WEAPONANIM_pPlayer );
    
write_byteiAnim );
    
write_byte);
    
message_end();

Thank you! Much better.
Syturi0 is offline
Craxor
Veteran Member
Join Date: Jan 2016
Location: Romania
Old 09-07-2016 , 13:28   Re: Viewmodel bodygroup switch example
Reply With Quote #19

@addons, is 'someone else code' not something else ) - But niceeee program, thank you !
__________________
Project: Among Us
Craxor is offline
Send a message via ICQ to Craxor
addons_zz
Veteran Member
Join Date: Aug 2015
Location: Dreams, zz
Old 09-07-2016 , 13:50   Re: Viewmodel bodygroup switch example
Reply With Quote #20

Thanks, I could swear I wrote someone else's.
__________________
Plugin: Sublime Text - ITE , Galileo
Multi-Mod: Manager / Plugin / Server

Support me on Patreon, Ko-fi, Liberapay or Open Collective

Last edited by addons_zz; 09-07-2016 at 13:51. Reason: misspelling
addons_zz is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 21:45.


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