Raised This Month: $51 Target: $400
 12% 

How to fixed ZP Items Rock Guitar


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
bakugan
Member
Join Date: Dec 2023
Location: Bulgaria
Old 03-29-2024 , 17:55   How to fixed ZP Items Rock Guitar
Reply With Quote #1

Give some help to this problem

Demo:

https://prnt.sc/AbSXwBtIN3B-


Code:
/* Plugin generated by AMXX-Studio */

#include < amxmodx >
#include < fun >
#include < cstrike >
#include < engine >
#include < fakemeta >
#include < hamsandwich >
#include < zombieplague >
#include < zmvip >

#define PLUGIN "[ V.I.P ] Extra Item"
#define VERSION "ZM4.3"
#define AUTHOR "HarveyWNvm LLC."


#define WEAPON_BITSUM ((1<<CSW_GALIL))
#define ITEM_COST 35

new const V_GUITAR_MDL[64] = "models/zombie_plague/v_rock_guitar.mdl";
new const P_GUITAR_MDL[64] = "models/zombie_plague/p_rock_guitar.mdl";
new const W_GUITAR_MDL[64] = "models/zombie_plague/w_rock_guitar.mdl";
new const OLD_W_MDL[64] = "models/w_galil.mdl";

new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }

new const GUITAR_SOUNDS[][] = {"weapons/gt_clipin.wav", "weapons/gt_clipon.wav", "weapons/gt_clipout.wav", "weapons/gt_draw.wav"}

new const ZOOM_SOUND[] = "weapons/zoom.wav";
new const SHOT_SOUND[] = "weapons/rguitar.wav";

new g_itemid , g_has_guitar[33] , g_hamczbots , g_clip_ammo[33] , g_has_zoom[33] , blood_spr[2] , cvar_rockguitar_damage_x , cvar_rockguitar_clip , cvar_rockguitar_bpammo , cvar_rockguitar_shotspd , cvar_rockguitar_oneround , cvar_botquota;

public plugin_init()
{
	// Plugin Register
	register_plugin("[ZP] Extra Item: Rock Guitar", "VERSION", "HarveyWNvm LLC.");

	// Extra Item Register
	g_itemid /= zv_register_extra_item("[ZP] Rock Guitar", "X3 DMG", "ZV_TEAM_HUMAN")

	// Cvars Register
	cvar_rockguitar_damage_x = register_cvar("zp_rockguitar_damage_x", "5.0");
	cvar_rockguitar_clip = register_cvar("zp_rockguitar_clip", "40");
	cvar_rockguitar_bpammo = register_cvar("zp_rockguitar_bpammo", "200");
	cvar_rockguitar_shotspd = register_cvar("zp_rockguitar_shot_speed", "0.11");
	cvar_rockguitar_oneround = register_cvar("zp_rockguitar_oneround", "0");

	// Cvar Pointer
	cvar_botquota = get_cvar_pointer("bot_quota");

	// Events
	register_event("CurWeapon", "event_CurWeapon", "b", "1=1");
	register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0");
	register_event("DeathMsg", "event_DeathMsg", "a", "1>0");

	// Forwards
	register_forward(FM_SetModel, "fw_SetModel");
	register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1);
	register_forward(FM_CmdStart, "fw_CmdStart");

	// Hams
	RegisterHam(Ham_Item_PostFrame, "weapon_galil", "fw_ItemPostFrame");
	RegisterHam(Ham_Item_AddToPlayer, "weapon_galil", "fw_AddToPlayer");
	RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_galil", "fw_PrimaryAttack");
	RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_galil", "fw_PrimaryAttack_Post", 1);
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage");
}

public plugin_precache()
{
	// Models
	precache_model(V_GUITAR_MDL);
	precache_model(P_GUITAR_MDL);
	precache_model(W_GUITAR_MDL);
	precache_model(OLD_W_MDL);

	// Blood Sprites
	blood_spr[0] = precache_model("sprites/blood.spr");
	blood_spr[1] = precache_model("sprites/bloodspray.spr");

	// Sounds
	for(new i = 0; i < sizeof GUITAR_SOUNDS; i++) precache_sound(GUITAR_SOUNDS[i]);
	precache_sound(ZOOM_SOUND);
	precache_sound(SHOT_SOUND);
}

public client_putinserver(id)
{
	g_has_guitar[id] = false;

	if (is_user_bot(id) && !g_hamczbots && cvar_botquota)
	{
		set_task(0.1, "register_ham_czbots", id);
	}
}

public client_disconnect(id)
{
	g_has_guitar[id] = false;
}

public client_connected(id)
{
	g_has_guitar[id] = false;
}

public zp_user_humanized_post(id, human)
{
	if(get_pcvar_num(cvar_rockguitar_oneround))
		g_has_guitar[id] = false;
}

public zp_user_infected_post(id)
{
	g_has_guitar[id] = false;
}

public register_ham_czbots(id)
{
	if (g_hamczbots || !is_user_bot(id) || !get_pcvar_num(cvar_botquota))
		return;

	RegisterHamFromEntity(Ham_TakeDamage, id, "fw_TakeDamage");

	g_hamczbots = true;
}

public zv_extra_item_selected(player, itemid)
{
	if(itemid == g_itemid)
	{
		if(user_has_weapon(player, CSW_GALIL))
		{
			drop_primary(player);
		}
		g_has_guitar[player] = true;
		new wpnid = give_item(player, "weapon_galil");
		client_print_color(player, "!g[ZP] !yYou bought !g%s!y.", ITEM_NAME);
		cs_set_weapon_ammo(wpnid, get_pcvar_num(cvar_rockguitar_clip));
		cs_set_user_bpammo(player, CSW_GALIL, get_pcvar_num(cvar_rockguitar_bpammo));
	}
}

public event_CurWeapon(id)
{
	if (!is_user_alive(id) || zp_get_user_zombie(id)) return PLUGIN_HANDLED;
	
	if (read_data(2) == CSW_GALIL && g_has_guitar[id])
	{
		set_pev(id, pev_viewmodel2, V_GUITAR_MDL);
		set_pev(id, pev_weaponmodel2, P_GUITAR_MDL);
	}
	return PLUGIN_CONTINUE;
}

public event_RoundStart()
{
	if(get_pcvar_num(cvar_rockguitar_oneround))
	{
		for (new i = 1; i <= get_maxplayers(); i++)
			g_has_guitar[i] = false;
	}
}

public event_DeathMsg()
{
	g_has_guitar[read_data(2)] = false;
}

public fw_SetModel(entity, model[])
{
	if(!pev_valid(entity) || !equal(model, OLD_W_MDL)) return FMRES_IGNORED;
	
	static szClassName[33]; pev(entity, pev_classname, szClassName, charsmax(szClassName));
	if(!equal(szClassName, "weaponbox")) return FMRES_IGNORED;
	
	static owner, wpn;
	owner = pev(entity, pev_owner);
	wpn = find_ent_by_owner(-1, "weapon_galil", entity);
	
	if(g_has_guitar[owner] && pev_valid(wpn))
	{
		g_has_guitar[owner] = false;
		set_pev(wpn, pev_impulse, 43555);
		engfunc(EngFunc_SetModel, entity, W_GUITAR_MDL);
		
		return FMRES_SUPERCEDE;
	}
	return FMRES_IGNORED;
}

public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
	if(is_user_alive(id) && get_user_weapon(id) == CSW_GALIL && g_has_guitar[id])
	{
		set_cd(cd_handle, CD_flNextAttack, halflife_time () + 0.001);
	}
}

