Что нового

в скрипте большое кол-во функций как упростить

general66

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

Код:
MouseClick('left',1,1,1) ; основной переход
		MouseClick('left',12,12,1) ; переход в подраздел
				MouseClick('left',121,121,1) ; переход в подраздел раздела
		MouseClick('left',13,13,1) ; переход в подраздел
				MouseClick('left',131,131,1) ; переход в подраздел раздела
		MouseClick('left',14,14,1) ; переход в подраздел
				MouseClick('left',141,141,1) ; переход в подраздел раздела


я это действие разбил на функции в виду своей не опытности
и у меня получилось:

Код:
_1()
_3()
; следующие действие
... ; единоразовые не повторяющиеся действия
_1()
_2()
; следующие действие
... ; единоразовые не повторяющиеся действия
_func()
Func _func()
_1()
_3()
_2()
_4()
EndFunc

Exit

Func _1()
MouseClick('left',1,1,1)  ; основной переход
EndFunc
Func _2()
		MouseClick('left',12,12,1)
				MouseClick('left',121,121,1) ; переход в подраздел раздела
EndFunc
Func _3()
		MouseClick('left',13,13,1) ; переход в подраздел
EndFunc
Func _4()
		MouseClick('left',14,14,1)
				MouseClick('left',141,141,1) ; переход в подраздел раздела
EndFunc


собственно все работает но очень много функций наплодилось подскажите как сделать проще чтоб не плодить сущьности? возможно ли скажем одну цепочку действий вместе с ветвлениями загнать в массив и при необходимости вызывать только исполнение необходимого перехода, ну или как то по другому?
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
А вы чего хотите достичь ? уменьшить код или просто иметь одну функцую?

Вапще в я в данном коде даже не вижу смысла использовать функции т.к. длинна ваших фунция не сильно больше длинны вызова функции

например использовать

Код:
_3()

Func _3()
        MouseClick('left',13,13,1) ; переход в подраздел
EndFunc

както безсмыслено...
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Это

Код:
MouseClick('left', 1, 1, 1)
MouseClick('left', 12, 12, 1)
MouseClick('left', 121, 121, 1)
MouseClick('left', 13, 13, 1)
MouseClick('left', 131, 131, 1)
MouseClick('left', 14, 14, 1)
MouseClick('left', 141, 141, 1)


заменяем на

Код:
Dim $XY[7][2] = [[1, 1], [12, 12], [121, 121], [13, 13], [131, 131], [14, 14], [141, 141]]
For $i = 0 To 6
	MouseClick('left', $XY[$i][0], $XY[$i][1], 1)
Next
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
winstan [?]
както безсмыслено...

приведенный выше код максимально изменен и упрощен, чтоб не пихать на форум 100500 строк кода в котором необходимо разбираться...

OffTopic:
если кому то что то надо ,значит для кого то в этом есть смысл:smile:
 
Верх