// by deamonicky // uses code from http://pastebin.com/RLyY557h // // idea is to create enty similar to quake at position where one wants to pull up // then drop it to floor // if it is successful then player can drop here too void() PlayerClimb = { local vector ClimbedOrigin; local vector SavedOrigin; /* makevectors(self.angles); v_forward = normalize(v_forward); v_up = normalize(v_up); bprint(vtos(v_up)); bprint(" "); bprint(vtos(v_forward)); */ //ClimbedOrigin = self.origin + v_forward * (PLAYER_RADIUS/2) + v_up * (PLAYER_LEGS + GRAB_HAND_UP); makevectors(self.angles); ClimbedOrigin = self.origin + v_forward * (PLAYER_RADIUS*0.5) + v_up * (PLAYER_LEGS + GRAB_HAND_UP); bprint(vtos(ClimbedOrigin)); particle(ClimbedOrigin, '0 0 0',128, 5); /* not working !!! ClimbedOrigin_y += PLAYER_RADIUS/2; ClimbedOrigin_z += GRAB_UP; ClimbedOrigin_z += PLAYER_LEGS; ClimbedOrigin_z += 2; // error */ // particle(ClimbedOrigin, '0 0 0',128, 5); SavedOrigin = self.origin; /* FIXME: add some error deltas */ setorigin(self, ClimbedOrigin); if (!droptofloor()) // can drop here ? { setorigin(self, SavedOrigin); bprint("hups!\n"); ClimbedOrigin_z += GRAB_EYE_UP; setorigin(self, ClimbedOrigin); if (!droptofloor()) { setorigin(self, SavedOrigin); bprint("hups!\n"); // could not do that } } else { return; } };