Zumbi Blocks AI not moving

Hi all, I downloaded the project from video.

and this project is not working artificial intelligence, and I tried to create a knitted A * 0 confused, tried rasshirat grid for paths also result 0. Please tell that in this project with the AI and how to treat it :frowning:

Hello & welcome. While I sincerely doubt that anyone is going to download the entire 100mb+ project and sift through it trying to determine what errors you might be experiencing, you are welcome to provide further information about the trouble you are experiencing, including code segments if possible, so that we can better assist you.

You should record the problem, upload it in YouTube and paste the code you are using in order to get help.

1 Like

That script AI zombies
sc_zumbi.js

#pragma strict

var sounds:AudioClip[];
var soundsources:AudioSource[];

var sendrate:float = 10;
var dataconter:float = 0;
var senddata:boolean = true;

var aaa_pf_component:AAA_PATHFINDING;

var path_state = 0;
var targetnum:int = 0;
var havepath:boolean = false;
var lastsawpos:Vector3;
var postogo:Vector3;

var path_stage:int = 0;
var NIA_waypoint:Vector3[];

var grav:float = 10;
var walkspeed:float = 20;
var spinspeed:float = 50;
var dmgmin:float = 5;
var dmgmax:float = 10;
var atackreach:float = 1.5;
var frontsight:int = 6;
var backsight:int = 3;
var armpos:Transform;

var gamecontrol:Transform;
var animador:Transform;
var animadorcomp:Animation;
var head:Transform;
var headmesh:Transform;
var state = 0;
var vy:float = 0;
var isalive:boolean = true;
var isgrounded:boolean = true;
var movimento:Vector3 = Vector3.zero;
var actconter:float = 0;
var actchance:int = 50;
var actrate:float = 2;
var isacting:boolean = false;
var acttime:int = 0;

var ragdoll:Transform;
var eyepos:Transform;

var parts:Transform[];

var peles:Transform[];
var skincolor:Material[];
var skinnum:int = 0;

var camisas:Transform[];
var camisacolor:Material[];
var camisanum:int = 0;

var alvo:Transform;
var alvorelativepos:Vector3;
var animationcont:float = 0;
var RTH:boolean = true;

var lastforce:Vector3 = Vector3.zero;
var needtopush:boolean = false;
var backpackobject:Transform;
var carryitem:boolean = false;
var matchcontrol:Transform;

var headlife:float = 60;
var headblowpart:Transform;
var killerid:int = -1;

var brains:GameObject[];
var lastalvoarea:GameObject;
var mylastarea:GameObject;

var timetogiveup:float = 0;
var timetogiveup2:float = 0;

var changealvo_cont:float = 0;

var cur_anim:String;
var stun_now:int = 0;
var needtostun:int = 0;
var stun_anim:String[];
var stun_move:float[];
var stun_end:float[];

var terrafab:Transform;

@RPC function nasceterra()
{
    Instantiate(terrafab,transform.position-(Vector3.up*1.8),terrafab.rotation);
}

function can_go_there(p1:Vector3, tr:Vector3):boolean
{
    var lmask:LayerMask = (1 << 8) | (1<<30);
   
    var vec : Vector3 = Vector3.up*-0.85;
    if( Physics.Raycast( p1+vec, tr-p1, Vector3.Distance(p1,tr), lmask ) )
    {
        return false;
    }
    return true;
}
function Start () {

    brains = GameObject.FindGameObjectsWithTag("Player");
    networkView.RPC("asktheanimation",RPCMode.Server);
    var cont:int = 0;
    if(!networkView.isMine){enabled = false;}
    animadorcomp = animador.GetComponent(Animation);
   
    animadorcomp.animation["idle"].speed = 0.2;
    animadorcomp.animation["look"].speed = 0.2;
    animadorcomp.animation["walkslow"].speed = 0.2*walkspeed;
    animadorcomp.animation["walkfast"].speed = 0.2*walkspeed;
    animadorcomp.animation["run"].speed = 0.07*walkspeed;
    animadorcomp.animation["atackstrong"].speed = 1.1;
    animadorcomp.animation["fall"].speed = 0.2;
    animadorcomp.animation["born"].speed = 0.35;
    animadorcomp.animation["stepback"].speed = 0.5;
   
    transform.eulerAngles.y = Random.Range(0,360);  //uma vez sรณ
   
    animationcont = 0;
    state = -1;
    rigidbody.constraints = RigidbodyConstraints.FreezeAll;
    animador.animation.Play("born");
    networkView.RPC("playanim",RPCMode.Others,"born",animadorcomp.animation["born"].speed);
       
    skinnum = Random.Range(0,skincolor.Length);
    camisanum = Random.Range(0,camisacolor.Length);
    networkView.RPC("setskin",RPCMode.AllBuffered,skinnum,camisanum,carryitem);
}

