Что нового

[APB Reloaded] Каким образом добавить несколько цветов для поиска в автошот ?

Liman25

Новичок
Сообщения
11
Репутация
1
Вопрос: Вообщем проблема такая надо добавить еще пару цветов для того чтобы когда в прицел попал тот или иной цвет который мы добавили происходил выстрел, то бишь происходил клик левой клавиши мыши.
У меня в коде сейчас всего один цвет и это красный 0xFF0000, а нужно добавить еще вот эти 0xBA0714, 0xBB1518, 0xf9cda0 так вот вопрос и заключается как их туда вписать, добавить ?

А вот и сам исходный код:

Код:
Global $Autoshoot = 0
;  hot keys
Hotkeyset('{INSERT}', 'startAutoshoot') ; запуск автокликера
Hotkeyset('{F7}', "offtAutoshoot") ; остановка автокликера
; ----

$CenterX = @DesktopWidth / 2 ; Определяем центр экрана.
$CenterY = @DesktopHeight / 2 ; Определяем центр экрана.

$CenterRound = 200 ; От цетра паралейно будут расположенные палочки.
$CenterRW = 10 ; Ширина палочек.
$CenterRH = 200 ; Высота палочек.
$CenterColor = 0xFF0000 ; Цвет который должны сканировать палочки.
$CenterShade = 0x30 ; Погрешность цвета.
$CenterMouse = 90 ; Отброс мышки для захвата.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Re: [Мышь, клавиатура] Как добавить несколько цветов в один скрипт ?

Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Мышь, клавиатура] Как добавить несколько цветов в один скрипт ?

Код:
$CenterColor[4] = [0xFF0000, 0xBA0714, 0xBB1518, 0xf9cda0]
For $i = 0 To 3 Step 1
	MsgBox(0,0,$CenterColor[$i])
Next
 
Автор
L

Liman25

Новичок
Сообщения
11
Репутация
1
Re: [Мышь, клавиатура] Как добавить несколько цветов в один скрипт ?

Спасибо за помощь, и еще один вопрос ибо у меня autoit на уровне интуиции, промеж каких строк вставлять этот код ?
Да и что, если вбить порядка 100+ цветов, из-за скрипта игра будет тормозить ?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Мышь, клавиатура] Как добавить несколько цветов в один скрипт ?

Зависит от игры и того как реализован скрипт. Эти строки лишь пример как использовать.
 
Автор
L

Liman25

Новичок
Сообщения
11
Репутация
1
Re: [Мышь, клавиатура] Как добавить несколько цветов в один скрипт ?

Вот весь код:

Если вставлять между строками $CenterRH и $CenterShade я получил грубую ошибку при попытке включить скрипт.

Игра: APB Reloaded

Код:
Global $Autoshoot = 0
;  hot keys
Hotkeyset('{INSERT}', 'startAutoshoot') ; запуск автокликера
Hotkeyset('{DELETE}', "offtAutoshoot") ; остановка автокликера
; ----

$CenterX = @DesktopWidth / 2 ; Определяем центр экрана.
$CenterY = @DesktopHeight / 2 ; Определяем центр экрана.

$CenterRound = 200 ; От цетра паралейно будут расположенные палочки.
$CenterRW = 10 ; Ширина палочек.
$CenterRH = 200 ; Высота палочек.
$CenterColor = 0xf9cda0 ; Цвет который должны сканировать палочки.
$CenterShade = 0x30 ; Погрешность цвета.
$CenterMouse = 90 ; Отброс мышки для захвата.

Global $AimPalk = 0, $TempPX, $TempPY, $TempPW;

Hotkeyset('{F8}', 'startAimPalk') ; запуск аима (не работает нормально)
Hotkeyset('{F9}', "offtAimPalk") ; остановка аима

While 1
    If $Autoshoot = 1 then ;
        PixelSearch( 610, 490, 690, 550, 0xFF0000, 0x40, 1) ; координаты квадратика который определяет область срабатывания выстрела(каждый настраивает под своё разрешение)
        If Not @error then
            MouseClick('left')
        EndIf
    EndIf
    if $AimPalk = 1 Then
        $TempPX = $CenterX + $CenterRound;
        $TempPY = $CenterX - $CenterRound - $CenterRW;
        $TempPW = $CenterY - ($CenterRH / 2);
        PixelSearch( $TempPX, $TempPW, $TempPX+$CenterRW, $TempPW+$CenterRH, $CenterColor, $CenterMouse, 1);
        if not @error Then
            MouseMove(MouseGetPos(0)+$CenterMouse,MouseGetPos(1))
        EndIf
        PixelSearch( $TempPY, $TempPW, $TempPY+$CenterRW, $TempPW+$CenterRH, $CenterColor, $CenterMouse, 1);
        if not @error Then
            MouseMove(MouseGetPos(0)-$CenterMouse,MouseGetPos(1))
        EndIf
    EndIf
WEnd

Func offtAimPalk()
    $AimPalk = 0
EndFunc

Func startAimPalk()
    $AimPalk = 1
EndFunc

; function
Func startAutoshoot(); vkl
   $Autoshoot = 1
EndFunc ; end

Func offAutoshoot() ; vukl
   $Autoshoot = 0
EndFunc ; end
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Мышь, клавиатура] Как добавить несколько цветов в один скрипт ?

Переименуй тему в соответствии с правилами.

Скажи что ты хочешь делать, тупо искать реакцию прицела на попавшего под него юнита и найдя нужный цвет кликать мышкой?

А то я вообще не понимаю что ты пытаешься реализовать. Кстати по ABP Reloadet тут уже были скрипты
 
Автор
L

Liman25

Новичок
Сообщения
11
Репутация
1
Re: [Мышь, клавиатура] Как добавить несколько цветов в один скрипт ?

Это и есть тот скрипт, только я хочу расширить диапазон цветов на которые будет происходить щелчок ЛКМ. То есть там сейчас один красный цвет, а мне нужно добавить еще порядка 20+ цветов, потому что в апб цвет прицела полупрозрачный, и поэтому необходимо добавлять не только чисто красный цвет но еще и другие похожие.


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

Прощу прощения я не правильно сформулировал абсолютно всё! Сейчас я подправил как нужно, прошу помощи :-[
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Если правильно понял задачу то примерно так:
Код:
Global $Autoshoot = 0
;  hot keys
Hotkeyset('{INSERT}', 'startAutoshoot') ; запуск автокликера
Hotkeyset('{DELETE}', "offtAutoshoot") ; остановка автокликера
; ----

$CenterX = @DesktopWidth / 2 ; Определяем центр экрана.
$CenterY = @DesktopHeight / 2 ; Определяем центр экрана.

$CenterRound = 200 ; От цетра паралейно будут расположенные палочки.
$CenterRW = 10 ; Ширина палочек.
$CenterRH = 200 ; Высота палочек.
$CenterColor[3] = [0xf9cda0, 0xBA0714, 0xBB1518] ; Цвет который должны сканировать палочки.
$CenterShade = 0x30 ; Погрешность цвета.
$CenterMouse = 90 ; Отброс мышки для захвата.

Global $AimPalk = 0, $TempPX, $TempPY, $TempPW;

Hotkeyset('{F8}', 'startAimPalk') ; запуск аима (не работает нормально)
Hotkeyset('{F9}', "offtAimPalk") ; остановка аима

While 1
    If $Autoshoot = 1 then ;
        PixelSearch( 610, 490, 690, 550, 0xFF0000, 0x40, 1) ; координаты квадратика который определяет область срабатывания выстрела(каждый настраивает под своё разрешение)
        If Not @error then
            MouseClick('left')
        EndIf
    EndIf
    if $AimPalk = 1 Then
	for $i = 0 to Ubound($CenterColor, 1) -1
	        $TempPX = $CenterX + $CenterRound;
        	$TempPY = $CenterX - $CenterRound - $CenterRW;
        	$TempPW = $CenterY - ($CenterRH / 2);
        	PixelSearch( $TempPX, $TempPW, $TempPX+$CenterRW, $TempPW+$CenterRH, $CenterColor[$i], $CenterMouse, 1);
        	if not @error Then
        	    MouseMove(MouseGetPos(0)+$CenterMouse,MouseGetPos(1))
        	EndIf
        	PixelSearch( $TempPY, $TempPW, $TempPY+$CenterRW, $TempPW+$CenterRH, $CenterColor[$i], $CenterMouse, 1);
        	if not @error Then
        	    MouseMove(MouseGetPos(0)-$CenterMouse,MouseGetPos(1))
        	EndIf
	next
    EndIf
WEnd

Func offtAimPalk()
    $AimPalk = 0
EndFunc

Func startAimPalk()
    $AimPalk = 1
EndFunc

; function
Func startAutoshoot(); vkl
   $Autoshoot = 1
EndFunc ; end

Func offAutoshoot() ; vukl
   $Autoshoot = 0
EndFunc ; end


P.S. Автоита на компьютере у меня на этом не стоит, писал в простом блокноте, мб будут синтаксические ошибки :smile:
 
Автор
L

Liman25

Новичок
Сообщения
11
Репутация
1
Скомпилировал нормально, попробовал запустить скрипт, выдало вот эту ошибку:


image.png
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Всегда пользуйся этой командой:
Код:
Opt('MustDeclareVars', 1)

Код:
Opt('MustDeclareVars', 1) 

;  hot keys
Hotkeyset('{INSERT}', 'startAutoshoot') ; запуск автокликера
Hotkeyset('{DELETE}', "offtAutoshoot") ; остановка автокликера
Hotkeyset('{F8}', 'startAimPalk') ; запуск аима (не работает нормально)
Hotkeyset('{F9}', "offtAimPalk") ; остановка аима
; ----

Global $Autoshoot = 0
Global $CenterX = @DesktopWidth / 2 ; Определяем центр экрана.
Global $CenterY = @DesktopHeight / 2 ; Определяем центр экрана.
Global $CenterRound = 200 ; От цетра паралейно будут расположенные палочки.
Global $CenterRW = 10 ; Ширина палочек.
Global $CenterRH = 200 ; Высота палочек.
Global $CenterColor[3] = [0xf9cda0, 0xBA0714, 0xBB1518] ; Цвет который должны сканировать палочки.
Global $CenterShade = 0x30 ; Погрешность цвета.
Global $CenterMouse = 90 ; Отброс мышки для захвата.
Global $AimPalk = 0, $TempPX, $TempPY, $TempPW;

While 1
    If $Autoshoot = 1 then ;
        PixelSearch( 610, 490, 690, 550, 0xFF0000, 0x40, 1) ; координаты квадратика который определяет область срабатывания выстрела(каждый настраивает под своё разрешение)
        If Not @error then
            MouseClick('left')
        EndIf
    EndIf
    if $AimPalk = 1 Then
    for $i = 0 to Ubound($CenterColor, 1) -1
            $TempPX = $CenterX + $CenterRound;
            $TempPY = $CenterX - $CenterRound - $CenterRW;
            $TempPW = $CenterY - ($CenterRH / 2);
            PixelSearch( $TempPX, $TempPW, $TempPX+$CenterRW, $TempPW+$CenterRH, $CenterColor[$i], $CenterMouse, 1);
            if not @error Then
                MouseMove(MouseGetPos(0)+$CenterMouse,MouseGetPos(1))
            EndIf
            PixelSearch( $TempPY, $TempPW, $TempPY+$CenterRW, $TempPW+$CenterRH, $CenterColor[$i], $CenterMouse, 1);
            if not @error Then
                MouseMove(MouseGetPos(0)-$CenterMouse,MouseGetPos(1))
            EndIf
    next
    EndIf
WEnd

Func offtAimPalk()
    $AimPalk = 0
EndFunc

Func startAimPalk()
    $AimPalk = 1
EndFunc

; function
Func startAutoshoot(); vkl
   $Autoshoot = 1
EndFunc ; end

Func offAutoshoot() ; vukl
   $Autoshoot = 0
EndFunc ; end
 
Автор
L

Liman25

Новичок
Сообщения
11
Репутация
1
У меня в коде первым цветом который написан в строчке является 0xFF0000, далее 0xBA0714, так вот проблема в том что работает только первый цвет который написан в этой кодовой строке.. потому что при этом 0xBA0714 цвете, автошот должен производить выстрел по слегка свелым поездам или ящикам, но он этого не делает, то бишь работает только первый чисто красный цвет 0xFF0000.. я еще специально проверял каждый цвет в отдельном скрипте, вот на этот цвет 0xBA0714 автошот должен был стрелять по поездам и ящикам но он этого не делает и тут я понял, что работает только первый вписанный цвет в строку.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Да, возможно. Логика выстроена правильно, дальше все упирается в правильность ТЗ.
 
Автор
L

Liman25

Новичок
Сообщения
11
Репутация
1
А поподробнее ? Просто я изучаю delphi а не autoit :(


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

Да и хотел спросить возможно ли вообще такое реализовать ? То есть расширить диапазон искомых значений цвета ? Чтобы в попадании в прицел любого красного цвета, темных и светлых тонов происходил выстрел.
 
Верх