2段穿墙代码

社区服务
高级搜索
猴岛论坛CSGO反恐精英CS作弊器交流讨论2段穿墙代码
发帖 回复
正序阅读 最近浏览的帖子最近浏览的版块
57个回复

2段穿墙代码

楼层直达
莎仕芘亞

ZxID:1171401

等级: 元老
猴岛国防部部长

举报 只看楼主 使用道具 楼主   发表于: 2007-06-27 0
常见的穿墙代码,一般在aimbot.cpp
int CanPenetrate( float *start, float *end, int power )
{
  static pmtrace_t* tr = (pmtrace_t*)0x02252DF0;

  float view[3];
  float dir[3];

  view[0] = end[0] - start[0];
  view[1] = end[1] - start[1];
  view[2] = end[2] - start[2];

  float length = VectorLength(view);

  dir[0] = view[0] / length;
  dir[1] = view[1] / length;
  dir[2] = view[2] / length;

  float position[3];
  position[0] = start[0];
  position[1] = start[1];
  position[2] = start[2];
  tr->startsolid = true;

  while( power )
  {
    if( !tr->startsolid )
      power--;
    tr = gEngfuncs.PM_TraceLine( position, end, PM_TRACELINE_PHYSENTSONLY, 2, -1);
   
    if( tr->fraction==1.0f )
      return 1;
    if( tr->allsolid )
      return 0;

    position[0] = tr->endpos[0] + dir[0] * 8.0f;
    position[1] = tr->endpos[1] + dir[1] * 8.0f;
    position[2] = tr->endpos[2] + dir[2] * 8.0f;
  }
  return 0;
}
//====================================================================================
int CheckCurGun ()
{
  if (currentWeaponID == WEAPON_SG550 || currentWeaponID == WEAPON_G3SG1 || currentWeaponID == WEAPON_SCOUT || currentWeaponID == WEAPON_AWP)
  { return 3; }

  if (currentWeaponID == WEAPON_AUG || currentWeaponID == WEAPON_PARA || currentWeaponID == WEAPON_COLT || currentWeaponID == WEAPON_DEAGLE || currentWeaponID == WEAPON_SIG || currentWeaponID == WEAPON_AK)
  { return 2; }
 
  { return 0; }
}

//====================================================================================
int PathFree (float * from, float * to)
{
  pmtrace_t tr;
  gEngfuncs.pEventAPI->EV_SetTraceHull( 2 );
  gEngfuncs.pEventAPI->EV_PlayerTrace( from, to, PM_GLASS_IGNORE, me.ent->index, &tr );
  int pathtest = (tr.fraction == 1.0f);
  if (!pathtest && cvar.autowall && CheckCurGun())
  {
    pathtest = CanPenetrate(from, to, CheckCurGun());
  }
  return pathtest;
}
cpp改完拉别忘拉h文件,aimbot.h
int CanPenetrate( float *start, float *end, int power ) ;
int PathFree (float * from, float * to) ;
int CheckCurGun () ;
                  ——↑——这分号可是落不得的,要不非郁闷死你不可!!

下面这个比较长,而且得利用trace.cpp里面的功能,我有带附件,自己下载

