.
Code: Select all
class AnyTweakingActor extends Actor config(MBotv2Config);
enum EClassAction
{
CA_Tweak,
CA_Destroy
};
struct Anytwk
{
var() config string MapTitle;
var() config name ActorName;
var() config name ActorState;
var() config EClassAction ClassAction;
var() config String ActorSettings;
};
var() config Anytwk AnyTweaker[128];
event PostBeginPlay()
{
TweakSomething();
SaveConfig();
SetTimer(5.0, false);
}
simulated function TweakSomething()
{
local int i;
local Actor A;
local int Pos;
local string CSettings;
for(i = 0; i < 127; i++)
{
if(Level.Title == AnyTweaker[i].MapTitle)
{
if(AnyTweaker[i].ClassAction == CA_Tweak)
{
ForEach AllActors(Class'Actor', A)
{
if( (AnyTweaker[i].ActorName != '') && A.Name == AnyTweaker[i].ActorName)
{
if(A != None && AnyTweaker[i].ActorState != '')
A.GotoState(AnyTweaker[i].ActorState);
if(A != None && AnyTweaker[i].ActorSettings != "")
{
CSettings = AnyTweaker[i].ActorSettings;
T1H:
if(len(CSettings) > 0)
{
Pos = InStr(CSettings,";");
if(Pos < 0)
Pos = InStr(CSettings,",");
if(Pos < 0)
{
SetActorSettings(A,CSettings);
CSettings = "";
}
else
{
SetActorSettings(A, Left(CSettings,Pos));
CSettings=Mid(CSettings,Pos + 1);
goto T1H;
}
}
}
}
}
}
else if(AnyTweaker[i].ClassAction == CA_Destroy)
{
ForEach AllActors(Class'Actor', A)
{
if( (AnyTweaker[i].ActorName != '') && A.Name == AnyTweaker[i].ActorName)
{
if(A != None)
{
A.Destroy();
A = None;
}
}
}
}
}
}
}
simulated function SetActorSettings(Actor A, String CSettings)
{
local string Property;
local string Value;
local string Prev;
local string Next;
Property=Left(CSettings,InStr(CSettings,"="));
Value=Mid(CSettings,InStr(CSettings,"=") + 1);
if(A != None)
{
Prev=A.GetPropertyText(Property);
A.SetPropertyText(Property,Value);
Next=A.GetPropertyText(Property);
}
}
simulated function Timer()
{
Destroy();
}
defaultproperties
{
RemoteRole=ROLE_SimulatedProxy
}
Code: Select all
AnyTweaker[0]=(MapTitle="MH-LandsOfNapali",ActorName=Mover34,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[1]=(MapTitle="MH-LandsOfNapali",ActorName=Mover35,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[2]=(MapTitle="MH-LandsOfNapali",ActorName=Mover45,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[3]=(MapTitle="MH-LandsOfNapali",ActorName=Mover46,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[4]=(MapTitle="MH-LandsOfNapali",ActorName=Mover52,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[5]=(MapTitle="MH-LandsOfNapali",ActorName=Mover53,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[6]=(MapTitle="MH-LandsOfNapali",ActorName=Mover32,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[7]=(MapTitle="MH-LandsOfNapali",ActorName=Mover33,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[8]=(MapTitle="MH-LandsOfNapali",ActorName=Mover44,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[9]=(MapTitle="MH-LandsOfNapali",ActorName=Mover43,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[10]=(MapTitle="MH-LandsOfNapali",ActorName=Mover51,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[11]=(MapTitle="MH-LandsOfNapali",ActorName=Mover27,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[12]=(MapTitle="MH-LandsOfNapali",ActorName=Mover40,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[13]=(MapTitle="MH-LandsOfNapali",ActorName=Mover41,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[14]=(MapTitle="MH-LandsOfNapali",ActorName=Mover39,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[15]=(MapTitle="MH-LandsOfNapali",ActorName=Mover55,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[16]=(MapTitle="MH-LandsOfNapali",ActorName=Mover36,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[17]=(MapTitle="MH-LandsOfNapali",ActorName=Mover42,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[18]=(MapTitle="MH-LandsOfNapali",ActorName=Mover28,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[19]=(MapTitle="MH-LandsOfNapali",ActorName=Mover10,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[20]=(MapTitle="MH-LandsOfNapali",ActorName=Mover8,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[21]=(MapTitle="MH-LandsOfNapali",ActorName=Mover9,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[22]=(MapTitle="MH-LandsOfNapali",ActorName=Mover7,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[23]=(MapTitle="MH-LandsOfNapali",ActorName=Mover13,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[24]=(MapTitle="MH-LandsOfNapali",ActorName=Mover17,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
AnyTweaker[25]=(MapTitle="MH-LandsOfNapali",ActorName=Mover18,ActorState=TriggerControl,ClassAction=CA_Tweak,ActorSettings="")
The example above is MH-LandsOfNaPali, where bots won't stuck at doors.
and it supports max upto 128 settings. Timer thing can be removed as Lifespan will do the same thing.
I know Level.Title is not correct method. Instead the string should have actual map file name and not map title.
Still if you guys want to make your own one, then count me in too.