x


help with 3rd person code

Possible Duplicate:
Help with pause code

I need help with this code:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class MenuController : MonoBehaviour {

    static int difficulty = 1;
    public GUISkin skin;
    private List animationComponents;
    private List audioSourceComponents;
    private float menuOn = 0;
    private float lastTime = 0;

    int[] playerHitDamage = new int[5] {  3,  4,  6, 10, 20 };
    int[] playerHeal      = new int[5] {  5,  4,  3,  2,  0 };
    int[] enemyHitDamage  = new int[5] { 10,  5,  2,  2,  2 };
    int[] enemyHeal       = new int[5] {  0,  0,  0,  0,  0 };

    // Use this for initialization
    IEnumerator Start () {
        UpdateDifficulty();
        AudioListener.volume = 0;
        yield return 0;
        AudioListener.volume = 1;
    }

    // Update is called once per frame
    void Update () {
        // Don't pause in first frame - allow scripts to settle in first
        if (Time.timeSinceLevelLoad == 0)
            return;

        float realDeltaTime = (Time.realtimeSinceStartup - lastTime);
        lastTime = Time.realtimeSinceStartup;
        menuOn = Mathf.Clamp01(menuOn + (Time.timeScale == 0 ? 1 : -1) * realDeltaTime * 5);

        if (!Screen.lockCursor && Time.timeScale != 0) {
            StartCoroutine(Pause(true));
        }
    }

    void OnGUI () {
        if (menuOn == 0)
            return;

        GUI.skin = skin;

        // PLAY button
        Rect rect = new Rect(0, 0, 150, 75);
        rect.x = (Screen.width  - rect.width ) / 2 + (1 - menuOn) * Screen.width;
        rect.y = (Screen.height - rect.height) / 2;
        if (GUI.Button(rect, "PLAY")) {
            StartCoroutine(Pause(false));
        }

        // Difficulty buttons
        rect = new Rect(rect.x - 200, rect.y + 150, rect.width + 400, 40);
        string[] difficulties = new string[] {"NO FAIL", "EASY", "MEDIUM", "HARD", "INSANE"};
        int newDifficulty = GUI.SelectionGrid(rect, difficulty, difficulties, difficulties.Length);
        if (newDifficulty != difficulty) {
            difficulty = newDifficulty;
            UpdateDifficulty();
        }
    }

    IEnumerator Pause (bool pause) {
        // Pause/unpause time
        Time.timeScale = (pause ? 0 : 1);
        // Unlock/Lock cursor
        Screen.lockCursor = !pause;

        if (pause == true) {
            Object[] objects = FindObjectsOfType(typeof(Animation));
            animationComponents = new List();
            foreach (Object obj in objects) {
                Animation anim = (Animation)obj;
                if (anim != null && anim.enabled) {
                    animationComponents.Add(anim);
                    anim.enabled = false;
                }
            }
            objects = FindObjectsOfType(typeof(AudioSource));
            audioSourceComponents = new List();
            foreach (Object obj in objects) {
                AudioSource source = (AudioSource)obj;
                if (source != null && source.enabled /*&& source.isPlaying*/) {
                    audioSourceComponents.Add(source);
                    source.Pause();
                }
            }
        }
        else {
            // If unpausing, wait one frame before we enable animation component.
            // Procedural adjustments are one frame delayed because first frame
            // after being paused has deltaTime of 0.
            yield return 0;
            foreach (Animation anim in animationComponents)
                anim.enabled = true;
            foreach (AudioSource source in audioSourceComponents)
                source.Play();
            animationComponents = null;
        }
    }

    void UpdateDifficulty () {
        Object[] objects = FindObjectsOfType(typeof(HealthController));
        foreach (Object obj in objects) {
            HealthController health = (HealthController)obj;
            if (health.gameObject.tag == "Player") {
                health.healingSpeed = playerHeal[difficulty];
                health.hitDamage = playerHitDamage[difficulty];
            }
            else {
                health.healingSpeed = enemyHeal[difficulty];
                health.hitDamage = enemyHitDamage[difficulty];
            }
        }
    }
}

I didn't make this code and I want to get rid of it and use a code that I already made.

I would be fine even if I could just get rid of the difficulty buttons and add a quit to menu and a restart level button but for some reason, if I get rid of the code or even just the difficulty buttons, the game won't work properly.

Any help is appreciated

Thank you in advance (ps: this is for a 3rd person game and I only want one set difficulty witch is why I don't want the buttons.)

EDIT:

The script that gose with this one is also proving to be a problem

     using UnityEngine;
     using System.Collections;

     public class DeathManager : MonoBehaviour {

public HealthController[] entities;
public ProgressBar[] progressBars;

// Update is called once per frame
void Update () {
    for (int i=0; i<entities.Length; i++) {
        HealthController hc = entities[i];
        if (hc == null)
            continue;

        if (hc.gameObject.active && hc.health <= 0) {
            entities[i] = null;
            hc.gameObject.SendMessage("Die");
            if (hc.tag == "Player")
                StartCoroutine(PrepareRestart(false));
            else {
                StartCoroutine(PrepareRestart(true));
            }
        }
    }
}

IEnumerator PrepareRestart (bool won) {
    if (won) {
        yield return new WaitForSeconds (11);
        Screen.lockCursor = false;
    }
    else {
        yield return new WaitForSeconds (5);
    }
    Application.LoadLevel(0);
}
}

this script dose somthing that I like, whitch is when you die, you restart the level, but what I don't like is that if you kill only one enemy, you restart. If anyone can help me with these problems, that would be great.

more ▼

asked Jun 01 '10 at 04:11 AM

Djcmoon gravatar image

Djcmoon
1 3 3 5

I know it is the same as the other one but I need help really badly because as you can tell, I suck at scripting.

Jun 02 '10 at 03:58 AM Djcmoon

Posting duplicate questions is not allowed here, since it is highly counter-productive to the site. Please stop doing this!

Jun 02 '10 at 11:38 AM runevision ♦♦
(comments are locked)
10|3000 characters needed characters left

0 answers: sort voted first
Be the first one to answer this question
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x168

asked: Jun 01 '10 at 04:11 AM

Seen: 834 times

Last Updated: Jun 01 '10 at 11:53 AM