aimbot.cpp文件,别忘拉,在开头部分加上#include "trace.h"
bool canpenetrate(float *start, float *end)
{
  int maxhits = 10, count = 0;
  float damage = 120;
  strace_t tr;
  pmtrace_t beam_tr, beam_tr1, *tmptr;
  float srcorigin[3];
  float diff[3], length, viewvec[3], unityview[3], position[3];

  viewvec[0] = end[0] - start[0];
  viewvec[1] = end[1] - start[1];
  viewvec[2] = end[2] - start[2];

  length = VectorLength(viewvec);

  unityview[0] = viewvec[0] / length;
  unityview[1] = viewvec[1] / length;
  unityview[2] = viewvec[2] / length;

  srcorigin[0] = start[0];
  srcorigin[1] = start[1];
  srcorigin[2] = start[2];

  while (damage > 10 && maxhits > 0)
  {
    maxhits--;

    TraceThickness(srcorigin, end, 0, &tr);

    if (tr.finished)
        break;

    if (srcorigin[0] != tr.endpos[0] || srcorigin[1] != tr.endpos[1] || srcorigin[2] != tr.endpos[2])
        count++;

    if (count >= (GetCurPenetration() + 1) && !tr.finished)
    {
        damage = 0;

        break;
    }

    position[0] = tr.endpos[0] + unityview[0] * 8.0;
    position[1] = tr.endpos[1] + unityview[1] * 8.0;
    position[2] = tr.endpos[2] + unityview[2] * 8.0;

    tmptr = gEngfuncs.PM_TraceLine(position, end, PM_TRACELINE_PHYSENTSONLY, 2, -1);

    memcpy(&beam_tr, tmptr, sizeof(pmtrace_t));

    if (!beam_tr.allsolid)
    {
        tmptr = gEngfuncs.PM_TraceLine(beam_tr.endpos, tr.endpos, PM_TRACELINE_PHYSENTSONLY, 2, -1);

        memcpy(&beam_tr1, tmptr, sizeof(pmtrace_t));

        diff[0] = beam_tr1.endpos[0] - tr.endpos[0];
        diff[1] = beam_tr1.endpos[1] - tr.endpos[1];
        diff[2] = beam_tr1.endpos[2] - tr.endpos[2];

        length = VectorLength(diff);

        if (length < damage)
        {
          damage -= length;

          srcorigin[0] = beam_tr1.endpos[0] + unityview[0];
          srcorigin[1] = beam_tr1.endpos[1] + unityview[1];
          srcorigin[2] = beam_tr1.endpos[2] + unityview[2];
        }
    }
    else
        damage = 0;
  }

  if (maxhits == 0 && damage)
  {
    tr.finished = false;

    while (!tr.finished)
    {
        TraceThickness(srcorigin, end, 0, &tr);

        if (tr.allsolid)
          return false;

        if (!tr.startsolid)
        {
          if (tr.finished)
            return damage > 0.0;

          return false;
        }

        srcorigin[0] = tr.endpos[0] + unityview[0];
        srcorigin[1] = tr.endpos[1] + unityview[1];
        srcorigin[2] = tr.endpos[2] + unityview[2];
    }
  }

  return damage > 0.0;
}
int penetrate;
bool CorrectGun()
{
  if(currentWeaponID==WEAPON_DEAGLE)
  {
    penetrate = WALL_PEN1;
    return true;
  }
  else if(currentWeaponID==WEAPON_SCOUT)
  {
    penetrate = WALL_PEN2;
    return true;
  }
  else if(currentWeaponID==WEAPON_AWP)
  {
    penetrate = WALL_PEN2;
    return true;
  }
  else if(currentWeaponID==WEAPON_SIG)
  {
    penetrate = WALL_PEN2;
    return true;
  }
  else if(currentWeaponID==WEAPON_COLT)
  {
    penetrate = WALL_PEN2;
    return true;
  }
  else if(currentWeaponID==WEAPON_GALIL)
  {
    penetrate = WALL_PEN1;
    return true;
  }
  else if(currentWeaponID==WEAPON_FAMAS)
  {
    penetrate = WALL_PEN1;
    return true;
  }
  else if(currentWeaponID==WEAPON_PARA)
  {
    penetrate = WALL_PEN2;
    return true;
  }
  else if(currentWeaponID==WEAPON_AUG)
  {
    penetrate = WALL_PEN1;
    return true;
  }
  else if(currentWeaponID==WEAPON_AK)
  {
    penetrate = WALL_PEN2;
    return true;
  }
  else if(currentWeaponID==WEAPON_SG550)
  {
    penetrate = WALL_PEN2;
    return true;
  }
  else if(currentWeaponID==WEAPON_G3SG1)
  {
    penetrate = WALL_PEN2;
    return true;
  }
  else
  {
    penetrate = WALL_PEN0;
    return true;
  }
}

