Plugin-uri[ZP] jerty Apocalypse

Moderatori: Moderators, Founder

Mesaj

Avatar utilizator
CEO
Posts
3802
Descriere: un item cu model costum , il faceti cum vreti voi , damage dublu, un sprite cand tragi in zm , gloante infinite daca doresti si cam atat ,nu cred ca e nevoie sa ceri ceva mai mult de la un item

Descarcare:

Cod: Selectaţi tot

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

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

new FM_V_MODEL[64] = "models/v_aug.mdl"
new FM_P_MODEL[64] = "models/p_aug.mdl" // aici setezi tu ce fel de modele vrei, nu am mai stat sa caut si modele pentru asa ceva, FM in general cred ca e pentru m4a1 dar nu am gasit pentru aug

new cvar_dmgjerty, cvar_jertybullets,  cvar_customjerty, cvar_jertyclip

new g_itemjerty
new bool:g_Hasjerty[33]
new bullets[ 33 ]
new jertyspr

const Wep_aug = ((1<<CSW_AUG))

public plugin_init()
{
	cvar_dmgjerty = register_cvar("zp_jerty_dmg_multiplier", "2")
	cvar_customjerty = register_cvar("zp_jerty_custom_model", "1")
	cvar_jertybullets = register_cvar("zp_jerty_bullets", "1")
	cvar_jertyclip = register_cvar("zp_jerty_unlimited_clip", "0")
	register_plugin("jerty", "1.0", "Rainq")
	g_itemjerty = zp_register_extra_item("\wjerty \yApocalypse", 60, ZP_TEAM_HUMAN)
	register_event("DeathMsg", "Death", "a")
	register_event("WeapPickup","checkModel","b","1=19")
	register_event("CurWeapon","checkWeapon","be","1=1")
	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
}

public client_connect(id)
{
	g_Hasjerty[id] = false
}

public client_disconnected(id)
{
	g_Hasjerty[id] = false
}

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

public fwHamPlayerSpawnPost(id)
{
	g_Hasjerty[id] = true
}

public plugin_precache()
{
	precache_model(FM_V_MODEL)
	precache_model(FM_P_MODEL)
	jertyspr = precache_model("sprites/xenobeam.spr")
}

public zp_user_infected_post(id)
{
	if (zp_get_user_zombie(id))
	{
		g_Hasjerty[id] = false
	}
}

public checkModel(id)
{
	if ( zp_get_user_zombie(id) )
		return PLUGIN_HANDLED
	
	new szWeapID = read_data(2)
	
	if ( szWeapID == CSW_AUG && g_Hasjerty[id] == true && get_pcvar_num(cvar_customjerty) )
	{
		set_pev(id, pev_viewmodel2, FM_V_MODEL)
		set_pev(id, pev_weaponmodel2, FM_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_AUG && g_Hasjerty[id])
	{
		checkModel(id)
	}
	else 
	{
		return PLUGIN_CONTINUE
	}
	if (plrClip == 0 && get_pcvar_num(cvar_jertyclip))
	{
		get_weaponname(plrWeapId, plrWeap, 31)
		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_AUG && g_Hasjerty[attacker] )
    {
        SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgjerty ) )
    }
}

public make_tracer(id)
{
	if (get_pcvar_num(cvar_jertybullets))
	{
		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_AUG) && g_Hasjerty[id]) 
		{
			new vec1[3], vec2[3]
			get_user_origin(id, vec1, 1)
			get_user_origin(id, vec2, 4)

			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
			write_byte (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( jertyspr )
			write_byte(1) // framestart
			write_byte(5) // framerate
			write_byte(2) // viata
			write_byte(10) // latimea
			write_byte(0) // zgomot
			write_byte( 0 ) // rosu
			write_byte( 200 ) // verde
			write_byte( 10 ) // albastru
			write_byte(200) // luminozitatea
			write_byte(150) // viteza
			message_end()
		}
		bullets[id] = clip
	}
	
}

public zp_extra_item_selected(player, itemid)
{
	if ( itemid == g_itemjerty )
	{
		if ( user_has_weapon(player, CSW_AUG) )
		{
			drop_prim(player)
		}
		give_item(player, "weapon_aug")
		cs_set_user_bpammo(player, CSW_AUG, 90)
		g_Hasjerty[player] = true;
	}
}

stock drop_prim(id) 
{
	new weapons[32], num
	get_user_weapons(id, weapons, num)
	for (new i = 0; i < num; i++) 
	{
		if (Wep_aug & (1<<weapons[i])) 
		{
			static wname[32]
			get_weaponname(weapons[i], wname, sizeof wname - 1)
			engclient_cmd(id, "drop", wname)
		}
	}
}
Nume: jerty Apocalypse
Versiune: 1.0
Link oficial: cspower / thexforce

Instalare:
1. Fisierul zp_extra_jerty.sma il puneti in addons/amxmodx/scripting
2. Fisierul zp_extra_jerty.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:

Cod: Selectaţi tot

zp_extra_jerty.amxx
4. Alti pasi necesari....

Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):

Cod: Selectaţi tot

zp_jerty_dmg_multiplier 2 / 3 / 4 cat damage dublu,triplu,etc sa primeasca zm
zp_jerty_custom_model 1 sa primeasca model / 0 sa nu primeasca model
zp_jerty_bullets 1 sa fie sprite cand trage (efectul acela) / 0 sa nu fie
zp_jerty_unlimited_clip 1 sa primeasca gloante infinite / 0 sa nu primeasca gloante infinite 
Imagini: -
========================
CONTACT : diliulro@yahoo.com
========================
Scrie răspuns