浏览代码

ai test classes

protoplayer protocar
marauder2k7 1 月之前
父节点
当前提交
c2b347af7c

+ 55 - 0
Templates/BaseGame/game/data/Prototyping/scripts/managedData/managedDatablocks.tscript

@@ -4,3 +4,58 @@ datablock ItemData(PrototypeItemData)
    ShapeAsset = "Prototyping:TorusPrimitive_shape";
    cameraMaxDist = "0.75";
 };
+
+datablock PlayerData( ProtoPlayer ) {
+    // Third person shape
+   ShapeAsset = "Prototyping:Playerbot_shape";
+   controlMap = "playerKeyMap";
+   AIControllerData = "aiPlayerControl";
+};
+
+datablock WheeledVehicleTire(ProtoCarTire)
+{
+   // Tires act as springs and generate lateral and longitudinal
+   // forces to move the vehicle. These distortion/spring forces
+   // are what convert wheel angular velocity into forces that
+   // act on the rigid body.
+   shapeAsset = "Prototyping:carwheel_shape";
+   
+   staticFriction =  1;
+   kineticFriction = 4.2;
+
+   // Spring that generates lateral tire forces
+   lateralForce = 150000;
+   lateralDamping = 30000;
+   lateralRelaxation = 0.1;
+
+   // Spring that generates longitudinal tire forces
+   longitudinalForce = 600;
+   longitudinalDamping = 1600;
+   longitudinalRelaxation = 0.1;
+};
+
+datablock WheeledVehicleSpring(ProtoCarSpring)
+{
+   // Wheel suspension properties
+   length = "0.6";             // Suspension travel
+   force = 3600;              // Spring force
+   damping = 2800;             // Spring damping
+   antiSwayForce = 300;         // Lateral anti-sway force
+};
+
+datablock WheeledVehicleData(ProtoCar)
+{
+   category = "Vehicles";
+   shapeAsset = "Prototyping:car_shape";
+   
+   collisionMul = 0;
+   impactMul = 0;
+   controlMap = "vehicleKeyMap";
+   AIControllerData = "aiCarControl";
+   cameraMaxDist = "2.81993";
+   ShapeFile = "data/Prototyping/shapes/Vehicles/car.dae";
+   mass = "1000";
+   originalAssetName = "ProtoCar";
+   massCenter = "0 0.75 0";
+   dragForce = "0.1";
+};

+ 47 - 0
Templates/BaseGame/game/data/Prototyping/scripts/server/protoCar.tscript

@@ -0,0 +1,47 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2012 GarageGames, LLC
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+//-----------------------------------------------------------------------------
+
+// This file contains script methods unique to the WheeledVehicle class.  All
+// other necessary methods are contained in "../server/scripts/vehicle.cs" in
+// which the "generic" Vehicle class methods that are shared by all vehicles,
+// (flying, hover, and wheeled) can be found.
+
+function ProtoCar::onAdd(%this, %obj)
+{
+   Parent::onAdd(%this, %obj);
+
+   // Setup the car with some tires & springs
+   for (%i = %obj.getWheelCount() - 1; %i >= 0; %i--)
+   {
+      %obj.setWheelTire(%i, ProtoCarTire);
+      %obj.setWheelSpring(%i, ProtoCarSpring);
+      %obj.setWheelPowered(%i, false);
+   }
+
+   // Steer with the front tires
+   %obj.setWheelSteering(0, 1);
+   %obj.setWheelSteering(1, 1);
+
+   // Only power the two rear wheels... assuming there are only 4 wheels.
+   %obj.setWheelPowered(2, true);
+   %obj.setWheelPowered(3, true);
+}