Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Serverimde Silah alınca işlememesi

Oyunda karşılaştığınız hatalar , oyun hakkında genel bilgiler

Moderatör: Moderatörler


PaZee
Mesajlar: 1761
Kayıt: Çrş Şub 22, 2017 11:28 pm
Konum: Istanbul
Server Ip/DNS: Cs.teknoklan.com
Clan İsmi: TeknoKlan
İletişim:

Serverimde Silah alınca işlememesi

Mesaj gönderen PaZee »

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <fakemeta_util>

/*================================================================================
 [Plugin Customization]
=================================================================================*/

//Do not touch this!
new const model_nade_world[] = "models/sw/w_snowball.mdl"
new const model_nade_view[] = "models/sw/v_snowball.mdl"
new const model_nade_player[] = "models/sw/p_snowball.mdl"
new const model_splash[] = "sprites/bhit.spr"

//Randomly chosen models and sounds, add as many, as you want

new const model_red[][] = { "red1" }
new const model_blue[][] = { "blue1" }

new const sound_pain[][] = { "player/pl_pain2.wav","player/pl_pain4.wav","player/pl_pain5.wav","player/pl_pain6.wav","player/pl_pain7.wav" }
new const sound_hit[][] = { "player/pl_snow1.wav","player/pl_snow2.wav","player/pl_snow3.wav","player/pl_snow4.wav","player/pl_snow5.wav","player/pl_snow6.wav" }
new const sound_chill[][] = { "sw/chill.wav" }
new const sound_unchill[][] = { "sw/unchill.wav" }
new const sound_win_blue[][] = { "sw/blue1.wav" }
new const sound_win_red[][] = { "sw/red1.wav" }
new const sound_win_no_one[][] = { "sw/draw.wav" }

/*================================================================================
 [CUSTOMIZATION ENDS HERE!]
=================================================================================*/

/*================================================================================
 [Enums]
=================================================================================*/

enum(+=100)
{
	TASK_WELCOME = 100,
	TASK_AMMO,
	TASK_RESPAWN,
	TASK_UNCHILL,
	TASK_MODEL,
	TASK_GOD
}

enum
{
	CS_TEAM_UNASSIGNED = 0,
	CS_TEAM_T,
	CS_TEAM_CT,
	CS_TEAM_SPECTATOR
}

/*================================================================================
 [Pcvars]
=================================================================================*/

new pcvar_on,pcvar_friendly,pcvar_dmg,pcvar_life,pcvar_dm,pcvar_dm_time,pcvar_chill_chance,
pcvar_chill_duration,pcvar_chill_speed,pcvar_gravity,pcvar_velocity,pcvar_crosshair,
pcvar_spawn,pcvar_spawn_duration,pcvar_bots

/*================================================================================
 [Player variables]
=================================================================================*/

new g_red[33],g_blue[33],g_IsChilled[33],Float:g_maxspeed[33],Float:g_ChillySpeed[33],
g_has_custom_model[33],g_player_model[33][32],g_god[33],g_bots

/*================================================================================
 [Global Variables]
=================================================================================*/

new g_money,g_weapon,g_crosshair,g_fwSpawn,g_sync,g_maxplayers,g_death,g_endround,
g_spray,g_glass,g_drop,gmsgScreenFade,Float:g_models_counter	

//This can affect gameplay
new const g_not_needed[][] =
{
	"weaponbox",
	"armoury_entity",
	"grenade",
	"func_bomb_target",
	"info_bomb_target",
	"info_vip_start",
	"func_vip_safetyzone",
	"func_escapezone",
	"hostage_entity",
	"monster_scientist",
	"func_hostage_rescue",
	"info_hostage_rescue"
}

//Grenade bounce sounds
new const g_bouncelist[4][64] =
{
	"weapons/grenade_hit1.wav",
	"weapons/grenade_hit2.wav",
	"weapons/grenade_hit3.wav",
	"weapons/he_bounce-1.wav"
}

//Mod name
new const g_modname[] = "Snowball war"

//Skyboxes
new const g_skybox[][] = { "snow","office" }


/*================================================================================
 [Offsets and Constants]
=================================================================================*/

#if cellbits == 32
const OFFSET_CSTEAMS = 114
const OFFSET_CSMONEY = 115
const OFFSET_HE_AMMO = 388
#else
const OFFSET_CSTEAMS = 139
const OFFSET_CSMONEY = 140
const OFFSET_HE_AMMO = 437
#endif
const OFFSET_LINUX  = 5

//To hide money displaying
const HIDE_MONEY = (1<<5)