public fw_CmdStart(id, uc_handle, seed)
{
	if(is_user_alive(id) &&  get_user_weapon(id) == CSW_GALIL && g_has_guitar[id])
	{
		if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !(pev(id, pev_oldbuttons) & IN_ATTACK2))
		{
			if(!g_has_zoom[id])
			{
				g_has_zoom[id] = true;
				cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 1);
				emit_sound(id, CHAN_ITEM, ZOOM_SOUND, 0.20, 2.40, 0, 100);
			}
			else
			{
				g_has_zoom[id] = false;
				cs_set_user_zoom(id, CS_RESET_ZOOM, 0);
			}
		}

		if (g_has_zoom[id] && (pev(id, pev_button) & IN_RELOAD))
		{
			g_has_zoom[id] = false;
			cs_set_user_zoom(id, CS_RESET_ZOOM, 0);
		}
	}
}

public fw_ItemPostFrame(weapon_entity)
{
	new id = pev(weapon_entity, pev_owner);

	if(g_has_guitar[id] && is_user_alive(id))
	{
		static iClipExtra; iClipExtra = get_pcvar_num(cvar_rockguitar_clip);

		new Float:flNextAttack = get_pdata_float(id, 83, 5);

		new iBpAmmo = cs_get_user_bpammo(id, CSW_GALIL);
		new iClip = get_pdata_int(weapon_entity, 51, 4);

		new fInReload = get_pdata_int(weapon_entity, 54, 4);

		if(fInReload && flNextAttack <= 0.0)
		{
			new Clp = min(iClipExtra - iClip, iBpAmmo);
			set_pdata_int(weapon_entity, 51, iClip + Clp, 4);
			cs_set_user_bpammo(id, CSW_GALIL, iBpAmmo-Clp);
			set_pdata_int(weapon_entity, 54, 0, 4);
	    }
    }
}

public fw_AddToPlayer(weapon_entity, id)
{
	if(pev_valid(weapon_entity) && is_user_connected(id) && pev(weapon_entity, pev_impulse) == 43555)
	{
		g_has_guitar[id] = true;
		set_pev(weapon_entity, pev_impulse, 0);
		return HAM_HANDLED;
	}
	return HAM_IGNORED;
}

public fw_PrimaryAttack(weapon_entity)
{
	new id = get_pdata_cbase(weapon_entity, 41, 4);
	
	if(g_has_guitar[id])
	{
		g_clip_ammo[id] = cs_get_weapon_ammo(weapon_entity);
	}
}

public fw_PrimaryAttack_Post(weapon_entity)
{
	new id = get_pdata_cbase(weapon_entity, 41, 4);

	if (g_has_guitar[id] && g_clip_ammo[id])
	{
		set_pdata_float(weapon_entity, 46, get_pcvar_float(cvar_rockguitar_shotspd), 4);
		emit_sound(id, CHAN_WEAPON, SHOT_SOUND[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
		UTIL_PlayWeaponAnimation(id, random_num(3, 5));
		UTIL_MakeBloodAndBulletHoles(id);
	}
}

public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
	if(is_user_alive(attacker) && get_user_weapon(attacker) == CSW_GALIL && g_has_guitar[attacker])
	{
		SetHamParamFloat(4, damage * get_pcvar_float(cvar_rockguitar_damage_x));
	}
}

stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
	set_pev(Player, pev_weaponanim, Sequence);
	
	message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player);
	write_byte(Sequence);
	write_byte(pev(Player, pev_body));
	message_end();
}

stock UTIL_MakeBloodAndBulletHoles(id)
{
	new aimOrigin[3], target, body;
	get_user_origin(id, aimOrigin, 3);
	get_user_aiming(id, target, body);
	
	if(target > 0 && target <= get_maxplayers() && zp_get_user_zombie(target))
	{
		new Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3];
		pev(id, pev_origin, fStart);
		
		velocity_by_aim(id, 64, fVel);
		
		fStart[0] = float(aimOrigin[0]);
		fStart[1] = float(aimOrigin[1]);
		fStart[2] = float(aimOrigin[2]);
		fEnd[0] = fStart[0]+fVel[0];
		fEnd[1] = fStart[1]+fVel[1];
		fEnd[2] = fStart[2]+fVel[2];
		
		new res;
		engfunc(EngFunc_TraceLine, fStart, fEnd, 0, target, res);
		get_tr2(res, TR_vecEndPos, fRes);
		
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
		write_byte(TE_BLOODSPRITE);
		write_coord(floatround(fStart[0]));
		write_coord(floatround(fStart[1]));
		write_coord(floatround(fStart[2]));
		write_short(blood_spr[1]);
		write_short(blood_spr[0]);
		write_byte(70);
		write_byte(random_num(1,2));
		message_end();
		
		
	} 
	else if(!is_user_connected(target))
	{
		if(target)
		{
			message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
			write_byte(TE_DECAL);
			write_coord(aimOrigin[0]);
			write_coord(aimOrigin[1]);
			write_coord(aimOrigin[2]);
			write_byte(GUNSHOT_DECALS[random_num(0, sizeof GUNSHOT_DECALS -1)]);
			write_short(target);
			message_end();
		} 
		else 
		{
			message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
			write_byte(TE_WORLDDECAL);
			write_coord(aimOrigin[0]);
			write_coord(aimOrigin[1]);
			write_coord(aimOrigin[2]);
			write_byte(GUNSHOT_DECALS[random_num(0, sizeof GUNSHOT_DECALS -1)]);
			message_end()
		}
		
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
		write_byte(TE_GUNSHOTDECAL);
		write_coord(aimOrigin[0]);
		write_coord(aimOrigin[1]);
		write_coord(aimOrigin[2]);
		write_short(id);
		write_byte(GUNSHOT_DECALS[random_num(0, sizeof GUNSHOT_DECALS -1 )]);
		message_end();
	}
}

stock drop_primary(id)
{
	new weapons[32], num;
	get_user_weapons(id, weapons, num);
	for (new i = 0; i < num; i++)
	{
		if (WEAPON_BITSUM & (1<<weapons[i]))
		{
			static wname[32];
			get_weaponname(weapons[i], wname, sizeof wname - 1);
			engclient_cmd(id, "drop", wname);
		}
	}
}

stock client_print_color(const id,const input[], any:...)
{
	new msg[191], players[32], count = 1; vformat(msg,190,input,3);
	replace_all(msg,190,"!g","^4");    // green
	replace_all(msg,190,"!y","^1");    // normal
	replace_all(msg,190,"!t","^3");    // team
        
	if (id) players[0] = id; else get_players(players,count,"ch");
        
	for (new i=0;i<count;i++)
	{
		if (is_user_connected(players[i]))
		{
			message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("SayText"),_,players[i]);
			write_byte(players[i]);
			write_string(msg);
			message_end();
		}
	}
}
__________________
WebSite
bakugan is offline
georgik57
Veteran Member
Join Date: Oct 2008
Location: 🎧Music World
Old 03-30-2024 , 13:08   Re: How to fixed ZP Items Rock Guitar
Reply With Quote #2

