I need some help tips and suggestions for a zombie rpg game im making

Hello, I need some help.

I am trying to build a zombie rpg fps but Iv’e gotten nowhere.

One of my problems is a gun script Ive tried the one from the fps starter kit for unity and tweaked it but when i add the particals to the gun and start the game it wont fire. As in particals wont come out. Also When they do come out They move all the way to the far left of the screen

And i would like to have some melee weapons in there also. But don’t have any melee scripts or animation skills.

I would very much like to assemble a team. FOR FREE. please if any one can help please do so. Send me an email at ryank11@ymail.com

The particle system object needs to be parented to the gun and use only local velocity (if you use world velocity, the particles will move in the same direction regardless of where the character is facing). I’ve attached an example particle system. Drag the prefab into the scene and then parent the object to gun with its Z (blue) axis pointing in the same direction as the gun.

487978–17141–$Gun.zip (50 KB)

Okay, so i parented the gun particles prefab you gave me and when i hit my left mouse button now the particles don’t come out when i fire. Any ideas andeeee

Also a muzzle flash dosent come out of the gun too. Here I am going to post the gun script now. The script is for a Colt Anaconda 44.

var range = 143.0;
var fireRate = .9;
var force = 30.0;
var damage = 50.0;
var bulletsPerClip = 6;
var clips = 3;
var reloadTime = .9;
private var hitParticles : ParticleEmitter;
var muzzleFlash : Renderer;

private var bulletsLeft : int = 0;
private var nextFireTime = 0.0;
private var m_LastFrameShot = -1;

function Start () {
hitParticles = GetComponentInChildren(ParticleEmitter);

// We don’t want to emit particles all the time, only when we hit something.
if (hitParticles)
hitParticles.emit = false;
bulletsLeft = bulletsPerClip;
}

function LateUpdate() {
if (muzzleFlash) {
// We shot this frame, enable the muzzle flash
if (m_LastFrameShot == Time.frameCount) {
muzzleFlash.transform.localRotation = Quaternion.AngleAxis(Random.value * 360, Vector3.forward);
muzzleFlash.enabled = true;

if (audio) {
if (!audio.isPlaying)
audio.Play();
audio.loop = true;
}
} else {
// We didn’t, disable the muzzle flash
muzzleFlash.enabled = false;
enabled = false;

// Play sound
if (audio)
{
audio.loop = false;
}
}
}
}

function Fire () {
if (bulletsLeft == 0)
return;

// If there is more than one bullet between the last and this frame
// Reset the nextFireTime
if (Time.time - fireRate > nextFireTime)
nextFireTime = Time.time - Time.deltaTime;

// Keep firing until we used up the fire time
while( nextFireTime < Time.time bulletsLeft != 0) {
FireOneShot();
nextFireTime += fireRate;
}
}

function FireOneShot () {
var direction = transform.TransformDirection(Vector3.forward);
var hit : RaycastHit;

// Did we hit anything?
if (Physics.Raycast (transform.position, direction, hit, range)) {
// Apply a force to the rigidbody we hit
if (hit.rigidbody)
hit.rigidbody.AddForceAtPosition(force * direction, hit.point);

// Place the particle system for spawing out of place where we hit the surface!
// And spawn a couple of particles
if (hitParticles) {
hitParticles.transform.position = hit.point;
hitParticles.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
hitParticles.Emit();
}

// Send a damage message to the hit object
hit.collider.SendMessageUpwards(“ApplyDamage”, damage, SendMessageOptions.DontRequireReceiver);
}

bulletsLeft–;

// Register that we shot this frame,
// so that the LateUpdate function enabled the muzzleflash renderer for one frame
m_LastFrameShot = Time.frameCount;
enabled = true;

// Reload gun in reload Time
if (bulletsLeft == 0)
Reload();
}

function Reload () {

// Wait for reload time first - then add more bullets!
yield WaitForSeconds(reloadTime);

// We have a clip left reload
if (clips > 0) {
clips–;
bulletsLeft = bulletsPerClip;
}
}

function GetBulletsLeft () {
return bulletsLeft;
}

Also a muzzle flash dosent come out of the gun too. Here I am going to post the gun script now. The script is for a Colt Anaconda 44.

var range = 143.0;
var fireRate = .9;
var force = 30.0;
var damage = 50.0;
var bulletsPerClip = 6;
var clips = 3;
var reloadTime = .9;
private var hitParticles : ParticleEmitter;
var muzzleFlash : Renderer;

private var bulletsLeft : int = 0;
private var nextFireTime = 0.0;
private var m_LastFrameShot = -1;

function Start () {
hitParticles = GetComponentInChildren(ParticleEmitter);

// We don’t want to emit particles all the time, only when we hit something.
if (hitParticles)
hitParticles.emit = false;
bulletsLeft = bulletsPerClip;
}

function LateUpdate() {
if (muzzleFlash) {
// We shot this frame, enable the muzzle flash
if (m_LastFrameShot == Time.frameCount) {
muzzleFlash.transform.localRotation = Quaternion.AngleAxis(Random.value * 360, Vector3.forward);
muzzleFlash.enabled = true;

if (audio) {
if (!audio.isPlaying)
audio.Play();
audio.loop = true;
}
} else {
// We didn’t, disable the muzzle flash
muzzleFlash.enabled = false;
enabled = false;

// Play sound
if (audio)
{
audio.loop = false;
}
}
}
}

function Fire () {
if (bulletsLeft == 0)
return;

// If there is more than one bullet between the last and this frame
// Reset the nextFireTime
if (Time.time - fireRate > nextFireTime)
nextFireTime = Time.time - Time.deltaTime;

// Keep firing until we used up the fire time
while( nextFireTime < Time.time bulletsLeft != 0) {
FireOneShot();
nextFireTime += fireRate;
}
}

function FireOneShot () {
var direction = transform.TransformDirection(Vector3.forward);
var hit : RaycastHit;

// Did we hit anything?
if (Physics.Raycast (transform.position, direction, hit, range)) {
// Apply a force to the rigidbody we hit
if (hit.rigidbody)
hit.rigidbody.AddForceAtPosition(force * direction, hit.point);

// Place the particle system for spawing out of place where we hit the surface!
// And spawn a couple of particles
if (hitParticles) {
hitParticles.transform.position = hit.point;
hitParticles.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
hitParticles.Emit();
}

// Send a damage message to the hit object
hit.collider.SendMessageUpwards(“ApplyDamage”, damage, SendMessageOptions.DontRequireReceiver);
}

bulletsLeft–;

// Register that we shot this frame,
// so that the LateUpdate function enabled the muzzleflash renderer for one frame
m_LastFrameShot = Time.frameCount;
enabled = true;

// Reload gun in reload Time
if (bulletsLeft == 0)
Reload();
}

function Reload () {

// Wait for reload time first - then add more bullets!
yield WaitForSeconds(reloadTime);

// We have a clip left reload
if (clips > 0) {
clips–;
bulletsLeft = bulletsPerClip;
}
}

function GetBulletsLeft () {
return bulletsLeft;
}

Any tips (bump)