Снова продолжал работу после покупки кирки

MoJlogou_XaKep

Участник
Автор темы
86
5
Версия MoonLoader
.026-beta
Вообщем, ебанул бота. Сделал что при ломке кирку, он ее купил бы. Но как сделать что бы когда он ее купил, он опять начал бы работать
 

Shepard

Активный
459
88
Вообщем, ебанул бота. Сделал что при ломке кирку, он ее купил бы. Но как сделать что бы когда он ее купил, он опять начал бы работать
Сделай активацию по ступеням, пример)
Когда активировал переменная shaxta будет иметь значение 1
В бесконечный поток ебашишь проверку, если цифра 1 = бежит закупать кирку.
Детектишь чат, если купил - шахта будет 2 = идёт работать
Если сломалась чат(детектишь в чате) - шахта будет 1 = идет закупать
Чтобы выключить - шахта будет 0
Мб, бредовый высер, ну хз. Должен работать
 

MoJlogou_XaKep

Участник
Автор темы
86
5
Сделай активацию по ступеням, пример)
Когда активировал переменная shaxta будет иметь значение 1
В бесконечный поток ебашишь проверку, если цифра 1 = бежит закупать кирку.
Детектишь чат, если купил - шахта будет 2 = идёт работать
Если сломалась чат(детектишь в чате) - шахта будет 1 = идет закупать
Чтобы выключить - шахта будет 0
Мб, бредовый высер, ну хз. Должен работать
Честно сказать я нихуя ничего не понял как это сделать))

Сделай активацию по ступеням, пример)
Когда активировал переменная shaxta будет иметь значение 1
В бесконечный поток ебашишь проверку, если цифра 1 = бежит закупать кирку.
Детектишь чат, если купил - шахта будет 2 = идёт работать
Если сломалась чат(детектишь в чате) - шахта будет 1 = идет закупать
Чтобы выключить - шахта будет 0
Мб, бредовый высер, ну хз. Должен работать
Мне что-то говорили про переменные, но я не понял

Сделай активацию по ступеням, пример)
Когда активировал переменная shaxta будет иметь значение 1
В бесконечный поток ебашишь проверку, если цифра 1 = бежит закупать кирку.
Детектишь чат, если купил - шахта будет 2 = идёт работать
Если сломалась чат(детектишь в чате) - шахта будет 1 = идет закупать
Чтобы выключить - шахта будет 0
Мб, бредовый высер, ну хз. Должен работать
АААА это local создать надо?? и в while true do что то написать?)
 

Shepard

Активный
459
88
Честно сказать я нихуя ничего не понял как это сделать))


Мне что-то говорили про переменные, но я не понял


АААА это local создать надо?? и в while true do что то написать?)
Lua:
local sampev = require 'samp.events'

require 'lib.moonloader'

local shaxta = 0

function main()
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("rabotat", function()
        if shaxta == 0 then
            shaxta = 1
            --идет закупать кирку
        else
            shaxta = 0
            --выключен
        end
    end)
    while true do
        wait(0)
        if shaxta == 1 then
            --закупка крч
        elseif shaxta == 2 then
            --идет работать
        end
    end
end


function sampev.onServerMessage(color,text)
    if text:find("КЫРКА СЛАМАЛАСЬ") then
        shaxta = 1;
        --Идет закупать кирку
    end
end
Понял? Ну блять, говнокод я уверен)
 

MoJlogou_XaKep

Участник
Автор темы
86
5
Lua:
local sampev = require 'samp.events'

require 'lib.moonloader'

local shaxta = 0

function main()
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("rabotat", function()
        if shaxta == 0 then
            shaxta = 1
            --идет закупать кирку
        else
            shaxta = 0
            --выключен
        end
    end)
    while true do
        wait(0)
        if shaxta == 1 then
            --закупка крч
        elseif shaxta == 2 then
            --идет работать
        end
    end
end


function sampev.onServerMessage(color,text)
    if text:find("КЫРКА СЛАМАЛАСЬ") then
        shaxta = 1;
        --Идет закупать кирку
    end
