Raised This Month: $ Target: $400
 0% 

HELP Freeze Gun


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Danisoni
Junior Member
Join Date: Jul 2015
Old 11-12-2015 , 04:27   HELP Freeze Gun
Reply With Quote #1

I am starter in scripting and i make freeze pistol, replacing gold ak47
My problem is when zombie freeze time expire, zombie can't move
My second problem is when i freeze zombie, zombie change his skin, not skin, zombies got 2 skin in one, sorry for my bad english; Photo 2 skins in one: http://i.imgur.com/eVQjamo.png
Please help me!!!

Code:
/* AMX Mod script
* 
* (c) 2015 , QuiT - Danis
* Neox Freezing Pistol.
*
*/



#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <amxmisc>
#include <biohazard>


#define is_valid_player(%1) (1 <= %1 <= 32)

new AK_V_MODEL[64] = "models/v_usp.mdl"
new AK_P_MODEL[64] = "models/p_usp.mdl"

/* Pcvars */
new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip, cvar_cost

new bool:g_HasAk[33]

//new g_hasZoom[ 33 ]
new bullets[ 33 ]
new g_frozen[33], frost_spr
new cvar_frosttime

// Sprite
new m_spriteTexture

const Wep_usp = ((1<<CSW_USP))

public plugin_init()
{
	
	/* CVARS */
	cvar_dmgmultiplier = register_cvar("amx_neox_dmg", "1")
	cvar_custommodel = register_cvar("goldenak_custom_model", "1")
	cvar_goldbullets = register_cvar("goldenak_gold_bullets", "1")
	cvar_uclip = register_cvar("amx_neox_unlimited", "0")
	cvar_cost = register_cvar("goldenak_cost", "0")
	cvar_frosttime = register_cvar("amx_neox_time", "5.0")
	
	// Register The Buy Cmd
	register_clcmd("say /neox", "CmdBuyAk")
	register_clcmd("say_team /neox", "CmdBuyAk")
	register_concmd("amx_neox", "CmdGiveAk", ADMIN_BAN, "<name>")
	
	// Register The Plugin
	register_plugin("Neox", "1.0", "quiT")
	// Death Msg
	register_event("DeathMsg", "Death", "a")
	// Weapon Pick Up
	register_event("WeapPickup","checkModel","b","1=19")
	// Current Weapon Event
	register_event("CurWeapon","checkWeapon","be","1=1")
	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
	// Ham TakeDamage
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
	register_forward( FM_CmdStart, "fw_CmdStart" )
	register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
	
}

public client_connect(id)
{
	g_HasAk[id] = false
	RemoveFrost(id)
}

public client_disconnect(id)
{
	g_HasAk[id] = false
	RemoveFrost(id)
}

public Death()
{
	g_HasAk[read_data(2)] = false
	RemoveFrost(read_data(2))
}

public fwHamPlayerSpawnPost(id)
{
	g_HasAk[id] = false
	RemoveFrost(id)
}

public plugin_precache()
{
	precache_model(AK_V_MODEL)
	precache_model(AK_P_MODEL)
	m_spriteTexture = precache_model("sprites/dot.spr")
	precache_sound("weapons/zoom.wav")
}

public checkModel(id)
{
	if ( !g_HasAk[id] )
		return PLUGIN_HANDLED
	
	new szWeapID = read_data(2)
	
	if ( szWeapID == CSW_USP && g_HasAk[id] == true && get_pcvar_num(cvar_custommodel) )
	{
		set_pev(id, pev_viewmodel2, AK_V_MODEL)
		set_pev(id, pev_weaponmodel2, AK_P_MODEL)
	}
	return PLUGIN_HANDLED
}