//To hide crosshair
const HIDE_CROSSHAIR = (1<<6)

//For screen fade
const FFADE_IN = 0x0000

//For break glass effect
const BREAK_GLASS = 0x01

//Snow effect on server. Comment this line to disable
#define EFFECT_SNOW

//If you experience many SVC_BAD kicks. increase this (for example set it to 0.5)
const Float:MODEL_DELAY = 0.2

//Version information
new const VERSION[] = "3.05"

/*================================================================================
 [Code ;)]
=================================================================================*/

public plugin_precache()
{
	new a,modelpath[200]
	
	for(a = 0; a < sizeof sound_win_blue; a++)
		engfunc(EngFunc_PrecacheSound,sound_win_blue[a])
	for(a = 0; a < sizeof sound_win_blue; a++)
		engfunc(EngFunc_PrecacheSound,sound_win_red[a])
	for(a = 0; a < sizeof sound_win_blue; a++)
		engfunc(EngFunc_PrecacheSound,sound_win_no_one[a])
	for(a = 0; a < sizeof sound_pain; a++)
		engfunc(EngFunc_PrecacheSound,sound_pain[a])
	for(a = 0; a < sizeof sound_hit; a++)
		engfunc(EngFunc_PrecacheSound,sound_hit[a])
	for(a = 0; a < sizeof sound_chill; a++)
		engfunc(EngFunc_PrecacheSound,sound_chill[a])
	for(a = 0; a < sizeof sound_unchill; a++)
		engfunc(EngFunc_PrecacheSound,sound_unchill[a])
		
	for(a = 0;a < sizeof model_blue; a++)
	{
		formatex(modelpath, sizeof modelpath - 1, "models/player/%s/%s.mdl", model_blue[a], model_blue[a])
		engfunc(EngFunc_PrecacheModel,modelpath)
	}
	for(a = 0;a < sizeof model_red; a++)
	{
		formatex(modelpath, sizeof modelpath - 1, "models/player/%s/%s.mdl", model_red[a], model_red[a])
		engfunc(EngFunc_PrecacheModel,modelpath)
	}
		
	engfunc(EngFunc_PrecacheModel,model_nade_world)
	engfunc(EngFunc_PrecacheModel,model_nade_view)
	engfunc(EngFunc_PrecacheModel,model_nade_player)
	engfunc(EngFunc_PrecacheModel,model_splash)
	
	g_drop = engfunc(EngFunc_PrecacheModel,"sprites/blood.spr")
	g_spray = engfunc(EngFunc_PrecacheModel,"sprites/bloodspray.spr")
	g_glass = engfunc(EngFunc_PrecacheModel,"models/glassgibs.mdl")
	
	#if defined EFFECT_SNOW
	engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_snow"))
	#endif
	
	//Fake hostage to force round ending
	new ent
	ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"hostage_entity"))
	
	if(pev_valid(ent))
	{
		engfunc(EngFunc_SetOrigin, ent, Float:{8192.0 ,8192.0 ,8192.0})
		dllfunc(DLLFunc_Spawn, ent)
	}
	
	//Prevent some etnities form spawning
	g_fwSpawn = register_forward(FM_Spawn,"fw_SpawnEntity")
	
}

