Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- https://cheat-master.ru/forum/290-786112-1
- dofile("scripts\\libs\\getz.lua");
- local mode = 2
- local state = 0
- local x2, y2, z2 = 0, 0, 0
- local x, y, z = 0, 0, 0
- local speedv = -0.1
- local flight_time=0;
- local run=false;
- --local speedBuf=-0.1;
- local b = 0
- local stadSpawn=false;
- --вычисление угла:
- local u=1;
- local r=0.5--0.35;
- local rmax=2;
- local speedX=0.1;
- local speedY=0.1;
- local Xc;
- local Yc;
- --Начальные углы для спавнов:
- local spawnU={
- ["1765;-1896"]=-0.0386, --ЖДЛС(гетто) ДРП
- ["1153;-1771"]=1.5512, -- Автовокзал ДРП
- ["1154;-1770"]=1.5512, -- Автовокзал ДРП
- ["-34;1835"]=1.5708, --Больницы СФ или ЛС(ДРП)
- ["-1970;159"]=-1.6128, --Спавн ЖДСФ
- ["2846;1291"]=-3.0951
- };
- local defRouteID=-1;--ид запущенного маршрута(defCallAdd после слапа)
- local RouteStop=false;
- local waitRun=500;
- local function damage_Flight()
- local health=getHealth()-(Zc-z2)*4.95/8;
- if Zc-z2>8 then
- waitRun=2000;
- else
- waitRun=500;
- end
- Zc=z2;
- setHealth(math.floor(health))
- if math.floor(health)<=0 then
- defCallAdd(1000,false,function() runCommand("!botkill"); end);
- end
- end
- local function rotate(Radians)
- u=Radians;
- setQuaternion(math.cos(math.pi/4-u/2), 0, 0, math.sin(math.pi/4-u/2));
- sendSync();
- end
- --callback`s:
- function onSync()
- if mode == 1 then
- return true
- end
- end
- function onSetPosition(a, s, d)
- if stadSpawn==true then
- --CorrectStopRoute();
- speedv=-0.1; flight_time=1;
- x, y, z = a, s, d
- Zc=z;
- local px, py, pz = getPosition()
- if ((px - x)^2 + (py - y)^2<=3) and pz ~= z and state == 0 then
- if mode == 2 then
- --[[defCallAdd(2000,false,function()
- end);
- printLog("Обнаружен SLAP, эмулируем падение под углом: "..u)]]
- printLog("Обнаружен SLAP, эмулируем падение под углом: "..u)
- x2, y2, z2 = getPosition();
- Xc=x2;
- Yc=y2;
- state = 1
- run=true;
- elseif mode == 1 then
- printLog("обнаружен SLAP, игнорируем его")
- return true
- end
- elseif state==2 then --если слапают при работе антислап..
- state=1;
- setAnimation(1189, 33000);
- sendSync();
- end
- local newZ=getZ(x,y,z);
- printLog("getZ="..newZ.."; z="..z.."; z2="..z2);
- if newZ~=1 and state==0 and z>=newZ then--pz>=newZ then
- --pz~=newZ then --and z2>=newZ then
- x2=x; y2=y;
- Xc=x2;
- Yc=y2;
- z2=newZ;
- state=1;
- if z-z2>=5 then
- run=true;
- else
- run=false;
- end
- printLog("Обнаружен телепорт с пропастью");
- elseif newZ~=1 and state==1 and z>=newZ then
- z2=newZ;
- printLog("Обнаружен барьер более выше..");
- if z-3<newZ then
- run=false;
- end
- end
- end
- end
- function onScriptStart()
- --defCallAdd(90, true, FailBot);
- end
- function onScriptUpdate()
- if stadSpawn==true then
- if state == 1 then
- if z2 ~= z then
- if z2 >= z then z = z2 end
- z = z + speedv
- local spz = speedv / 5
- setSpeed(0, 0, spz)
- setPosition(x, y, z)
- if flight_time<=22 then
- speedv=-5*flight_time*0.02;
- else
- --speedv=5*(-0.006*flight_time*flight_time+2.8);
- if speedv>5*(-0.0147*flight_time-0.0167) then
- speedv=5*(-0.0147*flight_time-0.0167);
- end
- end
- --printLog("speedv="..speedv/5);
- sendSync()
- flight_time=flight_time+1;
- if z2 >= z then
- -- b = y2 + 1
- speedv = -0.1
- setPosition(x2, y2, z2)
- if run==true then
- state = 2
- else
- state=0;
- end
- setAnimation(1129, 32868);
- damage_Flight();
- sendSync();
- end
- end
- end
- if state == 2 then --идет сдвиг вперед
- if (x2-x)*(x2-x)+(y2-y)*(y2-y)<=(rmax-r)*(rmax-r) then
- y2 = y2 + r*math.sin(u);
- x2 = x2 + r*math.cos(u);
- --setSpeed(r*math.sin(u)/2, r*math.cos(u)/2, speedv/5)
- --printLog("Сдвиг");
- setPosition(x2, y2, z2);
- sendSync();
- else
- y2 = Yc + rmax*math.sin(u);
- x2 = Xc + rmax*math.cos(u);
- setPosition(x2, y2, z2);
- damage_Flight()
- sendSync();
- setAnimation(1189, 33000);
- state=0;
- end
- local newZ=getZ(x2,y2,z2+0.01);
- --printLog("Сдвиг: getZ="..newZ.."; z="..z.."; z2="..z2);
- if newZ~=1 and newZ<z2 then
- if (newZ-z2)*(newZ-z2)<=0.33 then
- setPosition(x2, y2, newZ);
- z2=newZ; z=newZ;
- sendSync();
- --printLog("Спуск по лестнице");
- else
- --x2, y2, z2 = getPosition();
- speedv=-0.1; flight_time=1;
- Yc=y2; Xc=x2; z=z2; z2=newZ;
- if z-3<newZ then run=false end;
- state=1;
- printLog("Обнаружена пропасть после слапа..z="..z.."; znew="..newZ);
- end
- end
- end
- --CorrectAttemptStartRoute();
- end
- if isBotSpawned()==true and stadSpawn==false then
- stadSpawn=true;
- local xx,yy,zz=getPosition();
- printLog("xx="..math.floor(xx).."; yy="..math.floor(yy));
- if spawnU[math.floor(xx)..";"..math.floor(yy)]~=nil then
- u=spawnU[math.floor(xx)..";"..math.floor(yy)];
- else
- u=2*math.acos(getQuaternion());
- end
- rotate(u);
- elseif stadSpawn==true and isBotSpawned()==false then
- stadSpawn=false;
- end
- end
- function onSendPacket(id, data, _size)
- if id == 207 and data~=nil and data~=0 then
- local bs = bitStreamInit(data, _size)
- local data = {}
- data.packetId = bitStreamReadWord(bs)
- data.leftRightKeys = bitStreamReadWord(bs)
- data.upDownKeys = bitStreamReadWord(bs)
- data.keysData = bitStreamReadWord(bs)
- data.keys = bitStreamReadWord(bs)
- bitStreamSetReadOffset(bs, 7)
- data.position = {}
- data.position.x = bitStreamReadFloat(bs)
- data.position.y = bitStreamReadFloat(bs)
- data.position.z = bitStreamReadFloat(bs)
- data.quaternion = {}
- data.quaternion[1] = bitStreamReadFloat(bs)
- data.quaternion[2] = bitStreamReadFloat(bs)
- data.quaternion[3] = bitStreamReadFloat(bs)
- data.quaternion[4] = bitStreamReadFloat(bs)
- data.health = bitStreamReadByte(bs)
- data.armor = bitStreamReadByte(bs)
- data.weapon = bitStreamReadByte(bs)
- data.specialAction = bitStreamReadByte(bs)
- data.moveSpeed = {}
- data.moveSpeed.x = bitStreamReadFloat(bs)
- data.moveSpeed.y = bitStreamReadFloat(bs)
- data.moveSpeed.z = bitStreamReadFloat(bs)
- data.surfingOffsets = {}
- data.surfingOffsets.x = bitStreamReadFloat(bs)
- data.surfingOffsets.y = bitStreamReadFloat(bs)
- data.surfingOffsets.z = bitStreamReadFloat(bs)
- data.surfingVehicleId = bitStreamReadWord(bs)
- data.animationId = bitStreamReadWord(bs)
- data.animationFlags = bitStreamReadWord(bs)
- local u0=math.atan2(data.moveSpeed.y,data.moveSpeed.x);
- if type(u0)=="number" and data.moveSpeed.y~=0 and data.moveSpeed.x~=0 then
- speedX=data.moveSpeed.x;
- speedY=data.moveSpeed.y;
- u=u0;
- end
- bitStreamReset(bs);
- bitStreamDelete(bs);
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment