}
MUTATOR_HOOKFUNCTION(ok, PlayerDies)
-{SELFPARAM();
+{
+ SELFPARAM();
entity targ = ((frag_attacker) ? frag_attacker : frag_target);
- if(IS_MONSTER(self))
+ if(IS_MONSTER(this))
{
remove(other); // remove default item
- other = world;
+ other = NULL;
}
- setself(new(droppedweapon)); // hax
- self.ok_item = true;
- self.noalign = true;
- self.pickup_anyway = true;
- spawnfunc_item_armor_small(this);
- self.movetype = MOVETYPE_TOSS;
- self.gravity = 1;
- self.reset = SUB_Remove;
- setorigin(self, frag_target.origin + '0 0 32');
- self.velocity = '0 0 200' + normalize(targ.origin - self.origin) * 500;
- SUB_SetFade(self, time + 5, 1);
- setself(this);
-
- self.ok_lastwep = self.switchweapon;
+ entity e = new(droppedweapon); // hax
+ e.ok_item = true;
+ e.noalign = true;
+ e.pickup_anyway = true;
+ e.spawnfunc_checked = true;
+ spawnfunc_item_armor_small(e);
+ e.movetype = MOVETYPE_TOSS;
+ e.gravity = 1;
+ e.reset = SUB_Remove;
+ setorigin(e, frag_target.origin + '0 0 32');
+ e.velocity = '0 0 200' + normalize(targ.origin - self.origin) * 500;
+ SUB_SetFade(e, time + 5, 1);
+
+ this.ok_lastwep = PS(this).m_switchweapon.m_id;
return false;
}
if(self.ok_lastwep)
{
- self.switchweapon = self.ok_lastwep;
+ PS(self).m_switchweapon = Weapons_from(self.ok_lastwep);
self.ok_lastwep = 0;
}
if(self.ok_use_ammocharge)
if(!ok_CheckWeaponCharge(self, self.weapon))
{
- if(autocvar_g_overkill_ammo_charge_notice && time > self.ok_notice_time && self.BUTTON_ATCK && IS_REAL_CLIENT(self) && self.weapon == self.switchweapon)
+ if(autocvar_g_overkill_ammo_charge_notice && time > self.ok_notice_time && self.BUTTON_ATCK && IS_REAL_CLIENT(self) && self.weapon == PS(self).m_switchweapon.m_id)
{
//Send_Notification(NOTIF_ONE, self, MSG_CENTER, CENTER_OVERKILL_CHARGE);
self.ok_notice_time = time + 2;
wep.team = self.team;
wep.respawntime = autocvar_g_overkill_superguns_respawn_time;
wep.pickup_anyway = true;
+ wep.spawnfunc_checked = true;
wep.think = self_spawnfunc_weapon_hmg;
wep.nextthink = time + 0.1;
return true;
wep.team = self.team;
wep.respawntime = autocvar_g_overkill_superguns_respawn_time;
wep.pickup_anyway = true;
+ wep.spawnfunc_checked = true;
wep.think = self_spawnfunc_weapon_rpc;
wep.nextthink = time + 0.1;
return true;