Найти - Пользователи
Полная версия: Пиши скрипт, прошу помощи!
Начало » Python для новичков » Пиши скрипт, прошу помощи!
1 2
Kadony
 import win32gui
import pyautogui
def get_pixel_colour(i_x = 1051, i_y = 903):
	i_desktop_window_id = win32gui.GetDesktopWindow()
	i_desktop_window_dc = win32gui.GetWindowDC(i_desktop_window_id)
	long_colour = win32gui.GetPixel(i_desktop_window_dc, i_x, i_y)
	i_colour = int(long_colour)
	return (i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff)
def inventory(i_x = 1575, i_y = 439):
	i_desktop_window_id = win32gui.GetDesktopWindow()
	i_desktop_window_dc = win32gui.GetWindowDC(i_desktop_window_id)
	long_colour = win32gui.GetPixel(i_desktop_window_dc, i_x, i_y)
	i_colour = int(long_colour)
	return (i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff)
def check(i_x = 784, i_y = 1069):
	i_desktop_window_id = win32gui.GetDesktopWindow()
	i_desktop_window_dc = win32gui.GetWindowDC(i_desktop_window_id)
	long_colour = win32gui.GetPixel(i_desktop_window_dc, i_x, i_y)
	i_colour = int(long_colour)
	return (i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff) 
def check_inventory(): 	
	if inventory() == (253, 94, 26):
		pyautogui.press('i')
		pyautogui.click(550, 414, clicks=3, interval=0.3)
		pyautogui.click(550, 532, clicks=3, interval=0.3)
def fishing():
		if get_pixel_colour() == (254, 0, 0):
			pyautogui.click(550, 414, clicks=3, interval=0.1)
			pyautogui.click(750, 414, clicks=3, interval=0.1)
def main():
	while check() == (100, 234, 43):
		if inventory() == (253, 94, 26):
			check_inventory()
		else:
			pass
		if get_pixel_colour() == (254, 0, 0):
			fishing()
		else:
			pass


На псевдокоде моя программа должна выглядить вот так -
Если значение инвентаря не равно (253,94,26)
то нажимается клавиша i И 6 кликов
Потом если get_pixel_colour равен == 254,0,0
то посылаем шесть кликов
Потом если чек равен (100,234,43)
ТО возвращается к проверке инвентаря
Иначе возвращается к get_pixel_colour


как мне сделать скрипт который я написал на ахк , переписать на питоне
 Label10:
	BlockInput, SendAndMouse
	SendInput, {sc17}
	Label20:	
	MouseGetPos, 1242, 420
	PixelGetColor, color, 1242, 420, alt
	Var40 = %color%
	if ( var40 = 0xFFFFFF  )
	{	
		Random, rand10, 200, 600
		sleep 500+rand10
		MouseGetPos, 1580, 440
		PixelGetColor, color, 1580, 440, alt
		Var10 = %color%
		if ( var10 = 0x2A68FC  ) | ( var10 = 0x1C5FFC  ) | ( var10 = 0x1C60FC  ) | ( var10 = 0x1C61FC  )
		{
			SoundBeep, 750, 500
			SendInput, {Numpad3}
			BlockInput, Default
		}
		else
		{
			Click Left 550,394 , 
			 Random, rand20, 50, 100
			 sleep, 200+rand20
			Click Left 550, 520,
			BlockInput, Default
			sleep, 5000
			PixelGetColor, answer, 812, 492
			if ( answer = 0xFFFFFF)
			{
					SoundBeep, 750, 500
					sleep, 1000
			}
			Label30:
			MouseGetPos, 1051, 898
			PixelGetColor, color, 1051, 898, alt
			Var20 = %color%
			if ( var20 = 0x0000FF  )
			{
				Random, rand3, 5, 10
				Send {Click}
				sleep 70+rand3
				Send {Click}
				sleep 70+rand3
				Send {Click}
				sleep 70+rand3
				Send {Click}
				sleep 40+rand3
				Goto, Label30	
			} 
			else
			{         
				MouseGetPos, 624, 1024
				PixelGetColor, color, 624, 1024, alt
				Var30 = %color%
				if ( var30 = 0x00FF4E  )
				{
					Goto, Label10
				}
				else
				{
					Goto, Label30		
				}
			}	
		}
	}
	else
	{
		Goto, Label20
	}
AD0DE412
не чего не пронятно где гото то
Kadony
AD0DE412
не чего не пронятно где гото то
Я убрал гото , я прошу мне помочь написать скрипт который будет зациклен
Без goto
Я написал на псевдокоде что я хочу сделать!
Kadony
Просто голова лопается , КАК ВООБЩЕ МОЖНО БЕЗ ГОТО ПИСАТЬ КОД????
FishHook
Kadony
Просто голова лопается , КАК ВООБЩЕ МОЖНО БЕЗ ГОТО ПИСАТЬ КОД????
да собственно, так же как с гото, только без гото
AD0DE412
так вам что зациклить все это надо
 i = 0 
while True:
    print(i)
    i += 1
    if i == 10:
        break

https://python-scripts.com/loops-for-while

ps ваш псевдокод
 def variant1():
	if значение_инвентаря != (253,94,26):
		нажимается_клавиша_i()
		6_кликов()
def variant2():
	if get_pixel_colour равен == 254,0,0:
		6_кликов()
if чек_равен == (100,234,43):
	variant1():
else:
	def variant2():
Kadony
AD0DE412
так вам что зациклить все это надо
СПАСИБО шеф
Kadony
AD0DE412
так вам что зациклить все это надо
https://imgur.com/a/1vKahAN
Че делать пишет {
“resource”: “/CUsers/Lose/OneDrive/Desktop/про/ffff.py”,
“owner”: “python”,
“code”: “syntax-error”,
“severity”: 8,
“message”: “unexpected unindent (<unknown>, line 36)”,
“source”: “pylint”,
“startLineNumber”: 36,
“startColumn”: 1,
“endLineNumber”: 36,
“endColumn”: 1
}
Kadony
 import win32gui
import pyautogui
def get_pixel_colour(i_x = 1051, i_y = 903):
	i_desktop_window_id = win32gui.GetDesktopWindow()
	i_desktop_window_dc = win32gui.GetWindowDC(i_desktop_window_id)
	long_colour = win32gui.GetPixel(i_desktop_window_dc, i_x, i_y)
	i_colour = int(long_colour)
	return (i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff)
def inventory(i_x = 1575, i_y = 439):
	i_desktop_window_id = win32gui.GetDesktopWindow()
	i_desktop_window_dc = win32gui.GetWindowDC(i_desktop_window_id)
	long_colour = win32gui.GetPixel(i_desktop_window_dc, i_x, i_y)
	i_colour = int(long_colour)
	return (i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff)
def check(i_x = 784, i_y = 1069):
	i_desktop_window_id = win32gui.GetDesktopWindow()
	i_desktop_window_dc = win32gui.GetWindowDC(i_desktop_window_id)
	long_colour = win32gui.GetPixel(i_desktop_window_dc, i_x, i_y)
	i_colour = int(long_colour)
	return (i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff) 
x = 1
while x == 2: /// Я подразумивал так что , оно будет работать пока х не станет равен 2
	pyautogui.press('i')
	if inventory() == (262, 95, 28): // х становиться равен 2 если условие верно
		x += 1
	else: // иначе делаются действия которые способствуют появлению значения ( 262, 95, 28)
		pyautogui.click(x=550, y=414, interval=0.3)
		pyautogui.click(x=550, y=532, interval=0.3)
		while check() == (78, 255, 0): /// тут я подразумевал что будет повторяться пока check не примит значение 
			if get_pixel_colour() == (255, 0, 0):
				pyautogui.click(x=1053, y=903, clicks=3200)

Проблема в том что когда я запускаю прогу, ничего не происходит просто . Кто то обьясните мне как работает пожалуйста , я глупый.
PEHDOM
Kadony
Я подразумивал так что , оно будет работать пока х не станет равен 2
Нет, оно будет работать работает пока х равно 2, у тебя x равно 1, вот цикл и не запускаеится.
сделай например
 while x < 2:
Kadony
тут я подразумевал что будет повторяться пока check не примит значение
опять же нет, все с точнстью до наоборот, чтбы работало пока чек не примет нужное значение:
 while check() != (78, 255, 0):
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB