So, here's my solution to altering AirControl and AirSpeed for my level.
1. Create a subclass of ZoneInfo called MyZoneInfo.
2. Paste this code into it:
Code: Select all
//=============================================================================
// MyZoneInfo.
//=============================================================================
class MyZoneInfo expands ZoneInfo;
//=============================================================================
// When an actor enters this zone.
event ActorEntered(actor Other) {
local Pawn Current; Current = Pawn(Other);
// Call the usual event:
Super.ActorEntered(Other);
// Only change when defaults are being used:
if (Current.AirSpeed != Current.default.AirSpeed) return;
if (Current.AirControl != Current.default.AirControl) return;
// These should not affect already modified pawns:
Current.AirSpeed = Current.default.AirSpeed * 2;
Current.AirControl = Current.default.AirControl * 8;
}
// When an actor leaves this zone.
event ActorLeaving(actor Other) {
local Pawn Current; Current = Pawn(Other);
// Call the usual event:
Super.ActorLeaving(Other);
// Reset AirSpeed and AirControl for each pawn:
Current.AirSpeed = Current.default.AirSpeed;
Current.AirControl = Current.default.AirControl;
}
//=============================================================================
Thats it! Although you might want to change the AirSpeed and AirControl multipliers, they are only configured for my map.