SlonPvpru

[DRP] [RakBot] SlapFix

Jul 8th, 2020
1,307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.04 KB | None | 0 0
  1. -- https://cheat-master.ru/forum/290-786112-1
  2.  
  3. dofile("scripts\\libs\\getz.lua");
  4. local mode = 2
  5. local state = 0
  6. local x2, y2, z2 = 0, 0, 0
  7. local x, y, z = 0, 0, 0
  8. local speedv = -0.1
  9. local flight_time=0;
  10. local run=false;
  11. --local speedBuf=-0.1;
  12. local b = 0
  13. local stadSpawn=false;
  14. --вычисление угла:
  15. local u=1;
  16. local r=0.5--0.35;
  17. local rmax=2;
  18. local speedX=0.1;
  19. local speedY=0.1;
  20. local Xc;
  21. local Yc;
  22. --Начальные углы для спавнов:
  23. local spawnU={
  24.     ["1765;-1896"]=-0.0386, --ЖДЛС(гетто) ДРП
  25.     ["1153;-1771"]=1.5512, -- Автовокзал ДРП
  26.     ["1154;-1770"]=1.5512, -- Автовокзал ДРП
  27.     ["-34;1835"]=1.5708, --Больницы СФ или ЛС(ДРП)
  28.     ["-1970;159"]=-1.6128, --Спавн ЖДСФ
  29.     ["2846;1291"]=-3.0951
  30. };
  31.  
  32. local defRouteID=-1;--ид запущенного маршрута(defCallAdd после слапа)
  33.  
  34. local RouteStop=false;
  35. local waitRun=500;
  36.  
  37. local function damage_Flight()
  38.     local health=getHealth()-(Zc-z2)*4.95/8;
  39.     if Zc-z2>8 then
  40.         waitRun=2000;
  41.     else
  42.         waitRun=500;
  43.     end
  44.     Zc=z2;
  45.     setHealth(math.floor(health))
  46.     if math.floor(health)<=0 then
  47.         defCallAdd(1000,false,function() runCommand("!botkill"); end);
  48.     end
  49. end
  50.  
  51.  
  52. local function rotate(Radians)
  53.     u=Radians;
  54.     setQuaternion(math.cos(math.pi/4-u/2), 0, 0, math.sin(math.pi/4-u/2));
  55.     sendSync();
  56. end
  57.  
  58. --callback`s:
  59.  
  60. function onSync()
  61.     if mode == 1 then
  62.       return true
  63.     end
  64. end
  65.  
  66. function onSetPosition(a, s, d)
  67.     if stadSpawn==true then
  68.        
  69.         --CorrectStopRoute();
  70.        
  71.         speedv=-0.1; flight_time=1;
  72.         x, y, z = a, s, d
  73.         Zc=z;
  74.         local px, py, pz = getPosition()
  75.         if ((px - x)^2 + (py - y)^2<=3) and pz ~= z and state == 0 then
  76.             if mode == 2 then
  77.                     --[[defCallAdd(2000,false,function()
  78.                        
  79.                     end);
  80.                     printLog("Обнаружен SLAP, эмулируем падение под углом: "..u)]]
  81.                     printLog("Обнаружен SLAP, эмулируем падение под углом: "..u)
  82.                     x2, y2, z2 = getPosition();
  83.                     Xc=x2;
  84.                     Yc=y2;
  85.                     state = 1
  86.                     run=true;
  87.             elseif mode == 1 then
  88.                 printLog("обнаружен SLAP, игнорируем его")
  89.                 return true
  90.             end
  91.         elseif state==2 then --если слапают при работе антислап..
  92.             state=1;
  93.             setAnimation(1189, 33000);
  94.             sendSync();
  95.         end
  96.        
  97.         local newZ=getZ(x,y,z);
  98.         printLog("getZ="..newZ.."; z="..z.."; z2="..z2);
  99.         if newZ~=1 and state==0 and z>=newZ then--pz>=newZ then
  100.         --pz~=newZ then --and z2>=newZ then
  101.             x2=x; y2=y;
  102.             Xc=x2;
  103.             Yc=y2;
  104.             z2=newZ;
  105.             state=1;
  106.             if z-z2>=5 then
  107.                 run=true;
  108.             else
  109.                 run=false;
  110.             end
  111.             printLog("Обнаружен телепорт с пропастью");
  112.         elseif newZ~=1 and state==1 and z>=newZ then
  113.             z2=newZ;
  114.             printLog("Обнаружен барьер более выше..");
  115.             if z-3<newZ then
  116.                 run=false;
  117.             end
  118.         end
  119.     end
  120.  
  121. end
  122.  
  123. function onScriptStart()
  124.     --defCallAdd(90, true, FailBot);
  125. end
  126.  
  127. function onScriptUpdate()
  128.  
  129.     if stadSpawn==true then
  130.  
  131.  
  132.       if state == 1 then
  133.         if z2 ~= z then
  134.           if z2 >= z then z = z2 end
  135.           z = z + speedv
  136.           local spz = speedv / 5
  137.           setSpeed(0, 0, spz)
  138.           setPosition(x, y, z)
  139.           if flight_time<=22 then
  140.             speedv=-5*flight_time*0.02;
  141.           else
  142.             --speedv=5*(-0.006*flight_time*flight_time+2.8);
  143.             if speedv>5*(-0.0147*flight_time-0.0167) then
  144.                 speedv=5*(-0.0147*flight_time-0.0167);
  145.             end
  146.           end
  147.          --printLog("speedv="..speedv/5);
  148.           sendSync()
  149.           flight_time=flight_time+1;
  150.           if z2 >= z then
  151.            -- b = y2 + 1
  152.             speedv = -0.1
  153.             setPosition(x2, y2, z2)
  154.             if run==true then
  155.                 state = 2
  156.             else
  157.                 state=0;
  158.             end
  159.             setAnimation(1129, 32868);
  160.             damage_Flight();
  161.             sendSync();
  162.           end
  163.         end
  164.       end
  165.      
  166.       if state == 2 then --идет сдвиг вперед
  167.             if (x2-x)*(x2-x)+(y2-y)*(y2-y)<=(rmax-r)*(rmax-r) then
  168.                   y2 = y2 + r*math.sin(u);
  169.                   x2 = x2 + r*math.cos(u);
  170.                   --setSpeed(r*math.sin(u)/2, r*math.cos(u)/2, speedv/5)
  171.                   --printLog("Сдвиг");
  172.                   setPosition(x2, y2, z2);
  173.                   sendSync();
  174.             else
  175.                 y2 = Yc + rmax*math.sin(u);
  176.                 x2 = Xc + rmax*math.cos(u);
  177.                 setPosition(x2, y2, z2);
  178.                 damage_Flight()
  179.                 sendSync();
  180.                 setAnimation(1189, 33000);
  181.                 state=0;
  182.             end
  183.         local newZ=getZ(x2,y2,z2+0.01);
  184.         --printLog("Сдвиг: getZ="..newZ.."; z="..z.."; z2="..z2);
  185.         if newZ~=1 and newZ<z2 then
  186.             if (newZ-z2)*(newZ-z2)<=0.33 then
  187.                 setPosition(x2, y2, newZ);
  188.                 z2=newZ; z=newZ;
  189.                 sendSync();
  190.                 --printLog("Спуск по лестнице");
  191.             else
  192.                 --x2, y2, z2 = getPosition();
  193.                 speedv=-0.1; flight_time=1;
  194.                 Yc=y2; Xc=x2; z=z2; z2=newZ;
  195.                 if z-3<newZ then run=false end;
  196.                 state=1;
  197.                 printLog("Обнаружена пропасть после слапа..z="..z.."; znew="..newZ);
  198.             end
  199.         end
  200.       end
  201.        
  202.        
  203.         --CorrectAttemptStartRoute();
  204.        
  205.     end
  206.    
  207.     if isBotSpawned()==true and stadSpawn==false then
  208.    
  209.         stadSpawn=true;
  210.         local xx,yy,zz=getPosition();
  211.         printLog("xx="..math.floor(xx).."; yy="..math.floor(yy));
  212.         if spawnU[math.floor(xx)..";"..math.floor(yy)]~=nil then
  213.             u=spawnU[math.floor(xx)..";"..math.floor(yy)];
  214.         else
  215.             u=2*math.acos(getQuaternion());
  216.         end
  217.         rotate(u);
  218.     elseif stadSpawn==true and isBotSpawned()==false then
  219.         stadSpawn=false;
  220.     end
  221. end
  222.  
  223. function onSendPacket(id, data, _size)
  224.     if id == 207 and data~=nil and data~=0 then
  225.         local bs = bitStreamInit(data, _size)
  226.         local data = {}
  227.         data.packetId = bitStreamReadWord(bs)
  228.         data.leftRightKeys = bitStreamReadWord(bs)
  229.         data.upDownKeys = bitStreamReadWord(bs)
  230.         data.keysData = bitStreamReadWord(bs)
  231.         data.keys = bitStreamReadWord(bs)
  232.         bitStreamSetReadOffset(bs, 7)
  233.         data.position = {}
  234.         data.position.x = bitStreamReadFloat(bs)
  235.         data.position.y = bitStreamReadFloat(bs)
  236.         data.position.z = bitStreamReadFloat(bs)
  237.         data.quaternion = {}
  238.         data.quaternion[1] = bitStreamReadFloat(bs)
  239.         data.quaternion[2] = bitStreamReadFloat(bs)
  240.         data.quaternion[3] = bitStreamReadFloat(bs)
  241.         data.quaternion[4] = bitStreamReadFloat(bs)
  242.         data.health = bitStreamReadByte(bs)
  243.         data.armor = bitStreamReadByte(bs)
  244.         data.weapon = bitStreamReadByte(bs)
  245.         data.specialAction = bitStreamReadByte(bs)
  246.         data.moveSpeed = {}
  247.         data.moveSpeed.x = bitStreamReadFloat(bs)
  248.         data.moveSpeed.y = bitStreamReadFloat(bs)
  249.         data.moveSpeed.z = bitStreamReadFloat(bs)
  250.         data.surfingOffsets = {}
  251.         data.surfingOffsets.x = bitStreamReadFloat(bs)
  252.         data.surfingOffsets.y = bitStreamReadFloat(bs)
  253.         data.surfingOffsets.z = bitStreamReadFloat(bs)
  254.         data.surfingVehicleId = bitStreamReadWord(bs)
  255.         data.animationId = bitStreamReadWord(bs)
  256.         data.animationFlags = bitStreamReadWord(bs)
  257.        
  258.         local u0=math.atan2(data.moveSpeed.y,data.moveSpeed.x);
  259.         if type(u0)=="number" and data.moveSpeed.y~=0 and data.moveSpeed.x~=0 then
  260.             speedX=data.moveSpeed.x;
  261.             speedY=data.moveSpeed.y;
  262.             u=u0;
  263.         end
  264.        
  265.         bitStreamReset(bs);
  266.         bitStreamDelete(bs);
  267.     end
  268. end
Advertisement
Add Comment
Please, Sign In to add comment