public checkWeapon(id)
{
	new plrClip, plrAmmo, plrWeap[32]
	new plrWeapId
	
	plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
	
	if (plrWeapId == CSW_USP && g_HasAk[id])
	{
		checkModel(id)
	}
	else 
	{
		return PLUGIN_CONTINUE
	}
	
	if (plrClip == 0 && get_pcvar_num(cvar_uclip))
	{
		// If the user is out of ammo..
		get_weaponname(plrWeapId, plrWeap, 31)
		// Get the name of their weapon
		give_item(id, plrWeap)
		engclient_cmd(id, plrWeap) 
		engclient_cmd(id, plrWeap)
		engclient_cmd(id, plrWeap)
	}
	return PLUGIN_HANDLED
}



public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
	if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_USP && g_HasAk[attacker] )
	{
		SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
		switch(random_num(0,100))
		{
			case 0..30: set_user_frozen(victim)
		}
	}
}
public set_user_frozen(id)
{
	if(is_user_alive(id) && is_user_zombie(id) && !g_frozen[id])
	{
		// For Frost Effect Ring
		static Float:originF3[3]; 
		pev(id, pev_origin, originF3)
		
		// Screen Fade
		message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), _, id)
		write_short((1<<12)*1) // duration
		write_short((1<<12)*1) // hold time
		write_short(0x0000) // fade type
		write_byte(0) // red
		write_byte(50) // green
		write_byte(200) // blue
		write_byte(100) // alpha
		message_end()
		
		// Largest ring
		engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF3, 0)
		write_byte(TE_BEAMCYLINDER) // TE id
		engfunc(EngFunc_WriteCoord, originF3[0]) // x
		engfunc(EngFunc_WriteCoord, originF3[1]) // y
		engfunc(EngFunc_WriteCoord, originF3[2]) // z
		engfunc(EngFunc_WriteCoord, originF3[0]) // x axis
		engfunc(EngFunc_WriteCoord, originF3[1]) // y axis
		engfunc(EngFunc_WriteCoord, originF3[2]+100.0) // z axis
		write_short(frost_spr) // sprite
		write_byte(0) // startframe
		write_byte(0) // framerate
		write_byte(4) // life
		write_byte(60) // width
		write_byte(0) // noise
		write_byte(41) // red
		write_byte(138) // green
		write_byte(255) // blue
		write_byte(200) // brightness
		write_byte(0) // speed
		message_end()
		
		// Aura Effect
		set_aura_effect(id, 0, 100, 255, 50) 
		// Light blue glow while frozen
		fm_set_rendering(id, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 25)
	         g_frozen[id] = true
	         set_task(get_pcvar_float(cvar_frosttime), "RemoveFrost", id) // Time to Remove Frost Effect 
	}
}

// Remove Frost Effect
public RemoveFrost(id)
{
	// Not alive or not frozen anymore
	if (!is_user_alive(id) || !g_frozen[id]) return;
	
	g_frozen[id] = false; // Unfreeze
	fm_set_rendering(id) // Remove glow
}
public fw_CmdStart( id, uc_handle, seed )
{
	if( !is_user_alive( id ) ) 
		return PLUGIN_HANDLED
	
	/*if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
	{
		new szClip, szAmmo
		new szWeapID = get_user_weapon( id, szClip, szAmmo )
		
		if( szWeapID == CSW_USP && g_HasAk[id] == true && !g_hasZoom[id] == true)
		{
			g_hasZoom[id] = true
			cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
			emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
		}
		
		else if ( szWeapID == CSW_USP && g_HasAk[id] == true && g_hasZoom[id])
		{
			g_hasZoom[ id ] = false
			cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
			
		}
		
	}*/
	return PLUGIN_HANDLED
}

public fw_PlayerPreThink(id)
{
	// Not alive
	if (!is_user_alive(id) || !is_user_zombie(id) && !g_frozen[id]) return;

	// Set Player MaxSpeed
	if (g_frozen[id]) 
	{
		//set_pev(id, pev_velocity, Float:{0.0,0.0,0.0}) // stop motion
		set_pev(id, pev_maxspeed, 1.0) // prevent from moving
	}
}

