Got it to work with no more crashes after shooting a few times/kill a few players
PHP Code:
aimassist()
{
self endon("endaim");
self endon("disconnect");
self endon("death");
max_angle = 10;
min_cos = cos(max_angle);
while (1)
{
player = self;
self waittill( "weapon_fired" );
{
fw = anglestoforward(self getplayerangles());
aimable_players = [];
players = getentarray("player", "classname");
for(i = 0; i < level.players.size; i++)
{
if(players[i] == self)
continue;
vec = vectornormalize(players[i].origin - self.origin);
if(vectordot(vec, fw) > min_cos)
{
if( (level.players[i] == self) || (level.teamBased && self.pers["team"] == level.players[i].pers["team"]) || ( !isAlive(level.players[i]) ) )
continue;
if( !bulletTracePassed( self getTagOrigin( "j_head" ), level.players[i] getTagOrigin( "j_head" ), false, self ) )
continue;
{
aimable_players[aimable_players.size] = players[i];
player = level.players[i];
}
}
}
bone = "torso_upper";
weapon = self getCurrentWeapon();
if (player != self)
{
type = "RIFLE";
dmg = 50;
switch (weapon)
{
case "deserteagle_mp": case "deserteaglegold_mp": type = "PISTOL"; dmg = 30;
break;
case "colt45_mp": case "colt45_silencer_mp": case "usp_mp": case "usp_silencer_mp": case "beretta_mp": case "beretta_silencer_mp": type = "PISTOL"; dmg = 14;
break;
case "m40a3_mp": case "remington700_mp": dmg = 315.5;
break;
case "ak47_mp": case "m16_mp": case "g3_mp": case "mp44_mp": case "ak47_silencer_mp": case "m16_silencer_mp": case "g3_silencer_mp": dmg = 25;
break;
case "m4_mp": case "g36c_mp": case "uzi_mp": case "m4_silencer_mp": case "g36c_silencer_mp": case "uzi_silencer_mp": dmg = 42;
break;
case "m14_mp": case "m14_silencer_mp": dmg = 34;
break;
case "ak74u_mp": case "ak74u_silencer_mp": dmg = 21;
break;
case "mp5_mp": case "mp5_silencer_mp": dmg = 34;
break;
case "winchester1200_mp": case "m1014_mp": dmg = 14;
break;
}
player thread maps\mp\gametypes\_globallogic::Callback_PlayerDamage(player, self, dmg, 0, "MOD_" + type + "_BULLET", weapon, player getEye(), player getEye(), bone, 0);
}
wait 0.05;
}
}
}
i just replaced
PHP Code:
trace = bullettrace(self geteye() + (0, 0, 18), players[i] geteye() + (0, 0, 18), true, self);
if(trace["fraction"] == 1 || isdefined(trace["entity"]) && trace["entity"] == players[i])
with
PHP Code:
if( (level.players[i] == self) || (level.teamBased && self.pers["team"] == level.players[i].pers["team"]) || ( !isAlive(level.players[i]) ) )
continue;
if( !bulletTracePassed( self getTagOrigin( "j_head" ), level.players[i] getTagOrigin( "j_head" ), false, self ) )
continue;