[MOD] Dead by daylight [NEFINALIZAT]

Aici vom publica si discuta despre diverse moduri necesare serverelor dedicate.

Moderators: Moderatori, Moderatori ajutători

Post Reply
User avatar
Rainq
Fost administrator
Fost administrator
Posts: 381
Joined: Mon Jan 18, 2021 7:25 am
Status: Citesc forumul TheXForce.RO...!
Detinator Steam: Da
SteamID: mrainq
Gaming experience: Nu spun..
Reputatie: Fost administrator
Nume anterior: Light
Fost detinator zm.thexforce.ro
Fost detinator dr.thexforce.ro
Location: Bucureşti
Has thanked: 2 times
Been thanked: 1 time
Contact:

[MOD] Dead by daylight [NEFINALIZAT]

Post by Rainq »

Descriere: Un mod cu 4 supravietuitori si 1 killer iar in functie de cati supravietuitori sunt sa se mai adauge cate un killer (nefinalizat) # l-am pus mai mult cu gandul ca poate vrea cineva sa-l termine modul

Descarcare:

Code: Select all

#include <amxmodx>
#include <amxmisc> 
#include <cstrike> 
#include <fun>
#include <hamsandwich>
#include <fakemeta_util>
#include <engine>
#include <fakemeta>
#define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)

new Hud[2], Temp[33], Float:Delay[33][33], Float:Delay1[33][33], Float:Delay2[33][33], Float:Delay3[33][33], Spr;
new Ent[33][33], Timer[33], Hold[33], Hold1[33], Owner[33], MyEnt[33], MyEnt1[33], Pid[33]
new frise[33], fstrik[33], fknocked[33], fcarried[33], fhook[33], fid[33], bot_register, spectre[33]

new const Gene[][] = {"generator1", "generator2", "generator3", "generator4"};
new const Hook[][] = {"hook1", "hook2", "hook3", "hook4"};
new const Call[][] = {"button", "button1", "button2", "button3"};
new const Gate[][] = {"gate", "gate_wall1", "gate_wall2", "gate_wall3"};
new const Crow[][] = {"crow_idle", "crow_land"};
new const Pum1[][] = {"pump1_g1", "pump1_g2","pump1_g3", "pump1_g4"};
new const Pum2[][] = {"pump1_g2", "pump2_g2","pump2_g3", "pump2_g4"};
new const Sta1[][] = {"start1_g1", "start1_g2","start1_g3", "start1_g4"};
new const Sta2[][] = {"start2_g1", "start2_g2","start2_g3", "start2_g4"};
new const Elec[][] = {"electric_g1", "electric_g2","electric_g3", "electric_g4"};

new const Sound[][] = {
	"dbd_sound/repair.wav",
	"dbd_sound/heartbeat.wav",
	"dbd_sound/scare01.wav",
	"dbd_sound/scare02.wav",
	"dbd_sound/scare03.wav",	
	"dbd_sound/breath.wav",
	"dbd_sound/hit.wav",
	"dbd_sound/knife_hit.wav",
	"dbd_sound/intro01.mp3",
	"dbd_sound/intro02.mp3",	
	"dbd_sound/hatch01.wav",
	"dbd_sound/hatch02.wav",
	"dbd_sound/generator05.wav"
}

public plugin_init() 
{
	register_plugin("Dead By DayLight", "1.0", "Argon Svng")
	register_clcmd("say c", "ct")
	register_clcmd("say t", "tr")


	register_logevent("event_round", 2, "0=World triggered", "1=Round_Start")
	register_forward(FM_PlayerPreThink, "forward_prethink")
	register_forward(FM_Think, "forward_entity")
	RegisterHam(Ham_TraceAttack, "player", "ham_attack")
	RegisterHam(Ham_Spawn, "player", "ham_spawn", 1)
	register_touch("fcore", "player", "touch_player")

	register_touch("trigger_multiple", "player", "touch_trigger");

	Hud[0] = CreateHudSyncObj(1)
	Hud[1] = CreateHudSyncObj(2)
	for(new i; i < sizeof Gene; i++) Ent[0][i] = find_ent_by_tname(-1, Gene[i]);
	for(new i; i < sizeof Hook; i++) Ent[1][i] = find_ent_by_tname(-1, Hook[i]);
	for(new i; i < sizeof Call; i++) Ent[2][i] = find_ent_by_tname(-1, Call[i]);
	for(new i; i < sizeof Gate; i++) Ent[3][i] = find_ent_by_tname(-1, Gate[i]);
	for(new i; i < sizeof Crow; i++) Ent[4][i] = find_ent_by_tname(-1, Crow[i]);

	for(new i; i < sizeof Pum1; i++) Ent[5][i] = find_ent_by_tname(-1, Pum1[i]);
	for(new i; i < sizeof Pum2; i++) Ent[6][i] = find_ent_by_tname(-1, Pum2[i]);
	for(new i; i < sizeof Sta1; i++) Ent[7][i] = find_ent_by_tname(-1, Sta1[i]);
	for(new i; i < sizeof Sta2; i++) Ent[8][i] = find_ent_by_tname(-1, Sta2[i]);
	for(new i; i < sizeof Elec; i++) Ent[9][i] = find_ent_by_tname(-1, Elec[i]);	

}