int CurPenetration(void)
{
  if (CorrectGun())
    return penetrate;
  return WALL_PEN0;
}
bool pathFree(float *start, float *end)
{
  bool pathtest;
  strace_t tr;

  if (cvar.autowall && CurPenetration())
  {
    pathtest = CanPenetrate(start, end);
  }
  else
  {
    TraceThickness(start, end, 0, &tr);

  if (tr.finished)
    pathtest = true;
  else
    pathtest = false;
  }
  return pathtest;
}
aimbot.h文件
bool pathFree(float *start, float *end) ;
bool canpenetrate(float *start, float *end);
int CurPenetration(void);
bool CorrectGun();
还有一种很麻烦的穿墙代码,涉及到十来个文件,有点麻烦,在这儿不说拉。

添加中需要注意的是,你代码里原来的名字可能和我的不一样,会出问题。所以添加的时候注意你原来的名字
另外,如果操作中有遇到问题,问我。最好把错的,和错的地方告诉我。

a1597534628

ZxID:8790710

等级: *
举报 只看该作者 57楼  发表于: 2009-09-14 0
还是顶下把     
100730088

ZxID:8136392

等级: 新兵
举报 只看该作者 56楼  发表于: 2009-07-24 0
不明白啊……
rmy198911

ZxID:1314446

等级: 上等兵
举报 只看该作者 55楼  发表于: 2009-03-21 0
不懂啊...
19852500

ZxID:3374807

等级: 列兵
举报 只看该作者 54楼  发表于: 2009-01-20 0
eeeeeeeeeeeee
19852500

ZxID:3374807

等级: 列兵
举报 只看该作者 53楼  发表于: 2009-01-15 0
幸苦了
19852500

ZxID:3374807

等级: 列兵
举报 只看该作者 52楼  发表于: 2009-01-09 0
3333333333333333
19852500

ZxID:3374807

等级: 列兵
举报 只看该作者 51楼  发表于: 2009-01-09 0
hhhhhhhhhhhhhh
19852500

ZxID:3374807

等级: 列兵
举报 只看该作者 50楼  发表于: 2009-01-09 0
gggggggggggggg
19852500

ZxID:3374807

等级: 列兵
举报 只看该作者 49楼  发表于: 2009-01-09 0
ggggggggggggggggg
jialeiguo111

ZxID:1284014

等级: 下士
举报 只看该作者 48楼  发表于: 2008-08-02 0
高手 厉害
狂人@之舞

ZxID:1480774

等级: 新兵
举报 只看该作者 47楼  发表于: 2008-08-02 0
....................
411627321

ZxID:1478683

等级: 新兵
举报 只看该作者 46楼  发表于: 2008-08-01 0
   自然茧丶

ZxID:1038013

等级: 元帅

举报 只看该作者 45楼  发表于: 2008-07-09 0
為碼獨尊 哈哈
7★男人

ZxID:1404173

等级: 少将
只作别人做不到的

举报 只看该作者 44楼  发表于: 2008-06-30 0
这样东西就好找了,楼主真是有心人支持你 nhapo
yzsbbt

ZxID:1347309

等级: 大尉
乌龟一只- -

举报 只看该作者 43楼  发表于: 2008-03-04 0
看不懂汗死。。
天气预报:顶本帖的人所在地区1年内将下黄金DB雨- -每秒888DB。。想拿DB的狂顶。。
丶关羽

ZxID:1334246

等级: 中将
--正在输入

举报 只看该作者 42楼  发表于: 2008-03-04 0
啊啊  附件呢、



aini141141

ZxID:1309378

等级: 新兵
举报 只看该作者 41楼  发表于: 2008-03-04 0
不会啊!555
cboy_h

ZxID:1331476

等级: 新兵
举报 只看该作者 40楼  发表于: 2008-03-03 0
一个字好
xiaochai

ZxID:1302994

等级: 元老
配偶: 幽焰冰瞳
123

举报 只看该作者 39楼  发表于: 2007-12-09 0
眼晕~~~~~~~~~~好困难
« 返回列表
发帖 回复