PHP Code:
g_itemid /= zv_register_extra_item("[ZP] Rock Guitar""X3 DMG""ZV_TEAM_HUMAN"
->
PHP Code:
g_itemid zv_register_extra_item("[ZP] Rock Guitar""X3 DMG""ZV_TEAM_HUMAN"
The rest of the errors are from your local cstrike include file. Download a clean scripting folder from the site and try again.
__________________
georgik57 is offline
Send a message via MSN to georgik57 Send a message via Yahoo to georgik57 Send a message via Skype™ to georgik57
bakugan
Member
Join Date: Dec 2023
Location: Bulgaria
Old 03-30-2024 , 14:34   Re: How to fixed ZP Items Rock Guitar
Reply With Quote #3

Quote:
Originally Posted by georgik57 View Post
PHP Code:
g_itemid /= zv_register_extra_item("[ZP] Rock Guitar""X3 DMG""ZV_TEAM_HUMAN"
->
PHP Code:
g_itemid zv_register_extra_item("[ZP] Rock Guitar""X3 DMG""ZV_TEAM_HUMAN"
The rest of the errors are from your local cstrike include file. Download a clean scripting folder from the site and try again.
don't solvet

Demo:
https://prnt.sc/A8HeljobllI8
__________________
WebSite
bakugan is offline
georgik57
Veteran Member
Join Date: Oct 2008
Location: 🎧Music World
Old 03-30-2024 , 14:53   Re: How to fixed ZP Items Rock Guitar
Reply With Quote #4

Code:
//// csadsfdsa.sma
// Header size:           2408 bytes
// Code size:            13736 bytes
// Data size:             5060 bytes
// Stack/heap size:      16384 bytes; estimated max. usage=255 cells (1020 bytes)
// Total requirements:   37588 bytes
// Done.
//
// Compilation Time: 0,19 sec
// ----------------------------------------
PHP Code:
/* Plugin generated by AMXX-Studio */

#include < amxmodx >
#include < fun >
#include < cstrike >
#include < engine >
#include < fakemeta >
#include < hamsandwich >
#include < zombieplague >
#include < zmvip >

#define PLUGIN "[ V.I.P ] Extra Item"
#define VERSION "ZM4.3"
#define AUTHOR "HarveyWNvm LLC."


#define WEAPON_BITSUM ((1<<CSW_GALIL))
#define ITEM_COST 35

new const V_GUITAR_MDL[64] = "models/zombie_plague/v_rock_guitar.mdl";
new const 
P_GUITAR_MDL[64] = "models/zombie_plague/p_rock_guitar.mdl";
new const 
W_GUITAR_MDL[64] = "models/zombie_plague/w_rock_guitar.mdl";
new const 
OLD_W_MDL[64] = "models/w_galil.mdl";

new const 
GUNSHOT_DECALS[] = { 4142434445 }

new const 
GUITAR_SOUNDS[][] = {"weapons/gt_clipin.wav""weapons/gt_clipon.wav""weapons/gt_clipout.wav""weapons/gt_draw.wav"}

new const 
ZOOM_SOUND[] = "weapons/zoom.wav";
new const 
SHOT_SOUND[] = "weapons/rguitar.wav";

new 
g_itemid g_has_guitar[33] , g_hamczbots g_clip_ammo[33] , g_has_zoom[33] , blood_spr[2] , cvar_rockguitar_damage_x cvar_rockguitar_clip cvar_rockguitar_bpammo cvar_rockguitar_shotspd cvar_rockguitar_oneround cvar_botquota;

public 
plugin_init()
{
    
// Plugin Register
    
register_plugin("[ZP] Extra Item: Rock Guitar""VERSION""HarveyWNvm LLC.");

    
// Extra Item Register
    
g_itemid zv_register_extra_item("[ZP] Rock Guitar""X3 DMG"35ZV_TEAM_HUMAN)

    
// Cvars Register
    
cvar_rockguitar_damage_x register_cvar("zp_rockguitar_damage_x""5.0");
    
cvar_rockguitar_clip register_cvar("zp_rockguitar_clip""40");
    
cvar_rockguitar_bpammo register_cvar("zp_rockguitar_bpammo""200");
    
cvar_rockguitar_shotspd register_cvar("zp_rockguitar_shot_speed""0.11");
    
cvar_rockguitar_oneround register_cvar("zp_rockguitar_oneround""0");

    
// Cvar Pointer
    
cvar_botquota get_cvar_pointer("bot_quota");

    
// Events
    
register_event("CurWeapon""event_CurWeapon""b""1=1");
    
register_event("HLTV""event_RoundStart""a""1=0""2=0");
    
register_event("DeathMsg""event_DeathMsg""a""1>0");

    
// Forwards
    
register_forward(FM_SetModel"fw_SetModel");
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1);
    
register_forward(FM_CmdStart"fw_CmdStart");

    
// Hams
    
RegisterHam(Ham_Item_PostFrame"weapon_galil""fw_ItemPostFrame");
    
RegisterHam(Ham_Item_AddToPlayer"weapon_galil""fw_AddToPlayer");
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_galil""fw_PrimaryAttack");
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_galil""fw_PrimaryAttack_Post"1);
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
}

public 
plugin_precache()
{
    
// Models
    
precache_model(V_GUITAR_MDL);
    
precache_model(P_GUITAR_MDL);
    
precache_model(W_GUITAR_MDL);
    
precache_model(OLD_W_MDL);

    
// Blood Sprites
    
blood_spr[0] = precache_model("sprites/blood.spr");
    
blood_spr[1] = precache_model("sprites/bloodspray.spr");

    
// Sounds
    
for(new 0sizeof GUITAR_SOUNDSi++) precache_sound(GUITAR_SOUNDS[i]);
    
precache_sound(ZOOM_SOUND);
    
precache_sound(SHOT_SOUND);
}

public 
client_putinserver(id)
{
    
g_has_guitar[id] = false;

    if (
is_user_bot(id) && !g_hamczbots && cvar_botquota)
    {
        
set_task(0.1"register_ham_czbots"id);
    }
}

public 
client_disconnect(id)
{
    
g_has_guitar[id] = false;
}

public 
client_connected(id)
{
    
g_has_guitar[id] = false;
}

public 
zp_user_humanized_post(idhuman)
{
    if(
get_pcvar_num(cvar_rockguitar_oneround))
        
g_has_guitar[id] = false;
}

public 
zp_user_infected_post(id)
{
    
g_has_guitar[id] = false;
}

public 
register_ham_czbots(id)
{
    if (
g_hamczbots || !is_user_bot(id) || !get_pcvar_num(cvar_botquota))
        return;

    
RegisterHamFromEntity(Ham_TakeDamageid"fw_TakeDamage");

    
g_hamczbots true;
}

public 
zv_extra_item_selected(playeritemid)
{
    if(
itemid == g_itemid)
    {
        if(
user_has_weapon(playerCSW_GALIL))
        {
            
drop_primary(player);
        }
        
g_has_guitar[player] = true;
        new 
wpnid give_item(player"weapon_galil");
        
client_print_color(player"!g[ZP] !yYou bought !gRock Guitar!y.");
        
cs_set_weapon_ammo(wpnidget_pcvar_num(cvar_rockguitar_clip));
        
cs_set_user_bpammo(playerCSW_GALILget_pcvar_num(cvar_rockguitar_bpammo));
    }
}

public 
event_CurWeapon(id)
{
    if (!
is_user_alive(id) || zp_get_user_zombie(id)) return PLUGIN_HANDLED;
    
    if (
read_data(2) == CSW_GALIL && g_has_guitar[id])
    {
        
set_pev(idpev_viewmodel2V_GUITAR_MDL);
        
set_pev(idpev_weaponmodel2P_GUITAR_MDL);
    }
    return 
PLUGIN_CONTINUE;
}

public 
event_RoundStart()
{
    if(
get_pcvar_num(cvar_rockguitar_oneround))
    {
        for (new 
1<= get_maxplayers(); i++)
            
g_has_guitar[i] = false;
    }
}

public 
event_DeathMsg()
{
    
g_has_guitar[read_data(2)] = false;
}

public 
fw_SetModel(entitymodel[])
{
    if(!
pev_valid(entity) || !equal(modelOLD_W_MDL)) return FMRES_IGNORED;
    
    static 
szClassName[33]; pev(entitypev_classnameszClassNamecharsmax(szClassName));
    if(!
equal(szClassName"weaponbox")) return FMRES_IGNORED;
    
    static 
ownerwpn;
    
owner pev(entitypev_owner);
    
wpn find_ent_by_owner(-1"weapon_galil"entity);
    
    if(
g_has_guitar[owner] && pev_valid(wpn))
    {
        
g_has_guitar[owner] = false;
        
set_pev(wpnpev_impulse43555);
        
engfunc(EngFunc_SetModelentityW_GUITAR_MDL);
        
        return 
FMRES_SUPERCEDE;
    }
    return 
FMRES_IGNORED;
}

public 
fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(
is_user_alive(id) && get_user_weapon(id) == CSW_GALIL && g_has_guitar[id])
    {
        
set_cd(cd_handleCD_flNextAttackhalflife_time () + 0.001);
    }
}

public 
fw_CmdStart(iduc_handleseed)
{
    if(
is_user_alive(id) &&  get_user_weapon(id) == CSW_GALIL && g_has_guitar[id])
    {
        if((
get_uc(uc_handleUC_Buttons) & IN_ATTACK2) && !(pev(idpev_oldbuttons) & IN_ATTACK2))
        {
            if(!
g_has_zoom[id])
            {
                
g_has_zoom[id] = true;
                
cs_set_user_zoom(idCS_SET_AUGSG552_ZOOM1);
                
emit_sound(idCHAN_ITEMZOOM_SOUND0.202.400100);
            }
            else
            {
                
g_has_zoom[id] = false;
                
cs_set_user_zoom(idCS_RESET_ZOOM0);
            }
        }

        if (
g_has_zoom[id] && (pev(idpev_button) & IN_RELOAD))
        {
            
g_has_zoom[id] = false;
            
cs_set_user_zoom(idCS_RESET_ZOOM0);
        }
    }
}

public 
fw_ItemPostFrame(weapon_entity)
{
    new 
id pev(weapon_entitypev_owner);

    if(
g_has_guitar[id] && is_user_alive(id))
    {
        static 
iClipExtraiClipExtra get_pcvar_num(cvar_rockguitar_clip);

        new 
Float:flNextAttack get_pdata_float(id835);

        new 
iBpAmmo cs_get_user_bpammo(idCSW_GALIL);
        new 
iClip get_pdata_int(weapon_entity514);

        new 
fInReload get_pdata_int(weapon_entity544);

        if(
fInReload && flNextAttack <= 0.0)
        {
            new 
Clp min(iClipExtra iClipiBpAmmo);
            
set_pdata_int(weapon_entity51iClip Clp4);
            
cs_set_user_bpammo(idCSW_GALILiBpAmmo-Clp);
            
set_pdata_int(weapon_entity5404);
        }
    }
}

public 
fw_AddToPlayer(weapon_entityid)
{
    if(
pev_valid(weapon_entity) && is_user_connected(id) && pev(weapon_entitypev_impulse) == 43555)
    {
        
g_has_guitar[id] = true;
        
set_pev(weapon_entitypev_impulse0);
        return 
HAM_HANDLED;
    }
    return 
HAM_IGNORED;
}

public 
fw_PrimaryAttack(weapon_entity)
{
    new 
id get_pdata_cbase(weapon_entity414);
    
    if(
g_has_guitar[id])
    {
        
g_clip_ammo[id] = cs_get_weapon_ammo(weapon_entity);
    }
}

public 
fw_PrimaryAttack_Post(weapon_entity)
{
    new 
id get_pdata_cbase(weapon_entity414);

    if (
g_has_guitar[id] && g_clip_ammo[id])
    {
        
set_pdata_float(weapon_entity46get_pcvar_float(cvar_rockguitar_shotspd), 4);
        
emit_sound(idCHAN_WEAPONSHOT_SOUND[0], VOL_NORMATTN_NORM0PITCH_NORM);
        
UTIL_PlayWeaponAnimation(idrandom_num(35));
        
UTIL_MakeBloodAndBulletHoles(id);
    }
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if(
is_user_alive(attacker) && get_user_weapon(attacker) == CSW_GALIL && g_has_guitar[attacker])
    {
        
SetHamParamFloat(4damage get_pcvar_float(cvar_rockguitar_damage_x));
    }
}

stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
    
set_pev(Playerpev_weaponanimSequence);
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player);
    
write_byte(Sequence);
    
write_byte(pev(Playerpev_body));
    
message_end();
}