@RPC function asktheanimation()
{
    if(!Network.isClient)
    {
        networkView.RPC("playanim",RPCMode.Others,cur_anim,animadorcomp.animation[cur_anim].speed);
    }
}

@RPC function pushme( num:int )
{
    needtostun = num;
    needtopush = true;
}

@RPC function hurthead(dmg:float)
{
    headlife -= dmg;
    if(alvo == null)
    {
        headlife -= dmg*2;
    }
}

@RPC function hearnoise(pid:int)
{   
    var i:int = 0;
    if(state != -1)
    {
        if(alvo == null)
        {
            brains = GameObject.FindGameObjectsWithTag("Player");
            i = 0;
            while(i < brains.Length)
            {
                if(brains[i].GetComponent(sc_player).myid == pid)
                {
                    alvo = brains[i].transform;
                    lastalvoarea = alvo.GetComponent(sc_findmyarea).myarea;
                    break;
                }
                i++;
            }
        }
    }
}

@RPC function setskin(skin:int,camisa:int,bakpak:boolean)
{
    skinnum = skin;
    camisanum = camisa;
    carryitem = bakpak;
    if(!carryitem)
    {
        Destroy(backpackobject.gameObject);
    }
    var cont:int = 0;
    while(cont < peles.Length)
    {
        peles[cont].renderer.material = skincolor[skin];
        cont++;
    }
   
    cont = 0;
    while(cont < camisas.Length)
    {
        camisas[cont].renderer.material = camisacolor[camisa];
        cont++;
    }
}
function play_hit()
{
    if(Random.Range(0,100) > 50)
    {
        animador.animation.CrossFade("hit_right",0.2);
        networkView.RPC("fadeanim",RPCMode.Others,"hit_right",0.2,animadorcomp.animation["hit_right"].speed);
        cur_anim ="hit_right";
    }
    else
    {
        animador.animation.CrossFade("hit_left",0.2);
        networkView.RPC("fadeanim",RPCMode.Others,"hit_left",0.2,animadorcomp.animation["hit_left"].speed);
        cur_anim ="hit_left";
    }
}

