public void ObserverObserverOnTrigger(coCameraData cameradata, coCamera camera, string trigger, bool state)
            {
            // state = 0 means that a trigger key was released
            if (state == false)
                return;

            // Default player triggers: 0=fire 1=altFire 2=jump
            coGameConnection client = camera.getControllingClient();
            string mode = camera["mode"];
            switch (mode)
                {
                case "Observer":
                    // Do something interesting.
                    break;
                case "Corpse":
                    //Here is a winner... if you send the prepare too soon, it will crash out the client.  The GameConnectionOnControlObjectChange needs
                    //time to run, and since it's still processing the first change (Switch to camera) this second change (Camera->player) will crash
                    //out the client.
                    //ServerCmdSetEditorCameraStandard(client);
                    //ServerCmdDropCameraAtPlayer(client);
                    camera.setFlyMode();
                    client.setControlObject(camera);
                    GameConnectiOnPreparePlayer(client);
                    break;
                }
            }