Skip to content

Commit 89a4a2f

Browse files
authored
v1.3
- Now finds pt_spawner for DarkerZ mode
1 parent 324526c commit 89a4a2f

2 files changed

Lines changed: 88 additions & 35 deletions

File tree

entwatch_maker.smx

550 Bytes
Binary file not shown.

entwatch_maker.sp

Lines changed: 88 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public Plugin myinfo =
88
name = "EntWatch Config Maker",
99
author = "tilgep",
1010
description = "Makes a basic EntWatch config for the current map.",
11-
version = "1.2",
11+
version = "1.3",
1212
url = "https://github.com/tilgep/EntWatch-Maker"
1313
};
1414

@@ -28,15 +28,20 @@ char g_currentmap[128];
2828
ArrayList weps;
2929
ArrayList buts;
3030
ArrayList filt;
31+
ArrayList temp;
32+
ArrayList math;
3133

3234
ConVar dire;
3335
ConVar style;
3436

3537
public void OnPluginStart()
3638
{
37-
weps = CreateArray();
38-
buts = CreateArray();
39-
filt = CreateArray();
39+
weps = new ArrayList();
40+
buts = new ArrayList();
41+
filt = new ArrayList();
42+
temp = new ArrayList();
43+
math = new ArrayList();
44+
4045
dire = CreateConVar("ewmaker_path", "addons/sourcemod/configs/entwatch_maker", "Path to store generated configs in. Relative to csgo/", _, true, 0.0, true, 1.0);
4146
dire.AddChangeHook(Cvar_Changed);
4247

@@ -71,7 +76,7 @@ public void Cvar_Changed(ConVar cvar, const char[] oldVal, const char[] newVal)
7176
}
7277
}
7378

74-
public void OnMapInit(const char[] mapName)
79+
public void OnConfigsExecuted()
7580
{
7681
mode = view_as<Mode>(style.IntValue);
7782
dire.GetString(path, PLATFORM_MAX_PATH);
@@ -86,6 +91,8 @@ public void OnMapInit(const char[] mapName)
8691
LogMessage("Created directory %s", path);
8792
}
8893
}
94+
char mapName[PLATFORM_MAX_PATH];
95+
GetCurrentMap(mapName, sizeof(mapName));
8996
Format(path, PLATFORM_MAX_PATH, "%s/%s.cfg", path, mapName);
9097
strcopy(g_currentmap, sizeof(g_currentmap), mapName);
9198
}
@@ -113,6 +120,9 @@ public int LoadConfig()
113120
weps.Clear();
114121
buts.Clear();
115122
filt.Clear();
123+
temp.Clear();
124+
math.Clear();
125+
116126
File file = OpenFile(path, "w");
117127
if(file==null)
118128
{
@@ -132,20 +142,24 @@ public int LoadConfig()
132142
int cl = ent.GetNextKey("classname", class, 64);
133143
if(cl == -1) continue;
134144

135-
ent.GetNextKey("hammerid", hammer, sizeof(hammer));
136145
if(strncmp(class, "weapon_", 7) == 0)
137146
{
138-
if(!StrEqual(hammer, "")) weps.Push(i);
147+
ent.GetNextKey("hammerid", hammer, sizeof(hammer));
148+
if(hammer[0]!='\0') weps.Push(i);
139149
}
140150
else if(strncmp(class, "func_button", 11) == 0)
141151
{
142-
int parent = ent.GetNextKey("parentname", paren, 64);
143-
if(parent != -1 && !StrEqual(paren, "")) buts.Push(i);
152+
int parent = ent.GetNextKey("parentname", paren, sizeof(paren));
153+
if(parent != -1 && paren[0]!='\0') buts.Push(i);
144154
}
145155
else if(strncmp(class, "filter_activator_name", 21) == 0)
146156
{
147157
filt.Push(i);
148158
}
159+
else if(strncmp(class, "point_template", 14) == 0)
160+
{
161+
temp.Push(i);
162+
}
149163

150164
delete ent;
151165
}
@@ -171,11 +185,12 @@ public int LoadConfig()
171185
char bhammer[16];
172186
char filter[64];
173187
char filterid[16];
188+
char templatename[64];
174189
char output[5][32];
175190
bool knife;
176191
bool gameui;
177192

