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

Add limit per round?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Stasi_bg
Member
Join Date: Nov 2013
Old 11-28-2014 , 12:38   Add limit per round?
Reply With Quote #1

Hi, everyone!

Can someone make the limit per round on this plugin?

Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <zombieplague>
#include <hamsandwich>
#include <fakemeta_util>
#include <fun>

#define PLUGIN "[ZP] Extra Item: Force Field Grenade"
#define VERSION "v1.9"
#define AUTHOR "lucas_7_94" // Thanks To Users in credits too!.

#define CAMPO_ROUND_NAME "Force Shield (One Round)"
#define CAMPO_TIME_NAME "Force Shield (Short-acting)"

/*=============================[Plugin Customization]=============================*/
#define CAMPO_TASK
//#define CAMPO_ROUND


//#define RANDOM_COLOR
#define ONE_COLOR

new const NADE_TYPE_CAMPO = 7543 

#if defined ONE_COLOR
new Float:CampoColors[3] = { 255.0 , 0.0 , 0.0 }
#endif

new const model_grenade[] = "models/zombie_plague/v_auragrenNEW.mdl"
new const model[] = "models/zombie_plague/aura8NEW.mdl"
new const w_model[] = "models/zombie_plague/w_auraNEW.mdl"
new const sprite_grenade_trail[] = "sprites/laserbeam.spr"
new const entclas[] = "campo_grenade_forze"
new cvar_flaregrenades, g_trailSpr, cvar_push, g_SayText, g_itemID
new bool:g_bomb[33]


/*=============================[End Customization]=============================*/

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade")
	
	RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
	
	cvar_flaregrenades = get_cvar_pointer("zp_flare_grenades")
	
	register_forward(FM_SetModel, "fw_SetModel")

	register_event( "CurWeapon", "hook_curwpn", "be", "1=1", "2!29" );

	register_touch(entclas, "player", "entity_touch")
	
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
	
	g_SayText = get_user_msgid("SayText")

	register_cvar("zp_shield_creator", AUTHOR, FCVAR_SERVER|FCVAR_PROTECTED)
	
	#if defined CAMPO_ROUND
	g_itemID = zp_register_extra_item ( CAMPO_ROUND_NAME , 30 , ZP_TEAM_HUMAN )
	#else 
	g_itemID = zp_register_extra_item ( CAMPO_TIME_NAME , 15 , ZP_TEAM_HUMAN )
	#endif
	
	// Push cvar, [Only number's with Coma]
	cvar_push = register_cvar("zp_forze_push", "7.5")
}

public event_round_start() {
	
	#if defined CAMPO_ROUND
	remove_entity_name(entclas)
	#endif
	
	arrayset( g_bomb, false, 33 );
}

public plugin_precache() {
	
	g_trailSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_trail)
	engfunc(EngFunc_PrecacheModel, model_grenade)
	engfunc(EngFunc_PrecacheModel, model)
	engfunc(EngFunc_PrecacheModel, w_model)
}

public client_disconnect(id) g_bomb[id] = false

public zp_extra_item_selected(player, itemid) {
	
	if(itemid == g_itemID)
	{
		if(g_bomb[player]) Color(player, "!g[Shield]!y You already have a force field")
		else 
		{
			g_bomb[player] = true
			give_item(player,"weapon_smokegrenade")
			
			
			#if defined CAMPO_ROUND
			Color(player, "!g[Shield]!y You Bought a force field!. This, lasts 1 round complete.")
			#else
			Color(player, "!g[Shield]!y You Bought a force field!. This, lasts very little!")
			#endif
		}
		
		
	}
	
}
public fw_PlayerKilled(victim, attacker, shouldgib) g_bomb[victim] = false