stock UTIL_MakeBloodAndBulletHoles(id)
{
    new 
aimOrigin[3], targetbody;
    
get_user_origin(idaimOrigin3);
    
get_user_aiming(idtargetbody);
    
    if(
target && target <= get_maxplayers() && zp_get_user_zombie(target))
    {
        new 
Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3];
        
pev(idpev_originfStart);
        
        
velocity_by_aim(id64fVel);
        
        
fStart[0] = float(aimOrigin[0]);
        
fStart[1] = float(aimOrigin[1]);
        
fStart[2] = float(aimOrigin[2]);
        
fEnd[0] = fStart[0]+fVel[0];
        
fEnd[1] = fStart[1]+fVel[1];
        
fEnd[2] = fStart[2]+fVel[2];
        
        new 
res;
        
engfunc(EngFunc_TraceLinefStartfEnd0targetres);
        
get_tr2(resTR_vecEndPosfRes);
        
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
        
write_byte(TE_BLOODSPRITE);
        
write_coord(floatround(fStart[0]));
        
write_coord(floatround(fStart[1]));
        
write_coord(floatround(fStart[2]));
        
write_short(blood_spr[1]);
        
write_short(blood_spr[0]);
        
write_byte(70);
        
write_byte(random_num(1,2));
        
message_end();
        
        
    } 
    else if(!
is_user_connected(target))
    {
        if(
target)
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
            
write_byte(TE_DECAL);
            
write_coord(aimOrigin[0]);
            
write_coord(aimOrigin[1]);
            
write_coord(aimOrigin[2]);
            
write_byte(GUNSHOT_DECALS[random_num(0sizeof GUNSHOT_DECALS -1)]);
            
write_short(target);
            
message_end();
        } 
        else 
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
            
write_byte(TE_WORLDDECAL);
            
write_coord(aimOrigin[0]);
            
write_coord(aimOrigin[1]);
            
write_coord(aimOrigin[2]);
            
write_byte(GUNSHOT_DECALS[random_num(0sizeof GUNSHOT_DECALS -1)]);
            
message_end()
        }
        
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
        
write_byte(TE_GUNSHOTDECAL);
        
write_coord(aimOrigin[0]);
        
write_coord(aimOrigin[1]);
        
write_coord(aimOrigin[2]);
        
write_short(id);
        
write_byte(GUNSHOT_DECALS[random_num(0sizeof GUNSHOT_DECALS -)]);
        
message_end();
    }
}

stock drop_primary(id)
{
    new 
weapons[32], num;
    
get_user_weapons(idweaponsnum);
    for (new 
0numi++)
    {
        if (
WEAPON_BITSUM & (1<<weapons[i]))
        {
            static 
wname[32];
            
get_weaponname(weapons[i], wnamesizeof wname 1);
            
engclient_cmd(id"drop"wname);
        }
    }
}