/*
button1 gate gate_wall func_wall
button_trigger escape_trigger trigger_multiple
*/

public touch_trigger(entity, id) 
{
	new touch[33]; pev(entity, pev_targetname, touch, charsmax(touch));
	if(is_user_alive(id) && get_user_team(id) == 1 && equali(touch, "escape_trigger")) 
	{
		cs_set_user_team(id, CS_TEAM_SPECTATOR)
		spectre[id] = 1
		strip_user_weapons(id)
		fm_set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)	
		set_pev(id, pev_movetype, MOVETYPE_NOCLIP)
		set_pev(id, pev_solid, SOLID_NOT)	
		//silentuser_kill(i, 1)	

		new players[32], tero
		get_players(players, tero, "ae", "TERRORIST")	

		for(new i = 0; i < get_maxplayers(); i++)
		{
			if(!is_user_alive(i)) continue;			
			if(get_user_team(i) == 2 && tero == 0)
			{
				user_kill(i, 1)	
			}	
		}		
	}
}

public ham_spawn(id)
{
	if(is_user_alive(id))
	{		
		fweapons(id)
		set_user_health(id, 100)
		set_user_godmode(id, 1)
		fm_set_rendering(id)
		engfunc(EngFunc_SetClientMaxspeed, id, 250.0)		
	}
}

public event_round() 
{	
	
	for(new i = 0; i < get_maxplayers(); i++)
	{
		if(!is_user_connected(i)) continue;
		if(spectre[i] == 1) cs_set_user_team(i, CS_TEAM_T)
		spectre[i] = 0
		fstrik[i] = 0
		fhook[i] = 0
		fknocked[i] = 0
		fcarried[i] = 0
		fknocked[i] = 0			
		frise[i] = 0
		Pid[i] = 0
		MyEnt[i] = 0
		MyEnt1[i] = 0
		Owner[i] = 0
		Timer[i] = 0	
		Hold[i] = 0	
		Hold1[i] = 0	
		Temp[i] = 0	
		if(task_exists(i)) remove_task(i)
		set_pev(i, pev_solid, SOLID_BBOX)
		set_pev(i, pev_movetype, MOVETYPE_NONE)	
		set_user_rendering(i);			
	}
	
	if(task_exists(664)) remove_task(664)
	client_cmd(0, "mp3 stop;stopsound")
	client_cmd(0, "mp3 play ^"sound/%s^"", Sound[8])	
	set_task(11.0, "start_intro", 664)
	setup_entity()
}

public start_intro()
{
	if(task_exists(664)) remove_task(664)
	client_cmd(0, "mp3 stop;stopsound")
	client_cmd(0, "mp3 play ^"sound/%s^"", Sound[9])
}

public client_putinserver(id)
{
	if(!bot_register && is_user_bot(id))
	{
		bot_register = 1
		set_task(1.0, "do_register", id)
	}	
}

public do_register(id)
{
	RegisterHamFromEntity(Ham_Spawn, id, "ham_spawn", 1)
	RegisterHamFromEntity(Ham_TraceAttack, id, "ham_attack", 1)
	//RegisterHamFromEntity(Ham_TraceAttack, id, "ham_killed", 0)
}

public ct(id) cs_set_user_team(id, CS_TEAM_CT)
public tr(id) cs_set_user_team(id, CS_TEAM_T)

public plugin_precache()
{
	for(new i; i < sizeof Sound; i++) precache_sound(Sound[i])
	Spr = precache_model("sprites/ef_buffak_hit.spr") // muzzleflash40.spr
	precache_model("models/player/terror/terror.mdl")
	precache_model("models/g_argona_ml/knocked.mdl") 
}

public ham_attack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits)
{
	if(!is_user_connected(victim) || !is_user_connected(attacker)) return HAM_IGNORED

	if(!is_user_alive(victim) && !is_user_alive(attacker)) return HAM_IGNORED;
	if(get_user_team(attacker) == 2 && get_user_team(victim) == 1 && fknocked[victim] == 0)
	{
		fstrik[victim] -= 5;	
		if(fstrik[victim] <= 0)
		{
			fstrik[victim] = 10;
			fknocked[victim] = 1;
			frise[victim] = 10;
			emit_sound(victim, CHAN_VOICE, Sound[5], 0.0, ATTN_NORM, SND_STOP, PITCH_NORM);
			emit_sound(victim, CHAN_VOICE, Sound[6], 1.0, ATTN_NORM, 0, PITCH_NORM);
			strip_user_weapons(victim)
			fm_set_rendering(victim, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)	
			set_pev(victim, pev_movetype, MOVETYPE_NOCLIP);
			set_pev(victim, pev_solid, SOLID_NOT);		

			static Float:fOrigin[3]; entity_get_vector(victim, EV_VEC_origin, fOrigin); fOrigin[2] -= 30

			new Ent0 = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
			if(pev_valid(Ent0))
			{
				entity_set_model(Ent0, "models/g_argona_ml/knocked.mdl");	
				engfunc(EngFunc_SetSize, Ent0, Float:{-20.0, -20.0, -0.0}, Float:{20.0, 20.0, 20.0})
				set_pev(Ent0, pev_origin, fOrigin);
				set_pev(Ent0, pev_movetype, MOVETYPE_FLY);
				set_pev(Ent0, pev_classname, "fcore")	
				set_pev(Ent0, pev_owner, victim);
				entity_set_int(Ent0, EV_INT_solid, SOLID_TRIGGER)				

				new Float:fAngle[3]; pev(victim, pev_angles, fAngle); fAngle[0] = 0.0;
				set_pev(Ent0, pev_angles, fAngle)
				set_pev(Ent0, pev_v_angle, fAngle)

				new Ent1 = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
				if(pev_valid(Ent1))
				{
					entity_set_model(Ent1, "models/player/terror/terror.mdl");	
					set_pev(Ent1, pev_origin, fOrigin);
					set_pev(Ent1, pev_movetype, MOVETYPE_FLY);
					set_pev(Ent1, pev_aiment, Ent0);	
					set_pev(Ent1, pev_classname, "fhost")	
				}

				MyEnt[victim] = Ent0	
				MyEnt1[victim] = Ent1	
			}			
		}		
	}
	return HAM_IGNORED
}

public touch_player(ent, id) 
{ 
	//if(is_user_bot(id)) return PLUGIN_CONTINUE
	new button = pev(id, pev_button)
	new me = pev(ent, pev_owner)

	if((button & IN_USE) && get_user_team(id) == 2 && fcarried[id] == 0 && fknocked[me] == 1 && pev_valid(ent))
	{
		frise[me] = 0;
		fknocked[me] = 2
		Pid[id] = me
		fcarried[id] = 1
		fid[me] = id
		//remove_entity(ent)
		set_pev(MyEnt1[me], pev_aiment, 0);	
		if(pev_valid(MyEnt[me])) engfunc(EngFunc_RemoveEntity, MyEnt[me])
		if(pev_valid(MyEnt1[me])) engfunc(EngFunc_RemoveEntity, MyEnt1[me])
	}
	
	//return PLUGIN_CONTINUE 
}

public forward_entity(ent)
{
	if(!pev_valid(ent)) return FMRES_IGNORED;
	update_entity(0)
	update_entity(1)
	update_entity(2)
	update_entity(3)
	return FMRES_IGNORED;
}

public task_restspeed(id) engfunc(EngFunc_SetClientMaxspeed, id, 250.0)

