コード例 #1
0
        public void ArmorDamage(coPlayerData datablock, coPlayer player, TransformF position, coPlayer sourceobject, float damage, string damageType)
            {
            if (!player.isObject())
                return;
            if (player.getState() == "Dead")
                return;
            if (damage == 0.0)
                return;


            player.applyDamage(damage);

            const string location = "Body";

            //PlayerUpdateHealth(player);

            coGameConnection client = player["client"];
            //Only continue if it is a player, if it is an AI return.
            if (!client.isObject())
                return;


            coGameConnection sourceClient = null;
            if (sourceobject != 0)
                sourceClient = sourceobject["client"];


            if (player.getDamageLevel() >= 99)
                player.unmountImage(0);

            // Determine damage direction
            if (damageType != "Suicide")
                PlayerSetDamageDirection(player, sourceobject, position);

            if (player.getState() == "Dead")
                GameConnectionOnDeath(client, sourceobject, sourceClient, damageType, location);
            }
コード例 #2
0
        public void ArmorOnMount(coPlayerData datablock, coPlayer player, coVehicle vehicle, int node)
            {
            coVehicleData vehicleDataBlock = vehicle.getDataBlock();
            if (node == 0)
                {
                player.setTransform(new TransformF("0 0 0 0 0 1 0"));


                string mountPose = vehicleDataBlock["mountPose[" + node + "]"];
                player.setActionThread(mountPose, true, true);

                player["lastWeapon"] = player.getMountedImage(WeaponSlot).AsString();


                coGameConnection client = player["client"];
                if (client.isObject())
                    player["lastperson"] = client.isFirstPerson().AsString();

                player.unmountImage(WeaponSlot);


                player.setControlObject(vehicle);

                if (player.getClassName() == "Player")
                    {
                    console.commandToClient(player["client"], console.addTaggedString("toggleVehicleMap"), new[] { "true" });
                    }
                }
            else
                {
                string pose = vehicleDataBlock["mountPose[" + node + "]"];
                player.setActionThread(pose != "" ? pose : "root", false, true);
                }
            }