Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- wallRunning2()
- {
- self endon("disconnect");
- self endon("death");
- while(true)
- {
- hasHitWall = self getAheadEntity();
- if(hasHitWall && !self isOnGround())
- {
- leftTrace = vectorScale(anglesToRight(self.angles), -1);
- self iPrintln("Left: " + leftTrace);
- rightTrace = anglesToRight(self.angles);
- self iPrintln("Right: " + rightTrace);
- forwardTrace = anglesToForward(self.angles);
- self iPrintln("Forward: " + forwardTrace);
- dip = 0;
- entity = spawn("script_model", self.origin);
- while(true)
- {
- if(distance(self.origin + (0, 0, 20), leftTrace) < 35 || distance(self.origin + (0, 0, 20), rightTrace) < 35 && !self isOnGround())
- {
- dip += 0.3;
- if(distance(self.origin + (0, 0, 20), forwardTrace) < 40)
- {
- self iPrintln("Break forward");
- break;
- }
- entity moveTo(entity.origin + (anglesToForward(self.angles) * 20) - (0, 0, dip), 0.07);
- wait 0.05;
- }
- else
- {
- self iPrintln("Break");
- break;
- }
- wait 0.05;
- }
- if(self isLinkedTo(model))
- {
- self unlink();
- }
- model delete();
- }
- wait 0.2;
- }
- }
- wallRunning()
- {
- level endon("game_ended");
- self endon("disconnect");
- self endon("death");
- wallRunning = false;
- dip = 0.0;
- while(true)
- {
- // Check if we hit the wall and are in the air
- while(self getAheadEntity() && !self isOnGround())
- {
- if(!wallRunning)
- {
- // Give some time to hit the wall
- wait 0.1;
- }
- wallRunning = true;
- self iPrintln("Origin: " + self.origin);
- model = spawn("script_model", self.origin);
- model setModel("tag_origin");
- travelDistance = 150;
- movementVector = vectorScale(anglesToForward(self getPlayerAngles()), travelDistance);
- movementVector -= (0, 0, dip);
- self iPrintln("Vector: " + movementVector);
- targetOrigin = self.origin + movementVector;
- self playerLinkTo(model);
- travelTime = travelDistance / 300; // Keep the travel time constant
- self iPrintln("Travelling Time: " + travelTime);
- model moveTo(targetOrigin, travelTime);
- wait travelTime;
- if(self isLinkedTo(model))
- {
- self unlink();
- }
- model delete();
- dip += travelDistance / 100; // Dip down a bit while wall running
- }
- wallRunning = false;
- dip = 0.0;
- wait 0.1;
- }
- }
- getAheadEntity()
- {
- level.physicsTraceMaskClip = 8;
- start = self getEyeApprox();
- velocity = self getVelocity();
- end = start + (velocity * 0.25);
- trace = physicsTrace(start, end, vectorScale((0, 1, 0), 15), vectorScale((0, 1, 0), 15), self, level.physicsTraceMaskClip);
- entity = trace["entity"];
- if(isDefined(entity))
- {
- self iPrintln("Entity defined");
- self iPrintln("Entity defined: " + entity.origin);
- return false;
- }
- else
- {
- if (trace["fraction"] < 0.99 || trace["surfacetype"] != "none")
- {
- if(isDefined(level.origin))
- {
- self iPrintln("Level origin defined: " + level.origin);
- }
- else
- {
- self iPrintln("Level defined");
- self iPrintln("Level defined: " + level);
- self iPrintln("Level origin: " + level.origin);
- }
- return true;
- }
- }
- self iPrintln("Undefined");
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement