]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add a cvar to only attack enemies infront of the monster
authorMario <mario.mario@y7mail.com>
Sat, 27 Apr 2013 11:28:48 +0000 (21:28 +1000)
committerMario <mario.mario@y7mail.com>
Sat, 27 Apr 2013 11:28:48 +0000 (21:28 +1000)
monsters.cfg
qcsrc/server/autocvars.qh
qcsrc/server/monsters/lib/monsters.qc

index d91d0293f615fee3d719a3df5b103fd6b9b41a02..7940c68393065cb5aaa5b141b30ec4cb5cca6074 100644 (file)
@@ -14,6 +14,7 @@ set g_monster_spawnshieldtime 2 "Monsters will not take damage for this amount o
 set g_monsters_typefrag 1
 set g_monsters_healthbars 1 "Show health bars above monsters"
 set g_monsters_target_range 2000
+set g_monsters_target_infront 0 "Only find targets infront of the monster"
 set g_monsters_respawn 1 "Enable monster respawning"
 set g_monsters_respawn_delay 20 "Monsters respawn in this amount of seconds"
 set g_monsters_score_kill 1 "Get this many points for killing a naturally spawned monster"
index d7c8d1144e030d2d2acb62e88c61bcb393ec0978..5f11691172dcdda04fe9386462f5aec880987327 100644 (file)
@@ -1252,6 +1252,7 @@ float autocvar_g_monsters_think_delay;
 float autocvar_g_monsters_max;
 float autocvar_g_monsters_max_perplayer;
 float autocvar_g_monsters_target_range;
+float autocvar_g_monsters_target_infront;
 float autocvar_g_monsters_typefrag;
 float autocvar_g_monsters_owners;
 float autocvar_g_monsters_miniboss_chance;
index 860fe39f205f08db2f9ce9003e987be151208f58..af9b38fd0941d933d02db8cd4e618f33b801998f 100644 (file)
@@ -129,6 +129,18 @@ float monster_isvalidtarget (entity targ, entity ent)
        
        if not(IsDifferentTeam(targ, ent))
                return FALSE; // enemy is on our team
+               
+       if(autocvar_g_monsters_target_infront)
+       if(ent.enemy != targ)
+       {
+               float dot;
+
+               makevectors (ent.angles);
+               dot = normalize (targ.origin - ent.origin) * v_forward;
+               
+               if(dot <= 0.3)
+                       return FALSE;
+       }
        
        return TRUE;
 }