Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
empfun
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
External Wiki
External Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sourcemod
empfun
Commits
9f8892d0
Commit
9f8892d0
authored
Aug 30, 2020
by
Mikleo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
--
parent
7e74fe1b
Pipeline
#10753
passed with stages
in 16 seconds
Changes
6
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
236 additions
and
109 deletions
+236
-109
dist/addons/sourcemod/plugins/empfun.smx
dist/addons/sourcemod/plugins/empfun.smx
+0
-0
dist/addons/sourcemod/scripting/empfun.sp
dist/addons/sourcemod/scripting/empfun.sp
+1
-1
dist/addons/sourcemod/scripting/empfun/funcs.sp
dist/addons/sourcemod/scripting/empfun/funcs.sp
+79
-45
dist/scenarios/emp_temple/mik_kingofthehill.snr
dist/scenarios/emp_temple/mik_kingofthehill.snr
+148
-62
dist/scenarios/standard_modelshortcuts.txt
dist/scenarios/standard_modelshortcuts.txt
+7
-0
dist/updater.txt
dist/updater.txt
+1
-1
No files found.
dist/addons/sourcemod/plugins/empfun.smx
View file @
9f8892d0
No preview for this file type
dist/addons/sourcemod/scripting/empfun.sp
View file @
9f8892d0
...
...
@@ -10,7 +10,7 @@
#include <SteamWorks>
#define PluginVersion "1.1
8
"
#define PluginVersion "1.1
9
"
float pVersion;
// note linearmap field is unstable
...
...
dist/addons/sourcemod/scripting/empfun/funcs.sp
View file @
9f8892d0
...
...
@@ -36,9 +36,12 @@ enum struct ScriptEnum {
char context[32];
}
OnCommandFunction commandFunctions[
3
0];
OnCommandFunction commandFunctions[
4
0];
// max args is handy for error checking. Especially for missing quotes.
int maxCommandArgs[30];
int maxCommandArgs[40];
bool autoReplaceVariables[40];
// create a simple scriptable timer system
ArrayList commands;
...
...
@@ -69,7 +72,7 @@ void Funcs_OnPluginStart()
AddCommand("SpawnPreset",SpawnPresetCommand,6);
AddCommand("Teleport",TeleportCommand,6);
AddCommand("EmitSound",EmitSoundCommand,6);
AddCommand("TargetName",TargetNameCommand,
6
);
AddCommand("TargetName",TargetNameCommand,
4
);
AddCommand("TargetNameAll",TargetNameAllCommand,6);
AddCommand("TargetClassname",TargetClassnameCommand,6);
AddCommand("TargetClassnameAll",TargetClassnameAllCommand,6);
...
...
@@ -82,18 +85,21 @@ void Funcs_OnPluginStart()
AddCommand("OnCommand",HookCommand,4);
AddCommand("PrintToTarget",PrintToTarget,1);
AddCommand("If",IfCommand,100);
AddCommand("Set",SetVariable,3);
AddCommand("Inc",IncVariable,1);
AddCommand("Dec",DecVariable,1);
AddCommand("Set",SetVariable,10,false);
AddCommand("Inc",IncVariable,1,false);
AddCommand("Dec",DecVariable,1,false);
RegAdminCmd("sm_execscript", Command_Exec_Script, ADMFLAG_BAN);
RegAdminCmd("sm_clearscripts", Command_Clear_Scripts, ADMFLAG_SLAY);
}
public void AddCommand(char[]name, OnCommandFunction func,int maxArgs
)
void AddCommand(char[]name, OnCommandFunction func,int maxArgs,bool replaceVariables = true
)
{
commandOptions.SetValue(name,numCommands);
commandFunctions[numCommands] = func;
maxCommandArgs[numCommands] = maxArgs;
autoReplaceVariables[numCommands] = replaceVariables;
numCommands ++;
}
...
...
@@ -103,6 +109,16 @@ public Action Command_Clear_Scripts(int client, int args)
PrintToChat(client,"scripts cleared");
return Plugin_Handled;
}
public Action Command_Exec_Script(int client, int args)
{
if(!CanEditMap(client))
return Plugin_Handled;
// todo -- make sure it prints to chat for accountability.
return Plugin_Handled;
}
void Funcs_OnMapStart()
...
...
@@ -485,6 +501,11 @@ RunEntityFunctionInternal(int entRef,char[] funcString)
char command[32];
BreakArg(funcString, command, sizeof(command),argIndex);
char args[500];
if(argIndex != -1)
strcopy(args,remainingStart - argIndex + 1 ,funcString[argIndex]);
int nextEnt = -1;
int index;
...
...
@@ -492,11 +513,11 @@ RunEntityFunctionInternal(int entRef,char[] funcString)
{
Call_StartFunction(null, commandFunctions[index]);
Call_PushCell(entRef);
if(argIndex != -1)
// this copies the string, unfortunantly at a reduced size.
Call_PushString(funcString[argIndex]
);
else
Call_PushString(""
);
if(autoReplaceVariables[index])
ReplaceVariables(entRef,args,sizeof(args)
);
Call_PushString(args
);
Call_PushString(funcString[remainingStart]);
...
...
@@ -519,16 +540,6 @@ RunEntityFunctionInternal(int entRef,char[] funcString)
}
// necessary because of runentityinternal string optimizations
// used solely for targeting
void RunDuplicateEntityFunctionInternal(int entity,char [] remainder)
{
char copy[1024];
strcopy(copy,sizeof(copy),remainder);
RunEntityFunctionInternal(entity,copy);
}
stock void SkipArg(char[] mainString,int skipNumber,int &argIndex)
{
for(int = 0;i< skipNumber && argIndex != -1;i++)
...
...
@@ -638,11 +649,9 @@ public bool EvaluateCondition(int entity,char[] condition)
// format If $var == 2 TEST ELSE TEST2
public int IfCommand(int entity,char[]
mA
rgs,char[] remainder)
public int IfCommand(int entity,char[]
a
rgs,char[] remainder)
{
int argIndex;
char args[512];
CopyReplaceVariables(entity,args,sizeof(args),mArgs);
bool hasArgs = true;
...
...
@@ -881,11 +890,9 @@ public void FormatChatTextMessage(char[] message)
}
public int ChatTextCommand(int entity,char[]
mA
rgs,char[] remainder)
public int ChatTextCommand(int entity,char[]
a
rgs,char[] remainder)
{
char args[500];
CopyReplaceVariables(entity,args,sizeof(args),mArgs);
int argIndex;
char nf_text[512];
...
...
@@ -930,10 +937,8 @@ public int ChatTextCommand(int entity,char[] mArgs,char[] remainder)
}
// prints to clients
public int PrintToTarget(int entity,char[]
mA
rgs,char[] remainder)
public int PrintToTarget(int entity,char[]
a
rgs,char[] remainder)
{
char args [500];
CopyReplaceVariables(entity,args,sizeof(args),mArgs);
int client = EntRefToEntIndex(entity);
int argIndex;
char text[256];
...
...
@@ -1017,6 +1022,7 @@ public int DecVariable(int entity,char[] args,char[] remainder)
public int SetVariable(int entity,char[] mArgs,char[] remainder)
{
// replace with larger buffer
// needed for replacing variables
char args[500];
strcopy(args,sizeof(args),mArgs);
...
...
@@ -1088,10 +1094,8 @@ public int SetVariable(int entity,char[] mArgs,char[] remainder)
public int HudTextCommand(int entity,char[]
mA
rgs,char[] remainder)
public int HudTextCommand(int entity,char[]
a
rgs,char[] remainder)
{
char args[512];
CopyReplaceVariables(entity,args,sizeof(args),mArgs);
int argIndex;
char nf_text[256];
BreakArg(args,nf_text,sizeof(nf_text),argIndex);
...
...
@@ -1382,14 +1386,38 @@ public int SpawnPresetCommand(int entity,char[] args,char[] remainder)
public int TeleportCommand(int entity,char[] args,char[] remainder)
{
// set position
// have an optional relative entity section.
int argIndex;
float position[3];
char posString[32];
BreakArg(args,posString,sizeof(posString),argIndex);
position[0] = StringToFloat(posString);
BreakArg(args,posString,sizeof(posString),argIndex);
position[1] = StringToFloat(posString);
BreakArg(args,posString,sizeof(posString),argIndex);
position[2] = StringToFloat(posString);
char targetName[32];
if(BreakArg(args,targetName,sizeof(targetName),argIndex))
{
// get the entity with that name
int targetEntity = GetSingleEntityByName(targetName);
if(targetEntity > 0)
{
float targetPosition[3];
GetEntPropVector(targetEntity, Prop_Data, "m_vecAbsOrigin", targetPosition);
AddVectors(position,targetPosition,position);
}
}
TeleportEntity(entity, position,NULL_VECTOR , NULL_VECTOR);
return entity;
}
public int EmitSoundCommand(int entity,char[]
mA
rgs,char[] remainder)
public int EmitSoundCommand(int entity,char[]
a
rgs,char[] remainder)
{
char args[512];
CopyReplaceVariables(entity,args,sizeof(args),mArgs);
int argIndex;
char soundName[64];
BreakArg(args,soundName,sizeof(soundName),argIndex);
...
...
@@ -1451,7 +1479,7 @@ public int TargetNameCommandInternal(int entity,char[] args,char[] remainder,int
if(StrEqual(strName, targetName,true) && !( GetEntityFlags(i) & FL_KILLME) && (team == -1 || GetEntProp(i,Prop_Send,"m_iTeamNum") == team ))
{
numberFound ++;
Run
Duplicate
EntityFunctionInternal(i,remainder);
RunEntityFunctionInternal(i,remainder);
}
}
}
...
...
@@ -1464,6 +1492,7 @@ public int TargetNameCommandInternal(int entity,char[] args,char[] remainder,int
public int TargetClassnameCommand(int entity,char[] args,char[] remainder)
{
return TargetClassnameInternal(entity,args,remainder,1);
...
...
@@ -1495,7 +1524,7 @@ public int TargetClassnameInternal(int entity,char[] args,char[] remainder, int
if (IsValidEntity(iEnt) && !( GetEntityFlags(iEnt) & FL_KILLME) && (team == -1 || GetEntProp(iEnt,Prop_Send,"m_iTeamNum") == team ))
{
numberFound ++;
Run
Duplicate
EntityFunctionInternal(iEnt,remainder);
RunEntityFunctionInternal(iEnt,remainder);
}
}
return -1;
...
...
@@ -1795,7 +1824,7 @@ int FindEndDelimiter(char[] message)
}
// used if working with pushed arguments
CopyReplaceVariables(int entRef,char[] buffer,int bufferSize,char[] message)
stock
CopyReplaceVariables(int entRef,char[] buffer,int bufferSize,char[] message)
{
strcopy(buffer,bufferSize,message);
ReplaceVariables(entRef,buffer,bufferSize);
...
...
@@ -1843,13 +1872,14 @@ ReplaceVariables(int entRef,char[] message,int messageSize)
PropType propType;
int offset = FindPropOffset(entRef,variable,propType,type);
Format(stringToReplace,sizeof(stringToReplace),"$%s",variable);
if(offset == -2)
{
GetScriptVariable(stringToReplace,outputValue,sizeof(outputValue));
ReplaceString(message, messageSize,stringToReplace,outputValue);
// prevent replacing other variables which may contain the string in this variable
ReplaceStringEx(message, messageSize,stringToReplace,outputValue,size,-1);
}
...
...
@@ -1864,8 +1894,7 @@ ReplaceVariables(int entRef,char[] message,int messageSize)
else if(type == PropField_String)
GetEntPropString(entRef,propType,variable,outputValue,sizeof(outputValue));
ReplaceString(message, messageSize,stringToReplace,outputValue);
ReplaceStringEx(message, messageSize,stringToReplace,outputValue,size,-1);
}
else
...
...
@@ -2051,6 +2080,11 @@ bool CheckScriptForErrors(char[] funcString,char[] scriptname)
PrintError("[%s] If argument \"%s\" is a script that doesen't exist",scriptname,buffer,funcString);
hasError = true;
}
// condition must be a string.
if((index == 2 || index == 4) && buffer[0] != '"')
{
PrintError("[%s] If condition must be wrapped in speech marks(*). %s",scriptname,"",funcString);
}
index++;
}
...
...
dist/scenarios/emp_temple/mik_kingofthehill.snr
View file @
9f8892d0
"Scenario"
{
"Description" "Hold the middle flag for
5
minutes to win."
"
Details" "The temple will open after 8 minutes
"
"Description" "Hold the middle flag for
8
minutes to win."
"
details" "The temple will open after 5 minutes\The timer will decrease by 20 seconds each reset (Min: 4 minutes)
"
"details" " "
"Tags" " "
"Author" "Mikleo"
...
...
@@ -9,27 +9,32 @@
"BE_Res" "300.000000"
"NF_Tickets" "250.000000"
"BE_Tickets" "250.000000"
"version" "1.1
7
0000"
"version" "1.1
8
0000"
"hLimit" "32179"
"Scripts"
{
"KOTH"
{
"$string_MainText" "King of the Hill\Hold the temple for 5 minutes to win"
"$string_EnableTimerText" "Temple opens in TIME_LEFT"
"$string_EnableSound" "ambient/explosions/explode_4.wav"
"$string_NeutralText" "Flag Neutral"
"$string_MainText" "King of the Hill\Hold the temple for 8 minutes to win"
"$string_EnableTimerText" "Temple opens in TIME_LEFT"
"$string_EnableSound" "ambient/explosions/explode_4.wav"
"$int_EnableLength" "300"
"$string_NeutralText" "Flag Neutral"
"$int_TimerLength" "480"
"$int_TimerDecrease" "20"
"$int_TimerLengthMin" "240"
"i_HookFlag" "TargetName KOTHFlag -> HookOutput OnNeutral NeutralTimer -> HookOutput OnImpCap BETimer -> HookOutput OnNFCap NFTimer"
"i_StartingTimer" "Cancel KOTHTimer -> TextTimer -1 *$string_MainText* _ KOTHTimer"
"s_EnableTimer" "Cancel KOTHTimer -> Run DisableFlag -> TextTimer
480
*$string_EnableTimerText* _ KOTHTimer -> Run DestroyBlockers EnableFlag KOTHOpenEffect NeutralTimer"
"NeutralTimer" "Cancel KOTHTimer -> TextTimer -1 *$string_NeutralText* _ KOTHTimer"
"BETimer" "Cancel KOTHTimer -> TextTimer
300 *BE Victory in TIME_LEFT* _ KOTHTimer -> TargetParams
-> Input InputImpWin 0 "
"NFTimer" "Cancel KOTHTimer -> TextTimer
300 *NF Victory in TIME_LEFT* _ KOTHTimer -> TargetParams
-> Input InputNFWin 0 "
"DestroyBlockers" "TargetNameAll KOTHBlocker -> Input Break"
"KOTHOpenEffect" "EmitSound *$string_EnableSound* -> TargetNameAll KOTHOpenParticles -> Input Start"
"s_EnableTimer" "Cancel KOTHTimer -> Run DisableFlag -> TextTimer
$int_EnableLength
*$string_EnableTimerText* _ KOTHTimer -> Run DestroyBlockers EnableFlag KOTHOpenEffect NeutralTimer"
"NeutralTimer" "Cancel KOTHTimer ->
Run ReduceTime ->
TextTimer -1 *$string_NeutralText* _ KOTHTimer"
"BETimer" "Cancel KOTHTimer -> TextTimer
$int_TimerLength *BE Victory in TIME_LEFT* _ KOTHTimer -> TargetParams -> Run TeleportAboveFlag
-> Input InputImpWin 0 "
"NFTimer" "Cancel KOTHTimer -> TextTimer
$int_TimerLength *NF Victory in TIME_LEFT* _ KOTHTimer -> TargetParams -> Run TeleportAboveFlag
-> Input InputNFWin 0 "
"DestroyBlockers"
"TargetNameAll KOTHBlocker -> Input Break"
"KOTHOpenEffect"
"EmitSound *$string_EnableSound* -> TargetNameAll KOTHOpenParticles -> Input Start"
"DisableFlag" "TargetName KOTHFlag -> Input InputNFDisable -> Input InputImpDisable"
"EnableFlag" "TargetName KOTHFlag -> Input InputNFEnable -> Input InputImpEnable"
"ReduceTime" "Set $int_TimerLength = $int_TimerLength - $int_TimerDecrease -> If *$int_TimerLength < $int_TimerLengthMin* -> Set $int_TimerLength = $int_TimerLengthMin"
"TeleportAboveFlag" "Teleport 0 0 300 KOTHFlag"
}
}
"NF_Research"
...
...
@@ -95,15 +100,15 @@
"1942"
{
"className" "emp_imp_commander"
"position" "-665
5.129395 -8857.420898 286.112457
"
"angles" "2.3
06295 0.406886 1.244743
"
"position" "-665
4.988281 -8861.183594 285.997375
"
"angles" "2.3
41814 0.516745 1.210446
"
"coords" "B2"
}
"1940"
{
"className" "emp_nf_commander"
"position" "6655.92
4805 -8665.294922 367.975708
"
"angles" "-0.043
201 -0.017596 -0.496735
"
"position" "6655.92
1875 -8665.751953 367.972443
"
"angles" "-0.043
370 -0.018517 -0.498199
"
"coords" "D2"
}
"2136"
...
...
@@ -253,7 +258,7 @@
{
"className" "emp_resource_point_prop"
"position" "-1664.000000 3432.000000 1616.000000"
"angles" "-75.901497 6.863350 158.4929
66
"
"angles" "-75.901497 6.863350 158.4929
50
"
"coords" "C5"
"name" "resnode 6"
"enabled" "1"
...
...
@@ -332,7 +337,7 @@
"1980"
{
"className" "prop_dynamic"
"position" "-1631.150024 -4918.48
9258
144.250000"
"position" "-1631.150024 -4918.48
8770
144.250000"
"angles" "0.000000 66.000000 0.000000"
"coords" "C3"
"model" "models/common/props_foliage/trees/orexcluster2a.mdl"
...
...
@@ -733,7 +738,7 @@
"5000008"
{
"className" "emp_cap_model"
"position" "-1.741734 -7550.32
1289
640.031250"
"position" "-1.741734 -7550.32
0801
640.031250"
"angles" "0.000000 0.300000 0.000000"
"coords" "C2"
"pointNumber" "31"
...
...
@@ -799,7 +804,7 @@
"5000018"
{
"className" "prop_dynamic"
"position" "33.39260
5 -7444.412109
635.031250"
"position" "33.39260
1 -7444.411621
635.031250"
"angles" "0.000000 -69.099998 0.000000"
"coords" "C2"
"model" "models/common/props_foliage/lake/flowerc.mdl"
...
...
@@ -819,7 +824,7 @@
"5000034"
{
"className" "prop_dynamic"
"position" "-554.520081 -2536.473
389
4.444397"
"position" "-554.520081 -2536.473
145
4.444397"
"angles" "0.000000 276.200012 0.000000"
"coords" "C3"
"model" "models/common/props_foliage/lake/rocklarge_c.mdl"
...
...
@@ -829,8 +834,8 @@
"5000021"
{
"className" "prop_dynamic"
"position" "-118.6844
71 -7359.370605
632.224731"
"angles" "-0.000000 3
7.999996
0.000000"
"position" "-118.6844
64 -7359.370117
632.224731"
"angles" "-0.000000 3
8.000000
0.000000"
"coords" "C2"
"model" "models/common/props_foliage/lake/rockmedium_vara.mdl"
"MoveType" "0"
...
...
@@ -839,7 +844,7 @@
"5000035"
{
"className" "prop_dynamic"
"position" "-26.63269
2 -7319.497559
632.224731"
"position" "-26.63269
4 -7319.497070
632.224731"
"angles" "-0.000000 12.599998 0.000000"
"coords" "C2"
"model" "models/common/props_foliage/lake/rockmedium_vara.mdl"
...
...
@@ -899,7 +904,7 @@
"5000041"
{
"className" "prop_dynamic"
"position" "71.63330
8
-7765.700195 632.224731"
"position" "71.63330
1
-7765.700195 632.224731"
"angles" "-0.000000 -164.100021 0.000000"
"coords" "C2"
"model" "models/common/props_foliage/lake/rockmedium_vara.mdl"
...
...
@@ -909,7 +914,7 @@
"5000042"
{
"className" "prop_dynamic"
"position" "-114.943878 -7731.46
7285
632.224731"
"position" "-114.943878 -7731.46
6797
632.224731"
"angles" "-0.000000 146.899994 0.000000"
"coords" "C2"
"model" "models/common/props_foliage/lake/rockmedium_vara.mdl"
...
...
@@ -919,7 +924,7 @@
"5000043"
{
"className" "prop_dynamic"
"position" "-187.942
307
-7647.549805 632.224731"
"position" "-187.942
291
-7647.549805 632.224731"
"angles" "-0.000000 118.699997 0.000000"
"coords" "C2"
"model" "models/common/props_foliage/lake/rockmedium_vara.mdl"
...
...
@@ -929,7 +934,7 @@
"5000044"
{
"className" "prop_dynamic"
"position" "-212.6851
65
-7538.649414 632.224731"
"position" "-212.6851
81
-7538.649414 632.224731"
"angles" "0.000000 90.400002 0.000000"
"coords" "C2"
"model" "models/common/props_foliage/lake/rockmedium_vara.mdl"
...
...
@@ -939,7 +944,7 @@
"5000045"
{
"className" "prop_dynamic"
"position" "118.660561 -7606.84
2285
635.031250"
"position" "118.660561 -7606.84
1797
635.031250"
"angles" "0.000000 -11.700000 0.000000"
"coords" "C2"
"model" "models/common/props_foliage/lake/flowerc.mdl"
...
...
@@ -949,7 +954,7 @@
"5000046"
{
"className" "prop_dynamic"
"position" "-61.0036
43
-7651.445801 635.031250"
"position" "-61.0036
39
-7651.445801 635.031250"
"angles" "0.000000 -131.600006 0.000000"
"coords" "C2"
"model" "models/common/props_foliage/lake/flowerc.mdl"
...
...
@@ -969,7 +974,7 @@
"5000048"
{
"className" "prop_dynamic"
"position" "64.556671 -7653.41
5039
635.031250"
"position" "64.556671 -7653.41
4551
635.031250"
"angles" "0.000000 -49.600002 0.000000"
"coords" "C2"
"model" "models/common/props_foliage/lake/flowerc.mdl"
...
...
@@ -979,7 +984,7 @@
"5000049"
{
"className" "prop_dynamic"
"position" "-97.3512
34
-7608.695801 635.031250"
"position" "-97.3512
42
-7608.695801 635.031250"
"angles" "0.000000 -123.300003 0.000000"
"coords" "C2"
"model" "models/common/props_foliage/lake/flowerc.mdl"
...
...
@@ -989,7 +994,7 @@
"5000022"
{
"className" "prop_dynamic"
"position" "95.935051 -5166.812
500
143.632614"
"position" "95.935051 -5166.812
012
143.632614"
"angles" "0.000000 207.000000 0.000000"
"coords" "C3"
"model" "models/common/props_foliage/lake/blackcw_tall.mdl"
...
...
@@ -999,7 +1004,7 @@
"5000031"
{
"className" "prop_dynamic"
"position" "50.01723
5 -5128.158691
140.069153"
"position" "50.01723
1 -5128.158203
140.069153"
"angles" "0.000000 -208.500000 0.000000"
"coords" "C3"
"model" "models/common/props_foliage/lake/rockmedium_varb.mdl"
...
...
@@ -1009,7 +1014,7 @@
"5000050"
{
"className" "prop_dynamic"
"position" "155.568573 -5164.529
785
140.069153"
"position" "155.568573 -5164.529
297
140.069153"
"angles" "0.000000 -203.399994 0.000000"
"coords" "C3"
"model" "models/common/props_foliage/lake/rockmedium_varb.mdl"
...
...
@@ -1019,7 +1024,7 @@
"5000051"
{
"className" "prop_dynamic"
"position" "53.26408
0 -5199.914551
140.069153"
"position" "53.26408
4 -5199.914063
140.069153"
"angles" "0.000000 -121.400002 0.000000"
"coords" "C3"
"model" "models/common/props_foliage/lake/rockmedium_varb.mdl"
...
...
@@ -1029,7 +1034,7 @@
"5000052"
{
"className" "prop_dynamic"
"position" "124.80806
0 -5077.348145
140.069153"
"position" "124.80806
7 -5077.347656
140.069153"
"angles" "0.000000 -147.200012 0.000000"
"coords" "C3"
"model" "models/common/props_foliage/lake/rockmedium_varb.mdl"
...
...
@@ -1039,8 +1044,8 @@
"5000054"
{
"className" "prop_dynamic"
"position" "93.147362 -5151.61
5234
143.632614"
"angles" "0.000000 386.8999
6
3 0.000000"
"position" "93.147362 -5151.61
4746
143.632614"
"angles" "0.000000 386.8999
3
3 0.000000"
"coords" "C3"
"model" "models/common/props_foliage/lake/blackcw_tall.mdl"
"MoveType" "0"
...
...
@@ -1049,7 +1054,7 @@
"5000055"
{
"className" "prop_dynamic"
"position" "140.751953 -5230.801
758
140.069153"
"position" "140.751953 -5230.801
270
140.069153"
"angles" "0.000000 -227.900009 0.000000"
"coords" "C3"
"model" "models/common/props_foliage/lake/rockmedium_varb.mdl"
...
...
@@ -1059,7 +1064,7 @@
"5000056"
{
"className" "prop_dynamic"
"position" "427.919006 -7122.19
7266
543.444397"
"position" "427.919006 -7122.19
6777
543.444397"
"angles" "0.000000 267.600006 0.000000"
"coords" "C3"
"name" "KOTHBlocker"
...
...
@@ -1070,7 +1075,7 @@
"5000057"
{
"className" "prop_dynamic"
"position" "427.919006 -7122.196
777
700.444397"
"position" "427.919006 -7122.196
289
700.444397"
"angles" "0.000000 267.600006 0.000000"
"coords" "C3"
"name" "KOTHBlocker"
...
...
@@ -1081,7 +1086,7 @@
"5000058"
{
"className" "prop_dynamic"
"position" "427.919006 -7122.19
6289
913.344421"
"position" "427.919006 -7122.19
5801
913.344421"
"angles" "0.000000 267.600006 0.000000"
"coords" "C3"
"name" "KOTHBlocker"
...
...
@@ -1092,7 +1097,7 @@
"5000059"
{
"className" "prop_dynamic"
"position" "-366.98
1018 -7122.196289
700.444397"
"position" "-366.98
0988 -7122.195801
700.444397"
"angles" "0.000000 267.600006 0.000000"
"coords" "C3"
"name" "KOTHBlocker"
...
...
@@ -1103,7 +1108,7 @@
"5000060"
{
"className" "prop_dynamic"
"position" "-366.98
1018 -7122.196777
543.444397"
"position" "-366.98
0988 -7122.196289
543.444397"
"angles" "0.000000 267.600006 0.000000"
"coords" "C3"
"name" "KOTHBlocker"
...
...
@@ -1114,7 +1119,7 @@
"5000061"
{
"className" "prop_dynamic"
"position" "-366.98
101
8 -7122.195801 913.344421"
"position" "-366.98
098
8 -7122.195801 913.344421"
"angles" "0.000000 267.600006 0.000000"
"coords" "C3"
"name" "KOTHBlocker"
...
...
@@ -1125,8 +1130,8 @@
"5000062"
{
"className" "prop_dynamic"
"position" "11.418991 -7429.496
582
1084.144531"
"angles" "75.000000 -92.
399994
-0.000001"
"position" "11.418991 -7429.496
094
1084.144531"
"angles" "75.000000 -92.
400002
-0.000001"
"coords" "C2"
"name" "KOTHBlocker"
"model" "models/common/props_foliage/lake/rocklarge_c.mdl"
...
...
@@ -1136,7 +1141,7 @@
"5000063"
{
"className" "prop_dynamic"
"position" "11.41896
1
-7637.296387 1084.144531"
"position" "11.41896
2
-7637.296387 1084.144531"
"angles" "75.000000 -92.400002 -0.000000"
"coords" "C2"
"name" "KOTHBlocker"
...
...
@@ -1147,7 +1152,7 @@
"5000064"
{
"className" "prop_dynamic"
"position" "11.418991 -7822.395
996
1084.144531"
"position" "11.418991 -7822.395
508
1084.144531"
"angles" "75.000000 -92.400002 -0.000000"
"coords" "C2"
"name" "KOTHBlocker"
...
...
@@ -1180,7 +1185,7 @@
"5000067"
{
"className" "prop_dynamic"
"position" "11.418991 -7998.49
6094
1084.144531"
"position" "11.418991 -7998.49
5605
1084.144531"
"angles" "75.000000 -92.400002 -0.000001"
"coords" "C2"
"name" "KOTHBlocker"
...
...
@@ -1188,10 +1193,10 @@
"MoveType" "0"
"SolidType" "6"
}
"500006
8
"
"500006
9
"
{
"className" "prop_dynamic"
"position" "11.4189
93 -8778.695313
1084.144531"
"position" "11.4189
62 -8593.596680
1084.144531"
"angles" "75.000000 -92.400002 -0.000000"
"coords" "C2"
"name" "KOTHBlocker"
...
...
@@ -1199,38 +1204,119 @@
"MoveType" "0"
"SolidType" "6"
}
"50000
6
9"
"50000
7
9"
{
"className" "prop_dynamic"
"position" "11.418961 -8593.596680 1084.144531"
"angles" "75.000000 -92.400002 -0.000000"
"position" "-376.718414 -7824.320313 666.631226"
"angles" "0.000000 35.700001 0.000000"
"coords" "C2"
"model" "models/props_canal/rock_riverbed01d.mdl"
"MoveType" "0"
"SolidType" "6"
}
"5000080"
{
"className" "prop_dynamic"