/
retakes_breaker.sp
88 lines (76 loc) · 2.89 KB
/
retakes_breaker.sp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <sourcemod>
#include <sdktools>
#include <cstrike>
#include <retakes>
ConVar g_cvEnablebreaker = null;
ConVar g_cvEnableDoorOpener = null;
ConVar g_cvEnableText = null;
public Plugin myinfo =
{
name = "Retakes Breaker",
author = "RoyZ",
description = "Break windows/glasses and open all the door in Retakes",
version = "1.0"}
public void OnPluginStart()
{
LoadTranslations("retakes_breaker.phrases")
g_cvEnablebreaker = CreateConVar("sm_retakes_breaker", "1.0", "Enable or Disable plugin. 1-Enable 0-Disable", _, true, 0.0, true, 1.0);
g_cvEnableDoorOpener = CreateConVar("sm_retakes_breaker_dooropener", "1.0", "Enable or Disable auto open doors. 1-Enable 0-Disable", _, true, 0.0, true, 1.0);
g_cvEnableText = CreateConVar("sm_retakes_breaker_text", "1.0", "Enable or Disable Breaker Notification. 1-Enable 0-Disable", _, true, 0.0, true, 1.0);
HookEvent("round_start", Event_OnRoundStart, EventHookMode_Pre);
AutoExecConfig(true, "retakes_breaker");
}
public void Event_OnRoundStart(Handle event, const char[] name, bool dontBroadcast)
{
if (g_cvEnablebreaker.BoolValue)
{
char currentMap[PLATFORM_MAX_PATH];
GetCurrentMap(currentMap, sizeof(currentMap));
int ent = -1;
while ((ent = FindEntityByClassname(ent, "func_breakable")) != -1)
{
AcceptEntityInput(ent, "Break");
}
while ((ent = FindEntityByClassname(ent, "func_breakable_surf")) != -1)
{
AcceptEntityInput(ent, "Break");
}
if (g_cvEnableText.BoolValue)
{
Retakes_MessageToAll("%t", "Breakable");
}
while (((ent = FindEntityByClassname(ent, "prop_door_rotating")) != -1) && (g_cvEnableDoorOpener.BoolValue))
{
AcceptEntityInput(ent, "open");
}
if (g_cvEnableText.BoolValue)
{
Retakes_MessageToAll("%t", "Open");
}
if (StrContains(currentMap, "de_nuke", false) == 0)
{
while ((ent = FindEntityByClassname(ent, "func_button")) != -1)
{
AcceptEntityInput(ent, "Kill");
}
}
if (StrContains(currentMap, "de_vertigo", false) == 0 || StrContains(currentMap, "de_cache", false) == 0 || StrContains(currentMap, "de_nuke", false) == 0)
{
while ((ent = FindEntityByClassname(ent, "prop_dynamic")) != -1)
{
AcceptEntityInput(ent, "Break");
}
}
else if (StrContains(currentMap, "de_mirage", false) == -1)
{
while ((ent = FindEntityByClassname(ent, "prop.breakable.01")) != -1)
{
AcceptEntityInput(ent, "break");
}
while ((ent = FindEntityByClassname(ent, "prop.breakable.02")) != -1)
{
AcceptEntityInput(ent, "break");
}
}
}
}