public forward_prethink(id)
{
	if(!pev_valid(id)) return FMRES_IGNORED;	

	check_entity(id, 0)
	check_entity(id, 1)
	check_entity(id, 2)
	check_entity(id, 3)

	check_entity1(id, 0)
	check_entity1(id, 1)
	check_entity1(id, 2)
	check_entity1(id, 3)

	check_entity2(id)

	new button = pev(id, pev_button)     
	new oldbuttons = pev(id, pev_oldbuttons)

	if(((button & IN_ATTACK2) || (button & IN_ATTACK)) && get_user_team(id) == 2) 
	{
		engfunc(EngFunc_SetClientMaxspeed, id, 1.0)
		if(task_exists(id)) remove_task(id)
		set_task(0.2,"task_restspeed", id)
	}

	if(fcarried[id] == 1)
	{
		
		//new Float:forigin[3]; entity_get_vector(id, EV_VEC_origin, forigin); forigin[2] -= 30;
		//set_pev(MyEnt[id], pev_origin, forigin);
		//new Float:angle[3]; pev(id, pev_angles, angle); angle[0] = 0.0;
		//set_pev(MyEnt[id], pev_angles, angle)
		//set_pev(MyEnt[id], pev_v_angle, angle)
		
		new Float:fOrigin[3]; entity_get_vector(id, EV_VEC_origin, fOrigin); fOrigin[2] += 30;
		set_pev(Pid[id], pev_origin, fOrigin);	

		if((button & IN_ATTACK2) && !(oldbuttons & IN_ATTACK2))
		{	
			fknocked[Pid[id]] = 1;
			fcarried[id] = 0;
			frise[Pid[id]] = 10;			
			fm_set_rendering(Pid[id], kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)	
			set_pev(Pid[id], pev_movetype, MOVETYPE_NOCLIP);
			set_pev(Pid[id], pev_solid, SOLID_NOT);		

			static Float:fOrigin[3]; entity_get_vector(id, EV_VEC_origin, fOrigin)
			new Float:fAngle[3]; pev(id, pev_angles, fAngle); fOrigin[2] -= 30

			new Ent0 = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
			if(pev_valid(Ent0))
			{
				entity_set_model(Ent0, "models/g_argona_ml/knocked.mdl");	
				engfunc(EngFunc_SetSize, Ent0, Float:{-20.0, -20.0, -0.0}, Float:{20.0, 20.0, 20.0})
				set_pev(Ent0, pev_origin, fOrigin);
				set_pev(Ent0, pev_movetype, MOVETYPE_FLY);
				set_pev(Ent0, pev_classname, "fcore")	
				set_pev(Ent0, pev_owner, Pid[id]);
				entity_set_int(Ent0, EV_INT_solid, SOLID_TRIGGER)	

				new Ent1 = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
				if(pev_valid(Ent1))
				{
					entity_set_model(Ent1, "models/player/terror/terror.mdl");	
					set_pev(Ent1, pev_origin, fOrigin);
					set_pev(Ent1, pev_movetype, MOVETYPE_FLY);
					set_pev(Ent1, pev_aiment, Ent0);	
					set_pev(Ent1, pev_classname, "fhost")	
				}

				fAngle[0] = 0.0;
				set_pev(Ent0, pev_angles, fAngle)
				set_pev(Ent0, pev_v_angle, fAngle)	
				MyEnt[Pid[id]] = Ent0			
				MyEnt1[Pid[id]] = Ent1			
			}
		}
	}	

	if(get_gametime() - 0.4 >  Delay2[id][2])
	{
		new gameinfo[555 char], fsec = frise[id]%60, bsec = fstrik[id]%60

		if(frise[id] != 0)
		{ 
			formatex(gameinfo, charsmax(gameinfo), "[Risnig: %s%d sec]", (fsec < 10 ? "0" : ""), fsec);
		}
		else if(fstrik[id] <= 5 && fstrik[id] > 0 && fknocked[id] == 0)
		{ 
			formatex(gameinfo, charsmax(gameinfo), "[Bleeding: %s%d sec]", (bsec < 10 ? "0" : ""), bsec);
		}
		else{ formatex(gameinfo, charsmax(gameinfo), ""); }

		set_hudmessage(250, 150, 50, -1.0, 0.53, 1, 2.0, 0.4, 0.4, 0.4)
		show_hudmessage(id, "%s", gameinfo)
		Delay2[id][2] = get_gametime()
	}
	if(fknocked[id] == 1)
	{
		new Float:fOrigin[3]; 
		entity_get_vector(MyEnt[id], EV_VEC_origin, fOrigin);
		fOrigin[2] += 50
		set_pev(id, pev_origin, fOrigin);

		if(get_gametime() - 1.0 > Delay2[id][3] && fknocked[id] == 1)
		{
			frise[id] --;
			if(frise[id] <= 0)
			{
				set_pev(id, pev_solid, SOLID_BBOX)
				set_pev(id, pev_movetype, MOVETYPE_NONE)	
				set_user_rendering(id);	
				fknocked[id] = 0;		
				fstrik[id] = 5;		
				engfunc(EngFunc_SetClientMaxspeed, id, 130.0)
				if(pev_valid(MyEnt[id])) engfunc(EngFunc_RemoveEntity, MyEnt[id])
				set_pev(MyEnt1[id], pev_aiment, 0);
				if(pev_valid(MyEnt1[id])) engfunc(EngFunc_RemoveEntity, MyEnt1[id])
				
				fweapons(id)			
			}
			Delay2[id][3] = get_gametime(); 
		}
	}
	if(fknocked[id] == 3)
	{
		new Float:fOrigin[3]; 
		entity_get_vector(MyEnt[id], EV_VEC_origin, fOrigin);
		fOrigin[2] += 60
		set_pev(id, pev_origin, fOrigin);
	}	
	if(fstrik[id] <= 0 || fknocked[id] == 1) fstrik[id] = 10
	if(get_gametime() - 3.0 > Delay2[id][4] && fstrik[id] <= 5 && fstrik[id] > 0 && fknocked[id] == 0)
	{	
		fstrik[id] --
		if(fstrik[id] > 0) 
		{				
			emit_sound(id, CHAN_VOICE, Sound[5], 1.0, ATTN_NORM, 0, PITCH_NORM);
			engfunc(EngFunc_SetClientMaxspeed, id, 130.0)
			new origin[3]; get_user_origin(id, origin); fblood(origin); fbleed(origin);
		}
		if(fstrik[id] <= 0) 
		{
			emit_sound(id, CHAN_VOICE, Sound[5], 0.0, ATTN_NORM, SND_STOP, PITCH_NORM);
			engfunc(EngFunc_SetClientMaxspeed, id, 250.0)
		}
		Delay2[id][4] = get_gametime();
	}			
	if(!is_user_alive(id)) fstrik[id] = 10;

	if(get_gametime() - 1.0 > Delay2[id][0])
	{	
		if(Timer[id] > 0) Timer[id]--
		Delay2[id][0] = get_gametime();
	}
	set_hudmessage(255, 255, 0, 0.10, 0.20, 0, 0.0, 0.8, 0.0, 0.0)
	ShowSyncHudMsg(id, Hud[1], "Sabotaged: %d Sec | Progress: %d-%d-%d-%d", Hold[0],Temp[1],Temp[2],Temp[3],Temp[4])	

	new Players[32], Target = find_sphere_class(id, "player", 300.0, Players, sizeof(Players))
	
	for(new i; i < Target; i++)
	{
		if(get_user_team(Players[i]) == 2 && Players[i] != id && get_user_team(id) == 1)
		{
			new Name[32]; get_user_name(id, Name, sizeof(Name)-1)
			new pName[32]; get_user_name(Players[i], pName, sizeof(pName)-1)
			
			if(get_gametime() - 4.0 > Delay2[id][1])
			{
				client_cmd(id, "speak ^"sound/%s^"", Sound[3])		
				client_cmd(id, "speak ^"sound/%s^"", Sound[1])		
				//emit_sound(id, CHAN_AUTO, Sound[1], 0.0, ATTN_NORM, SND_STOP, PITCH_NORM);
				//emit_sound(id, CHAN_VOICE, Sound[1], 1.0, ATTN_NORM, 0, PITCH_NORM);	
				Delay2[id][1] = get_gametime();
			}			
		}
	}  

	return FMRES_IGNORED;
}

