LUA | Скрипт крашит игру.

Статус
В этой теме нельзя размещать новые ответы.

AlexanderMcArov

Новичок
Автор темы
13
1
Всем привет. Скажу сразу я полный нуб в программировании и то, что вы увидите просто вас убьёт, (от смеха) , но я все же обращусь за помощью. У меня крашит игру когда работает скрипт.
Пытаюсь я написать бота, который будет работать не по КоордМастеру, а по нажатию клавиш... имитация ИИ.. Но я тупой , и нихера не рубаю.. Может кто скажет с чего лучше начать, что почитать.. я вообще хз.. это первый ЯП за который я взялся, т.к. он показался для меня очень удобным. Хотелось бы разобраться в проблеме.

Ниже будет код.. то что не нужно сейчас я закоментил..

Lua:
-- Global
sek=1000
--********

function MainBot(posX,posY,posZ)

    positionX, positionY, positionZ = getCharCoordinates(PLAYER_PED)
    Distance = math.sqrt((positionX-posX)^2+(positionY-posY)^2+(positionZ-posZ)^2)

    Object_front = createObject(0,0,0,0) -- front PED
    Object_left = createObject(0,0,0,0) -- left PED
    Object_right= createObject(0,0,0,0) -- right PED
 
    attachObjectToChar(Object_front, PLAYER_PED, 0, 10, 0, 0, 0, 0)
    attachObjectToChar(Object_left, PLAYER_PED, -10, 0, 0, 0, 0, 0)
    attachObjectToChar(Object_right, PLAYER_PED, 10, 0, 0, 0, 0, 0)
 
    ObjectPos={
    frontX,frontY,frontZ,
    leftX,leftY,leftZ,
    rightX,rightY,rightZ
    }
 
    _, ObjectPos[1], ObjectPos[2], ObjectPos[3] = getObjectCoordinates(Object_front)
    _, ObjectPos[4], ObjectPos[5], ObjectPos[6] = getObjectCoordinates(Object_left)
    _, ObjectPos[7], ObjectPos[8], ObjectPos[9] = getObjectCoordinates(Object_right)
 
    DistanceLeft = math.sqrt((ObjectPos[4]-posX)^2+(ObjectPos[5]-posY)^2+(ObjectPos[6]-posZ)^2)
    DistanceRight = math.sqrt((ObjectPos[7]-posX)^2+(ObjectPos[8]-posY)^2+(ObjectPos[9]-posZ)^2)
    Targeting(DistanceLeft,DistanceRight)
 
    --[[vectorPedToPoint={posX-positionX,posY-positionY,posZ-positionZ}
    vectorPedToFront={ObjectPos[1]-positionX,ObjectPos[2]-positionY,ObjectPos[3]-positionZ}
    vectorScalar:(vectorPedToFront[1]*vectorPedToPoint[1]+vectorPedToFront[2]*vectorPedToPoint[2]+vectorPedToFront[3]*vectorPedToPoint[3])
    --  vectorScalar == Это чтобы узнать, впереди ли точка на которую надо ехать или сзади,
 
    vectorSummA=vectorPedToPoint[1]*vectorPedToFront[1]+vectorPedToPoint[2]*vectorPedToFront[2]+vectorPedToPoint[3]*vectorPedToFront[3]
    vectorSummB=math.sqrt(vectorPedToPoint[1]^2+vectorPedToPoint[2]^2+vectorPedToPoint[3]^2)
    vectorSummC=math.sqrt(vectorPedToFront[1]^2+vectorPedToFront[2]^2+vectorPedToFront[3]^2)]]--
    vectorVelocity=0--vectorSummA/(vectorSummB*vectorSummC)
    vectorScalar=0
 
    pos = string.format("Distance=%f SCALAR=%f ANGLE=%f Left=%f,Right=%f",Distance,vectorScalar,vectorVelocity,DistanceLeft,DistanceRight)
    sampTextdrawCreate(1, pos, 150, 400)
end

--  Targeting(left2,right2)  Эта функция как ра отвечает за поворот колес..
--первая проверка стоит чтобы колеса не дергались туда сюда постоянно. if left2-right2>=1 or right2-left2>=1 then
function Targeting(left2,right2)
    if left2-right2>=1 or right2-left2>=1 then
        if left2 >= right2 then
        right(true)
        left(false)
        elseif left2 <= right2 then
        left(true)
        right(false)
        else
        right(false)
        left(false)
        end
    else
    right(false)
    left(false)
    end
    left2,right2=0
end

function forward(bool) -- Button W
    setVirtualKeyDown(87,bool)
end

function back(bool) -- Button S
    setVirtualKeyDown(83,bool)
end

function left(bool) -- Button A
    setVirtualKeyDown(65,bool)
end

function right(bool) -- Button D
    setVirtualKeyDown(68,bool)
end


function main()

    while true do
    wait(100)
    --MainBot(0,3,3)    --Откоментировать чтобы включить "бота"
    end
end

Samp.log
HTML:
[16:02:26] {FFFFFF}SA-MP {B9C9BF}0.3.7 {FFFFFF}Started

[16:02:26] Warning(s007): Exception 0xC0000005 at 0x630FA67B

[16:02:45] Connecting to 127.0.0.1:7777...

[16:02:46] Connected. Joining the game...

[16:02:46] 0

[16:02:46] {ffaa00}[MySQL]:{FFFFFF}Ваш ник не найден!

[16:02:47] Connected to {B9C9BF}Ride From Hell

[16:04:25] Warning(s007): Exception 0xC0000005 at 0x544BC8

[16:04:25] Warning(s007): Exception 0xC0000005 at 0x536DF4

[16:04:25] Warning(s007): Exception 0xC0000005 at 0x544BC8

[16:04:25] Warning(s007): Exception 0xC0000005 at 0x536DF4

[16:04:25] Warning(s007): Exception 0xC0000005 at 0x544BC8

[16:04:25] Warning(s007): Exception 0xC0000005 at 0x536DF4

[16:04:25] Warning(s007): Exception 0xC0000005 at 0x544BC8

[16:04:25] Warning(s007): Exception 0xC0000005 at 0x536DF4

[16:04:25] Warning(s007): Exception 0xC0000005 at 0x544BC8

[16:04:25] Warning(s007): Exception 0xC0000005 at 0x536DF4
 

Вложения

  • Bot.lua
    3.1 KB · Просмотры: 34
  • chatlog.txt
    939 байт · Просмотры: 13
Последнее редактирование:
  • Нравится
Реакции: ™ ChipFamily

AlexanderMcArov

Новичок
Автор темы
13
1
local coors = {{133, -208, 1}, {134, -75, 1}}
for _, v in ipairs(coors) do
-- v[1] - x, v[2] - y, v[3] - z
end
for _, Скажи пожалуйсто что это "_" нижняя черточка значит.. А так все остальное понял.. буду пробовать.
 

AnWu

Известный
Всефорумный модератор
4,777
5,400
  • Нравится
Реакции: AlexanderMcArov
Статус
В этой теме нельзя размещать новые ответы.