public make_tracer(id)
{
	if (get_pcvar_num(cvar_goldbullets))
	{
		new clip,ammo
		new wpnid = get_user_weapon(id,clip,ammo)
		new pteam[16]
		
		get_user_team(id, pteam, 15)
		
		if ((bullets[id] > clip) && (wpnid == CSW_USP) && g_HasAk[id]) 
		{
			new vec1[3], vec2[3]
			get_user_origin(id, vec1, 1) // origin; your camera point.
			get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
			
			
			//BEAMENTPOINTS
			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
			write_byte (0)     //TE_BEAMENTPOINTS 0
			write_coord(vec1[0])
			write_coord(vec1[1])
			write_coord(vec1[2])
			write_coord(vec2[0])
			write_coord(vec2[1])
			write_coord(vec2[2])
			write_short( m_spriteTexture )
			write_byte(1) // framestart
			write_byte(5) // framerate
			write_byte(2) // life
			write_byte(10) // width
			write_byte(0) // noise
			write_byte( 0 )     // r, g, b
			write_byte( 42 )       // r, g, b
			write_byte( 255 )       // r, g, b
			write_byte(200) // brightness
			write_byte(150) // speed
			message_end()
		}
		
		bullets[id] = clip
	}
	
}

public CmdBuyAk(id)
{
	if ( !is_user_alive(id) )
	{
		client_print(id,print_chat, "You are die or you are not vip member.")
		return PLUGIN_HANDLED
	}
	
	new money = cs_get_user_money(id)
	
	if (money >= get_pcvar_num(cvar_cost))
	{
		cs_set_user_money(id, money - get_pcvar_num(cvar_cost))
		give_item(id, "weapon_usp")
		g_HasAk[id] = true
	}
	
	else
	{
		client_print(id, print_chat, "Not vip.", get_pcvar_num(cvar_cost))
	}
	return PLUGIN_HANDLED
}

public CmdGiveAk(id,level,cid)
{
	if (!cmd_access(id,level,cid,2))
		return PLUGIN_HANDLED;
	new arg[32];
	read_argv(1,arg,31);
	
	new player = cmd_target(id,arg,7);
	if (!player) 
		return PLUGIN_HANDLED;
	
	new name[32];
	get_user_name(player,name,31);
	
	give_item(player, "weapon_usp")
	g_HasAk[player] = true
	
	return PLUGIN_HANDLED
}

stock drop_prim(id) 
{
	new weapons[32], num
	get_user_weapons(id, weapons, num)
	for (new i = 0; i < num; i++) {
		if (Wep_usp & (1<<weapons[i])) 
		{
			static wname[32]
			get_weaponname(weapons[i], wname, sizeof wname - 1)
			engclient_cmd(id, "drop", wname)
		}
	}
}
stock set_aura_effect(id, r, g, b, size)
{
	static Float:originF3[3]; pev(id, pev_origin, originF3)
	
	// Efeito da Aura
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF3, 0)
	write_byte(TE_DLIGHT) // TE id
	engfunc(EngFunc_WriteCoord, originF3[0]) // x
	engfunc(EngFunc_WriteCoord, originF3[1]) // y
	engfunc(EngFunc_WriteCoord, originF3[2]) // z
	write_byte(size) // radio
	write_byte(r) // r
	write_byte(g) // g
	write_byte(b) // b
	write_byte(30) // vida en 0.1, 30 = 3 segundos
	write_byte(30) // velocidad de decaimiento
	message_end() 
}
stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
	static Float:color[3]
	color[0] = float(r)
	color[1] = float(g)
	color[2] = float(b)
	
	set_pev(entity, pev_renderfx, fx)
	set_pev(entity, pev_rendercolor, color)
	set_pev(entity, pev_rendermode, render)
	set_pev(entity, pev_renderamt, float(amount))
}
Danisoni is offline
 



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 17:54.


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