public plugin_init()
{
	register_plugin("Snowball war", VERSION, "FakeNick")
	
	pcvar_on = register_cvar("sw_toggle","1")
	
	//Make sure that plugin is on
	if(!get_pcvar_num(pcvar_on))
		return
	
	//Register dictionary
	register_dictionary("sw.txt")
	
	//Events
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
	register_event("CurWeapon","event_modelchange","be","1=1")
	register_logevent("logevent_round_end",2,"1=Round_End")
	
	//Forwards
	RegisterHam(Ham_Spawn,"player","fw_PlayerSpawn",1)
	RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
	
	register_forward(FM_SetModel,"fw_SetModel")
	register_forward(FM_Touch,"fw_Touch")
	register_forward(FM_EmitSound,"fw_EmitSound")
	register_forward(FM_Think,"fw_Think")
	register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
	register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")
	register_forward(FM_GetGameDescription,"fw_GameDesc")
	
	unregister_forward(FM_Spawn,g_fwSpawn)
	
	//Pcvars
	pcvar_friendly = register_cvar("sw_friendly","0")
	pcvar_dmg = register_cvar("sw_damage","100")
	pcvar_life = register_cvar("sw_life","3.0")
	pcvar_dm = register_cvar("sw_dm","0")
	pcvar_dm_time = register_cvar("sw_dm_time","2.0")
	pcvar_chill_chance = register_cvar("sw_chill_chance","30")
	pcvar_chill_duration = register_cvar("sw_chill_duration","5.0")
	pcvar_chill_speed = register_cvar("sw_chill_speed","50.0")
	pcvar_gravity = register_cvar("sw_snowball_gravity","0.3")
	pcvar_velocity = register_cvar("sw_snowball_velocity","2.0")
	pcvar_crosshair = register_cvar("sw_crosshair_remove","1")
	pcvar_spawn = register_cvar("sw_spawn_protection","1")
	pcvar_spawn_duration = register_cvar("sw_spawn_protection_time","3.0")
	
	pcvar_bots = get_cvar_pointer("bot_quota")
	
	//For version recognize and see what server is running this plugin
	register_cvar("sw_version",VERSION,FCVAR_SERVER | FCVAR_SPONLY)
	
	//Set skybox
	set_cvar_string("sv_skyname", g_skybox[random_num(0, sizeof g_skybox - 1)])
	
	//Other stuff
	g_money = get_user_msgid("Money")
	g_weapon = get_user_msgid("HideWeapon")
	g_crosshair = get_user_msgid("Crosshair")
	g_death = get_user_msgid("DeathMsg")
	gmsgScreenFade = get_user_msgid("ScreenFade")
	
	g_sync = CreateHudSyncObj()
	
	g_maxplayers = get_maxplayers()
	
	//Messsages
	register_message(get_user_msgid("TextMsg"), "message_textmsg")
	register_message(get_user_msgid("SendAudio"),"message_audio")
	register_message(get_user_msgid("HostagePos"), "message_hostagepos")
	register_message(get_user_msgid("Scenario"), "message_scenario")
}
public plugin_cfg()
{
	// Get configs dir
	new cfgdir[32],file[192]
	
	get_configsdir(cfgdir, sizeof cfgdir - 1)
	
	formatex(file,sizeof file - 1,"%s/sw.cfg",cfgdir)
	
	if(file_exists(file))
	{
		// Execute config file (sw.cfg)
		server_cmd("exec %s", file)
	}else{
		log_amx("[SW] Snowball War config file doesn't exist!")
	}
}
/*================================================================================
 [Events]
=================================================================================*/
public event_round_start()
{
	//It's not round end
	g_endround = false
	
	//Reset models counter
	g_models_counter = 0.0
	
	//Remove old welcome task and make a new one
	remove_task(TASK_WELCOME)
	set_task(2.5,"func_welcome",TASK_WELCOME)
	
}
public event_modelchange(id)
{
	new weapon = read_data(2)
	
	if(weapon == CSW_HEGRENADE)
	{
		//Set view model and player model
		set_pev(id,pev_viewmodel2,model_nade_view)
		set_pev(id,pev_weaponmodel2,model_nade_world)
		
		//Remove crosshair
		if(get_pcvar_num(pcvar_crosshair))
		{
			message_begin( MSG_ONE_UNRELIABLE, g_weapon, _, id )
			write_byte(HIDE_CROSSHAIR)
			message_end()
		}
		
	}
}
public logevent_round_end()
{
	// Prevent this from getting called twice when restarting (bugfix)
	static Float:last
	if (get_gametime() - last < 0.5) return;
	last = get_gametime()
	
	g_endround = true
	
	// Show HUD notice, play win sound
	if (!sw_GetBlue())
	{
		//Red team wins
		set_hudmessage(200, 0, 0, -1.0, 0.17, 0, 0.0, 3.0, 2.0, 1.0, -1)
		ShowSyncHudMsg(0, g_sync, "%L", LANG_PLAYER, "WIN_RED")
		
		// Play win sound
		sw_sound(sound_win_red[random_num(0, sizeof sound_win_red -1)])
	}
	else if (!sw_GetRed())
	{
		//Blue team wins
		set_hudmessage(0, 0, 200, -1.0, 0.17, 0, 0.0, 3.0, 2.0, 1.0, -1)
		ShowSyncHudMsg(0, g_sync, "%L", LANG_PLAYER, "WIN_BLUE")
		
		// Play win sound
		sw_sound(sound_win_blue[random_num(0, sizeof sound_win_blue -1)])
	}
	else
	{
		// No one wins
		set_hudmessage(0, 200, 0, -1.0, 0.17, 0, 0.0, 3.0, 2.0, 1.0, -1)
		ShowSyncHudMsg(0, g_sync, "%L", LANG_PLAYER, "WIN_NO_ONE")
		
		sw_sound(sound_win_no_one[random_num(0, sizeof sound_win_no_one -1)])
	}
}
/*================================================================================
 [Main Part]
=================================================================================*/
public func_welcome()
{
	client_print(0,print_chat,"%L",LANG_PLAYER,"MSG_WELCOME",VERSION)
}
public client_connect(id)
{
	if(!get_pcvar_num(pcvar_on))
		return
	
	#if defined EFFECT_SNOW
	client_cmd(id, "cl_weather 1")
	#endif
}
public client_putinserver(id)
{
	// Plugin disabled?
	if (!get_pcvar_num(pcvar_on)) 
		return;
	
	// Initialize player vars
	g_IsChilled[id] = false
	g_blue[id] = false
	g_red[id]= false
	g_god[id] = false
	
	// CZ bots seem to use a different "classtype" for player entities
	// (or something like that) which needs to be hooked separately
	if (!g_bots && pcvar_bots && is_user_bot(id))
	{
		// Set a task to let the private data initialize
		set_task(0.1, "task_bots", id)
	}
}
public client_disconnected(id)
{
	if(!get_pcvar_num(pcvar_on))
		return
	
	g_IsChilled[id] = false
	g_blue[id] = false
	g_red[id]= false
	g_god[id] = false
}
/*================================================================================
 [Forwards]
=================================================================================*/