stock client_print_color(const id,const input[], any:...)
{
    new 
msg[191], players[32], count 1vformat(msg,190,input,3);
    
replace_all(msg,190,"!g","^4");    // green
    
replace_all(msg,190,"!y","^1");    // normal
    
replace_all(msg,190,"!t","^3");    // team
        
    
if (idplayers[0] = id; else get_players(players,count,"ch");
        
    for (new 
i=0;i<count;i++)
    {
        if (
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("SayText"),_,players[i]);
            
write_byte(players[i]);
            
write_string(msg);
            
message_end();
        }
    }

__________________
georgik57 is offline
Send a message via MSN to georgik57 Send a message via Yahoo to georgik57 Send a message via Skype™ to georgik57
bakugan
Member
Join Date: Dec 2023
Location: Bulgaria
Old 03-30-2024 , 18:01   Re: How to fixed ZP Items Rock Guitar
Reply With Quote #5

Quote:
Originally Posted by georgik57 View Post
Code:
//// csadsfdsa.sma
// Header size:           2408 bytes
// Code size:            13736 bytes
// Data size:             5060 bytes
// Stack/heap size:      16384 bytes; estimated max. usage=255 cells (1020 bytes)
// Total requirements:   37588 bytes
// Done.
//
// Compilation Time: 0,19 sec
// ----------------------------------------
PHP Code:
/* Plugin generated by AMXX-Studio */

#include < amxmodx >
#include < fun >
#include < cstrike >
#include < engine >
#include < fakemeta >
#include < hamsandwich >
#include < zombieplague >
#include < zmvip >

#define PLUGIN "[ V.I.P ] Extra Item"
#define VERSION "ZM4.3"
#define AUTHOR "HarveyWNvm LLC."


#define WEAPON_BITSUM ((1<<CSW_GALIL))
#define ITEM_COST 35

new const V_GUITAR_MDL[64] = "models/zombie_plague/v_rock_guitar.mdl";
new const 
P_GUITAR_MDL[64] = "models/zombie_plague/p_rock_guitar.mdl";
new const 
W_GUITAR_MDL[64] = "models/zombie_plague/w_rock_guitar.mdl";
new const 
OLD_W_MDL[64] = "models/w_galil.mdl";

new const 
GUNSHOT_DECALS[] = { 4142434445 }

new const 
GUITAR_SOUNDS[][] = {"weapons/gt_clipin.wav""weapons/gt_clipon.wav""weapons/gt_clipout.wav""weapons/gt_draw.wav"}

new const 
ZOOM_SOUND[] = "weapons/zoom.wav";
new const 
SHOT_SOUND[] = "weapons/rguitar.wav";

new 
g_itemid g_has_guitar[33] , g_hamczbots g_clip_ammo[33] , g_has_zoom[33] , blood_spr[2] , cvar_rockguitar_damage_x cvar_rockguitar_clip cvar_rockguitar_bpammo cvar_rockguitar_shotspd cvar_rockguitar_oneround cvar_botquota;

public 
plugin_init()
{
    
// Plugin Register
    
register_plugin("[ZP] Extra Item: Rock Guitar""VERSION""HarveyWNvm LLC.");

    
// Extra Item Register
    
g_itemid zv_register_extra_item("[ZP] Rock Guitar""X3 DMG"35ZV_TEAM_HUMAN)

    
// Cvars Register
    
cvar_rockguitar_damage_x register_cvar("zp_rockguitar_damage_x""5.0");
    
cvar_rockguitar_clip register_cvar("zp_rockguitar_clip""40");
    
cvar_rockguitar_bpammo register_cvar("zp_rockguitar_bpammo""200");
    
cvar_rockguitar_shotspd register_cvar("zp_rockguitar_shot_speed""0.11");
    
cvar_rockguitar_oneround register_cvar("zp_rockguitar_oneround""0");

    
// Cvar Pointer
    
cvar_botquota get_cvar_pointer("bot_quota");

    
// Events
    
register_event("CurWeapon""event_CurWeapon""b""1=1");
    
register_event("HLTV""event_RoundStart""a""1=0""2=0");
    
register_event("DeathMsg""event_DeathMsg""a""1>0");

    
// Forwards
    
register_forward(FM_SetModel"fw_SetModel");
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1);
    
register_forward(FM_CmdStart"fw_CmdStart");

    
// Hams
    
RegisterHam(Ham_Item_PostFrame"weapon_galil""fw_ItemPostFrame");
    
RegisterHam(Ham_Item_AddToPlayer"weapon_galil""fw_AddToPlayer");
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_galil""fw_PrimaryAttack");
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_galil""fw_PrimaryAttack_Post"1);
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
}

public 
plugin_precache()
{
    
// Models
    
precache_model(V_GUITAR_MDL);
    
precache_model(P_GUITAR_MDL);
    
precache_model(W_GUITAR_MDL);
    
precache_model(OLD_W_MDL);

    
// Blood Sprites
    
blood_spr[0] = precache_model("sprites/blood.spr");
    
blood_spr[1] = precache_model("sprites/bloodspray.spr");

    
// Sounds
    
for(new 0sizeof GUITAR_SOUNDSi++) precache_sound(GUITAR_SOUNDS[i]);
    
precache_sound(ZOOM_SOUND);
    
precache_sound(SHOT_SOUND);
}

public 
client_putinserver(id)
{
    
g_has_guitar[id] = false;

    if (
is_user_bot(id) && !g_hamczbots && cvar_botquota)
    {
        
set_task(0.1"register_ham_czbots"id);
    }
}

public 
client_disconnect(id)
{
    
g_has_guitar[id] = false;
}

public 
client_connected(id)
{
    
g_has_guitar[id] = false;
}

public 
zp_user_humanized_post(idhuman)
{
    if(
get_pcvar_num(cvar_rockguitar_oneround))
        
g_has_guitar[id] = false;
}

public 
zp_user_infected_post(id)
{
    
g_has_guitar[id] = false;
}

public 
register_ham_czbots(id)
{
    if (
g_hamczbots || !is_user_bot(id) || !get_pcvar_num(cvar_botquota))
        return;

    
RegisterHamFromEntity(Ham_TakeDamageid"fw_TakeDamage");

    
g_hamczbots true;
}

public 
zv_extra_item_selected(playeritemid)
{
    if(
itemid == g_itemid)
    {
        if(
user_has_weapon(playerCSW_GALIL))
        {
            
drop_primary(player);
        }
        
g_has_guitar[player] = true;
        new 
wpnid give_item(player"weapon_galil");
        
client_print_color(player"!g[ZP] !yYou bought !gRock Guitar!y.");
        
cs_set_weapon_ammo(wpnidget_pcvar_num(cvar_rockguitar_clip));
        
cs_set_user_bpammo(playerCSW_GALILget_pcvar_num(cvar_rockguitar_bpammo));
    }
}

public 
event_CurWeapon(id)
{
    if (!
is_user_alive(id) || zp_get_user_zombie(id)) return PLUGIN_HANDLED;
    
    if (
read_data(2) == CSW_GALIL && g_has_guitar[id])
    {
        
set_pev(idpev_viewmodel2V_GUITAR_MDL);
        
set_pev(idpev_weaponmodel2P_GUITAR_MDL);
    }
    return 
PLUGIN_CONTINUE;
}

public 
event_RoundStart()
{
    if(
get_pcvar_num(cvar_rockguitar_oneround))
    {
        for (new 
1<= get_maxplayers(); i++)
            
g_has_guitar[i] = false;
    }
}

public 
event_DeathMsg()
{
    
g_has_guitar[read_data(2)] = false;
}

public 
fw_SetModel(entitymodel[])
{
    if(!
pev_valid(entity) || !equal(modelOLD_W_MDL)) return FMRES_IGNORED;
    
    static 
szClassName[33]; pev(entitypev_classnameszClassNamecharsmax(szClassName));
    if(!
equal(szClassName"weaponbox")) return FMRES_IGNORED;
    
    static 
ownerwpn;
    
owner pev(entitypev_owner);
    
wpn find_ent_by_owner(-1"weapon_galil"entity);
    
    if(
g_has_guitar[owner] && pev_valid(wpn))
    {
        
g_has_guitar[owner] = false;
        
set_pev(wpnpev_impulse43555);
        
engfunc(EngFunc_SetModelentityW_GUITAR_MDL);
        
        return 
FMRES_SUPERCEDE;
    }
    return 
FMRES_IGNORED;
}

public 
fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(
is_user_alive(id) && get_user_weapon(id) == CSW_GALIL && g_has_guitar[id])
    {
        
set_cd(cd_handleCD_flNextAttackhalflife_time () + 0.001);
    }
}

public 
fw_CmdStart(iduc_handleseed)
{
    if(
is_user_alive(id) &&  get_user_weapon(id) == CSW_GALIL && g_has_guitar[id])
    {
        if((
get_uc(uc_handleUC_Buttons) & IN_ATTACK2) && !(pev(idpev_oldbuttons) & IN_ATTACK2))
        {
            if(!
g_has_zoom[id])
            {
                
g_has_zoom[id] = true;
                
cs_set_user_zoom(idCS_SET_AUGSG552_ZOOM1);
                
emit_sound(idCHAN_ITEMZOOM_SOUND0.202.400100);
            }
            else
            {
                
g_has_zoom[id] = false;
                
cs_set_user_zoom(idCS_RESET_ZOOM0);
            }
        }

        if (
g_has_zoom[id] && (pev(idpev_button) & IN_RELOAD))
        {
            
g_has_zoom[id] = false;
            
cs_set_user_zoom(idCS_RESET_ZOOM0);
        }
    }
}

