1. sayfa (Toplam 1 sayfa)

m4a1 silencer remember like csdm

Gönderilme zamanı: Cum Oca 15, 2021 9:20 pm
gönderen Midnight1338
I search for plugin that after player been killed if he had previous used silencer on m4a1 after he respawn, and he choose again m4a1 silencer to be on weapon so he have not to put it again, i found 1 plugin if can be reworked on REAPI

Kod: Tümünü seç

#include < amxmodx > 
#include < hamsandwich > 
#include < cstrike >

const m_pPlayer = 41
const XO_WEAPON = 4
new szm4a1[ 33 ]

public plugin_init( ) {
	register_plugin("Silencer", "1.0", "");

	RegisterHam( Ham_Item_Deploy, "weapon_m4a1", "OnM4A1_Deploy", 1 ); 
	RegisterHam( Ham_Weapon_SecondaryAttack, "weapon_m4a1", "OnM4A1_SecondaryAttack", 1 );
} 
public OnM4A1_Deploy( m4a1 ) { 
	new id = get_pdata_cbase( m4a1, m_pPlayer, XO_WEAPON );

	if( szm4a1[ id ] )
		cs_set_weapon_silen( m4a1, 1, 0 );
}
public OnM4A1_SecondaryAttack( m4a1 ) { 
	new id = get_pdata_cbase( m4a1, m_pPlayer, XO_WEAPON );
	
	if( szm4a1[ id ] )
		szm4a1[ id ] = false;
	else
		szm4a1[ id ] = true; 
}

m4a1 silencer remember like csdm

Gönderilme zamanı: Cmt Oca 16, 2021 1:03 am
gönderen Colditz
Can you try it? @Midnight1338

Kod: Tümünü seç

#include <amxmodx>
#include <hamsandwich>
#include <reapi>

new bool:g_blSilencer[MAX_CLIENTS + 1];

public plugin_init() {
	register_plugin("M4a1 Silencer", "1.0", "PurposeLess");

	RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_m4a1", "@Ham_Weapon_SecondaryAttack_Post", .Post = true);
	RegisterHookChain(RG_CBasePlayer_AddPlayerItem, "@CBasePlayer_AddPlayerItem_Post", .post = true);
}

@Ham_Weapon_SecondaryAttack_Post(pWeapon) {
	new pPlayer = get_member(pWeapon, m_pPlayer);

	g_blSilencer[pPlayer] = bool:get_member(pWeapon, m_Weapon_bSecondarySilencerOn);
}

@CBasePlayer_AddPlayerItem_Post(const pPlayer, const pItem) {
	if(get_member(pItem, m_iId) != WEAPON_M4A1) {
		return;
	}

	set_member(pItem, m_Weapon_bSecondarySilencerOn, g_blSilencer[pPlayer]);
}

m4a1 silencer remember like csdm

Gönderilme zamanı: Cmt Oca 16, 2021 4:56 pm
gönderen Midnight1338
Colditz yazdı: Cmt Oca 16, 2021 1:03 am Can you try it? @Midnight1338

Kod: Tümünü seç

#include <amxmodx>
#include <hamsandwich>
#include <reapi>

new bool:g_blSilencer[MAX_CLIENTS + 1];

public plugin_init() {
	register_plugin("M4a1 Silencer", "1.0", "PurposeLess");

	RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_m4a1", "@Ham_Weapon_SecondaryAttack_Post", .Post = true);
	RegisterHookChain(RG_CBasePlayer_AddPlayerItem, "@CBasePlayer_AddPlayerItem_Post", .post = true);
}

@Ham_Weapon_SecondaryAttack_Post(pWeapon) {
	new pPlayer = get_member(pWeapon, m_pPlayer);

	g_blSilencer[pPlayer] = bool:get_member(pWeapon, m_Weapon_bSecondarySilencerOn);
}

@CBasePlayer_AddPlayerItem_Post(const pPlayer, const pItem) {
	if(get_member(pItem, m_iId) != WEAPON_M4A1) {
		return;
	}

	set_member(pItem, m_Weapon_bSecondarySilencerOn, g_blSilencer[pPlayer]);
}
not working

m4a1 silencer remember like csdm

Gönderilme zamanı: Pzr Oca 17, 2021 11:57 am
gönderen Midnight1338
Thanks to @Colditz fixed problem, thread can be locked

m4a1 silencer remember like csdm

Gönderilme zamanı: Pzr Oca 17, 2021 6:21 pm
gönderen Colditz
Midnight1338 yazdı: Pzr Oca 17, 2021 11:57 am Thanks to @Colditz fixed problem, thread can be locked
You're welcome