|
skamonkey@3333
|
1 |
#include <sourcemod> |
|
skamonkey@3333
|
2 |
#include <sdktools> |
|
skamonkey@3333
|
3 |
|
|
skamonkey@3333
|
4 |
enum Game { Game_TF, Game_SWARM } |
|
skamonkey@3333
|
5 |
new Game:g_Game; |
|
skamonkey@3333
|
6 |
|
|
skamonkey@3333
|
7 |
public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max) |
|
skamonkey@3333
|
8 |
{ |
|
skamonkey@3333
|
9 |
decl String:gamedir[64]; |
|
skamonkey@3333
|
10 |
GetGameFolderName(gamedir, sizeof(gamedir)); |
|
skamonkey@3333
|
11 |
if (!strcmp(gamedir, "tf")) |
|
skamonkey@3333
|
12 |
{ |
|
skamonkey@3333
|
13 |
g_Game = Game_TF; |
|
skamonkey@3333
|
14 |
return APLRes_Success; |
|
skamonkey@3333
|
15 |
} |
|
skamonkey@3333
|
16 |
|
|
skamonkey@3333
|
17 |
if (!strcmp(gamedir, "swarm")) |
|
skamonkey@3333
|
18 |
{ |
|
skamonkey@3333
|
19 |
g_Game = Game_SWARM; |
|
skamonkey@3333
|
20 |
return APLRes_Success; |
|
skamonkey@3333
|
21 |
} |
|
skamonkey@3333
|
22 |
|
|
skamonkey@3333
|
23 |
strcopy(error, err_max, "These tests are only supported on TF2 and Alien Swarm"); |
|
skamonkey@3333
|
24 |
return APLRes_Failure; |
|
skamonkey@3333
|
25 |
} |
|
skamonkey@3333
|
26 |
|
|
skamonkey@3333
|
27 |
public OnPluginStart() |
|
skamonkey@3333
|
28 |
{ |
|
skamonkey@3333
|
29 |
if (g_Game == Game_TF) |
|
skamonkey@3333
|
30 |
{ |
|
skamonkey@3333
|
31 |
RegConsoleCmd("gr_getstate", gr_getstate); |
|
skamonkey@3333
|
32 |
RegConsoleCmd("gr_ttr", gr_ttr); |
|
skamonkey@3333
|
33 |
RegConsoleCmd("gr_tbs", gr_tbs); |
|
skamonkey@3333
|
34 |
RegConsoleCmd("gr_nextspawn", gr_nextspawn); |
|
skamonkey@3333
|
35 |
RegConsoleCmd("gr_settime", gr_settime); |
|
skamonkey@3333
|
36 |
RegConsoleCmd("gr_getgoal", gr_getgoal); |
|
skamonkey@3333
|
37 |
RegConsoleCmd("gr_setgoal", gr_setgoal); |
|
skamonkey@3333
|
38 |
} |
|
skamonkey@3333
|
39 |
else if (g_Game == Game_SWARM) |
|
skamonkey@3333
|
40 |
{ |
|
skamonkey@3333
|
41 |
HookEvent("entity_killed", entity_killed); |
|
skamonkey@3333
|
42 |
RegConsoleCmd("gr_getstimmer", gr_getstimmer); |
|
skamonkey@3333
|
43 |
} |
|
skamonkey@3333
|
44 |
} |
|
skamonkey@3333
|
45 |
|
|
skamonkey@3333
|
46 |
public Action:gr_getstate(client, argc) |
|
skamonkey@3333
|
47 |
{ |
|
skamonkey@3333
|
48 |
ReplyToCommand(client, "Round state is %d", GameRules_GetRoundState()); |
|
skamonkey@3333
|
49 |
return Plugin_Handled; |
|
skamonkey@3333
|
50 |
} |
|
skamonkey@3333
|
51 |
|
|
skamonkey@3333
|
52 |
stock Float:GameRules_GetTimeUntilRndReset() |
|
skamonkey@3333
|
53 |
{ |
|
skamonkey@3333
|
54 |
new Float:flRestartTime = GameRules_GetPropFloat("m_flRestartRoundTime"); |
|
skamonkey@3333
|
55 |
if (flRestartTime == -1.0) |
|
skamonkey@3333
|
56 |
return flRestartTime; |
|
skamonkey@3333
|
57 |
|
|
skamonkey@3333
|
58 |
return flRestartTime - GetGameTime(); |
|
skamonkey@3333
|
59 |
} |
|
skamonkey@3333
|
60 |
|
|
skamonkey@3333
|
61 |
public Action:gr_ttr(client, argc) |
|
skamonkey@3333
|
62 |
{ |
|
skamonkey@3333
|
63 |
ReplyToCommand(client, "Time til restart is %.2f", GameRules_GetTimeUntilRndReset()); |
|
skamonkey@3333
|
64 |
return Plugin_Handled; |
|
skamonkey@3333
|
65 |
} |
|
skamonkey@3333
|
66 |
|
|
skamonkey@3333
|
67 |
public Action:gr_tbs(client, argc) |
|
skamonkey@3333
|
68 |
{ |
|
skamonkey@3333
|
69 |
ReplyToCommand(client, "Time between spawns for team2 is %.2f", GameRules_GetPropFloat("m_TeamRespawnWaveTimes", 2)); |
|
skamonkey@3333
|
70 |
return Plugin_Handled; |
|
skamonkey@3333
|
71 |
} |
|
skamonkey@3333
|
72 |
|
|
skamonkey@3333
|
73 |
public Action:gr_nextspawn(client, argc) |
|
skamonkey@3333
|
74 |
{ |
|
skamonkey@3333
|
75 |
ReplyToCommand(client, "Next spawn for team2 is %.2f", GameRules_GetPropFloat("m_flNextRespawnWave", 2)); |
|
skamonkey@3333
|
76 |
return Plugin_Handled; |
|
skamonkey@3333
|
77 |
} |
|
skamonkey@3333
|
78 |
|
|
skamonkey@3333
|
79 |
public Action:gr_settime(client, argc) |
|
skamonkey@3333
|
80 |
{ |
|
skamonkey@3333
|
81 |
GameRules_SetPropFloat("m_TeamRespawnWaveTimes", 2.0, 2, true); |
|
skamonkey@3333
|
82 |
return Plugin_Handled; |
|
skamonkey@3333
|
83 |
} |
|
skamonkey@3333
|
84 |
|
|
skamonkey@3333
|
85 |
public Action:gr_getgoal(client, argc) |
|
skamonkey@3333
|
86 |
{ |
|
skamonkey@3333
|
87 |
decl String:goal[64]; |
|
skamonkey@3333
|
88 |
GameRules_GetPropString("m_pszTeamGoalStringRed", goal, sizeof(goal)); |
|
skamonkey@3333
|
89 |
ReplyToCommand(client, "Red goal string is \"%s\"", goal); |
|
skamonkey@3333
|
90 |
return Plugin_Handled; |
|
skamonkey@3333
|
91 |
} |
|
skamonkey@3333
|
92 |
|
|
skamonkey@3333
|
93 |
public Action:gr_setgoal(client, argc) |
|
skamonkey@3333
|
94 |
{ |
|
skamonkey@3333
|
95 |
GameRules_SetPropString("m_pszTeamGoalStringRed", "urururur", true); |
|
skamonkey@3333
|
96 |
|
|
skamonkey@3333
|
97 |
decl String:goal[64]; |
|
skamonkey@3333
|
98 |
GameRules_GetPropString("m_pszTeamGoalStringRed", goal, sizeof(goal)); |
|
skamonkey@3333
|
99 |
ReplyToCommand(client, "Red goal string is \"%s\"", goal); |
|
skamonkey@3333
|
100 |
return Plugin_Handled; |
|
skamonkey@3333
|
101 |
} |
|
skamonkey@3333
|
102 |
|
|
skamonkey@3333
|
103 |
//.. DIE |
|
skamonkey@3333
|
104 |
public entity_killed(Handle:event, const String:name[], bool:dontBroadcast) |
|
skamonkey@3333
|
105 |
{ |
|
skamonkey@3333
|
106 |
new ent = GetEventInt(event, "entindex_killed"); |
|
skamonkey@3333
|
107 |
if (!IsValidEdict(ent)) |
|
skamonkey@3333
|
108 |
return; |
|
skamonkey@3333
|
109 |
|
|
skamonkey@3333
|
110 |
decl String:classname[64]; |
|
skamonkey@3333
|
111 |
GetEdictClassname(ent, classname, sizeof(classname)); |
|
skamonkey@3333
|
112 |
|
|
skamonkey@3333
|
113 |
if (!!strcmp(classname, "asw_marine")) |
|
skamonkey@3333
|
114 |
return; |
|
skamonkey@3333
|
115 |
|
|
skamonkey@3333
|
116 |
decl Float:deathvec[3]; |
|
skamonkey@3333
|
117 |
GameRules_GetPropVector("m_vMarineDeathPos", deathvec); |
|
skamonkey@3333
|
118 |
PrintToChatAll("Death vec is %.3f %.3f %.3f", deathvec[0], deathvec[1], deathvec[2]); |
|
skamonkey@3333
|
119 |
} |
|
skamonkey@3333
|
120 |
|
|
skamonkey@3333
|
121 |
// you can manually induce this with asw_PermaStim (needs sv_cheats) |
|
skamonkey@3333
|
122 |
public Action:gr_getstimmer(client, argc) |
|
skamonkey@3333
|
123 |
{ |
|
skamonkey@3333
|
124 |
ReplyToCommand(client, "%N (%.2f/%.2f)", |
|
skamonkey@3333
|
125 |
GameRules_GetPropEnt("m_hStartStimPlayer"), |
|
skamonkey@3333
|
126 |
GameRules_GetPropFloat("m_flStimStartTime"), |
|
skamonkey@3333
|
127 |
GameRules_GetPropFloat("m_flStimEndTime")); |
|
skamonkey@3333
|
128 |
return Plugin_Handled; |
|
skamonkey@3333
|
129 |
} |