public fw_ThinkGrenade(entity) {   
	
	if(!pev_valid(entity)) return HAM_IGNORED
	
	static Float:dmgtime   
	pev(entity, pev_dmgtime, dmgtime)
	
	if (dmgtime > get_gametime())
		return HAM_IGNORED   
	
	if(pev(entity, pev_flTimeStepSound) == NADE_TYPE_CAMPO)
		crear_ent(entity)
	
	return HAM_SUPERCEDE
}

	
public fw_SetModel(entity, const model[]) {	
	
	static Float:dmgtime
	pev(entity, pev_dmgtime, dmgtime)
	
	if (dmgtime == 0.0)
		return FMRES_IGNORED;
	
	if (equal(model[7], "w_sm", 4))
	{		
		new owner = pev(entity, pev_owner)		
		
		if(!zp_get_user_zombie(owner) && g_bomb[owner]) 
		{
			set_pcvar_num(cvar_flaregrenades,0)			
			
			fm_set_rendering(entity, kRenderFxGlowShell, 000, 255, 255, kRenderNormal, 16)
			
			message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
			write_byte(TE_BEAMFOLLOW) // TE id
			write_short(entity) // entity
			write_short(g_trailSpr) // sprite
			write_byte(10) // life
			write_byte(10) // width
			write_byte(000) // r
			write_byte(255) // g
			write_byte(255) // b
			write_byte(500) // brightness
			message_end()
			
			set_pev(entity, pev_flTimeStepSound, NADE_TYPE_CAMPO)
			
			set_task(6.0, "DeleteEntityGrenade" ,entity)
			entity_set_model(entity, w_model)
			return FMRES_SUPERCEDE
		}
	}
	return FMRES_IGNORED
	
}

public DeleteEntityGrenade(entity) remove_entity(entity)

public crear_ent(id) {
	
	new attacker
	attacker = pev(id, pev_owner)
	
	g_bomb[attacker] = false
	
	set_pcvar_num(cvar_flaregrenades,1)
	
	// Create entitity
	new iEntity = create_entity("info_target")
	
	if(!is_valid_ent(iEntity))
		return PLUGIN_HANDLED
	
	new Float: Origin[3] 
	entity_get_vector(id, EV_VEC_origin, Origin) 
	
	entity_set_string(iEntity, EV_SZ_classname, entclas)
	
	entity_set_vector(iEntity,EV_VEC_origin, Origin)
	entity_set_model(iEntity,model)
	entity_set_int(iEntity, EV_INT_solid, SOLID_TRIGGER)
	//entity_set_size(iEntity, Float: {-100.0, -100.0, -100.0}, Float: {100.0, 100.0, 100.0})
	entity_set_size(iEntity, Float: {0.0, 0.0, 0.0}, Float: {50.0, 50.0, 50.0})
	entity_set_int(iEntity, EV_INT_renderfx, kRenderFxGlowShell)
	entity_set_int(iEntity, EV_INT_rendermode, kRenderTransAlpha)
	entity_set_float(iEntity, EV_FL_renderamt, 50.0)
	
	#if defined RANDOM_COLOR
	if(is_valid_ent(iEntity))
	{
		new Float:vColor[3]
		
		for(new i; i < 3; i++)
			vColor[i] = random_float(0.0, 255.0)
		
		entity_set_vector(iEntity, EV_VEC_rendercolor, vColor)
	}
	#endif

	#if defined ONE_COLOR
	entity_set_vector(iEntity, EV_VEC_rendercolor, CampoColors)
	#endif
	
	#if defined CAMPO_TASK
	set_task(15.0, "DeleteEntity", iEntity)
	#endif
	
	
	return PLUGIN_CONTINUE;
}

public zp_user_infected_post(infected, infector) 
	if (g_bomb[infected]) 
		g_bomb[infected] = false


public entity_touch(touched, toucher) {
	
	if(zp_get_user_zombie(toucher) || zp_get_user_nemesis(toucher))
	{
		new Float:pos_ptr[3], Float:pos_ptd[3], Float:push_power = get_pcvar_float(cvar_push)
		
		pev(touched, pev_origin, pos_ptr)
		pev(toucher, pev_origin, pos_ptd)
		
		for(new i = 0; i < 3; i++)
		{
			pos_ptd[i] -= pos_ptr[i]
			pos_ptd[i] *= push_power
		}
		set_pev(toucher, pev_velocity, pos_ptd)
		set_pev(toucher, pev_impulse, pos_ptd)
	}
}

public remove_ent() {
	remove_entity_name(entclas)
}  

public DeleteEntity( entity )  // Thanks xPaw For The Code =D
	if( is_valid_ent( entity ) ) 
	remove_entity( entity );

stock Color(const id, const input[], any:...)
{
	static msg[191]
	vformat(msg, 190, input, 3)
	
	replace_all(msg, 190, "!g", "^4")
	replace_all(msg, 190, "!y", "^1")
	replace_all(msg, 190, "!t", "^3")
	
	message_begin(MSG_ONE_UNRELIABLE, g_SayText, _, id)
	write_byte(id)
	write_string(msg)
	message_end()
}

public hook_curwpn( id ) { // Thanks Anakin_cstrike For The Code ! =D [Virus Grenade]
	if( !is_user_alive( id ) )
		return PLUGIN_CONTINUE;
	
	if( g_bomb[ id ] && !zp_get_user_zombie( id ) )
	{
		new wID = read_data( 2 )
		if( wID == CSW_SMOKEGRENADE )
			set_pev( id, pev_viewmodel2, model_grenade )
	}
	return PLUGIN_CONTINUE;
}
Example 8 and never mind whether it will be with cvar or not

Thanks!

Last edited by Stasi_bg; 11-28-2014 at 12:39.
Stasi_bg is offline
ghost95v
Senior Member
Join Date: Apr 2014
Location: somewhere in universe
Old 11-28-2014 , 12:59   Re: Add limit per round?
Reply With Quote #2

Try


PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <zombieplague>
#include <hamsandwich>
#include <fakemeta_util>
#include <fun>

#define PLUGIN "[ZP] Extra Item: Force Field Grenade"
#define VERSION "v1.9"
#define AUTHOR "lucas_7_94" // Thanks To Users in credits too!.

#define CAMPO_ROUND_NAME "Force Shield (One Round)"
#define CAMPO_TIME_NAME "Force Shield (Short-acting)"

/*=============================[Plugin Customization]=============================*/
#define CAMPO_TASK
//#define CAMPO_ROUND


//#define RANDOM_COLOR
#define ONE_COLOR

new const NADE_TYPE_CAMPO 7543 

#if defined ONE_COLOR
new Float:CampoColors[3] = { 255.0 0.0 0.0 }
#endif

new const model_grenade[] = "models/zombie_plague/v_auragrenNEW.mdl"
new const model[] = "models/zombie_plague/aura8NEW.mdl"
new const w_model[] = "models/zombie_plague/w_auraNEW.mdl"
new const sprite_grenade_trail[] = "sprites/laserbeam.spr"
new const entclas[] = "campo_grenade_forze"
new cvar_flaregrenadesg_trailSprcvar_pushg_SayTextg_itemIDg_BuyCount
new bool:g_bomb[33]

const 
iMaxBuyRound 8


/*=============================[End Customization]=============================*/

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHam(Ham_Think"grenade""fw_ThinkGrenade")
    
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
    
cvar_flaregrenades get_cvar_pointer("zp_flare_grenades")
    
    
register_forward(FM_SetModel"fw_SetModel")

    
register_event"CurWeapon""hook_curwpn""be""1=1""2!29" );

    
register_touch(entclas"player""entity_touch")
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
    
g_SayText get_user_msgid("SayText")

    
register_cvar("zp_shield_creator"AUTHORFCVAR_SERVER|FCVAR_PROTECTED)
    
    
#if defined CAMPO_ROUND
    
g_itemID zp_register_extra_item CAMPO_ROUND_NAME 30 ZP_TEAM_HUMAN )
    
#else 
    
g_itemID zp_register_extra_item CAMPO_TIME_NAME 15 ZP_TEAM_HUMAN )
    
#endif
    
    // Push cvar, [Only number's with Coma]
    
cvar_push register_cvar("zp_forze_push""7.5")
}

public 
event_round_start() {
    
g_BuyCount =0
    
#if defined CAMPO_ROUND
    
remove_entity_name(entclas)
    
#endif
    
    
arraysetg_bombfalse33 );
}

