XiaoHui.net Ц»ã³ÌÐòÔ±ÂÛ̳Ê×Ò³
¹¤×÷²¢¿ìÀÖ×Å,Ö°Òµ²¢ÐÝÏÐ×Å
ѰÃεÄËêÔ´Ӳ»ÑÔÐÁ¿à¼¸Ðí£¬
²»ÎÊÊÕ»ñ¼¸¶à¡­¡­
» ÓοÍ:  ÉêÇëÐÂÓû§ | µÇ¼ | »áÔ± | ͳ¼Æ | °ïÖú » XiaoHui.Net Ц»ã³ÌÐòÔ±ÂÛ̳ | ´¿ÎÄ×Ö°æ | ȫվË÷Òý | XiaoHui.com


[Ëã·¨ÌÖÂÛ] Äܲ»ÄÜ»»ÖÖ¸ü¸ßЧд·¨!

RSS ¶©Ôĵ±Ç°ÂÛ̳  

ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ
     

±êÌâ: [Ëã·¨ÌÖÂÛ] Äܲ»ÄÜ»»ÖÖ¸ü¸ßЧд·¨!  
 
pweot17951
СˮÊÖ
Rank: 1



UID 29739
¾«»ª 0
»ý·Ö 2
Ìû×Ó 2
ÔĶÁȨÏÞ 10
×¢²á 2007-3-6
À´×Ô ¹ã¶«
״̬ ÀëÏß
Äܲ»ÄÜ»»ÖÖ¸ü¸ßЧд·¨!

Ëã·¨ÓÅ»¯£¬ÈçºÎÈôúÂë¸ü¸ßЧ£¿£¿£¿

ÕâÊÇ´úÂëµÄÒ»²¿·Ö£¬ÈçºÎ¸ÄÓñðµÄÅжÏÓï¾ä£¬Ê¹´úÂëÔËÐеĿìµã£¡ÎÒ¾õµÃÔÚ´úÂëÀïͨ¹ýÅжÏÌø×ªÀ´Ö´ÐÐÏÂÒ»ÌõÓï¾äÊǵ×ЧµÄ£¨switch (route_mode)£¬switch (route_order)£©£®Çë¸ßÊÖ°ïæ£¬¸ÃÒ»ÖÖд·¢ÈôúÂë¸ü¸ßЧ

void AutoRoute::FindNearPoint()
{
float pointdist = 99999.0;
iLine = -1;
iPoint = -1;
for(int i = 0; i < cvar.linecount ; i++)
{
  if (route_line[i].enabled)
  {
   for(int j = 0; j < route_line[i].count; j++)
   {
    float dist = GetPointDistance(route_line[i].point[j].origin);
    if (dist < pointdist && abs(route_line[i].point[j].origin[2] - me.pmEyePos[2]) < 25)
    {
     pointdist = dist;
     iLine = i;
     iPoint = j;
    }
   }
  }
}
if (pointdist < cvar.finddist && iPoint > -1 && iLine > -1)
{      
  if (GetPointVisible(route_line[iLine].point[iPoint].origin))
  {
   if (iPoint > 0 && iPoint < route_line[iLine].count - 1)
   {
    if (GetPointVisible(route_line[iLine].point[iPoint + 1].origin) && GetAngleVisible(route_line[iLine].point[iPoint + 1].origin))
    {
     route_order = RO_ASC;
    }
    else if (GetPointVisible(route_line[iLine].point[iPoint - 1].origin) && GetAngleVisible(route_line[iLine].point[iPoint - 1].origin))
    {
     route_order = RO_DESC;
    }
   }
   else
   {
    if (iPoint == 0 && GetPointVisible(route_line[iLine].point[iPoint + 1].origin) && GetAngleVisible(route_line[iLine].point[iPoint + 1].origin))
    {
     route_order = RO_ASC;
    }
    else if (iPoint == route_line[iLine].count - 1 && GetPointVisible(route_line[iLine].point[iPoint - 1].origin) && GetAngleVisible(route_line[iLine].point[iPoint - 1].origin))
    {
     route_order = RO_DESC;
    }
   }
  }
  else
  {
   iLine = -1;
   iPoint = -1;
  }
}
else
{
  iLine = -1;
  iPoint = -1;
}
}

void AutoRoute::CreateMove(usercmd_s *usercmd)
{
if (Record)
{
  if (iLine > -1)
  {
   if (iPoint == cvar.pointcount){Record = false;return;};
   if (iPoint == -1)
   {
    AddPoint();
   }
   else
   {
    float dist = GetPointDistance(route_line[iLine].point[iPoint].origin);

    if (dist >= cvar.routedist)
    {
     AddPoint();
    }
   }
  }
  return;
}
if (cvar.autoroute && me.alive)
{
  if (gAimbot.target!=-1 && cvar.routepursue)
  {
   cvar.autoroute = 0;
   iLine = -1;
   iPoint = -1;
   route_mode = RM_NONE;
   return;
  }
  switch (route_mode)
  {
   case RM_NONE:
    {
     FindNearPoint();
     if (iPoint > -1 && iLine > -1)
     {
      GotoRoutePoint(route_line[iLine].point[iPoint].origin, usercmd);
      route_mode = RM_FROM;
     }
    break;
    }
   case RM_FROM:
    {
     int i = iPoint;

     if (((route_order == RO_ASC) && (i >= route_line[iLine].count - 1)) ||
      ((route_order == RO_DESC) && (i <= 0)))
     {

       iPoint = -1;
       route_mode = RM_END;
       return;
     }
     
     CheckRoutePoint(route_line[iLine].point[iPoint].origin, usercmd);
     if( usercmd->forwardmove>-120 && usercmd->forwardmove<120 && usercmd->sidemove>-120 && usercmd->sidemove<120)
     {
      switch (route_order)
      {
       case RO_ASC:
       {
        i++;
       }
       break;
       case RO_DESC:
       {
        i--;
       }
       break;
      }
      iPoint = i;  
      GotoRoutePoint(route_line[iLine].point[iPoint].origin, usercmd);
     }
     return;
    }
    break;
   case RM_END:
    {
     iLine = -1;
     iPoint = -1;
     route_mode = RM_NONE;
    }
    break;
  }
}
else
{
  iLine = -1;
  iPoint = -1;
  route_mode = RM_NONE;
}
}
2007-3-10 16:37#1
²é¿´×ÊÁÏ  Blog  ·¢¶ÌÏûÏ¢  QQ  ¶¥²¿
     


  ¿É´òÓ¡°æ±¾ | ÍÆ¼ö¸øÅóÓÑ | ¶©ÔÄÖ÷Ìâ | ÊÕ²ØÖ÷Ìâ  


 


ËùÓÐʱ¼äΪ GMT+8, ÏÖÔÚʱ¼äÊÇ 2008-12-2 01:56 Powered by Discuz! 4.1.0 Çå³ý Cookies - XiaoHui.Net Ц»ã³ÌÐòÔ±ÂÛ̳ - Archiver