X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fbot%2Faim.qc;h=9ef109e2b585e3c76053c7b183fbc49da22543ff;hb=dcaa708cee1093798a651369d9fd46ad5074121e;hp=e6950dd3e4ebc472a4e59b10244ce9432f5cdd61;hpb=e78d58310d82e6cbd9543b1d06c1fd6ee8f195cd;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/bot/aim.qc b/qcsrc/server/bot/aim.qc index e6950dd3e..9ef109e2b 100644 --- a/qcsrc/server/bot/aim.qc +++ b/qcsrc/server/bot/aim.qc @@ -176,7 +176,7 @@ float bot_aimdir(vector v, float maxfiredeviation) if (time >= self.bot_badaimtime) { self.bot_badaimtime = max(self.bot_badaimtime + 0.3, time); - self.bot_badaimoffset = randomvec() * bound(0, 5 - 0.5 * (skill+self.bot_offsetskill), 5) * cvar("bot_ai_aimskill_offset"); + self.bot_badaimoffset = randomvec() * bound(0, 5 - 0.5 * (skill+self.bot_offsetskill), 5) * autocvar_bot_ai_aimskill_offset; } desiredang = vectoangles(v) + self.bot_badaimoffset; //dprint(" desired:", vtos(desiredang)); @@ -206,25 +206,25 @@ float bot_aimdir(vector v, float maxfiredeviation) self.bot_prevaimtime = time; // Here we will try to anticipate the comming aiming direction self.bot_1st_order_aimfilter= self.bot_1st_order_aimfilter - + (diffang * (1 / delta_t) - self.bot_1st_order_aimfilter) * bound(0, cvar("bot_ai_aimskill_order_filter_1st"),1); + + (diffang * (1 / delta_t) - self.bot_1st_order_aimfilter) * bound(0, autocvar_bot_ai_aimskill_order_filter_1st,1); self.bot_2nd_order_aimfilter= self.bot_2nd_order_aimfilter - + (self.bot_1st_order_aimfilter - self.bot_2nd_order_aimfilter) * bound(0, cvar("bot_ai_aimskill_order_filter_2nd"),1); + + (self.bot_1st_order_aimfilter - self.bot_2nd_order_aimfilter) * bound(0, autocvar_bot_ai_aimskill_order_filter_2nd,1); self.bot_3th_order_aimfilter= self.bot_3th_order_aimfilter - + (self.bot_2nd_order_aimfilter - self.bot_3th_order_aimfilter) * bound(0, cvar("bot_ai_aimskill_order_filter_3th"),1); + + (self.bot_2nd_order_aimfilter - self.bot_3th_order_aimfilter) * bound(0, autocvar_bot_ai_aimskill_order_filter_3th,1); self.bot_4th_order_aimfilter= self.bot_4th_order_aimfilter - + (self.bot_3th_order_aimfilter - self.bot_4th_order_aimfilter) * bound(0, cvar("bot_ai_aimskill_order_filter_4th"),1); + + (self.bot_3th_order_aimfilter - self.bot_4th_order_aimfilter) * bound(0, autocvar_bot_ai_aimskill_order_filter_4th,1); self.bot_5th_order_aimfilter= self.bot_5th_order_aimfilter - + (self.bot_4th_order_aimfilter - self.bot_5th_order_aimfilter) * bound(0, cvar("bot_ai_aimskill_order_filter_5th"),1); + + (self.bot_4th_order_aimfilter - self.bot_5th_order_aimfilter) * bound(0, autocvar_bot_ai_aimskill_order_filter_5th,1); //blend = (bound(0,skill,10)*0.1)*pow(1-bound(0,skill,10)*0.05,2.5)*5.656854249; //Plot formule before changing ! blend = bound(0,skill+self.bot_aimskill,10)*0.1; desiredang = desiredang + blend * ( - self.bot_1st_order_aimfilter * cvar("bot_ai_aimskill_order_mix_1st") - + self.bot_2nd_order_aimfilter * cvar("bot_ai_aimskill_order_mix_2nd") - + self.bot_3th_order_aimfilter * cvar("bot_ai_aimskill_order_mix_3th") - + self.bot_4th_order_aimfilter * cvar("bot_ai_aimskill_order_mix_4th") - + self.bot_5th_order_aimfilter * cvar("bot_ai_aimskill_order_mix_5th") + self.bot_1st_order_aimfilter * autocvar_bot_ai_aimskill_order_mix_1st + + self.bot_2nd_order_aimfilter * autocvar_bot_ai_aimskill_order_mix_2nd + + self.bot_3th_order_aimfilter * autocvar_bot_ai_aimskill_order_mix_3th + + self.bot_4th_order_aimfilter * autocvar_bot_ai_aimskill_order_mix_4th + + self.bot_5th_order_aimfilter * autocvar_bot_ai_aimskill_order_mix_5th ); // calculate turn angles @@ -248,7 +248,7 @@ float bot_aimdir(vector v, float maxfiredeviation) diffang_y = diffang_y - floor(diffang_y / 360) * 360; if (diffang_y >= 180) diffang_y = diffang_y - 360; - desiredang = desiredang + diffang * bound(0,cvar("bot_ai_aimskill_think"),1); + desiredang = desiredang + diffang * bound(0,autocvar_bot_ai_aimskill_think,1); // calculate turn angles diffang = desiredang - self.v_angle; @@ -264,12 +264,12 @@ float bot_aimdir(vector v, float maxfiredeviation) // turn local float r, fixedrate, blendrate; - fixedrate = cvar("bot_ai_aimskill_fixedrate") / bound(1,dist,1000); - blendrate = cvar("bot_ai_aimskill_blendrate"); + fixedrate = autocvar_bot_ai_aimskill_fixedrate / bound(1,dist,1000); + blendrate = autocvar_bot_ai_aimskill_blendrate; r = max(fixedrate, blendrate); //self.v_angle = self.v_angle + diffang * bound(frametime, r * frametime * (2+skill*skill*0.05-random()*0.05*(10-skill)), 1); self.v_angle = self.v_angle + diffang * bound(delta_t, r * delta_t * (2+pow(skill+self.bot_mouseskill,3)*0.005-random()), 1); - self.v_angle = self.v_angle * bound(0,cvar("bot_ai_aimskill_mouse"),1) + desiredang * bound(0,(1-cvar("bot_ai_aimskill_mouse")),1); + self.v_angle = self.v_angle * bound(0,autocvar_bot_ai_aimskill_mouse,1) + desiredang * bound(0,(1-autocvar_bot_ai_aimskill_mouse),1); //self.v_angle = self.v_angle + diffang * bound(0, r * frametime * (skill * 0.5 + 2), 1); //self.v_angle = self.v_angle + diffang * (1/ blendrate); self.v_angle_z = 0; @@ -339,10 +339,10 @@ float bot_aim(float shotspeed, float shotspeedupward, float maxshottime, float a shotdir = v_forward; v = bot_shotlead(self.bot_aimtargorigin, self.bot_aimtargvelocity, shotspeed, self.bot_aimlatency); local float distanceratio; - distanceratio =sqrt(bound(0,skill,10000))*0.3*(vlen(v-shotorg)-100)/cvar("bot_ai_aimskill_firetolerance_distdegrees"); + distanceratio =sqrt(bound(0,skill,10000))*0.3*(vlen(v-shotorg)-100)/autocvar_bot_ai_aimskill_firetolerance_distdegrees; distanceratio = bound(0,distanceratio,1); - r = (cvar("bot_ai_aimskill_firetolerance_maxdegrees")-cvar("bot_ai_aimskill_firetolerance_mindegrees")) - * (1-distanceratio) + cvar("bot_ai_aimskill_firetolerance_mindegrees"); + r = (autocvar_bot_ai_aimskill_firetolerance_maxdegrees-autocvar_bot_ai_aimskill_firetolerance_mindegrees) + * (1-distanceratio) + autocvar_bot_ai_aimskill_firetolerance_mindegrees; if (applygravity && self.bot_aimtarg) { if (!findtrajectorywithleading(shotorg, '0 0 0', '0 0 0', self.bot_aimtarg, shotspeed, shotspeedupward, maxshottime, 0, self)) @@ -353,18 +353,19 @@ float bot_aim(float shotspeed, float shotspeedupward, float maxshottime, float a { f = bot_aimdir(v - shotorg, r); //dprint("AIM: ");dprint(vtos(self.bot_aimtargorigin));dprint(" + ");dprint(vtos(self.bot_aimtargvelocity));dprint(" * ");dprint(ftos(self.bot_aimlatency + vlen(self.bot_aimtargorigin - shotorg) / shotspeed));dprint(" = ");dprint(vtos(v));dprint(" : aimdir = ");dprint(vtos(normalize(v - shotorg)));dprint(" : ");dprint(vtos(shotdir));dprint("\n"); - traceline(shotorg, shotorg + shotdir * 10000, FALSE, self); - if (trace_ent.takedamage) - if (trace_fraction < 1) - if (!bot_shouldattack(trace_ent)) - return FALSE; + //traceline(shotorg, shotorg + shotdir * 10000, FALSE, self); + //if (trace_ent.takedamage) + //if (trace_fraction < 1) + //if (!bot_shouldattack(trace_ent)) + // return FALSE; traceline(shotorg, self.bot_aimtargorigin, FALSE, self); if (trace_fraction < 1) if (trace_ent != self.enemy) if (!bot_shouldattack(trace_ent)) return FALSE; } - if (r > maxshottime * shotspeed) - return FALSE; - return f; + + //if (r > maxshottime * shotspeed) + // return FALSE; + return TRUE; };