function LateUpdate () {

   
    var cont:int = 0;
    var hit:RaycastHit;
    var lmask:LayerMask;
    var tmpbool:boolean = false;
    var tmpint:int = 0;
    var insted:Transform;
    var tmpfloat:float = 0;
    var tmpray:Ray;
   
    movimento = Vector3.zero;
    if(isalive)
    {
        if(alvo != null)
        {
            changealvo_cont += 1*Time.deltaTime;
            if(changealvo_cont > 1)
            {
                brains = GameObject.FindGameObjectsWithTag("Player");
                if(targetnum < brains.Length)
                {
                    if(brains[targetnum] != null)
                    {
                        alvorelativepos = transform.InverseTransformPoint(brains[targetnum].transform.position);
                        if(alvorelativepos.z > 0){tmpfloat = frontsight*brains[targetnum].GetComponent(sc_player).exposi;}
                        else{tmpfloat = backsight*brains[targetnum].GetComponent(sc_player).exposiback;}
                        tmpfloat += 0.005;
                        lmask = (1 << 8)|(1 << 9);
                        if(Physics.Raycast(eyepos.position,brains[targetnum].transform.position-transform.position,hit,tmpfloat,lmask))
                        {
                            if(hit.collider.gameObject == brains[targetnum])
                            {
                                //Vector3.SqrMagnitude(alvo.position-transform.position) > Vector3.SqrMagnitude(transform.position-brains[targetnum].transform.position)
                                if(Vector3.Distance(alvo.position,transform.position) > Vector3.Distance(brains[targetnum].transform.position,transform.position)*1.5)
                                {
                                    alvo = brains[targetnum].transform;
                                    lastalvoarea = alvo.GetComponent(sc_findmyarea).myarea;
                                }
                            }
                            if(hit.collider.gameObject.transform.parent != null)
                            {
                                if(hit.collider.gameObject.transform.parent.gameObject == brains[targetnum])
                                {
                                    alvo = brains[targetnum].transform;
                                    lastalvoarea = alvo.GetComponent(sc_findmyarea).myarea;
                                }
                            }
                        }
                    }
                    targetnum++;
                }
                else
                {
                    brains = GameObject.FindGameObjectsWithTag("Player");
                    targetnum = 0;
                }
                changealvo_cont = 0;
            }
        }
       
        movimento = Vector3.zero;
       
        ///////////////////////////////////////////////////////////////////////*checa o isgrounded*/////////////////////////
        lmask = 1 << 8;
        isgrounded = Physics.Raycast(transform.position,Vector3.down,hit,1.4,lmask);
        ///////////////////////////////////////////////////////////////////////
        ///////////////////////////    IA     /////////////////////////////////
        ///////////////////////////////////////////////////////////////////////
        if(state != -1)
        {
            if(alvo == null) /*findtheguy*/
            {
                if(targetnum < brains.Length)
                {
                    if(brains[targetnum] != null)
                    {
                        alvorelativepos = transform.InverseTransformPoint(brains[targetnum].transform.position);
                        if(alvorelativepos.z > 0){tmpfloat = frontsight*brains[targetnum].GetComponent(sc_player).exposi;}
                        else{tmpfloat = backsight*brains[targetnum].GetComponent(sc_player).exposiback;}
                        tmpfloat += 0.005;
                        lmask = (1 << 8)|(1 << 9);
                        if(Physics.Raycast(eyepos.position,brains[targetnum].transform.position-transform.position,hit,tmpfloat,lmask))
                        {
                            if(hit.collider.gameObject == brains[targetnum])
                            {
                                alvo = brains[targetnum].transform;
                                lastalvoarea = alvo.GetComponent(sc_findmyarea).myarea;
                            }
                            if(hit.collider.gameObject.transform.parent != null)
                            {
                                if(hit.collider.gameObject.transform.parent.gameObject == brains[targetnum])
                                {
                                    alvo = brains[targetnum].transform;
                                    lastalvoarea = alvo.GetComponent(sc_findmyarea).myarea;
                                }
                            }
                        }
                    }
                    targetnum++;
                }
                else
                {
                    brains = GameObject.FindGameObjectsWithTag("Player");
                    targetnum = 0;
                }
            }
        }
       
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////
        if(state == -1) /*nascendo*/
        {
            animationcont += 100*Time.deltaTime;
            if(animationcont > 350)
            {
                networkView.RPC("setzumbistate",RPCMode.OthersBuffered);
                rigidbody.constraints = RigidbodyConstraints.FreezeRotation;
                state = 0;
                vy = 0;
            }
        }
        if(state != -1){rigidbody.constraints = RigidbodyConstraints.FreezeRotation;}
       
        if(state == 4) /*indo pratras*/
        {
            movimento.z = stun_move[stun_now];
            animationcont += 100*Time.deltaTime;
           
            if(animationcont > stun_end[stun_now])
            {
                state = 1;
                vy = 0;
                animador.animation.CrossFade("idle",0.2);
                networkView.RPC("fadeanim",RPCMode.Others,"idle",0.2,animadorcomp.animation["idle"].speed);
                cur_anim = "idle";
            }
        }
       
        if(state == 0) /*caindo ou pulando*/
        {
            if(Physics.Raycast(transform.position,transform.forward,hit,1,lmask))
            {
                movimento.x = walkspeed*0.7;
                if(hit.collider.gameObject.GetComponent(sc_punchme))
                {
                    RTH = true;
                    state = 3;
                    animationcont = 0;
                    vy = 0;
                    play_hit();
                }
            }
            vy -= grav*Time.deltaTime;
            if(isgrounded && (vy < 0))
            {
                state = 1;
                vy = 0;
                animador.animation.CrossFade("idle",0.2);
                networkView.RPC("fadeanim",RPCMode.Others,"idle",0.2,animadorcomp.animation["idle"].speed);
                cur_anim = "idle";
            }
        }
       
        if(state == 1)   /*parado*/
        {
            if(!isacting)
            {
                actconter += 1000*actrate*Time.deltaTime;
                if(actconter > 1000)
                {
                    if(Random.Range(0,100) < actchance)
                    {
                        animador.animation.CrossFade("look",0.2);
                        networkView.RPC("fadeanim",RPCMode.Others,"look",0.2,animadorcomp.animation["look"].speed);
                        cur_anim = "look";
                        isacting = true;
                        acttime = 250;
                    }
                    actconter = 0;
                }
            }
            if(isacting)
            {
                actconter += 100*Time.deltaTime;
                if(actconter > acttime)
                {
                    animador.animation.CrossFade("idle",0.5);
                    networkView.RPC("fadeanim",RPCMode.Others,"idle",0.5,animadorcomp.animation["idle"].speed);
                    cur_anim = "idle";
                    actconter = 0;
                    isacting = false;
                }
            }
           
            if((alvo != null) && havepath)
            {
                state = 2;
                animador.animation.CrossFade("run",0.3);
                networkView.RPC("fadeanim",RPCMode.Others,"run",0.3,animadorcomp.animation["run"].speed);
                cur_anim = "run";
            }
        }
       
        if(state == 2) /*andando*/
        {
            movimento.z = walkspeed;
           
            lmask = (1 << 11) | (1 << 8);
            if(Physics.Raycast(transform.position,transform.forward,hit,1,lmask))
            {
                movimento.x = walkspeed*0.7;
                if(hit.collider.gameObject.GetComponent(sc_punchme))
                {
                    RTH = true;
                    state = 3;
                    animationcont = 0;
                    vy = 0;
                    play_hit();
                }
            }
           
            if(alvo == null)
            {
                state = 1;
                vy = 0;
                animador.animation.CrossFade("idle",0.2);
                networkView.RPC("fadeanim",RPCMode.Others,"idle",0.2,animadorcomp.animation["idle"].speed);
                cur_anim = "idle";
                alvo = null;
                havepath = false;
            }
            if(alvo != null)
            {
                if(   Vector3.SqrMagnitude(transform.position-alvo.position) < 2.89 )
                {
                    RTH = true;
                    state = 3;
                    animationcont = 0;
                    vy = 0;
                    play_hit();
                }
            }
        }
        if(state == 3)   /*atacando*/
        {
            animationcont += 100*Time.deltaTime;
            if(alvo != null)
            {
                if(Vector3.SqrMagnitude(transform.position-alvo.position) > 1.21)
                {
                    movimento.z = walkspeed*0.5;
                }
            }
            if(RTH)
            {
                if(animationcont > 30)
                {
                    lmask = (1 << 9) | (1 << 8);
                    if(Physics.Raycast(armpos.position,transform.TransformDirection(Vector3.forward),hit,atackreach,lmask))
                    {
                        if(hit.collider.gameObject.GetComponent(sc_dmgtaker) != null)
                        {   
                            tmpfloat = Random.Range(dmgmin,dmgmax);
                           
                            if(hit.collider.gameObject.GetComponent(sc_dmgtaker).owner.GetComponent(sc_punchme) != null)
                            {
                                soundsources[0].clip = sounds[1];
                                soundsources[0].pitch = Random.Range(0.9,1.1);
                                soundsources[0].Play();
                                networkView.RPC("playzombiesound",RPCMode.Others,0,1);
                            }
                            if(hit.collider.gameObject.GetComponent(sc_dmgtaker).owner.GetComponent(sc_player) != null)
                            {
                                hit.collider.gameObject.GetComponent(sc_dmgtaker).owner.networkView.RPC("spillblood",RPCMode.All);
                                soundsources[0].clip = sounds[0];
                                soundsources[0].pitch = Random.Range(0.9,1.1);
                                soundsources[0].Play();
                               
                                hit.collider.gameObject.GetComponent(sc_dmgtaker).owner.GetComponent(sc_player).hurtbyzombie(tmpfloat);
                                hit.collider.gameObject.GetComponent(sc_dmgtaker).owner.networkView.RPC("hurtbyzombie",RPCMode.Others,tmpfloat);
                               
                                networkView.RPC("playzombiesound",RPCMode.Others,0,0);
                               
                           
                                tmpint = Random.Range(0,100);
                                if(tmpint < 5)
                                {
                                    hit.collider.gameObject.GetComponent(sc_dmgtaker).owner.networkView.RPC("addbleed",RPCMode.All);
                                }
                            }
                            else
                            {
                                hit.collider.gameObject.GetComponent(sc_dmgtaker).owner.GetComponent(sc_life).quantia -= tmpfloat;
                                hit.collider.gameObject.GetComponent(sc_dmgtaker).owner.networkView.RPC("hurtme",RPCMode.Others,tmpfloat);
                            }
                        }
                        if(hit.collider.gameObject.GetComponent(sc_particula) != null)
                        {
                            Network.Instantiate(hit.collider.gameObject.GetComponent(sc_particula).prefab,hit.point,Quaternion.LookRotation(hit.normal),3);
                        }
                    }
                    RTH = false;
                }
            }
            if(animationcont > 70)
            {
                state = 2;
                animador.animation.Play("run");
                networkView.RPC("playanim",RPCMode.Others,"run",animadorcomp.animation["run"].speed);
                cur_anim = "run";
            }
            if(alvo == null)
            {
                state = 1;
                vy = 0;
                animador.animation.CrossFade("idle",0.2);
                networkView.RPC("fadeanim",RPCMode.Others,"idle",0.2,animadorcomp.animation["idle"].speed);
                cur_anim = "idle";
                havepath = false;
            }
        }
        if((state == 1)||(state == 2)||(state == 3)) /*cair*/
        {
            if(!isgrounded)
            {
                state = 0;
                animador.animation.CrossFade("fall",0.3);
                networkView.RPC("fadeanim",RPCMode.Others,"fall",0.3,animadorcomp.animation["fall"].speed);
                cur_anim = "fall";
                vy = 0;
            }
        }   
        ///////////////////////////////////////////arruma a movimentassao/////////////////////////////////////////////////
        movimento.y = vy;
        if((movimento.x != 0)&&(movimento.z != 0))
        {
            movimento.z *= 0.707;
            movimento.x *= 0.707;
        }
        movimento = transform.TransformDirection(movimento);
        rigidbody.velocity = movimento;
        if(headlife <= 0)
        {
            GetComponent(sc_life).quantia = 0;
        }
        if(GetComponent(sc_life).quantia <= 0)
        {
            GetComponent(sc_life).quantia = 0;
            isalive = false;
           
            if(killerid >= 0)
            {
                matchcontrol.GetComponent(sc_matchcontroller).everybodyspawners[killerid].networkView.RPC("addkill",RPCMode.All);
                tmpint = 15*Mathf.Pow(1.11,matchcontrol.GetComponent(sc_matchcontroller).wave);
                matchcontrol.GetComponent(sc_matchcontroller).everybodyspawners[killerid].networkView.RPC("addmoney",RPCMode.All,tmpint);
            }
            animador.animation.Stop();
            animador.animation.enabled = false;
           
            insted = Instantiate(ragdoll,transform.position,transform.rotation);
            cont = 0;
            while(cont < parts.Length)
            {
                insted.GetComponent(sc_ragdoll).parts[cont].position = parts[cont].position;
                insted.GetComponent(sc_ragdoll).parts[cont].eulerAngles = parts[cont].eulerAngles;
                cont++;
            }
            if(headlife <= 0)
            {
                insted.GetComponent(sc_ragdoll).bloodfont.emissionRate = 500;
                Instantiate(headblowpart,insted.GetComponent(sc_ragdoll).headpos.position,insted.GetComponent(sc_ragdoll).headpos.rotation);
                cont = 0;
                while(cont < insted.GetComponent(sc_ragdoll).headmesh.Length)
                {
                    insted.GetComponent(sc_ragdoll).headmesh[cont].GetComponent(Renderer).enabled = false;
                    cont++;
                }
               
            }
           
            if(gamecontrol != null)
            {
                if(gamecontrol.GetComponent(sc_gamecontrol).iamserver)
                {
                    gamecontrol.GetComponent(sc_gamecontrol).matchdata.GetComponent(sc_matchdata).addzombiedeath();
                }
            }
            if(headlife > 0)
            {insted.rigidbody.AddForce(lastforce);}
            insted.GetComponent(sc_ragdoll).skin = skinnum;
            insted.GetComponent(sc_ragdoll).camisanum = camisanum;
           
            if(carryitem)
            {
                tmpint = Random.Range(0,gamecontrol.GetComponent(sc_gamecontrol).itemtosell.Length);
                tmpint = gamecontrol.GetComponent(sc_gamecontrol).itemtosell[tmpint];
                insted = Network.Instantiate(matchcontrol.GetComponent(sc_matchcontroller).grounditens[tmpint],transform.position,transform.rotation,5);
               
                insted.GetComponent(sc_updateposition).enabled = false;
                insted.GetComponent(sc_sendpositionupdate).enabled = true;
                if(insted.GetComponent(sc_gunscript) != null)
                {
                    insted.GetComponent(sc_canbetaken).quant= insted.GetComponent(sc_gunscript).maxammo;
                }
                insted.GetComponent(sc_canbetaken).decay = true;
                insted.GetComponent(sc_canbetaken).decaytime = 30000;
            }
            if(headlife <= 0)
            {
                networkView.RPC("killme",RPCMode.OthersBuffered,Vector3.zero,true);
            }
            else
            {networkView.RPC("killme",RPCMode.OthersBuffered,lastforce,false);}
            Destroy(gameObject);
        }
       
        if(needtopush)
        {
            if((state != 0) && (state != -1))
            {
                state = 4;
                stun_now = needtostun;
               
                animationcont = 0;
                animador.animation.Rewind(stun_anim[stun_now]);
                animador.animation.CrossFade(stun_anim[stun_now],0.2);
                networkView.RPC("fadeanim",RPCMode.Others,stun_anim[stun_now],0.2,animadorcomp.animation[stun_anim[stun_now]].speed);
                cur_anim = stun_anim[stun_now];;
            }
            needtopush = false;
        }
        lastforce *= 0.5;
    }
    if(isalive)
    {
        if(senddata)
        {
            dataconter += 1000*sendrate*Time.deltaTime;
            if(dataconter > 1000)
            {
                tmpint = transform.eulerAngles.y;
                if((Network.peerType != NetworkPeerType.Disconnected) && (Network.peerType != NetworkPeerType.Connecting))
                {
                    networkView.RPC("setzumbistuff",RPCMode.Others,tmpint,transform.position);
                    dataconter = 0;
                }
            }
        }
    }
   
   
}