public 
fw_ItemPostFrame(weapon_entity)
{
    new 
id pev(weapon_entitypev_owner);

    if(
g_has_guitar[id] && is_user_alive(id))
    {
        static 
iClipExtraiClipExtra get_pcvar_num(cvar_rockguitar_clip);

        new 
Float:flNextAttack get_pdata_float(id835);

        new 
iBpAmmo cs_get_user_bpammo(idCSW_GALIL);
        new 
iClip get_pdata_int(weapon_entity514);

        new 
fInReload get_pdata_int(weapon_entity544);

        if(
fInReload && flNextAttack <= 0.0)
        {
            new 
Clp min(iClipExtra iClipiBpAmmo);
            
set_pdata_int(weapon_entity51iClip Clp4);
            
cs_set_user_bpammo(idCSW_GALILiBpAmmo-Clp);
            
set_pdata_int(weapon_entity5404);
        }
    }
}

public 
fw_AddToPlayer(weapon_entityid)
{
    if(
pev_valid(weapon_entity) && is_user_connected(id) && pev(weapon_entitypev_impulse) == 43555)
    {
        
g_has_guitar[id] = true;
        
set_pev(weapon_entitypev_impulse0);
        return 
HAM_HANDLED;
    }
    return 
HAM_IGNORED;
}

public 
fw_PrimaryAttack(weapon_entity)
{
    new 
id get_pdata_cbase(weapon_entity414);
    
    if(
g_has_guitar[id])
    {
        
g_clip_ammo[id] = cs_get_weapon_ammo(weapon_entity);
    }
}

public 
fw_PrimaryAttack_Post(weapon_entity)
{
    new 
id get_pdata_cbase(weapon_entity414);

    if (
g_has_guitar[id] && g_clip_ammo[id])
    {
        
set_pdata_float(weapon_entity46get_pcvar_float(cvar_rockguitar_shotspd), 4);
        
emit_sound(idCHAN_WEAPONSHOT_SOUND[0], VOL_NORMATTN_NORM0PITCH_NORM);
        
UTIL_PlayWeaponAnimation(idrandom_num(35));
        
UTIL_MakeBloodAndBulletHoles(id);
    }
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if(
is_user_alive(attacker) && get_user_weapon(attacker) == CSW_GALIL && g_has_guitar[attacker])
    {
        
SetHamParamFloat(4damage get_pcvar_float(cvar_rockguitar_damage_x));
    }
}

stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
    
set_pev(Playerpev_weaponanimSequence);
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player);
    
write_byte(Sequence);
    
write_byte(pev(Playerpev_body));
    
message_end();
}

stock UTIL_MakeBloodAndBulletHoles(id)
{
    new 
aimOrigin[3], targetbody;
    
get_user_origin(idaimOrigin3);
    
get_user_aiming(idtargetbody);
    
    if(
target && target <= get_maxplayers() && zp_get_user_zombie(target))
    {
        new 
Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3];
        
pev(idpev_originfStart);
        
        
velocity_by_aim(id64fVel);
        
        
fStart[0] = float(aimOrigin[0]);
        
fStart[1] = float(aimOrigin[1]);
        
fStart[2] = float(aimOrigin[2]);
        
fEnd[0] = fStart[0]+fVel[0];
        
fEnd[1] = fStart[1]+fVel[1];
        
fEnd[2] = fStart[2]+fVel[2];
        
        new 
res;
        
engfunc(EngFunc_TraceLinefStartfEnd0targetres);
        
get_tr2(resTR_vecEndPosfRes);
        
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
        
write_byte(TE_BLOODSPRITE);
        
write_coord(floatround(fStart[0]));
        
write_coord(floatround(fStart[1]));
        
write_coord(floatround(fStart[2]));
        
write_short(blood_spr[1]);
        
write_short(blood_spr[0]);
        
write_byte(70);
        
write_byte(random_num(1,2));
        
message_end();
        
        
    } 
    else if(!
is_user_connected(target))
    {
        if(
target)
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
            
write_byte(TE_DECAL);
            
write_coord(aimOrigin[0]);
            
write_coord(aimOrigin[1]);
            
write_coord(aimOrigin[2]);
            
write_byte(GUNSHOT_DECALS[random_num(0sizeof GUNSHOT_DECALS -1)]);
            
write_short(target);
            
message_end();
        } 
        else 
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
            
write_byte(TE_WORLDDECAL);
            
write_coord(aimOrigin[0]);
            
write_coord(aimOrigin[1]);
            
write_coord(aimOrigin[2]);
            
write_byte(GUNSHOT_DECALS[random_num(0sizeof GUNSHOT_DECALS -1)]);
            
message_end()
        }
        
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
        
write_byte(TE_GUNSHOTDECAL);
        
write_coord(aimOrigin[0]);
        
write_coord(aimOrigin[1]);
        
write_coord(aimOrigin[2]);
        
write_short(id);
        
write_byte(GUNSHOT_DECALS[random_num(0sizeof GUNSHOT_DECALS -)]);
        
message_end();
    }
}

stock drop_primary(id)
{
    new 
weapons[32], num;
    
get_user_weapons(idweaponsnum);
    for (new 
0numi++)
    {
        if (
WEAPON_BITSUM & (1<<weapons[i]))
        {
            static 
wname[32];
            
get_weaponname(weapons[i], wnamesizeof wname 1);
            
engclient_cmd(id"drop"wname);
        }
    }
}