public check_entity(id, num)
{
	static Float:Origin[3]; entity_get_vector(id, EV_VEC_origin, Origin)
	static Float:fOrigin[3]; entity_get_vector(Ent[0][num], EV_VEC_origin, fOrigin)
	static Button; Button = pev(id, pev_button);
	static OldButton; OldButton = pev(id, pev_oldbuttons);

	if((get_distance_f(fOrigin, Origin) < 65.0) && Temp[num] < 100)
	{
		if((Button & IN_ATTACK) && !(OldButton & IN_USE) && get_user_team(id) == 2 && Temp[num] < 100 && Temp[num] > 0 && Timer[id] == 0)
		{	
			//set_pev(Ent, pev_sequence, 1)
			Temp[num] = 0
			Timer[id] = 45
			emit_sound(Ent[0][num], CHAN_VOICE, Sound[12], 0.0, ATTN_NORM, SND_STOP, PITCH_NORM);
			emit_sound(Ent[0][num], CHAN_VOICE, Sound[12], 1.0, ATTN_NORM, 0, PITCH_NORM);
			set_pev(Ent[0][num], pev_sequence, 0)

		}	
		if((Button & IN_USE) && get_user_team(id) == 1)
		{
			static Aim, Body, EntAim[32]; 
			get_user_aiming(id, Aim, Body, 35); 
			entity_get_string(Aim, EV_SZ_targetname, EntAim, charsmax(EntAim));

			if(equali(EntAim, Gene[num])) 
			{
				if(get_gametime() - 0.1 > Delay1[id][num])
				{
					Temp[num] += 1
					Delay1[id][num] = get_gametime();
				}	

				if(get_gametime() - 1.5 > Delay[1][num])
				{
					message_begin(MSG_BROADCAST,SVC_TEMPENTITY )
					write_byte(TE_SPRITE)
					write_coord_f(fOrigin[0])
					write_coord_f(fOrigin[1])
					write_coord_f(fOrigin[2]+35.0)
					write_short(Spr) 
					write_byte(2) 
					write_byte(255)
					message_end()	

					static nOrigin[3]; FVecIVec(fOrigin, nOrigin)
					message_begin(MSG_PVS, SVC_TEMPENTITY, nOrigin)
					write_byte(9)
					write_coord(nOrigin[0])
					write_coord(nOrigin[1])
					write_coord(nOrigin[2]+35)
					message_end()

					message_begin(MSG_PVS, SVC_TEMPENTITY, nOrigin)
					write_byte(TE_IMPLOSION)
					write_coord(nOrigin[0])
					write_coord(nOrigin[1])
					write_coord(nOrigin[2]+35)
					write_byte(12)
					write_byte(15)
					write_byte(2)
					message_end()				
					//setup_sound(num, 5, 1.0, 9, 0, 0, 1)	
					Delay[1][num] = get_gametime();	
				}
				if(get_gametime() - 4.0 > Delay[2][num])
				{						
					emit_sound(Ent[0][num], CHAN_VOICE, Sound[0], 0.0, ATTN_NORM, SND_STOP, PITCH_NORM);		
					emit_sound(Ent[0][num], CHAN_VOICE, Sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM);		
					Delay[2][num] = get_gametime();
				}			
				set_hudmessage(255, 0, 0, -1.0, 0.60, 0, 0.0, 0.6, 0.0, 0.0)				
				ShowSyncHudMsg(id, Hud[0], "Generator: %d - Progress: %d", (num+1), Temp[num])				

			} 
		}
		if((OldButton & IN_USE) && !(Button & IN_USE))
		{	
			ClearSyncHud(id, Hud[0])
			emit_sound(Ent[0][num], CHAN_VOICE, Sound[0], 0.0, ATTN_NORM, SND_STOP, PITCH_NORM);	
		}	
	}
	else if((get_distance_f(fOrigin, Origin) > 65.0) && (get_distance_f(fOrigin, Origin) < 68.0))
	{
		ClearSyncHud(id, Hud[0])
		emit_sound(Ent[0][num], CHAN_VOICE, Sound[0], 0.0, ATTN_NORM, SND_STOP, PITCH_NORM);	
	}
}