@RPC
function playzombiesound(source:int,id:int)
{
    soundsources[source].clip = sounds[id];
    soundsources[source].pitch = Random.Range(0.9,1.1);
    soundsources[source].Play();
}

@RPC
function setkillerid(id:int)
{
    killerid = id;
}

@RPC
function forcar(dir:Vector3)
{
    lastforce += dir;
}

@RPC
function setzumbistate()
{
    state = 0;
}

@RPC
function fadeanim(anim_name:String,time:float,animspeed:float)
{
    animador.GetComponent(Animation).animation[anim_name].speed = animspeed;
    animador.GetComponent(Animation).animation.CrossFade(anim_name,time);
}

@RPC
function playanim(anim_name:String,animspeed:float)
{
    animador.GetComponent(Animation).animation.Rewind(anim_name);
    animador.GetComponent(Animation).animation[anim_name].speed = animspeed;
    animador.GetComponent(Animation).animation.Play(anim_name);
}

@RPC
function killme(deathdir:Vector3,blowhead:boolean)
{   
    var insted:Transform;
    insted = Instantiate(ragdoll,transform.position,transform.rotation);
   
    if(gamecontrol != null)
    {
        if(gamecontrol.GetComponent(sc_gamecontrol).iamserver)
        {
            gamecontrol.GetComponent(sc_gamecontrol).matchdata.GetComponent(sc_matchdata).addzombiedeath();
        }
    }
    insted.GetComponent(sc_ragdoll).skin = skinnum;
    insted.GetComponent(sc_ragdoll).camisanum = camisanum;
    var cont:int = 0;
    while(cont < parts.Length)
    {
        insted.GetComponent(sc_ragdoll).parts[cont].position = parts[cont].position;
        insted.GetComponent(sc_ragdoll).parts[cont].eulerAngles = parts[cont].eulerAngles;
        cont++;
    }
    if(blowhead)
    {
        Instantiate(headblowpart,insted.GetComponent(sc_ragdoll).headpos.position,insted.GetComponent(sc_ragdoll).headpos.rotation);
        cont = 0;
        while(cont < insted.GetComponent(sc_ragdoll).headmesh.Length)
        {
            insted.GetComponent(sc_ragdoll).headmesh[cont].GetComponent(Renderer).enabled = false;
            cont++;
        }
        insted.GetComponent(sc_ragdoll).bloodfont.emissionRate = 500;
    }
    insted.rigidbody.AddForce(deathdir);
    Destroy(gameObject);
}

Wow, that is a lot of code, with very little commenting to indicate what’s happening where… That aside, can you tell us what the AI entities are doing or not doing, specifically, as well as what you expect them to do?

1 Like

It is a good Project & !! It is a free commercial project ? or at least a model ??