SHOW:
|
|
- or go back to the newest paste.
1 | /* | |
2 | * DoD XtraLog | |
3 | * | |
4 | * Adds messaging and log events for alt weapon position kills so | |
5 | * stats packages can track and award them. Both psychostats and HLStatsXCE | |
6 | * can track these events and use for awards/bonuses. | |
7 | * | |
8 | * IE: | |
9 | * Single shot on the support class.. | |
10 | * IronSight for the rifles. | |
11 | * "Rambo" for the mg class. | |
12 | * NoScope and Noscope headshots | |
13 | * | |
14 | * Kudos: | |
15 | * Tsunami for the pm secks. <3 | |
16 | * psychonic for being hooker #1 <3 | |
17 | * | |
18 | */ | |
19 | ||
20 | #include <sourcemod> | |
21 | #include <sdktools> | |
22 | #define PLUGIN_VERSION "1.5" | |
23 | ||
24 | new Handle:g_Cvar_XlogNS | |
25 | new Handle:g_Cvar_XlogHS | |
26 | new Handle:g_Cvar_XlogMG | |
27 | new Handle:g_Cvar_XlogSupport | |
28 | new Handle:g_Cvar_XlogRifle | |
29 | ||
30 | public Plugin:myinfo = | |
31 | { | |
32 | name = "DoD Xtralog", | |
33 | author = "Mosalar", | |
34 | description = "Extra weapon logging info", | |
35 | version = PLUGIN_VERSION, | |
36 | url = "http://www.budznetwork.com" | |
37 | } | |
38 | ||
39 | public OnPluginStart() | |
40 | { | |
41 | CreateConVar("sm_dod_xlog_version", PLUGIN_VERSION, "Extra weapon logging info version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY) | |
42 | g_Cvar_XlogNS = CreateConVar("sm_dod_xlog_ns", "1", "NoSocpe messages", FCVAR_PLUGIN) | |
43 | g_Cvar_XlogHS = CreateConVar("sm_dod_xlog_hs", "1", "NoSocpe HeadShot messages", FCVAR_PLUGIN) | |
44 | g_Cvar_XlogMG = CreateConVar("sm_dod_xlog_mg", "1", "MG Messages", FCVAR_PLUGIN) | |
45 | g_Cvar_XlogSupport = CreateConVar("sm_dod_xlog_support", "1", "Support Messages", FCVAR_PLUGIN) | |
46 | g_Cvar_XlogRifle = CreateConVar("sm_dod_xlog_rifle", "1", "Ironsight Messages", FCVAR_PLUGIN) | |
47 | ||
48 | ||
49 | HookEvent("dod_stats_player_damage", PlayerDamageEvent) | |
50 | ||
51 | AutoExecConfig() | |
52 | } | |
53 | ||
54 | public PlayerDamageEvent(Handle:event, const String:name[], bool:dontBroadcast) | |
55 | { | |
56 | new attacker = GetClientOfUserId(GetEventInt(event, "attacker")) | |
57 | new client = GetClientOfUserId(GetEventInt(event, "victim")) | |
58 | if (attacker == 0 || !IsClientInGame(attacker) || !IsPlayerAlive(attacker)) { | |
59 | return | |
60 | } | |
61 | new String:auth[33] | |
62 | new String:attacker_name[65] | |
63 | new String:tname[33] | |
64 | new String:wname[65] | |
65 | new weapon_pos = GetEventInt(event, "weapon") | |
66 | new hitgroup = GetEventInt(event, "hitgroup") | |
67 | new userid = GetClientUserId(attacker) | |
68 | //decl String:color[10]; Format(color, sizeof(color), "%s", GetClientTeam(attacker) == 2 ? "\x074D7942" : "\x07FF4040") | |
69 | GetClientName(attacker, attacker_name, sizeof(attacker_name)) | |
70 | GetClientAuthString(attacker, auth, sizeof(auth)) | |
71 | GetTeamName(GetClientTeam(attacker), tname, sizeof(tname)) | |
72 | GetClientWeapon(attacker, wname, sizeof(wname)) | |
73 | ||
74 | if (client != 0) { | |
75 | ||
76 | switch (weapon_pos) { | |
77 | ||
78 | case 9,10: { | |
79 | if (GetClientHealth(client) < 1) { | |
80 | ||
81 | if (hitgroup == 1) { | |
82 | if (attacker == 0 || !IsPlayerAlive(attacker)) { | |
83 | return | |
84 | } | |
85 | if (GetConVarInt(g_Cvar_XlogHS) == 1) { | |
86 | PrintToChatAll("\x01[VvV] \x04%s сделал хэдшот без оптики!", attacker_name) | |
87 | } | |
88 | } | |
89 | else { | |
90 | if (attacker == 0 || !IsPlayerAlive(attacker)) { | |
91 | return | |
92 | } | |
93 | if (GetConVarInt(g_Cvar_XlogNS) == 1) { | |
94 | PrintToChatAll("\x01[VvV] \x04%s убил без оптики!", attacker_name) | |
95 | } | |
96 | } | |
97 | LogToGame("\"%s<%d><%s><%s>\" triggered \"noscope\" with \"%s\"", attacker_name, userid, auth, tname, wname); | |
98 | } | |
99 | } | |
100 | case 35,36: { | |
101 | if (GetClientHealth(client) < 1) { | |
102 | ||
103 | if (attacker == 0 || !IsPlayerAlive(attacker)) { | |
104 | return | |
105 | } | |
106 | if (GetConVarInt(g_Cvar_XlogMG) == 1) { | |
107 | PrintToChatAll("\x01[VvV] \x04%s убил с неустановленного пулемёта!", attacker_name) | |
108 | } | |
109 | LogToGame("\"%s<%d><%s><%s>\" triggered \"rambo\" with \"%s\"", attacker_name, userid, auth, tname, wname); | |
110 | } | |
111 | } | |
112 | case 31,32: { | |
113 | if (GetClientHealth(client) < 1) { | |
114 | ||
115 | if (attacker == 0 || !IsPlayerAlive(attacker)) { | |
116 | return | |
117 | } | |
118 | if (GetConVarInt(g_Cvar_XlogRifle) == 1) { | |
119 | PrintToChatAll("\x01[VvV] \x04%s убил прицельно из винтовки!", attacker_name) | |
120 | } | |
121 | LogToGame("\"%s<%d><%s><%s>\" triggered \"ironsight\" with \"%s\"", attacker_name, userid, auth, tname, wname); | |
122 | } | |
123 | } | |
124 | case 37,38: { | |
125 | if (GetClientHealth(client) < 1) { | |
126 | ||
127 | if (attacker == 0 || !IsPlayerAlive(attacker)) { | |
128 | return | |
129 | } | |
130 | if (GetConVarInt(g_Cvar_XlogSupport) == 1) { | |
131 | PrintToChatAll("\x01[VvV] \x04%s убил одиночным выстрелом!", attacker_name) | |
132 | } | |
133 | LogToGame("\"%s<%d><%s><%s>\" triggered \"singleshot\" with \"%s\"", attacker_name, userid, auth, tname, wname); | |
134 | } | |
135 | } | |
136 | } | |
137 | } | |
138 | } |