public check_entity1(id, num)
{
	static Float:Origin[3]; entity_get_vector(id, EV_VEC_origin, Origin)
	static Float:fOrigin[3]; entity_get_vector(Ent[1][num], EV_VEC_origin, fOrigin)
	static Button; Button = pev(id, pev_button);
	static OldButton; OldButton = pev(id, pev_oldbuttons);

	if((get_distance_f(fOrigin, Origin) < 65.0))
	{
		if((Button & IN_USE) && !(OldButton & IN_USE) && get_user_team(id) == 2 && fcarried[id] == 1)
		{		
			fcarried[id] = 0
			fknocked[Pid[id]] = 3;
			fhook[num] = 1
			if(pev_valid(MyEnt[Pid[id]])) engfunc(EngFunc_RemoveEntity, MyEnt[Pid[id]])	
			if(pev_valid(MyEnt1[Pid[id]])) engfunc(EngFunc_RemoveEntity, MyEnt1[Pid[id]])	

			new Ent1 = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
			if(pev_valid(Ent1))
			{
				entity_set_model(Ent1, "models/player/terror/terror.mdl");	
				set_pev(Ent1, pev_origin, fOrigin);
				set_pev(Ent1, pev_movetype, MOVETYPE_FLY);
				set_pev(Ent1, pev_aiment, Ent[1][num]);	
				set_pev(Ent1, pev_owner, Pid[id]);
				set_pev(Ent1, pev_classname, Hook[num])	
				MyEnt[Pid[id]] = Ent1
			}
			for(new i = 0; i < get_maxplayers(); i++)
			{
				if(!is_user_alive(i)) continue;			
				if(get_user_team(i) == 1 && fhook[0] == 1 && fhook[1] == 1 && fhook[2] == 1 && fhook[3] == 1)
				{
					user_kill(i, 1)	
				}	
			}			
		}
		if((Button & IN_USE) && get_user_team(id) == 1 && fhook[num] == 1)
		{
			if(!(OldButton & IN_USE))
			{
				fbar(id, 4)
				Hold1[id] = 6
			}

			if(get_gametime() - 1.0 > Delay[0][num])
			{		
				if(Hold1[id] > 0) Hold1[id]--	
				new Ent2 = -1; Ent2 = find_ent_by_class(Ent2, Hook[num])
				if(pev_valid(Ent2) && Hold1[id] == 1)
				{			
					new me = pev(Ent2, pev_owner)
					fbar(id, 0)
					Hold1[id] = 0					
					fhook[num] = 0
					fknocked[me] = 0;
					fstrik[me] = 10
					fweapons(me)	
					set_pev(me, pev_solid, SOLID_BBOX)
					set_pev(me, pev_movetype, MOVETYPE_NONE)	
					set_user_rendering(me);										
					set_pev(Ent2, pev_aiment, 0);
					engfunc(EngFunc_RemoveEntity, Ent2)
				}
				Delay[0][num] = get_gametime();
			}
		}
		if((OldButton & IN_USE) && !(Button & IN_USE) && get_user_team(id) == 1)
		{	
			fbar(id, 0)
			Hold1[id] = 0
		}				
	}
	else if((get_distance_f(fOrigin, Origin) > 65.0) && (get_distance_f(fOrigin, Origin) < 68.0) && get_user_team(id) == 1)
	{
		fbar(id, 0)
		Hold1[id] = 0
	}
}

public check_entity2(id)
{	
	static Float:Origin[3]; entity_get_vector(id, EV_VEC_origin, Origin)
	static Float:fOrigin[3]; entity_get_vector(Ent[2][0], EV_VEC_origin, fOrigin)
	static Button; Button = pev(id, pev_button);
	static OldButton; OldButton = pev(id, pev_oldbuttons);

	if((get_distance_f(fOrigin, Origin) < 65.0) && get_user_team(id) == 1 && Owner[0] == 0 && Temp[0] == 100 && Temp[1] == 100 && Temp[2] == 100 && Temp[3] == 100)
	{	
		if((Button & IN_USE) && get_user_team(id) == 1)
		{
			if(!(OldButton & IN_USE))
			{
				Hold[0] = 10
				Owner[0] = 1
				dllfunc(DLLFunc_Use, Ent[2][1], 0)
				fanimation(Ent[2][0], 1, 0.5)
				fanimation(Ent[3][0], 0, 0.5)	
				if(task_exists(552)) remove_task(552)
				set_task(1.0, "task_entity", 552, _, _, "a", Hold[0])			
			}			
		}						
	}	
}

public task_entity()
{
	if(Hold[0] > 0) Hold[0]--	

	if(Hold[0] == 8)
	{ 
		dllfunc(DLLFunc_Use, Ent[2][2], 0)	
		fanimation(Ent[2][0], 2, 0.5)
		fanimation(Ent[3][0], 0, 0.5)	
	}	
	if(Hold[0] == 7)
	{ 
		dllfunc(DLLFunc_Use, Ent[2][3], 0)	
		fanimation(Ent[2][0], 2, 0.5)
		fanimation(Ent[3][0], 1, 0.5)	
		set_pev(Ent[3][1], pev_solid, SOLID_NOT)
	}	
	if(Hold[0] == 4) set_pev(Ent[3][2], pev_solid, SOLID_NOT)
	if(Hold[0] == 2)
	{ 	
		fanimation(Ent[2][0], 2, 0.5)
		fanimation(Ent[3][0], 2, 0.5)	
		set_pev(Ent[3][3], pev_solid, SOLID_NOT)
	}	
}

