- 13
 
- 1
 
Всем привет. Скажу сразу я полный нуб в программировании и то, что вы увидите просто вас убьёт, (от смеха) , но я все же обращусь за помощью. У меня крашит игру когда работает скрипт.
Пытаюсь я написать бота, который будет работать не по КоордМастеру, а по нажатию клавиш... имитация ИИ.. Но я тупой , и нихера не рубаю.. Может кто скажет с чего лучше начать, что почитать.. я вообще хз.. это первый ЯП за который я взялся, т.к. он показался для меня очень удобным. Хотелось бы разобраться в проблеме.
Ниже будет код.. то что не нужно сейчас я закоментил..
	
	
		
			
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
		
	
Samp.log
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
			
			Пытаюсь я написать бота, который будет работать не по КоордМастеру, а по нажатию клавиш... имитация ИИ.. Но я тупой , и нихера не рубаю.. Может кто скажет с чего лучше начать, что почитать.. я вообще хз.. это первый ЯП за который я взялся, т.к. он показался для меня очень удобным. Хотелось бы разобраться в проблеме.
Ниже будет код.. то что не нужно сейчас я закоментил..
			
				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
	Вложения
			
				Последнее редактирование: