Что нового

Интеллектуальная система езды

3urMyHD

Новичок
Сообщения
7
Репутация
1
Вопрос возник в следующем .
Ситуация . Едет машинка, натыкается на препятствие, это препятствие она должна объехать и поехать дальше.
Func Moving ()
Local $i
$i=0
while $Speed <> 0
if speed () = 0
Sleep (250)
MoveLeft () ; функция поворота на небольшой угол налево
MoveForward (2) ; движение вперед .
$i = $i + 1
ElseIf MoveForward (3) ; движение вперед быстрее
EndIf
if $i >= 6 Then
for $k = 1 to $i+1 Step 1
MoveRight () ; соответственно поворот вправо .
Sleep (250)
Next
EndIf
Sleep (1000)
Send ("S")
WEnd
EndFunc
 

axlwor

Скриптер
Сообщения
657
Репутация
147
:laugh:это секретная разработка пентагона по управлению авто?
 
Автор
3

3urMyHD

Новичок
Сообщения
7
Репутация
1
Вопрос в следующем, как это реализовать .
Прикинул примерный скрипт, который выше.
Но там минус, он поворачивает все время влево, потом настолько же вправо, тоесть в теории, он должен постоянно смещаться влево.
Из датчиков, которыми можно пользоваться, это скорость, нулевая или отличная от нулевой.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,603
Репутация
941
А положение машинки известно относительно глобальных координат мира в котором она передвигается?
 
Автор
3

3urMyHD

Новичок
Сообщения
7
Репутация
1
Ну если бы было известно, все было бы слишком просто .
Еще немного уточнений.
1. Есть машинка, появляется она рандомно, ориентация рандомная, но в пределах +- 25 градусов от предпологаемого маршрута движения (прямо, или на север)
2. Из известных пока датчиков, есть только датчик скорости, остальные слишком трудно найти или описать.
3. Нужно каким нибудь образом (примерный скрипт наверху) заставить машинку двигаться вперед, объезжая препятствия.

Объезд препятствий попытался реализовать в цикле while и с помощью датчика скорости . если скорость 0, значит наткнулись на препятствие, немного отъехать назад, доворот налево, попытка проехать вперед, если опять 0, повторить. Как только препятствий нет, проехать какое то время вперед, и довернуть направо столько раз, сколько доворачивали налево, +1 раз. что бы примерно выйти на тот же угол (гипотенуза), под которым ехали дальше.
Минусы очевидны, машинка будет постоянно смещаться влево, что не есть хорошо.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,603
Репутация
941
Препятствия бывают только в виде кочек или же может быть стена? Таки я на 100% уверен что проще внедриться в память процесса чем пытаться создать алгоритм на основе датчика скорости :smile:
 
Автор
3

3urMyHD

Новичок
Сообщения
7
Репутация
1
Нет, препятствия только в виде камней (кочек) и всякого такого. Размер которых не превышает нескольких корпусов машинки.
Про внедрения в память процесса, поподробнее пожалуйста :smile:
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,603
Репутация
941
Ну если это какая-то оффлайн игра, там не составит труда читать значения необходимые напрямую из памяти. Другое дело их надо еще найти :smile:


Добавлено:
Сообщение автоматически объединено:

вот статейка по работе с памятью процесса: http://www.chemax.ru/articles/tutorial_dma_nondma.php
 
Автор
3

3urMyHD

Новичок
Сообщения
7
Репутация
1
Понятно, не вариант. Игра онлайн.
ну же, человеки .. предложите какую нибудь идею, а уж реализовать как нибудь постараюсь сам :smile:
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,603
Репутация
941
Браузерная или нормальная?


Добавлено:
Сообщение автоматически объединено:

Дай хоть скрин штоле :smile:
 
Автор
3

3urMyHD

Новичок
Сообщения
7
Репутация
1
Нормальная :smile: World of Tanks называется .
скрин тут http://img824.imageshack.us/i/shot006o.jpg/
слева внизу показывается скорость, справо внизу, карта расположения тебя, твоей команды и команды противников.
по карте ориентироватся сложно, очень.
задача сводится к тому, что бы тупо проехать хотя бы полкарты, потом тебя все равно убьют.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,603
Репутация
941
О, с этого и надо было начинать. Попробуй присосаться к памяти процесса и найти там координаты своего танка. Этому может мешать какая-нибудь защита стоящая на клиенте игры, найди как ее отключить, если не сможешь отключить - в память процесса вероятнее всего тебе попасть не удастся. Если найдешь координаты - сможешь легко определять стоит ли твой танк, едет ли, в какую сторону едет, спускается или поднимается по поверхности и тд и тп. Механизм реализации примитивной навигационной системы внутри игры использующей только x, y, z координаты чара можешь найти тут: http://autoit-script.ru/index.php/topic,1784.0.html
Если же сможешь еще найти в памяти и ротацию своего танка, сможешь полностью как тебе угодно управлять движением посредством внешнего скрипта, сможешь даже написать свою геодату в которой будут указаны исключения, то есть те области в которые танк заезжать не должен, далее использовать волновой алгоритм перемещения который будет вычислять кратчайший путь из пункта А в пункт Б с учетом этих самых исключений. Волновой алгоритм применяется в играх в которых ты можешь управляя чаром указать ему куда бежать и чар побежит в нужную точку огибая все препятствия.
 
Автор
3

3urMyHD

Новичок
Сообщения
7
Репутация
1
Вопрос, посмотрел скрипт, там есть инклюд, nomadmemory.au3.
в интернете как то нет самого скрипта, где его можно взять ?
Спасибо.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,603
Репутация
941
Спасибо надо не говорить, на него надо тыкать
55.gif
 
Верх