public update_entity(num)
{
	if(pev_valid(Ent[0][num]))
	{
		setup_sound(num, 0, 1.0, 5, 30, 0, 4)
		setup_sound(num, 1, 0.9, 6, 60, 30, 5)
		setup_sound(num, 2, 0.8, 5, 85, 60, 6)
		setup_sound(num, 3, 1.6, 7, 100, 85, 3)
		setup_sound(num, 4, 2.3, 8, 101, 99, 2)
	}
}

stock setup_sound(num, i, Float:delay, class, high, low, seq)
{
	if(get_gametime() - delay > Delay3[i][num] && Temp[num] > low)
	{
		dllfunc(DLLFunc_Use, Ent[class][num], 0)

		if(Temp[num] < high) set_pev(Ent[0][num], pev_sequence, seq)
		Delay3[i][num] = get_gametime();
	}
}

public setup_entity()
{
	for(new i; i < sizeof Gene; i++)
	{
		engfunc(EngFunc_SetSize, Ent[0][i], Float:{-25.0, -20.0, -0.0}, Float:{20.0, 20.0, 70.0})
		entity_set_int(Ent[0][i], EV_INT_solid, SOLID_BBOX)	
		fanimation(Ent[0][i], 7)
		Temp[i] = 0		
	}
	for(new i; i < sizeof Hook; i++)
	{	
		engfunc(EngFunc_SetSize, Ent[1][i], Float:{-20.0, -20.0, -20.0}, Float:{20.0, 20.0, 90.0})	
		entity_set_int(Ent[1][i], EV_INT_solid, SOLID_BBOX)
		set_pev(Ent[1][i], pev_movetype, MOVETYPE_FLY)
		set_pev(Ent[1][i], pev_solid, SOLID_NOT)
		new Ent = -1
		while((Ent = find_ent_by_class(Ent, Hook[i])))
		{	
			set_pev(Ent, pev_aiment, 0);
			engfunc(EngFunc_RemoveEntity, Ent)
		}
	}	

	engfunc(EngFunc_SetSize, Ent[2][0], Float:{-20.0, -20.0, 35.0}, Float:{0.0, 5.0, 70.0})	
	entity_set_int(Ent[2][0], EV_INT_solid, SOLID_BBOX)
	fanimation(Ent[2][0], 0, 0.5)

	fanimation(Ent[3][0], 0, 0.5)	
	set_pev(Ent[3][1], pev_solid, SOLID_BSP)
	set_pev(Ent[3][2], pev_solid, SOLID_BSP)
	set_pev(Ent[3][3], pev_solid, SOLID_BSP)

	fanimation(Ent[4][0], 5, 0.5)			
	fanimation(Ent[4][1], 4, 0.5)	
	
	Owner[0] = 0
	if(task_exists(552)) remove_task(552)
}

stock fbar(const id, const duration)
{
	message_begin(MSG_ONE, get_user_msgid("BarTime"), _, id);
	write_short(duration);
	message_end();
}

stock fanimation(index, sequence, Float:framerate = 1.0)
{
	entity_set_float(index, EV_FL_animtime, get_gametime())
	entity_set_float(index, EV_FL_frame, 0.0)
	entity_set_float(index, EV_FL_framerate,  framerate)
	entity_set_int(index, EV_INT_sequence, sequence)
}

stock fbleed(origin[3])
{
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(TE_BLOODSTREAM)
	write_coord(origin[0])
	write_coord(origin[1])
	write_coord(origin[2]+10)
	write_coord(random_num(-360,360))
	write_coord(random_num(-360,360))
	write_coord(-10)
	write_byte(70)
	write_byte(random_num(50,100))
	message_end()
}

stock fblood(origin[3])
{
	new blood_small_red[] = {190,191,192,193,194,195,196,197}
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(TE_WORLDDECAL)
	write_coord(origin[0]+random_num(-50,50))
	write_coord(origin[1]+random_num(-50,50))
	write_coord(origin[2]-36)
	write_byte(blood_small_red[random_num(2,7)])
	message_end()

}
stock fweapons(id)
{
	strip_user_weapons(id)
	give_item(id, "weapon_knife")
	set_pdata_int(id, 116, 0)
}
Nume: Dead by daylight
Versiune: 0.1
Link oficial:

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

Code: Select all

deadbydaylight.amxx
4. Alti pasi necesari....

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



Imagini: -

poate va ajuta asta cu ceva

Code: Select all

^^ some codes can help, not full but you can do better i think x) enjoy with bugs hhh "sorry for my bad english"


new Ent[33][33]

