More efficient way to create clones? in Developer Help
|
|
Right now, whenever I create 3 clones, the games CPU bumps up from 0 or 1 to about 20. Here is the verb.. I'm trying to find out how to make it more efficient.
Multiple_Shadow_Clone() set hidden = 1 if(!src.isclone&&src.CanUse()||src.Rasengan) if(src.Clones<6) if(src.Chakra>=src.MC*0.75-src.Control/2) for(var/Jutsus/MultipleShadowCloneIcon/I in usr.Jutsus) if(!(usr.Cooldown("[I.name]",I.Cooldown*10 , I))) src.Seals(1) src.Chakra-=src.MC*0.75-src.Control/2 src<<"Multple shadow clone jutsu!" src.Seals="" src.icon_state="Tiger" src.PlaySound('Clones.wav',0,1) sleep(3) src.icon_state="" var/mob/NPC/Clone2/D=new(src.loc) var/mob/NPC/Clone2/E=new(src.loc) var/mob/NPC/Clone2/F=new(src.loc) D.owner=src E.owner=src F.owner=src D.Move(locate(src.x+1,src.y,src.z)) E.Move(locate(src.x-1,src.y,src.z)) F.Move(locate(src.x,src.y+1,src.z)) new/obj/Smoke(src.loc) for(var/mob/NPC/A in oview(src)) if(A.owner==src) if(src.Rasengan) A.Rasengan=1 A.Gathered=src.Gathered if(src.SageMode) A.SageMode=1 A.Following=0 A.icon=src.icon A.overlays+=src.overlays A.isclone=1 A.Stamina=1 A.Chakra=src.MC A.MC=src.MC A.Strength=src.MSTR A.owner=src A.Frozen=0 A.Ally=src.Ally A.Body=src.Body A.Base=src.Base A.Hair=src.Hair A.Weapon=src.Weapon if(src.Byakugan) src.Byakugan=1 src.Clones+=3 return else src<<"You haven't enough chakra to perform this jutsu." src.Seals="" src.icon_state="" return else src<<"You can only have a maximum of 6 shadow clones out." return
|
Also here's the wander just in case the problem lies in that.
Wander() while(src) if(src.Wander) if(!src.Following&&!src.Frozen&&!src.KO) for(var/mob/M in oview(src)) if(!(M==src.owner||M.owner==src.owner||M==src.Ally||M.KO)||src.owner==null&&!M.KO) if(src.Aggressive&&!src.Following) step_towards(src,M) src.Target=M if(M in get_step(src,src.dir)) src.Attack() else ..() var/M if(!(M in get_step(src,src.dir))) step_rand(src) sleep(5) walk(src,0) else var/mob/A = src.owner for(var/mob/B in view(src)) if(B==A) walk_towards(src,B) sleep(5) else return
|
|