178-
EntityLumpEntry button;
193+
EntityLumpEntry button, template;
179194
int index = 0;
180195
// Go through weapons
181196
for(int i = 0; i < weps.Length; i++)
@@ -185,6 +200,7 @@ public int LoadConfig()
185200
bhammer[0] = '\0';
186201
filter[0] = '\0';
187202
filterid[0] = '\0';
203+
templatename[0] = '\0';
188204
knife = false;
189205
gameui = false;
190206
ent = EntityLump.Get(weps.Get(i));
@@ -218,39 +234,76 @@ public int LoadConfig()
218234
{
219235
button = EntityLump.Get(buts.Get(b));
220236
button.GetNextKey("parentname", paren, 64);
221-
if(StrEqual(paren, targe))
237+
if(!StrEqual(paren, targe))
238+
{
239+
delete button;
240+
continue;
241+
}
242+
243+
button.GetNextKey("hammerid", bhammer, sizeof(bhammer));
244+
button.GetNextKey("filtername", filter, sizeof(filter));
245+
int fi = button.GetNextKey("OnPressed", val, sizeof(val));
246+
while(fi != -1)
247+
{
248+
ExplodeString(val, "", output, 5, 32, true);
249+
if(StrEqual(output[1], "TestActivator")) break;
250+
fi = button.GetNextKey("OnPressed", val, sizeof(val), fi);
251+
}
252+
253+
if(fi != -1)
222254
{
223-
button.GetNextKey("hammerid", bhammer, sizeof(bhammer));
224-
button.GetNextKey("filtername", filter, sizeof(filter));
225-
int fi = button.GetNextKey("OnPressed", val, sizeof(val));
226-
while(fi != -1)
255+
EntityLumpEntry filterr;
256+
char ftargetname[64];
257+
for(int f = 0; f < filt.Length; f++)
227258
{
228-
ExplodeString(val, "", output, 5, 32, true);
229-
if(StrEqual(output[1], "TestActivator")) break;
230-
fi = button.GetNextKey("OnPressed", val, sizeof(val), fi);
259+
filterr = EntityLump.Get(filt.Get(f));
260+
filterr.GetNextKey("targetname", ftargetname, sizeof(ftargetname));
261+
if(!StrEqual(ftargetname, output[0])) continue;
262+
263+
filterr.GetNextKey("filtername", filter, sizeof(filter));
264+
filterr.GetNextKey("hammerid", filterid, sizeof(filterid));
265+
break;
231266
}
267+
delete filterr;
268+
}
269+
270+
delete button;
271+
}
232272

233-
if(fi != -1)
273+
// find pt_spawner
274+
if(mode == DarkerZ)
275+
{
276+
bool found;
277+
for(int t = 0; t < temp.Length; t++)
278+
{
279+
if(found) break;
280+
template = EntityLump.Get(temp.Get(t));
281+
for(int u = 0; u < template.Length; u++)
234282
{
235-
EntityLumpEntry filterr;
236-
char ftargetname[64];
237-
for(int f = 0; f < filt.Length; f++)
283+
template.Get(u, key, 64, val, 128);
284+
if(StrEqual(key, "targetname")) strcopy(templatename, sizeof(templatename), val);
285+
else if(!found && strncmp(key, "Template", 8) == 0)
238286
{
239-
filterr = EntityLump.Get(filt.Get(f));
240-
filterr.GetNextKey("targetname", ftargetname, sizeof(ftargetname));
241-
if(!StrEqual(ftargetname, output[0])) continue;
242-
243-
filterr.GetNextKey("filtername", filter, sizeof(filter));
244-
filterr.GetNextKey("hammerid", filterid, sizeof(filterid));
245-
break;
287+
if(StrEqual(val, targe))
288+
{
289+
found = true;
290+
}
291+
else //check wildcarding
292+
{
293+
int len = strlen(val);
294+
if(val[len-1] == '*')
295+
{
296+
if(strncmp(val, targe, len-1) == 0) // matched wildcard
297+
{
298+
found = true;
299+
}
300+
}
301+
}
246302
}
247-
delete filterr;
248303
}
249304

250-
delete button;
251-
break;
305+
delete template;
252306
}
253-
delete button;
254307
}
255308

256309
file.WriteLine("\t\"%d\"", index);
@@ -321,7 +374,7 @@ public int LoadConfig()
321374
file.WriteLine("\t\t\"trigger\" \"0\"");
322375
file.WriteLine("\t\t\"physbox\" \"false\"");
323376
file.WriteLine("\t\t");
324-
file.WriteLine("\t\t\"pt_spawner\" \"\"");
377+
file.WriteLine("\t\t\"pt_spawner\" \"%s\"", templatename);
325378
file.WriteLine("\t\t\"use_priority\" \"true\"");
326379
}
327380
case Mapea:
@@ -354,4 +407,4 @@ public int LoadConfig()
354407
delete ent;
355408
delete file;
356409
return 2;
357-
}
410+
}

0 commit comments

Comments
 (0)