-
Автор темы
- #1
Всем привет, вот этом гайде я покажу как сделать бота, который будет бегать по координатам.
Для начала нам потребуется
Далее функции которые будут отвечать за перемещение персонажа по координатам.
Теперь у нас есть нужные функции которые будут отвечать за движение персонажа.
Надеюсь кому нибудь пригодится![roflanEbalo :roflanEbalo: :roflanEbalo:](/styles/flatawesomedark/xenforo/smilies/roflanebalo.png)
Для начала нам потребуется
Пожалуйста, авторизуйтесь для просмотра ссылки.
.Далее функции которые будут отвечать за перемещение персонажа по координатам.
Код:
SendKey(key := "", state := "") {
if (state == "")
ControlSend,, {%key% down}{%key% up}, ahk_exe gta_sa.exe
else
ControlSend,, {%key% %state%}, ahk_exe gta_sa.exe
}
Код:
DistToCam(x, y) {
if (!checkHandles())
return -1
coords := getPlayerCoordinates()
VectorX := x - coords[1]
VectorY := y - coords[2]
return Sqrt(VectorX * VectorX + VectorY * VectorY)
}
Код:
MoveCoordinate(x, y, collision := false) {
loop {
distPoint := DistToCam(x, y)
collPlayer := getPlayerCollision()
TurnCamToCoordXY(x, y) ; move camera
SendKey("w", "down") ; walk
SendKey("space", distPoint > 5 ? "down" : "up") ; acceleration walk
if (distPoint < 0.7 && (!collision || collPlayer > 5)) {
SendKey("w", "up")
SendKey("space", "up")
break
}
}
}
Данный код я спастил у человека, ника уже не помню, сорян если увидишь это :)
Код:
TurnCamToCoordXY(x, y, ex := 0.06) {
if (!checkHandles())
return -1
coords := getPlayerCoordinates()
VectorX := x - coords[1]
VectorY := y - coords[2]
AngleYaw := atan2(VectorY, -VectorX) - 3.14 / 2 + ex
writeFloat(hGTA, 0xB6F258, AngleYaw)
}
Код:
L::
MoveCoordinate(1649.221924, 2210.174316)
MsgBox % "Вы пришли в точку B"
return
End::
ExitApp
return
![roflanEbalo :roflanEbalo: :roflanEbalo:](/styles/flatawesomedark/xenforo/smilies/roflanebalo.png)
Код:
TurnCamToCoordXYZ(x, y, z, ex := 0.06, ez := 0.103) {
if (!checkHandles())
return -1
coords := getPlayerCoordinates()
VectorX := x - coords[1]
VectorY := y - coords[2]
VectorZ := z - coords[3]
dist := Sqrt(VectorX * VectorX + VectorY * VectorY)
AngleYaw := atan2(VectorY, -VectorX) - 3.14 / 2 + ex
AnglePitch := atan2(dist, VectorZ) - ez
writeFloat(hGTA, 0xB6F258, AngleYaw)
writeFloat(hGTA, 0xB6F248, AnglePitch)
}
Ахк для работы на лесопилке
Пожалуйста, авторизуйтесь для просмотра ссылки.
Последнее редактирование: