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)
}
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
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();
}
}