new const Gene[][] = {"generator1", "generator2", "generator3", "generator4"};
new const Hook[][] = {"hook1", "hook2", "hook3", "hook4"};
new const Call[][] = {"button", "button1", "button2", "button3"};
new const Gate[][] = {"gate", "gate_wall1", "gate_wall2", "gate_wall3"};
new const Crow[][] = {"crow_idle", "crow_land"};
new const Pum1[][] = {"pump1_g1", "pump1_g2","pump1_g3", "pump1_g4"};
new const Pum2[][] = {"pump1_g2", "pump2_g2","pump2_g3", "pump2_g4"};
new const Sta1[][] = {"start1_g1", "start1_g2","start1_g3", "start1_g4"};
new const Sta2[][] = {"start2_g1", "start2_g2","start2_g3", "start2_g4"};
new const Elec[][] = {"electric_g1", "electric_g2","electric_g3", "electric_g4"};

public plugin_init() 
{
	for(new i; i < sizeof Gene; i++) Ent[0][i] = find_ent_by_tname(-1, Gene[i]);
	for(new i; i < sizeof Hook; i++) Ent[1][i] = find_ent_by_tname(-1, Hook[i]);
	for(new i; i < sizeof Call; i++) Ent[2][i] = find_ent_by_tname(-1, Call[i]);
	for(new i; i < sizeof Gate; i++) Ent[3][i] = find_ent_by_tname(-1, Gate[i]);
	for(new i; i < sizeof Crow; i++) Ent[4][i] = find_ent_by_tname(-1, Crow[i]);

	for(new i; i < sizeof Pum1; i++) Ent[5][i] = find_ent_by_tname(-1, Pum1[i]);
	for(new i; i < sizeof Pum2; i++) Ent[6][i] = find_ent_by_tname(-1, Pum2[i]);
	for(new i; i < sizeof Sta1; i++) Ent[7][i] = find_ent_by_tname(-1, Sta1[i]);
	for(new i; i < sizeof Sta2; i++) Ent[8][i] = find_ent_by_tname(-1, Sta2[i]);
	for(new i; i < sizeof Elec; i++) Ent[9][i] = find_ent_by_tname(-1, Elec[i]);
}

public setup_entity()
{
	for(new i; i < sizeof Gene; i++)
	{
		engfunc(EngFunc_SetSize, Ent[0][i], Float:{-25.0, -20.0, -0.0}, Float:{20.0, 20.0, 70.0})
		entity_set_int(Ent[0][i], EV_INT_solid, SOLID_BBOX)	
		fanimation(Ent[0][i], 7)
		Temp[i] = 0		
	}
	for(new i; i < sizeof Hook; i++)
	{	
		engfunc(EngFunc_SetSize, Ent[1][i], Float:{-20.0, -20.0, -20.0}, Float:{20.0, 20.0, 90.0})	
		entity_set_int(Ent[1][i], EV_INT_solid, SOLID_BBOX)
		set_pev(Ent[1][i], pev_movetype, MOVETYPE_FLY)
		set_pev(Ent[1][i], pev_solid, SOLID_NOT)
		new Ent = -1
		while((Ent = find_ent_by_class(Ent, Hook[i])))
		{	
			set_pev(Ent, pev_aiment, 0);
			engfunc(EngFunc_RemoveEntity, Ent)
		}
	}	

	engfunc(EngFunc_SetSize, Ent[2][0], Float:{-20.0, -20.0, 35.0}, Float:{0.0, 5.0, 70.0})	
	entity_set_int(Ent[2][0], EV_INT_solid, SOLID_BBOX)
	fanimation(Ent[2][0], 0, 0.5)

	fanimation(Ent[3][0], 0, 0.5)	
	set_pev(Ent[3][1], pev_solid, SOLID_BSP)
	set_pev(Ent[3][2], pev_solid, SOLID_BSP)
	set_pev(Ent[3][3], pev_solid, SOLID_BSP)

	fanimation(Ent[4][0], 5, 0.5)			
	fanimation(Ent[4][1], 4, 0.5)	
}

stock fanimation(index, sequence, Float:framerate = 1.0)
{
	entity_set_float(index, EV_FL_animtime, get_gametime())
	entity_set_float(index, EV_FL_frame, 0.0)
	entity_set_float(index, EV_FL_framerate,  framerate)
	entity_set_int(index, EV_INT_sequence, sequence)
}

public update_entity(num)
{
	if(pev_valid(Ent[0][num]))
	{
		setup_sound(num, 0, 1.0, 5, 30, 0, 4)
		setup_sound(num, 1, 0.9, 6, 60, 30, 5)
		setup_sound(num, 2, 0.8, 5, 85, 60, 6)
		setup_sound(num, 3, 1.6, 7, 100, 85, 3)
		setup_sound(num, 4, 2.3, 8, 101, 99, 2)
	}
}

stock setup_sound(num, i, Float:delay, class, high, low, seq)
{
	if(get_gametime() - delay > Delay3[i][num] && Temp[num] > low)
	{
		dllfunc(DLLFunc_Use, Ent[class][num], 0)

		if(Temp[num] < high) set_pev(Ent[0][num], pev_sequence, seq)
		Delay3[i][num] = get_gametime();
	}
}
Image
Post Reply

Return to “Moduri”