public fw_PlayerSpawn(id)
{
	if(!is_user_alive(id))
		return
	
	g_blue[id] = false
	g_red[id] = false
	g_IsChilled[id] = false
	g_god[id] = false
	
	//Strip player weapons
	fm_strip_user_weapons(id)
	
	//Give him knife and "snowball"
	fm_give_item(id,"weapon_knife")
	fm_give_item(id,"weapon_hegrenade")
	
	//Reset his model
	sw_reset_user_model(id)
	
	//Strip his cash ;]
	sw_set_user_money(id,0,0)
	
	//Hide money displaying
	sw_money(id)
	
	//Set his team variable
	switch(sw_get_user_team(id))
	{
		case CS_TEAM_CT : g_blue[id] = true
		case CS_TEAM_T : g_red[id] = true
	}
	
	//Set his new model
	remove_task(id + TASK_MODEL)
	
	// Store our custom model in g_player_model[id]
	if(g_blue[id])
	{
		copy(g_player_model[id], sizeof g_player_model[] - 1, model_blue[random_num(0, sizeof model_blue -1)])
		
	}else if(g_red[id])
	{
		copy(g_player_model[id], sizeof g_player_model[] - 1, model_red[random_num(0, sizeof model_red -1)])
	}
        
	// Get the current model
	new currentmodel[32]
	sw_get_user_model(id, currentmodel, sizeof currentmodel - 1)
        
	// Check whether it matches the custom model
	if (!equal(currentmodel, g_player_model[id]))
	{
		// If not, set a task to change it
		set_task(1.0 + g_models_counter, "task_set_model", id + TASK_MODEL)
            
		// Add a delay between every model change
		g_models_counter += MODEL_DELAY
	}
	
	//Check if spawn protection is on
	if(get_pcvar_num(pcvar_spawn))
	{
		//Set god
		g_god[id] = true
		
		//Remove an old task and make a new one
		remove_task(id + TASK_GOD)
		set_task(get_pcvar_float(pcvar_spawn_duration),"task_UnGod",id + TASK_GOD)
		
		//Set glow
		switch(sw_get_user_team(id))
		{
			case CS_TEAM_CT : fm_set_user_rendering(id,kRenderFxGlowShell,0,0,255,kRenderNormal,25)
			case CS_TEAM_T : fm_set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25)
		}
		
	}
	
}
public fw_SpawnEntity(entity)
{
	// Invalid entity
	if (!pev_valid(entity)) return FMRES_IGNORED
	
	// Get classname
	new classname[32]
	pev(entity, pev_classname, classname, sizeof classname - 1)
	
	// Check whether it needs to be removed
	for (new i = 0; i < sizeof g_not_needed; i++)
	{
		if (equal(classname, g_not_needed[i]))
		{
			engfunc(EngFunc_RemoveEntity, entity)
			return FMRES_SUPERCEDE
		}
	}
	
	return FMRES_IGNORED
}
public fw_SetModel(ent,const model[])
{
	//Check ent validity
	if(!pev_valid(ent))
		return FMRES_IGNORED
	
	//If model is equal to HE model, change it to snowball model
	if(equali(model,"models/w_hegrenade.mdl"))
	{
		//get owner to renew his ammo
		new Float:velocity[3],owner = pev(ent,pev_owner)
		
		//remove an old task an set a new one
		remove_task(owner + TASK_AMMO)
		set_task(0.01,"task_ammo",owner + TASK_AMMO)
		
		//Set model
		engfunc(EngFunc_SetModel,ent,model_nade_world)
		
		//Block from exploding
		set_pev(ent, pev_dmgtime, get_gametime() + 9999.0)
		
		//Set less gravity, so it will be "real" snowball
		set_pev(ent,pev_gravity,get_pcvar_float(pcvar_gravity))
		
		//Get grenade velocity
		pev(ent, pev_velocity, velocity)
		
		//Calculate new velocity
		velocity[0] *= get_pcvar_float(pcvar_velocity)
		velocity[1] *= get_pcvar_float(pcvar_velocity)
		velocity[2] *= get_pcvar_float(pcvar_velocity)
		
		//Set new velocity
		set_pev(ent, pev_velocity,velocity)
		
		return FMRES_SUPERCEDE
	}
	return FMRES_IGNORED
}
public fw_Touch(ent,id)
{
	if(!pev_valid(ent))
		return FMRES_IGNORED
	
	//Create some variables
	new classname[20],classname2[20],Float:origin[3],owner = pev(ent,pev_owner)
	
	pev(ent,pev_origin,origin)
	pev(id,pev_classname,classname2,sizeof classname2 - 1)
	pev(ent,pev_classname,classname,sizeof classname - 1)
	
	//Player get's hit
	if(equali(classname,"grenade") && equali(classname2,"player"))
	{
		if(is_user_alive(id))
		{
			//Check friendly fire
			if (get_user_team(owner) == get_user_team(id))
				if (!get_pcvar_num(pcvar_friendly))
					return FMRES_IGNORED	
			
			//Check god mode
			if(g_god[id])
				return FMRES_IGNORED
			
			if(get_user_health(id) > get_pcvar_float(pcvar_dmg))
			{
				//Players health is greater than snowball damage
				
				//Calculate chill chance
				if(random_num(0,100) <= get_pcvar_num(pcvar_chill_chance))
				{
					//Chill only non-chilled player
					if(!g_IsChilled[id])
					{
						//Emit sound
						engfunc(EngFunc_EmitSound,id,CHAN_AUTO,sound_chill[random_num(0, sizeof sound_chill - 1)],1.0,ATTN_NORM,0,PITCH_NORM)
						
						//Make light effect
						sw_light(origin)
						
						//Chill him!
						sw_ChillPlayer(id)
					
						//Set unchill task
						remove_task(id + TASK_UNCHILL)
						set_task(get_pcvar_float(pcvar_chill_duration),"task_UnChill",id + TASK_UNCHILL)
					}
				}
				
				//Create nice effect
				sw_effect(origin)
				
				//Emit pain sound
				engfunc(EngFunc_EmitSound,id,CHAN_VOICE,sound_pain[random_num(0, sizeof sound_pain - 1)],1.0,ATTN_NORM,0,PITCH_NORM)
				
				//Emit hit sound
				engfunc(EngFunc_EmitSound,ent,CHAN_AUTO,sound_hit[random_num(0, sizeof sound_hit - 1)],1.0,ATTN_NORM,0,PITCH_NORM)
				
				//Do damage to player
				fm_set_user_health(id, get_user_health(id) - floatround(get_pcvar_float(pcvar_dmg)))
				
				//Make white splash
				sw_splash(ent,origin)
				
			}else if(get_user_health(id) <= get_pcvar_float(pcvar_dmg))
			{
				//Players health is lower or equal to snowball damage
				
				//Emit hit sound
				engfunc(EngFunc_EmitSound,ent,CHAN_AUTO,sound_hit[random_num(0, sizeof sound_hit - 1)],1.0,ATTN_NORM,0,PITCH_NORM)
				
				//Make nice effect
				sw_effect(origin)
			
				//Remove entity
				engfunc(EngFunc_RemoveEntity,ent)
				
				//Kill player
				sw_kill(owner,id,"snowball",0)
			}	
		}else{	
			//Snowball hits something (not player)
			sw_splash(ent,origin)
		}
		
	}else if(equali(classname,"grenade"))
	{
		sw_effect(origin)
		
		//Snowball hit's something, f.e. wall, etc.
		sw_splash(ent,origin)
		
		//Emit hit sound
		engfunc(EngFunc_EmitSound,ent,CHAN_AUTO,sound_hit[random_num(0, sizeof sound_hit - 1)],1.0,ATTN_NORM,0,PITCH_NORM)
	}
	
	return FMRES_IGNORED
}
public fw_EmitSound(ent,channel,const sound[])
{
	//Check if emited sound is equal to one for our list
	for(new a; a < sizeof g_bouncelist;a++)
	{
		//If it's equal - block it
		if(equali(sound,g_bouncelist[a]))
			return FMRES_SUPERCEDE
	}
	return FMRES_IGNORED
}
public fw_Think(ent)
{
	//Check validity
	if(!pev_valid(ent))
		return FMRES_IGNORED
	
	//Retrieve class
	static class[20]
	pev(ent,pev_classname,class,sizeof class - 1)
	
	//If class is equal to snow_splash, remove entity
	if(equali(class,"snow_splash"))
		engfunc(EngFunc_RemoveEntity,ent)
		
	return FMRES_IGNORED
}
public fw_SetClientKeyValue(id, const infobuffer[], const key[])
{   
	// Block CS model changes
	if (g_has_custom_model[id] && equal(key, "model"))
		return FMRES_SUPERCEDE
        
	return FMRES_IGNORED
}
public fw_ClientUserInfoChanged(id)
{
    // Player doesn't have a custom model
	if (!g_has_custom_model[id])
		return FMRES_IGNORED

	// Get current model
	static currentmodel[32]
	sw_get_user_model(id, currentmodel, sizeof currentmodel - 1)
    
	// Check whether it matches the custom model - if not, set it again
	if (!equal(currentmodel, g_player_model[id]))
		sw_set_user_model(id, g_player_model[id])
    
	return FMRES_IGNORED
}
public fw_PlayerKilled(victim, attacker, shouldgib)
{
	//Check if deathmatch is on
	if(!get_pcvar_num(pcvar_dm))
		return
	
	//Make sure that it's not round end
	if(!g_endround)
	{
		remove_task(victim + TASK_RESPAWN)
		set_task(get_pcvar_float(pcvar_dm_time),"task_respawn",victim + TASK_RESPAWN)
	}
	
}
//Block knife damage
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{

		if(is_user_connected(attacker) && is_user_alive(attacker) && get_user_weapon(attacker) == CSW_KNIFE)
		{
			return HAM_SUPERCEDE
		}
	
		return HAM_IGNORED
}
//Change game name
public fw_GameDesc()
{
	forward_return(FMV_STRING,g_modname)
	return FMRES_SUPERCEDE
}
/*================================================================================
 [Messages]
=================================================================================*/

