Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //add to init
- /*
- precacheMpAnim("pb_stand_alert");
- precacheMpAnim("pb_walk_forward_akimbo");
- precacheMpAnim("pb_run_fast");
- precacheMpAnim("pb_sprint_akimbo");
- */
- toggle_stalking_clone()
- {
- if(!self.Clone_Follow)
- {
- self.Clone_Follow = true;
- self thread createTheStalkingClone();
- }
- else
- {
- self.Clone_Follow = false;
- }
- }
- createTheStalkingClone()//Not good but its not ai zombies so i dont care
- {
- player_body_model = self.model;
- player_head_model = self getAttachModelName(0);
- target = self;
- //Body
- clone = spawn("script_model",self.origin);
- clone setModel(player_body_model);
- //Head
- clone.head = spawn("script_model",clone getTagOrigin("j_spine4"));
- clone.head setModel(player_head_model);
- clone.head.angles = (270,0,270);
- clone.head linkto(clone,"j_spine4");
- clone.currentsurface = "default";
- clone.targetname = "clone";
- clone.classname = "clone";
- clone.currentAnim = "";//idle,walk,run,sprint
- clone.speed = 0;
- while(self.Clone_Follow)
- {
- //Anim + Speed
- distanceToTarget = distance(clone.origin,target.origin);
- if(distanceToTarget >= 250 && distanceToTarget < 350)
- {
- if(clone.currentAnim!="walk")
- {
- clone.currentAnim = "walk";
- clone.Speed = 5.0;
- clone scriptModelPlayAnim("pb_walk_forward_akimbo");
- }
- }
- else if(distanceToTarget >= 350 && distanceToTarget < 500)
- {
- if(clone.currentAnim!="run")
- {
- clone.currentAnim = "run";
- clone.Speed = 10.0;
- clone scriptModelPlayAnim("pb_run_fast");
- }
- }
- else if(distanceToTarget >= 500)
- {
- if(clone.currentAnim!="sprint")
- {
- clone.currentAnim = "sprint";
- clone.Speed = 15.0;
- clone scriptModelPlayAnim("pb_sprint_akimbo");
- }
- }
- else
- {
- if(clone.currentAnim!="idle")
- {
- clone.currentAnim = "idle";
- clone.Speed = 0;
- clone notify("clone_move_done");
- clone scriptModelPlayAnim("pb_stand_alert");
- }
- }
- //Move
- clone clone_move(target.origin);
- wait 0.05;
- }
- clone delete();
- clone.head delete();
- }
- clone_move(targetPos)
- {
- self notify("clone_move_done");
- self endon("clone_move_done");
- self clone_clampToGround();
- pos = self.origin;
- target_pos = targetPos;
- vec3_normal = VectorNormalize(target_pos - self.origin);
- vec3_angles = VectorToAngles(target_pos - self getTagOrigin("j_head"));
- moveToLoc = pos + (vec3_normal*self.Speed);
- rotate_angle = VectorToAngles(target_pos - self getTagOrigin("j_head"));
- self.origin = moveToLoc;
- self RotateTo((0,rotate_angle[1],0),0.1);
- self notify("clone_move_done");
- }
- clone_clampToGround()
- {
- trace = bulletTrace(self.origin+(0,0,50),self.origin+(0,0,-40),false,self);
- if(isdefined(trace["entity"])&&isDefined(trace["entity"].targetname)&&trace["entity"].targetname=="clone")
- {
- trace = bulletTrace(self.origin+(0,0,50),self.origin+(0,0,-40),false,trace["entity"]);
- }
- self.currentsurface = trace["surfacetype"];
- if(self.currentsurface=="none")
- {
- self.currentsurface = "default";
- }
- if((trace["position"][2]-(self.origin[2]-40))>0&&((self.origin[2]+50)-trace["position"][2])>0)
- {
- self.origin = trace["position"];
- return true;
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement