Помощь в улучшении кода Topic is solved

Помощь в написании скриптов
Astr413
Posts: 1
Joined: 03 Dec 2023, 15:19

Помощь в улучшении кода  Topic is solved

Post by Astr413 » 03 Dec 2023, 15:25

Code: Select all

 Он ищет пиксель в коробке и если находит его в определенной коробке то делает...
Хочу узнать можно ли мой код как то улучшить\переписать 

Code: Select all

WaterLimbs: 
    PixelSearch, Px, Py, 826, 498, 992, 605, 0xFFFF5BFF, 35, Fast RGB ; CL
    if (ErrorLevel = 0) {
        Sleep, 1 
        Sendinput, {%shootKey%}
        Sleep, 1
    } else {
        Sleep, 150
        PixelSearch, Px, Py, 1018, 378, 1221, 651, 0xFFFF5BFF, 35, Fast RGB ; CR
        if (ErrorLevel = 0) {
            GoSub, AimForCR
            Sleep, 10
            GoSub, CR
            Sleep, 1 
        } else {
            DllCall("mouse_event", uint, 1, int, -1140, int, 0, uint, 0, int, 0) ; left
            Sleep, 200
            PixelSearch, Px, Py, 800, 397, 1008, 641, 0xFFFF5BFF, 35, Fast RGB ; MID
            if (ErrorLevel = 0) {
                GoSub, AimForMID
                Sleep, 10 
                GoSub, MID
                Sleep, 1 
            } else {
                GoSub, AimForLONG
                Sleep, 10 
                GoSub, LONG
                Sleep, 1 
            }
        }
    }
return

mcl
Posts: 359
Joined: 04 May 2018, 16:35

Re: Помощь в улучшении кода

Post by mcl » 03 Dec 2023, 17:56

Astr413 wrote: Хочу узнать можно ли мой код как то улучшить\переписать
Если скрипт работает, то вполне неплохо написано. Три момента, на которые можно обратить внимание:
1. Стараться избегать излишней вложенности. Ваш код выполняет несколько последовательных проверок, для каждой предусмотрен свой набор действий. В таких случаях можно убрать вложенность полностью — код будет легче читать и изменять.
2. Типы аргументов DllCall обычно пишутся в кавычках.
3. Не уверен, что нужно указывать альфа-канал цвета для PixelSearch: первые FF можно убрать.
Ну и общие моменты, если скрипт работает не слишком стабильно: #KeyHistory 0, ListLines Off, SetBatchLines -1

Code: Select all

WaterLimbs:
	PixelSearch, Px, Py, 826, 498, 992, 605, 0xFF5BFF, 35, Fast RGB ; CL
	if (ErrorLevel = 0) {
		Sleep, 1
		Sendinput, {%shootKey%}
		Sleep, 1
		Return
	}

	; Not CL, keep trying
	Sleep, 150
	PixelSearch, Px, Py, 1018, 378, 1221, 651, 0xFF5BFF, 35, Fast RGB ; CR
	if (ErrorLevel = 0) {
		GoSub, AimForCR
		Sleep, 10
		GoSub, CR
		Sleep, 1
		Return
	}

	; Not CR, keep trying
	DllCall("mouse_event", "uint", 1, "int", -1140, "int", 0, "uint", 0, "int", 0) ; left
	Sleep, 200
	PixelSearch, Px, Py, 800, 397, 1008, 641, 0xFF5BFF, 35, Fast RGB ; MID
	if (ErrorLevel = 0) {
		GoSub, AimForMID
		Sleep, 10
		GoSub, MID
		Sleep, 1
		Return
	}

	; Not MID, we tried everything
	GoSub, AimForLONG
	Sleep, 10
	GoSub, LONG
	Sleep, 1
Return
github://oGDIp - GDI+ wrapper for AHK v1.1

Post Reply

Return to “Помощь”