public 
plugin_precache() {
    
    
g_trailSpr engfunc(EngFunc_PrecacheModelsprite_grenade_trail)
    
engfunc(EngFunc_PrecacheModelmodel_grenade)
    
engfunc(EngFunc_PrecacheModelmodel)
    
engfunc(EngFunc_PrecacheModelw_model)
}

public 
client_disconnect(idg_bomb[id] = false

public zp_extra_item_selected(playeritemid) {
    
    if(
itemid == g_itemID)
    {
        if (
g_BuyCount >= iMaxBuyRound)
        {
            
Color(player"!g[Sheild]!y This item its not avaible more for this Round")
            return 
ZP_PLUGIN_HANDLED
        
}
        if(
g_bomb[player]) Color(player"!g[Shield]!y You already have a force field")
        else 
        {
            
g_BuyCount++
            
g_bomb[player] = true
            give_item
(player,"weapon_smokegrenade")
            
            
            
#if defined CAMPO_ROUND
            
Color(player"!g[Shield]!y You Bought a force field!. This, lasts 1 round complete.")
            
#else
            
Color(player"!g[Shield]!y You Bought a force field!. This, lasts very little!")
            
#endif
        
}
        
        
    }
    return 
PLUGIN_CONTINUE
    
}
public 
fw_PlayerKilled(victimattackershouldgibg_bomb[victim] = false

public fw_ThinkGrenade(entity) {   
    
    if(!
pev_valid(entity)) return HAM_IGNORED
    
    
static Float:dmgtime   
    pev
(entitypev_dmgtimedmgtime)
    
    if (
dmgtime get_gametime())
        return 
HAM_IGNORED   
    
    
if(pev(entitypev_flTimeStepSound) == NADE_TYPE_CAMPO)
        
crear_ent(entity)
    
    return 
HAM_SUPERCEDE
}

    
public 
fw_SetModel(entity, const model[]) {    
    
    static 
Float:dmgtime
    pev
(entitypev_dmgtimedmgtime)
    
    if (
dmgtime == 0.0)
        return 
FMRES_IGNORED;
    
    if (
equal(model[7], "w_sm"4))
    {        
        new 
owner pev(entitypev_owner)        
        
        if(!
zp_get_user_zombie(owner) && g_bomb[owner]) 
        {
            
set_pcvar_num(cvar_flaregrenades,0)            
            
            
fm_set_rendering(entitykRenderFxGlowShell000255255kRenderNormal16)
            
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_BEAMFOLLOW// TE id
            
write_short(entity// entity
            
write_short(g_trailSpr// sprite
            
write_byte(10// life
            
write_byte(10// width
            
write_byte(000// r
            
write_byte(255// g
            
write_byte(255// b
            
write_byte(500// brightness
            
message_end()
            
            
set_pev(entitypev_flTimeStepSoundNADE_TYPE_CAMPO)
            
            
set_task(6.0"DeleteEntityGrenade" ,entity)
            
entity_set_model(entityw_model)
            return 
FMRES_SUPERCEDE
        
}
    }
    return 
FMRES_IGNORED
    
}

public 
DeleteEntityGrenade(entityremove_entity(entity)

public 
crear_ent(id) {
    
    new 
attacker
    attacker 
pev(idpev_owner)
    
    
g_bomb[attacker] = false
    
    set_pcvar_num
(cvar_flaregrenades,1)
    
    
// Create entitity
    
new iEntity create_entity("info_target")
    
    if(!
is_valid_ent(iEntity))
        return 
PLUGIN_HANDLED
    
    
new FloatOrigin[3
    
entity_get_vector(idEV_VEC_originOrigin
    
    
entity_set_string(iEntityEV_SZ_classnameentclas)
    
    
entity_set_vector(iEntity,EV_VEC_originOrigin)
    
entity_set_model(iEntity,model)
    
entity_set_int(iEntityEV_INT_solidSOLID_TRIGGER)
    
//entity_set_size(iEntity, Float: {-100.0, -100.0, -100.0}, Float: {100.0, 100.0, 100.0})
    
entity_set_size(iEntityFloat: {0.00.00.0}, Float: {50.050.050.0})
    
entity_set_int(iEntityEV_INT_renderfxkRenderFxGlowShell)
    
entity_set_int(iEntityEV_INT_rendermodekRenderTransAlpha)
    
entity_set_float(iEntityEV_FL_renderamt50.0)
    
    
#if defined RANDOM_COLOR
    
if(is_valid_ent(iEntity))
    {
        new 
Float:vColor[3]
        
        for(new 
i3i++)
            
vColor[i] = random_float(0.0255.0)
        
        
entity_set_vector(iEntityEV_VEC_rendercolorvColor)
    }
    
#endif

    #if defined ONE_COLOR
    
entity_set_vector(iEntityEV_VEC_rendercolorCampoColors)
    
#endif
    
    #if defined CAMPO_TASK
    
set_task(15.0"DeleteEntity"iEntity)
    
#endif
    
    
    
return PLUGIN_CONTINUE;
}

public 
zp_user_infected_post(infectedinfector
    if (
g_bomb[infected]) 
        
g_bomb[infected] = false


public entity_touch(touchedtoucher) {
    
    if(
zp_get_user_zombie(toucher) || zp_get_user_nemesis(toucher))
    {
        new 
Float:pos_ptr[3], Float:pos_ptd[3], Float:push_power get_pcvar_float(cvar_push)
        
        
pev(touchedpev_originpos_ptr)
        
pev(toucherpev_originpos_ptd)
        
        for(new 
03i++)
        {
            
pos_ptd[i] -= pos_ptr[i]
            
pos_ptd[i] *= push_power
        
}
        
set_pev(toucherpev_velocitypos_ptd)
        
set_pev(toucherpev_impulsepos_ptd)
    }
}

public 
remove_ent() {
    
remove_entity_name(entclas)
}  

public 
DeleteEntityentity )  // Thanks xPaw For The Code =D
    
if( is_valid_ententity ) ) 
    
remove_entityentity );

stock Color(const id, const input[], any:...)
{
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!t""^3")
    
    
message_begin(MSG_ONE_UNRELIABLEg_SayText_id)
    
write_byte(id)
    
write_string(msg)
    
message_end()
}

public 
hook_curwpnid ) { // Thanks Anakin_cstrike For The Code ! =D [Virus Grenade]
    
if( !is_user_aliveid ) )
        return 
PLUGIN_CONTINUE;
    
    if( 
g_bombid ] && !zp_get_user_zombieid ) )
    {
        new 
wID read_data)
        if( 
wID == CSW_SMOKEGRENADE )
            
set_pevidpev_viewmodel2model_grenade )
    }
    return 
PLUGIN_CONTINUE;

__________________
ghost95v is offline
Send a message via Skype™ to ghost95v
Stasi_bg
Member
Join Date: Nov 2013
Old 11-28-2014 , 14:13   Re: Add limit per round?
Reply With Quote #3

don't work
Stasi_bg is offline
ghost95v
Senior Member
Join Date: Apr 2014
Location: somewhere in universe
Old 11-28-2014 , 15:55   Re: Add limit per round?
Reply With Quote #4

what dont work, specify more.
__________________
ghost95v is offline
Send a message via Skype™ to ghost95v
zmd94
Veteran Member
Join Date: Nov 2013
Location: Malaysia (9w2zow).
Old 11-29-2014 , 02:28   Re: Add limit per round?
Reply With Quote #5

Just change this:
PHP Code:
public event_round_start() {
    
    
#if defined CAMPO_ROUND
    
remove_entity_name(entclas)
    
#endif
    
    
arraysetg_bombfalse33 );

--->
PHP Code:
public event_round_start() 
{
    new 
iPlayers[32
    new 
iPlayerCountiid
    get_players
(iPlayersiPlayerCount"a"
        
    for(
0<= iPlayerCounti++)
    {
        
id iPlayers[i]
        
g_bomb[id] = false
    
}
    
    
g_BuyCount 0
    
    
#if defined CAMPO_ROUND
    
remove_entity_name(entclas)
    
#endif
    
    
arraysetg_bombfalse33 );

zmd94 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 18:14.


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