.float last_vehiclecheck;
void PlayerPreThink (entity this)
{
+
STAT(GUNALIGN, this) = CS(this).cvar_cl_gunalign; // TODO
STAT(MOVEVARS_CL_TRACK_CANJUMP, this) = CS(this).cvar_cl_movement_track_canjump;
if(this.(weaponentity).m_weapon == WEP_Null)
this.(weaponentity).clip_load = this.(weaponentity).clip_size = 0;
}
+
+ //Bullets timer
+ if (this.shotgun_timer) {
+
+ if (this.shotgun_timer_time < 2) { //2 frames for reloading weapon
+ this.shotgun_timer_time++;
+
+ } else {
+
+ if (this.shotgun_inc_pointblank) {
+ entity attaker = this.shotgun_bullets_received_from;
+ entity achv = attaker.achievements;
+ achv.inc_achievement(achv, "pointblank");
+ achv.announce(achv, attaker, "Point Blank!", "pointblank");
+ }
+
+ this.shotgun_timer = 0;
+ this.shotgun_timer_time = 0;
+ this.shotgun_bullets_received = 0;
+ this.shotgun_inc_pointblank = 0;
+ }
+ }
}
void DrownPlayer(entity this)
ATTRIB(Player, prevstrengthsoundattempt, float, this.prevstrengthsoundattempt);
ATTRIB(Player, buff_shield, float, this.buff_shield);
+ ATTRIB(Player, shotgun_timer, bool, this.shotgun_timer);
+ ATTRIB(Player, shotgun_timer_time, int, this.shotgun_timer_time);
+ ATTRIB(Player, shotgun_bullets_received, int, this.shotgun_bullets_received);
+ ATTRIB(Player, shotgun_bullets_received_from, entity, this.shotgun_bullets_received_from);
+ ATTRIB(Player, shotgun_inc_pointblank, bool, this.shotgun_inc_pointblank);
+
INIT(Player) {
this.classname = STR_PLAYER;
IL_PUSH(g_players, this);
//Weapons achievements
- entity attacker_achv = attacker_save.achievements;
if (DEATH_ISWEAPON(deathtype, WEP_SHOTGUN)) {
float distance = vlen(targ.origin-attacker.origin);
+
+ if (targ.shotgun_timer) {
+ targ.shotgun_bullets_received += 1;
+ } else {
+ targ.shotgun_bullets_received_from = attacker_save;
+ targ.shotgun_bullets_received = 1;
+ targ.shotgun_timer = 1;
+ }
//Add condition to look at, not only for distance
- if (distance < 60) {
- attacker_achv.inc_achievement(attacker_achv, "pointblank");
- attacker_achv.announce(attacker_achv, attacker_save, "Point Blank!", "pointblank");
+ if (distance < 65 && targ.shotgun_bullets_received) {
+ targ.shotgun_inc_pointblank = 1;
}
}
}