stock client_print_color(const id,const input[], any:...)
{
    new 
msg[191], players[32], count 1vformat(msg,190,input,3);
    
replace_all(msg,190,"!g","^4");    // green
    
replace_all(msg,190,"!y","^1");    // normal
    
replace_all(msg,190,"!t","^3");    // team
        
    
if (idplayers[0] = id; else get_players(players,count,"ch");
        
    for (new 
i=0;i<count;i++)
    {
        if (
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("SayText"),_,players[i]);
            
write_byte(players[i]);
            
write_string(msg);
            
message_end();
        }
    }




hah again how exactly is everything going for you and for me the installation is bad and doesn't want to start?

Code:
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// zv_rock_guitar.sma
//
// C:\Users\harve\OneDrive\╨рсюЄхэ яыюЄ\ЄхёЄхЁ\amxmodx\scripting\zv_rock_guitar.sma(5) : fatal error 100: cannot read from file: "cstrike"
//
// Compilation aborted.
// 1 Error.
// Could not locate output file C:\Users\harve\OneDrive\╨рсюЄхэ яыюЄ\ЄхёЄхЁ\amxmodx\scripting\compiled\zv_rock_guitar.amx (compile failed).
//
// Compilation Time: 0,19 sec
// ----------------------------------------

Press enter to exit .
..

PHP Code:
/* Plugin generated by AMXX-Studio */

#include < amxmodx >
#include < fun >
#include < cstrike >
#include < engine >
#include < fakemeta >
#include < hamsandwich >
#include < zombieplague >
#include < zmvip >

#define PLUGIN "[ V.I.P ] Extra Item"
#define VERSION "ZM4.3"
#define AUTHOR "HarveyWNvm LLC."


#define WEAPON_BITSUM ((1<<CSW_GALIL))
#define ITEM_COST 35

new const V_GUITAR_MDL[64] = "models/zombie_plague/v_rock_guitar.mdl";
new const 
P_GUITAR_MDL[64] = "models/zombie_plague/p_rock_guitar.mdl";
new const 
W_GUITAR_MDL[64] = "models/zombie_plague/w_rock_guitar.mdl";
new const 
OLD_W_MDL[64] = "models/w_galil.mdl";

new const 
GUNSHOT_DECALS[] = { 4142434445 }

new const 
GUITAR_SOUNDS[][] = {"weapons/gt_clipin.wav""weapons/gt_clipon.wav""weapons/gt_clipout.wav""weapons/gt_draw.wav"}

new const 
ZOOM_SOUND[] = "weapons/zoom.wav";
new const 
SHOT_SOUND[] = "weapons/rguitar.wav";

new 
g_itemid g_has_guitar[33] , g_hamczbots g_clip_ammo[33] , g_has_zoom[33] , blood_spr[2] , cvar_rockguitar_damage_x cvar_rockguitar_clip cvar_rockguitar_bpammo cvar_rockguitar_shotspd cvar_rockguitar_oneround cvar_botquota;

public 
plugin_init()
{
    
// Plugin Register
    
register_plugin("[ZP] Extra Item: Rock Guitar""VERSION""HarveyWNvm LLC.");

    
// Extra Item Register
    
g_itemid zv_register_extra_item("[ZP] Rock Guitar""X3 DMG"35ZV_TEAM_HUMAN)

    
// Cvars Register
    
cvar_rockguitar_damage_x register_cvar("zp_rockguitar_damage_x""5.0");
    
cvar_rockguitar_clip register_cvar("zp_rockguitar_clip""40");
    
cvar_rockguitar_bpammo register_cvar("zp_rockguitar_bpammo""200");
    
cvar_rockguitar_shotspd register_cvar("zp_rockguitar_shot_speed""0.11");
    
cvar_rockguitar_oneround register_cvar("zp_rockguitar_oneround""0");

    
// Cvar Pointer
    
cvar_botquota get_cvar_pointer("bot_quota");

    
// Events
    
register_event("CurWeapon""event_CurWeapon""b""1=1");
    
register_event("HLTV""event_RoundStart""a""1=0""2=0");
    
register_event("DeathMsg""event_DeathMsg""a""1>0");

    
// Forwards
    
register_forward(FM_SetModel"fw_SetModel");
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1);
    
register_forward(FM_CmdStart"fw_CmdStart");

    
// Hams
    
RegisterHam(Ham_Item_PostFrame"weapon_galil""fw_ItemPostFrame");
    
RegisterHam(Ham_Item_AddToPlayer"weapon_galil""fw_AddToPlayer");
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_galil""fw_PrimaryAttack");
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_galil""fw_PrimaryAttack_Post"1);
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
}

public 
plugin_precache()
{
    
// Models
    
precache_model(V_GUITAR_MDL);
    
precache_model(P_GUITAR_MDL);
    
precache_model(W_GUITAR_MDL);
    
precache_model(OLD_W_MDL);

    
// Blood Sprites
    
blood_spr[0] = precache_model("sprites/blood.spr");
    
blood_spr[1] = precache_model("sprites/bloodspray.spr");

    
// Sounds
    
for(new 0sizeof GUITAR_SOUNDSi++) precache_sound(GUITAR_SOUNDS[i]);
    
precache_sound(ZOOM_SOUND);
    
precache_sound(SHOT_SOUND);
}

public 
client_putinserver(id)
{
    
g_has_guitar[id] = false;

    if (
is_user_bot(id) && !g_hamczbots && cvar_botquota)
    {
        
set_task(0.1"register_ham_czbots"id);
    }
}

public 
client_disconnect(id)
{
    
g_has_guitar[id] = false;
}

public 
client_connected(id)
{
    
g_has_guitar[id] = false;
}

public 
zp_user_humanized_post(idhuman)
{
    if(
get_pcvar_num(cvar_rockguitar_oneround))
        
g_has_guitar[id] = false;
}

public 
zp_user_infected_post(id)
{
    
g_has_guitar[id] = false;
}

public 
register_ham_czbots(id)
{
    if (
g_hamczbots || !is_user_bot(id) || !get_pcvar_num(cvar_botquota))
        return;

    
RegisterHamFromEntity(Ham_TakeDamageid"fw_TakeDamage");

    
g_hamczbots true;
}

public 
zv_extra_item_selected(playeritemid)
{
    if(
itemid == g_itemid)
    {
        if(
user_has_weapon(playerCSW_GALIL))
        {
            
drop_primary(player);
        }
        
g_has_guitar[player] = true;
        new 
wpnid give_item(player"weapon_galil");
        
client_print_color(player"!g[ZP] !yYou bought !gRock Guitar!y.");
        
cs_set_weapon_ammo(wpnidget_pcvar_num(cvar_rockguitar_clip));
        
cs_set_user_bpammo(playerCSW_GALILget_pcvar_num(cvar_rockguitar_bpammo));
    }
}

public 
event_CurWeapon(id)
{
    if (!
is_user_alive(id) || zp_get_user_zombie(id)) return PLUGIN_HANDLED;
    
    if (
read_data(2) == CSW_GALIL && g_has_guitar[id])
    {
        
set_pev(idpev_viewmodel2V_GUITAR_MDL);
        
set_pev(idpev_weaponmodel2P_GUITAR_MDL);
    }
    return 
PLUGIN_CONTINUE;
}

public 
event_RoundStart()
{
    if(
get_pcvar_num(cvar_rockguitar_oneround))
    {
        for (new 
1<= get_maxplayers(); i++)
            
g_has_guitar[i] = false;
    }
}

public 
event_DeathMsg()
{
    
g_has_guitar[read_data(2)] = false;
}

public 
fw_SetModel(entitymodel[])
{
    if(!
pev_valid(entity) || !equal(modelOLD_W_MDL)) return FMRES_IGNORED;
    
    static 
szClassName[33]; pev(entitypev_classnameszClassNamecharsmax(szClassName));
    if(!
equal(szClassName"weaponbox")) return FMRES_IGNORED;
    
    static 
ownerwpn;
    
owner pev(entitypev_owner);
    
wpn find_ent_by_owner(-1"weapon_galil"entity);
    
    if(
g_has_guitar[owner] && pev_valid(wpn))
    {
        
g_has_guitar[owner] = false;
        
set_pev(wpnpev_impulse43555);
        
engfunc(EngFunc_SetModelentityW_GUITAR_MDL);
        
        return 
FMRES_SUPERCEDE;
    }
    return 
FMRES_IGNORED;
}

public 
fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(
is_user_alive(id) && get_user_weapon(id) == CSW_GALIL && g_has_guitar[id])
    {
        
set_cd(cd_handleCD_flNextAttackhalflife_time () + 0.001);
    }
}

public 
fw_CmdStart(iduc_handleseed)
{
    if(
is_user_alive(id) &&  get_user_weapon(id) == CSW_GALIL && g_has_guitar[id])
    {
        if((
get_uc(uc_handleUC_Buttons) & IN_ATTACK2) && !(pev(idpev_oldbuttons) & IN_ATTACK2))
        {
            if(!
g_has_zoom[id])
            {
                
g_has_zoom[id] = true;
                
cs_set_user_zoom(idCS_SET_AUGSG552_ZOOM1);
                
emit_sound(idCHAN_ITEMZOOM_SOUND0.202.400100);
            }
            else
            {
                
g_has_zoom[id] = false;
                
cs_set_user_zoom(idCS_RESET_ZOOM0);
            }
        }

        if (
g_has_zoom[id] && (pev(idpev_button) & IN_RELOAD))
        {
            
g_has_zoom[id] = false;
            
cs_set_user_zoom(idCS_RESET_ZOOM0);
        }
    }
}

public 
fw_ItemPostFrame(weapon_entity)
{
    new 
id pev(weapon_entitypev_owner);

    if(
g_has_guitar[id] && is_user_alive(id))
    {
        static 
iClipExtraiClipExtra get_pcvar_num(cvar_rockguitar_clip);

        new 
Float:flNextAttack get_pdata_float(id835);

        new 
iBpAmmo cs_get_user_bpammo(idCSW_GALIL);
        new 
iClip get_pdata_int(weapon_entity514);

        new 
fInReload get_pdata_int(weapon_entity544);

        if(
fInReload && flNextAttack <= 0.0)
        {
            new 
Clp min(iClipExtra iClipiBpAmmo);
            
set_pdata_int(weapon_entity51iClip Clp4);
            
cs_set_user_bpammo(idCSW_GALILiBpAmmo-Clp);
            
set_pdata_int(weapon_entity5404);
        }
    }
}

public 
fw_AddToPlayer(weapon_entityid)
{
    if(
pev_valid(weapon_entity) && is_user_connected(id) && pev(weapon_entitypev_impulse) == 43555)
    {
        
g_has_guitar[id] = true;
        
set_pev(weapon_entitypev_impulse0);
        return 
HAM_HANDLED;
    }
    return 
HAM_IGNORED;
}

public 
fw_PrimaryAttack(weapon_entity)
{
    new 
id get_pdata_cbase(weapon_entity414);
    
    if(
g_has_guitar[id])
    {
        
g_clip_ammo[id] = cs_get_weapon_ammo(weapon_entity);
    }
}

public 
fw_PrimaryAttack_Post(weapon_entity)
{
    new 
id get_pdata_cbase(weapon_entity414);

    if (
g_has_guitar[id] && g_clip_ammo[id])
    {
        
set_pdata_float(weapon_entity46get_pcvar_float(cvar_rockguitar_shotspd), 4);
        
emit_sound(idCHAN_WEAPONSHOT_SOUND[0], VOL_NORMATTN_NORM0PITCH_NORM);
        
UTIL_PlayWeaponAnimation(idrandom_num(35));
        
UTIL_MakeBloodAndBulletHoles(id);
    }
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if(
is_user_alive(attacker) && get_user_weapon(attacker) == CSW_GALIL && g_has_guitar[attacker])
    {
        
SetHamParamFloat(4damage get_pcvar_float(cvar_rockguitar_damage_x));
    }
}

stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
    
set_pev(Playerpev_weaponanimSequence);
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player);
    
write_byte(Sequence);
    
write_byte(pev(Playerpev_body));
    
message_end();
}

stock UTIL_MakeBloodAndBulletHoles(id)
{
    new 
aimOrigin[3], targetbody;
    
get_user_origin(idaimOrigin3);
    
get_user_aiming(idtargetbody);
    
    if(
target && target <= get_maxplayers() && zp_get_user_zombie(target))
    {
        new 
Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3];
        
pev(idpev_originfStart);
        
        
velocity_by_aim(id64fVel);
        
        
fStart[0] = float(aimOrigin[0]);
        
fStart[1] = float(aimOrigin[1]);
        
fStart[2] = float(aimOrigin[2]);
        
fEnd[0] = fStart[0]+fVel[0];
        
fEnd[1] = fStart[1]+fVel[1];
        
fEnd[2] = fStart[2]+fVel[2];
        
        new 
res;
        
engfunc(EngFunc_TraceLinefStartfEnd0targetres);
        
get_tr2(resTR_vecEndPosfRes);
        
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
        
write_byte(TE_BLOODSPRITE);
        
write_coord(floatround(fStart[0]));
        
write_coord(floatround(fStart[1]));
        
write_coord(floatround(fStart[2]));
        
write_short(blood_spr[1]);
        
write_short(blood_spr[0]);
        
write_byte(70);
        
write_byte(random_num(1,2));
        
message_end();
        
        
    } 
    else if(!
is_user_connected(target))
    {
        if(
target)
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
            
write_byte(TE_DECAL);
            
write_coord(aimOrigin[0]);
            
write_coord(aimOrigin[1]);
            
write_coord(aimOrigin[2]);
            
write_byte(GUNSHOT_DECALS[random_num(0sizeof GUNSHOT_DECALS -1)]);
            
write_short(target);
            
message_end();
        } 
        else 
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
            
write_byte(TE_WORLDDECAL);
            
write_coord(aimOrigin[0]);
            
write_coord(aimOrigin[1]);
            
write_coord(aimOrigin[2]);
            
write_byte(GUNSHOT_DECALS[random_num(0sizeof GUNSHOT_DECALS -1)]);
            
message_end()
        }
        
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
        
write_byte(TE_GUNSHOTDECAL);
        
write_coord(aimOrigin[0]);
        
write_coord(aimOrigin[1]);
        
write_coord(aimOrigin[2]);
        
write_short(id);
        
write_byte(GUNSHOT_DECALS[random_num(0sizeof GUNSHOT_DECALS -)]);
        
message_end();
    }
}

stock drop_primary(id)
{
    new 
weapons[32], num;
    
get_user_weapons(idweaponsnum);
    for (new 
0numi++)
    {
        if (
WEAPON_BITSUM & (1<<weapons[i]))
        {
            static 
wname[32];
            
get_weaponname(weapons[i], wnamesizeof wname 1);
            
engclient_cmd(id"drop"wname);
        }
    }
}

stock client_print_color(const id,const input[], any:...)
{
    new 
msg[191], players[32], count 1vformat(msg,190,input,3);
    
replace_all(msg,190,"!g","^4");    // green
    
replace_all(msg,190,"!y","^1");    // normal
    
replace_all(msg,190,"!t","^3");    // team
        
    
if (idplayers[0] = id; else get_players(players,count,"ch");
        
    for (new 
i=0;i<count;i++)
    {
        if (
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("SayText"),_,players[i]);
            
write_byte(players[i]);
            
write_string(msg);
            
message_end();
        }
    }





Demo:
https://prnt.sc/WBonymHU1awi
__________________
WebSite
bakugan is offline
Jhob94
AMX Mod X Donor
Join Date: Jul 2012
Old 03-30-2024 , 18:14   Re: How to fixed ZP Items Rock Guitar
Reply With Quote #6

error 100: cannot read from file: "cstrike"

Your compiler is missing cstrike module
__________________
Jhob94 is offline
bakugan
Member
Join Date: Dec 2023
Location: Bulgaria
Old 03-30-2024 , 18:17   Re: How to fixed ZP Items Rock Guitar
Reply With Quote #7

Quote:
Originally Posted by Jhob94 View Post
error 100: cannot read from file: "cstrike"

Your compiler is missing cstrike module

Where exactly can I find it?
__________________
WebSite
bakugan is offline
Jhob94
AMX Mod X Donor
Join Date: Jul 2012
Old 03-30-2024 , 18:20   Re: How to fixed ZP Items Rock Guitar
Reply With Quote #8

https://www.amxmodx.org/downloads.php
__________________
Jhob94 is offline
bakugan
Member
Join Date: Dec 2023
Location: Bulgaria
Old 03-30-2024 , 18:36   Re: How to fixed ZP Items Rock Guitar
Reply With Quote #9

Quote:
Originally Posted by Jhob94 View Post

PHP Code:
AMX Mod X Compiler 1.10.0.5390
Copyright 
(c1997-2006 ITB CompuPhase
Copyright 
(c2004-2013 AMX Mod X Team

testss
.sma(139) : error 035argument type mismatch (argument 2)
testss.sma(392) : error 021symbol already defined"client_print_color"
testss.sma(392) : error 001expected token"="but found ","
testss.sma(392) : error 008must be a constant expressionassumed zero
testss
.sma(392) : fatal error 107too many error messages on one line

Compilation aborted
.
5 Errors.
Done.


ERRORYour plugin failed to compilesee above.
Please note that the silly compiler still tried to output a compiled pluginbut since it would be broken,
the webcompiler caught it, and won't let you download it. 
__________________
WebSite

Last edited by bakugan; 03-30-2024 at 18:37.
bakugan is offline
bakugan
Member
Join Date: Dec 2023
Location: Bulgaria
Old 03-30-2024 , 18:36   Re: How to fixed ZP Items Rock Guitar
Reply With Quote #10

Why is it giving errors during the plugin?
__________________
WebSite

Last edited by bakugan; 03-30-2024 at 18:38.
bakugan 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 20:39.


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