end
Понял? Ну блять, говнокод я уверен)
Функция где КИРКА СЛОМАЛАСЬ у меня есть. я понял надо переменные добавить. НО
if shaxta == 0 then
shaxta = 1
--идет закупать кирку - зачем сюда писать покупку кирки, если она есть в функции уже?
if shaxta == 1 then
--закупка крч
elseif shaxta == 2 then
--идет работать - тут я немножечко не понял) у меня с переменными плохо))
 

Shepard

Активный
459
88
Функция где КИРКА СЛОМАЛАСЬ у меня есть. я понял надо переменные добавить. НО
if shaxta == 0 then
shaxta = 1
--идет закупать кирку - зачем сюда писать покупку кирки, если она есть в функции уже?
if shaxta == 1 then
--закупка крч
elseif shaxta == 2 then
--идет работать - тут я немножечко не понял) у меня с переменными плохо))
Ты же бота делаешь, чтобы он ходил нужно функцию ходьбы в беск поток
Если шахта 1 = делаешь, чтобы он ишел к прорабу и там закупал кирку
Блин, я хз как объяснить свои тупые мысли
-----------
или кинь свой скрипт файлом, попробую по другому
 

MoJlogou_XaKep

Участник
Автор темы
86
5
Ты же бота делаешь, чтобы он ходил нужно функцию ходьбы в беск поток
Если шахта 1 = делаешь, чтобы он ишел к прорабу и там закупал кирку
Блин, я хз как объяснить свои тупые мысли
У тебя не тупые мысли, про вот эти переменные мне опытный скриптер говорил. Ну смотри как я делал бота. Само что бы он работал (Без покупки кирки) я делал в Bot Maker, и в этот скрипт добавил функцию покупки кирки. Само как шахта 1 сделать я знаю. Но вот Шахта 0 = что продолжал работать, я просто не знаю что сюда вписать
 

Shepard

Активный
459
88
У тебя не тупые мысли, про вот эти переменные мне опытный скриптер говорил. Ну смотри как я делал бота. Само что бы он работал (Без покупки кирки) я делал в Bot Maker, и в этот скрипт добавил функцию покупки кирки. Само как шахта 1 сделать я знаю. Но вот Шахта 0 = что продолжал работать, я просто не знаю что сюда вписать
кинь скрипт, попробую сделать
 

MoJlogou_XaKep

Участник
Автор темы
86
5
кинь скрипт, попробую сделать
сяб
Код:
script_name("Bot by Kalgan")
script_authors("Kalgan_Haverts")
script_description("Шахта бот, использовать на свой риск")
script_version("0.1")
script_dependencies("CLEO")

---------------------------------------------------------------------------

require "lib.moonloader"

local sampev = require 'samp.events'
---------------------------------------------------------------------------

function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    sampRegisterChatCommand("botstart", cmd_bot)

    local saveX = {}
    local saveY = {}
    local saveZ = {}
    while true do
        wait(0)
        if isPlayerPlaying(playerHandle) and enabled then
---------------------------------------------------------------------------
            local posX, posY, posZ = GetCoordinates()
            local mfind, mposX, mposY, mposZ = SearchMarker(posX, posY, posZ, 146.260864, false)
            if mfind then BeginToPoint(mposX, mposY, mposZ, 1.000000, -255, false) end
            wait(10000)
            BeginToPoint(-1901.540039, 1247.989990, 1216.239990, 1.000000, -255, false)
            wait(390)
            BeginToPoint(-1931.349976, 1249.260010, 1216.089966, 1.000000, -255, false)
            wait(390)
            BeginToPoint(-1975.000000, 1249.430054, 1216.619995, 1.000000, -255, false)
            wait(390)
            local posX, posY, posZ = GetCoordinates()
            local mfind, mposX, mposY, mposZ = SearchMarker(posX, posY, posZ, 146.260864, false)
            if mfind then BeginToPoint(mposX, mposY, mposZ, 1.000000, -255, false) end
            wait(4730)
            wait(450)
            BeginToPoint(-1973.560059, 1249.170044, 1216.369995, 1.000000, -255, false)
            BeginToPoint(-1973.560059, 1249.170044, 1216.369995, 1.000000, -255, false)
            wait(450)
            BeginToPoint(-1904.640015, 1249.530029, 1216.989990, 1.000000, -255, false)
            wait(450)
---------------------------------------------------------------------------
        end
    end
end



--------------------------- STANDART FUNCTIONS ---------------------------
function runToPoint(tox, toy, sprint)
local x, y, z = getCharCoordinates(PLAYER_PED)
local angle = getHeadingFromVector2d(tox - x, toy - y)
setCameraPositionUnfixed(0, math.rad(angle - 90))
stopRun = false
while getDistanceBetweenCoords2d(x, y, tox, toy) > 0.5 do
setGameKeyState(1, -255)
if sprint then
setGameKeyState(16, 255)
end
wait(0)
x, y, z = getCharCoordinates(PLAYER_PED)
angle = getHeadingFromVector2d(tox - x, toy - y)
setCameraPositionUnfixed(0, math.rad(angle - 90))
if stopRun then
break
end
end
end

function sampev.onServerMessage(color, text)
if text:find('У вас сломалась кирка! Для продолжени¤ работы необходимо купить новую!') then
 if isPlayerPlaying(playerHandle) and enabled then

runToPoint(-1913.109985, 1249.430054, 1216.719971, 1.000000, -255, false)
local posX, posY, posZ = GetCoordinates()
local mfind, mposX, mposY, mposZ = SearchMarker(posX, posY, posZ, 16.391304, false)
if mfind then runToPoint(mposX, mposY, mposZ, 1.000000, -255, false) end
enabled = false
             end
wait(100)
if MarkerPosX ~= 0.0 or MarkerPosY ~= 0.0 or MarkerPosZ ~= 0.0 then
            if getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ) < radius then
                ret_posX = MarkerPosX
                ret_posY = MarkerPosY
                ret_posZ = MarkerPosZ
                isFind = true
                radius = getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ)
                         end
                         end
wait(100)                
sampSendDialogResponse(9440, 1, 1, "Улица")
wait(1000)
if isPlayerPlaying(playerHandle) and enabled then
runToPoint(-1879.069946, -1642.060059, 21.770000, 1.000000, -255, false)
            enabled = false    
end            
wait(100)    
if MarkerPosX ~= 0.0 or MarkerPosY ~= 0.0 or MarkerPosZ ~= 0.0 then
            if getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ) < radius then
                ret_posX = MarkerPosX
                ret_posY = MarkerPosY
                ret_posZ = MarkerPosZ
                isFind = true
                radius = getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ)
                         end
                         end
wait(100)

sampSendDialogResponse(9441, 1, 2, "Кирка 2 уроверь")    
wait(100)
sampCloseCurrentDialogWithButton(1)    
end
if isPlayerPlaying(playerHandle) and enabled then
runToPoint(-1879.069946, -1642.060059, 21.770000, 1.000000, -255, false)
            enabled = false                    
        end        
wait(100)
if MarkerPosX ~= 0.0 or MarkerPosY ~= 0.0 or MarkerPosZ ~= 0.0 then
            if getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ) < radius then
                ret_posX = MarkerPosX
                ret_posY = MarkerPosY
                ret_posZ = MarkerPosZ
                isFind = true
                radius = getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ)
                         end
                         end
wait(100)
sampSendDialogResponse(9440, 1, 4, "3 этаж (Серебро)")    
    
    end        

function MovePlayer(move_code, isSprint)
    setGameKeyState(1, move_code)
    --[[255 - обычный бег назад
       -255 - обычный бег вперед
      65535 - идти шагом вперед
     -65535 - идти шагом назад]]
    if isSprint then setGameKeyState(16, 255) end
end

function SetAngle(x, y, z)
    local posX, posY, posZ = GetCoordinates()
    local pX = x - posX
    local pY = y - posY
    local zAngle = getHeadingFromVector2d(pX, pY)

    if isCharInAnyCar(playerPed) then
        local car = storeCarCharIsInNoSave(playerPed)
        setCarHeading(car, zAngle)
    else
        setCharHeading(playerPed, zAngle)
    end

    restoreCameraJumpcut()
end

function GetCoordinates()
    if isCharInAnyCar(playerPed) then
        local car = storeCarCharIsInNoSave(playerPed)
        return getCarCoordinates(car)
    else
        return getCharCoordinates(playerPed)
    end
end

function cmd_bot(param)
    enabled = not enabled
    if enabled then
        sampAddChatMessage(string.format("[%s]: Активирован", thisScript().name), 0x40FF40)
    else
        sampAddChatMessage(string.format("[%s]: Деактивирован", thisScript().name), 0xFF4040)
    end
end

-- Teleport from ClickWarp (by FYP)
function teleportPlayer(x, y, z)
    if isCharInAnyCar(playerPed) then
        setCharCoordinates(playerPed, x, y, z)
    end
    setCharCoordinatesDontResetAnim(playerPed, x, y, z)
end

function setCharCoordinatesDontResetAnim(char, x, y, z)
    if doesCharExist(char) then
        local ptr = getCharPointer(char)
        setEntityCoordinates(ptr, x, y, z)
    end
end

function setEntityCoordinates(entityPtr, x, y, z)
    if entityPtr ~= 0 then
        local matrixPtr = readMemory(entityPtr + 0x14, 4, false)
        if matrixPtr ~= 0 then
            local posPtr = matrixPtr + 0x30
            writeMemory(posPtr + 0, 4, representFloatAsInt(x), false) --X
            writeMemory(posPtr + 4, 4, representFloatAsInt(y), false) --Y
            writeMemory(posPtr + 8, 4, representFloatAsInt(z), false) --Z
        end
    end
end
-- End Teleport code

--------------------------- ADDITIONAL FUNCTIONS ---------------------------

function SearchMarker(posX, posY, posZ, radius, isRace)
    local ret_posX = 0.0
    local ret_posY = 0.0
    local ret_posZ = 0.0
    local isFind = false

    for id = 0, 31 do
        local MarkerStruct = 0
        if isRace then MarkerStruct = 0xC7F168 + id * 56
        else MarkerStruct = 0xC7DD88 + id * 160 end
        local MarkerPosX = representIntAsFloat(readMemory(MarkerStruct + 0, 4, false))
        local MarkerPosY = representIntAsFloat(readMemory(MarkerStruct + 4, 4, false))
        local MarkerPosZ = representIntAsFloat(readMemory(MarkerStruct + 8, 4, false))

        if MarkerPosX ~= 0.0 or MarkerPosY ~= 0.0 or MarkerPosZ ~= 0.0 then
            if getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ) < radius then
                ret_posX = MarkerPosX
                ret_posY = MarkerPosY
                ret_posZ = MarkerPosZ
                isFind = true
                radius = getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ)
            end
        end
    end

    return isFind, ret_posX, ret_posY, ret_posZ
end
 
  • Вау
Реакции: Shepard

MoJlogou_XaKep

Участник
Автор темы
86
5
Это бот для шахты мордор рп?

Просто там кирка можнт сломатся.
Да. Фунцию с покупкой кирки я сделал.

Но не знаю как сделать что бы после покупки он опять начал работать)). Надеюсь Шепард поможет
 

LoManuL Inc

Потрачен
579
106
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Да. Фунцию с покупкой кирки я сделал.

Но не знаю как сделать что бы после покупки он опять начал работать)). Надеюсь Шепард поможет
понял, может буду юзать ведь я на мордоре играю, правда буду юзать с нового акка чтоб если забанили было не обидно.

код длинный, кидать в клео кстати?
 

MoJlogou_XaKep

Участник
Автор темы
86
5
понял, может буду юзать ведь я на мордоре играю, правда буду юзать с нового акка чтоб если забанили было не обидно.

код длинный, кидать в клео кстати?
Ну я прокачал 3 лвл шахты на своем первом Говноскрипте))