// Block some text messages
public message_textmsg()
{
	static textmsg[22]
	get_msg_arg_string(2, textmsg, sizeof textmsg - 1)
	
	// Game restarting, reset scores and call round end to balance the teams
	if (equal(textmsg, "#Game_will_restart_in"))
	{
		logevent_round_end()
	}
	// Block round end related messages 
	else if (equal(textmsg, "#Hostages_Not_Rescued") || equal(textmsg, "#Round_Draw") || equal(textmsg, "#Terrorists_Win") || equal(textmsg, "#CTs_Win"))
	{
		return PLUGIN_HANDLED
	}
	
	//Block "Fire in the hole!" text
	if(get_msg_args() == 5)
	{
		if(get_msg_argtype(5) == ARG_STRING)
		{
			new value5[64]
			get_msg_arg_string(5 ,value5 ,63)
			if(equal(value5, "#Fire_in_the_hole"))
			{
				return PLUGIN_HANDLED
			}
		}
	}
	else if(get_msg_args() == 6)
	{
		if(get_msg_argtype(6) == ARG_STRING)
		{
			new value6[64]
			get_msg_arg_string(6 ,value6 ,63)
			if(equal(value6 ,"#Fire_in_the_hole"))
			{
				return PLUGIN_HANDLED
			}
		}
	}
	
	return PLUGIN_CONTINUE
}

//Block some audio messages
public message_audio()
{
	//Create variable
	static sample[20]
	
	//Get message arguments
	get_msg_arg_string(2, sample, sizeof sample - 1)
	
	//Check argument, if it's equal - block it
	if(equal(sample[1], "!MRAD_FIREINHOLE"))
		return PLUGIN_HANDLED
			
	if(equal(sample[7], "terwin") || equal(sample[7], "ctwin") || equal(sample[7], "rounddraw"))
		return PLUGIN_HANDLED
	
	return PLUGIN_CONTINUE
}

//Block hostage from appearing on the radar
public message_hostagepos()
{
	return PLUGIN_HANDLED
}
// Block hostage HUD display
public message_scenario()
{
	if (get_msg_args() > 1)
	{
		static sprite[8]
		get_msg_arg_string(2, sprite, sizeof sprite - 1)
		
		if (equal(sprite, "hostage"))
			return PLUGIN_HANDLED
	}
	
	return PLUGIN_CONTINUE
}
/*================================================================================
 [TASKS]
=================================================================================*/
public task_ammo(id)
{
	id -= TASK_AMMO
	
	sw_set_user_bpammo(id,1)
}
public task_respawn(id)
{
	id -= TASK_RESPAWN
	
	ExecuteHamB(Ham_CS_RoundRespawn,id)
}
public task_UnChill(id)
{
	id -= TASK_UNCHILL
	
	new Float:origin[3]
	
	pev(id,pev_origin,origin)
	
	sw_UnChill(id,origin)
}
public task_set_model(id)
{
	id -= TASK_MODEL

	sw_set_user_model(id, g_player_model[id])
}
public task_UnGod(id)
{
	id -= TASK_GOD
	
	g_god[id] = false
	
	fm_set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
}
public task_bots(id)
{
	// Make sure it's a CZ bot and it's still connected
	if (g_bots || !get_pcvar_num(pcvar_bots) || !is_user_connected(id) || !is_user_bot(id))
		return;
	
	RegisterHamFromEntity(Ham_Spawn, id, "fw_PlayerSpawn", 1)
	RegisterHamFromEntity(Ham_Killed, id, "fw_PlayerKilled")
	RegisterHamFromEntity(Ham_TakeDamage, id, "fw_TakeDamage")
	
	// Ham forwards for CZ bots succesfully registered
	g_bots = true
	
	// If the bot has already spawned, call the forward manually for him
	if (is_user_alive(id)) fw_PlayerSpawn(id)
}
/*================================================================================
 [Stocks]
=================================================================================*/

//Set player money
stock sw_set_user_money(id,money,flash=1)
{
	set_pdata_int(id,OFFSET_CSMONEY,money,OFFSET_LINUX)
	
	message_begin(MSG_ONE,g_money,{0,0,0},id)
	write_long(money)
	write_byte(flash)
	message_end()
}
// Get User Team
stock sw_get_user_team(id)
{
	return get_pdata_int(id, OFFSET_CSTEAMS, OFFSET_LINUX)
}
//With this stock we can set player model
stock sw_set_user_model(player, const modelname[])
{
	engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", modelname)
    
	g_has_custom_model[player] = true
}
//With this stock we can get player model
stock sw_get_user_model(player, model[], len)
{
	engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
}
//With this stock we can reset player model
stock sw_reset_user_model(player)
{
	g_has_custom_model[player] = false
    
	dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player))
}
//Set user snowballs
stock sw_set_user_bpammo(id,amount)
{
	set_pdata_int(id, OFFSET_HE_AMMO, amount, OFFSET_LINUX)
}
//Make death msg
stock sw_kill(killer, victim, weapon[],headshot)
{
	user_kill(victim,1)
	
	message_begin(MSG_ALL, g_death, {0,0,0}, 0)
	write_byte(killer)
	write_byte(victim)
	write_byte(headshot)
	write_string(weapon)
	message_end()
	
	if(get_user_team(killer)!= get_user_team(victim))
	{
		fm_set_user_frags(killer,get_user_frags(killer) + 1)
		
	}else{	
		fm_set_user_frags(killer,get_user_frags(killer) - 1)
	}
}
/*================================================================================
 [Other stuff]
=================================================================================*/
sw_GetBlue()
{
	static iCt, id
	iCt = 0
	
	for (id = 1; id <= g_maxplayers; id++)
	{
		if (is_user_connected(id))
		{	
			if(is_user_alive(id) && g_blue[id])
				iCt++
		}
	}
	
	return iCt
}
sw_GetRed()
{
	static iT, id
	iT = 0
	
	for (id = 1; id <= g_maxplayers; id++)
	{
		if (is_user_connected(id))
		{
			if(is_user_alive(id) && g_red[id])
				iT++
		}
	}
	
	return iT
}
sw_money(id)
{
	message_begin(MSG_ONE,g_weapon,_,id)
	write_byte(HIDE_MONEY)
	message_end()
	message_begin(MSG_ONE,g_crosshair,_,id)
	write_byte(0)
	message_end()
}
sw_sound(const sound[])
{
	client_cmd(0, "spk ^"%s^"", sound)
}
sw_splash(ent,Float:origin[3])
{
	set_pev(ent, pev_velocity, Float:{0.0, 0.0, 0.0})
	set_pev(ent, pev_classname, "snow_splash")
	set_pev(ent, pev_solid, SOLID_NOT)
	set_pev(ent, pev_movetype, MOVETYPE_NONE)
	engfunc(EngFunc_SetOrigin, ent, origin)
	engfunc(EngFunc_SetModel, ent, model_splash)
	set_pev(ent,pev_nextthink,get_gametime() + get_pcvar_float(pcvar_life))
	fm_set_rendering(ent, kRenderFxNoDissipation, 255, 255, 255, kRenderGlow, 255)
}
sw_effect(Float:fOrigin[3])
{
	new origin[3]
	FVecIVec(fOrigin,origin)
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(TE_BLOODSPRITE)
	write_coord(origin[0]+random_num(-20,20))
	write_coord(origin[1]+random_num(-20,20))
	write_coord(origin[2]+random_num(-20,20))
	write_short(g_spray)
	write_short(g_drop)
	write_byte(255)
	write_byte(15)
	message_end()
}
sw_light(Float:originF[3])
{
	new origin[3]
	FVecIVec(originF,origin)
	
	// light effect
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(TE_DLIGHT)
	write_coord(origin[0]) // x
	write_coord(origin[1]) // y
	write_coord(origin[2]) // z
	write_byte(floatround(240.0/5.0)) // radius
	write_byte(0) // r
	write_byte(206)// g
	write_byte(209) // b
	write_byte(8) // life
	write_byte(60) // decay rate
	message_end()
}
sw_ChillPlayer(id)
{
	//Set glow
	fm_set_user_rendering(id,kRenderFxGlowShell,0,206,209,kRenderNormal,25)
	
	//Set chill state
	g_IsChilled[id] = true
	
	//Retrieve player old maxspeed
	pev(id,pev_maxspeed,g_maxspeed[id])
	
	//Calculate his new maxspeed
	g_ChillySpeed[id] = g_maxspeed[id] * get_pcvar_float(pcvar_chill_speed) / 100.0
	
	//Set his new maxspeed
	set_pev(id,pev_maxspeed,g_ChillySpeed[id])
	
	//Add blue fade on players screen
	message_begin(MSG_ONE,gmsgScreenFade,_,id)
	write_short(floatround(4096.0 * get_pcvar_float(pcvar_chill_duration))) // duration
	write_short(floatround(3072.0 * get_pcvar_float(pcvar_chill_duration))) // hold time
	write_short(FFADE_IN) // flags
	write_byte(0) // red
	write_byte(206) // green
	write_byte(209) // blue
	write_byte(100) // alpha
	message_end()
}
sw_UnChill(id,Float:fOrigin[3])
{
	//Make some variables
	new origin[3]
	
	//Change origin from float to integer
	FVecIVec(fOrigin,origin)
	
	//Delete glow
	fm_set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
	
	//Restore his maxspeed
	set_pev(id,pev_maxspeed,g_maxspeed[id])
	
	//Set chill state
	g_IsChilled[id] = false
	
	// clear tint
	message_begin(MSG_ONE,gmsgScreenFade,_,id)
	write_short(0) // duration
	write_short(0) // hold time
	write_short(FFADE_IN) // flags
	write_byte(0) // red
	write_byte(0) // green
	write_byte(0) // blue
	write_byte(255)// alpha
	message_end()
	
	//Make glass effect
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(TE_BREAKMODEL)
	write_coord(origin[0]) // x
	write_coord(origin[1]) // y
	write_coord(origin[2] + 24) // z
	write_coord(16) // size x
	write_coord(16) // size y
	write_coord(16) // size z
	write_coord(random_num(-50,50)) // velocity x
	write_coord(random_num(-50,50)) // velocity y
	write_coord(25) // velocity z
	write_byte(10) // random velocity
	write_short(g_glass) // model
	write_byte(10) // count
	write_byte(25) // life
	write_byte(BREAK_GLASS) // flags
	message_end()
	
	//Emit sound
	engfunc(EngFunc_EmitSound,id,CHAN_AUTO,sound_unchill[random_num(0, sizeof sound_unchill - 1)],1.0,ATTN_NORM,0,PITCH_NORM)
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
MamiReyiz [S]
Mesajlar: 1922
Kayıt: Prş Oca 17, 2019 10:53 am

Serverimde Silah alınca işlememesi

Mesaj gönderen MamiReyiz [S] »

Link atsaydın @PaZee

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
MamiReyiz [S]
Mesajlar: 1922
Kayıt: Prş Oca 17, 2019 10:53 am

Serverimde Silah alınca işlememesi

Mesaj gönderen MamiReyiz [S] »

@PaZee mermiyi nasıl 10 yapıcam adam kutudan silahı aldı tarıyor öldürüyor herkezi

Link:
Linklerini gizle
Linki Kopyala
Cevapla