Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pomoc] Bot i pętla


dragsm

Rekomendowane odpowiedzi

Opublikowano

Nie wiem czy doby dział z góry przepraszam. Mam taki problem otóż próbuje napisać bota do nostale. Napisałem już to co mnie obchodzi (na razie). Niestety program nie chce odczytać funkcji case. Autoit uczę się od niedawna. Proszę o pomoc dla żółtodzioba. :D

 

 

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Wybór Ataku", 229, 74, 302, 218)
GUISetBkColor(0x808080)
$Button1 = GUICtrlCreateButton("Spacja", 112, 0, 115, 73)
$Button2 = GUICtrlCreateButton("Z", 0, 0, 113, 73)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Case $Button1
while 1
Send("{space}")
Sleep(800)
send("{space}")
EndSwitch
WEnd
Case $Button2
while 1
Send("{z}")
Sleep(800)
send("{z}")
EndSwitch
WEnd

Opublikowano

Nawaliłeś EndSwitche w miejscach gdzie nie powinny być. EndSwitch starczy dać po ostatnim Case:

 

 

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Wybór Ataku", 229, 74, 302, 218)
GUISetBkColor(0x808080)
$Button1 = GUICtrlCreateButton("Spacja", 112, 0, 115, 73)
$Button2 = GUICtrlCreateButton("Z", 0, 0, 113, 73)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Button1
while 1
Send("{space}")
Sleep(800)
send("{space}")
WEnd

Case $Button2
while 1
Send("{z}")
Sleep(800)
send("{z}")
WEnd

EndSwitch
Wend

 

 

Opublikowano

Jeśli to nie off-top, to czy można mi pomoc jeszcze w dwóch rzeczach?

Po 1 jak odblokować przycisk "x"? (gdzieś to było, ale nie mogę znaleźć)

Po 2 co zrobić żeby była opcja przełączania pomiędzy ""z", a "spacją"?

Opublikowano

1. przycisk X powinien działać poprawnie

2. wyjaśnij troszkę o co ci chodzi ;]

Opublikowano

Po 1 jaki X na klawiaturze czy co? Nie jestem pewien ale może GUICtrlSetState($GUI_ENABLE), a jak chodzi o ten czerwony to powinien działać.

Po 2, zrób funkcję jedną dla "z", drugą dla "spacji". Możesz pokombinować z AdlibRegister oraz AdlibUnregister, ale najlepiej zrobić w GUI 2 radio buttony i zrobić waurnki, jeżeli button zaznaczony to opuścić obecną pętlę np. w funkcji z "z" i uruchomić funkcję, w której jest pętla ze spacją i na odwrót.

obraz24.png


Opublikowano

Tak chodziło mi o czerwony "x"(zamykanie okna) i działa do momentu wybory jednego z ataków. Co do buttonów, zrobiłem tak jak odpowiedziałeś, ale nadal nie mogę zmienić formy ataku. (regeneracja na razie pusta)

 

@tapne chodzi mi o to, że jak wybiorę spacje, i chce zmienić na "z", to nie zmienia tylko dalej wali spacją.

 

Nowy kod:

 

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("BotUni", 220, 155, 192, 124)
GUISetBkColor(0xC0C0C0)
$Tab1 = GUICtrlCreateTab(0, 0, 217, 153, BitOR($TCS_MULTILINE,$TCS_FIXEDWIDTH,$TCS_RAGGEDRIGHT,$TCS_TOOLTIPS,$TCS_FOCUSNEVER))
$TabSheet1 = GUICtrlCreateTabItem("Atak")
$Radio1 = GUICtrlCreateRadio("spacja", 8, 40, 129, 25)
$Radio2 = GUICtrlCreateRadio("z", 8, 72, 121, 25)
$TabSheet2 = GUICtrlCreateTabItem("Regeneracja")
GUICtrlSetState(-1,$GUI_SHOW)
$Checkbox1 = GUICtrlCreateCheckbox("Siadanie", 8, 24, 209, 65)
$Checkbox2 = GUICtrlCreateCheckbox("Przekąski/poty", 8, 64, 201, 65)
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Radio1
while 1
Send("{space}")
Sleep(800)
send("{space}")
WEnd

Case $Radio2
while 1
Send("{z}")
Sleep(800)
send("{z}")
WEnd

EndSwitch
Wend

Opublikowano

Miałeś zrobić funkcje. Jak chcesz wyjść z pętli? X nie działa, bo AutoIt nie jest wielowątkowy, więc jak jest w pętli i naciśniesz X to program się zamknie dopiero po wyjściu z pętli.

Funkcje tworzysz Func NazwaFunkcji(), wpisujesz instrukcje i kończysz EndFunc.

Uruchamiasz ją później wpisując NazwaFunkcji().

Z pętli możesz wyjść ExitLoop, możesz zrobić więc warunek, zobacz jakie wartości zwraca Radio gdy jest zaznaczony.

obraz24.png


Opublikowano

Jeśli to nie problem to czy mógłbyś mi wyjaśnić co, gdzie i jak? Nie chce, abyś wysłał gotowy skrypt, chce go dokończyć sam z twoją pomocą.

Opublikowano

Nie działa 8S

 

 

>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\FOKUS\Desktop\65.au3"

C:\Users\FOKUS\Desktop\65.au3 (46) : ==> "While" statement has no matching "Wend" statement.:

WEnd

 

>Exit code: 1 Time: 0.212

 

 

Opublikowano

Cała filozofia:

 

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Bot", 186, 106, 192, 124)
$Button1 = GUICtrlCreateButton("Z", 16, 16, 73, 33)
$Button2 = GUICtrlCreateButton("Spacja", 96, 16, 73, 33)
$Button3 = GUICtrlCreateButton("Stop", 16, 56, 73, 33)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
AdlibUnRegister("Spacja")
AdlibRegister("Zet", 800)
Case $Button2
AdlibUnRegister("Zet")
AdlibRegister("Spacja", 800)
Case $Button3
AdlibUnRegister("Zet")
AdlibUnRegister("Spacja")
EndSwitch
WEnd

Func Zet()
Send("{z}")
EndFunc ;==>Zet
Func Spacja()
Send("{space}")
EndFunc ;==>Spacja

 

Daj like.

obraz24.png


Opublikowano

Dzięki wielkie :D . Tylko kiedy chcialem dodac funkcje siedzenia to przestalo dzialac "czerwone X"

 

 

 

 

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1_1_1 = GUICreate("BotUni", 251, 180, 311, 180)
GUISetBkColor(0xC0DCC0)
$Tab1 = GUICtrlCreateTab(0, 0, 249, 177)
$TabSheet1 = GUICtrlCreateTabItem("Atak")
$Button1 = GUICtrlCreateButton("Atak Z", 5, 30, 123, 65)
GUICtrlSetFont(-1, 14, 400, 0, "Impact")
GUICtrlSetBkColor(-1, 0xA6CAF0)
$Button2 = GUICtrlCreateButton("Atak Spacja", 5, 102, 123, 65)
GUICtrlSetFont(-1, 14, 400, 0, "Impact")
GUICtrlSetBkColor(-1, 0xBFCDDB)
$Button3 = GUICtrlCreateButton("STOP", 133, 22, 99, 145)
GUICtrlSetFont(-1, 14, 400, 0, "Impact")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x008080)
$TabSheet2 = GUICtrlCreateTabItem("Siadanie")
$Button5 = GUICtrlCreateButton("STOP", 125, 54, 115, 113)
GUICtrlSetFont(-1, 14, 400, 0, "Impact")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x008080)
$Button6 = GUICtrlCreateButton("Co 5min", 5, 54, 115, 33)
GUICtrlSetFont(-1, 14, 400, 0, "Impact")
GUICtrlSetBkColor(-1, 0x008000)
$Button7 = GUICtrlCreateButton("Co 10min", 5, 94, 115, 33)
GUICtrlSetFont(-1, 14, 400, 0, "Impact")
GUICtrlSetBkColor(-1, 0x00FF00)
$Button8 = GUICtrlCreateButton("Co 15min", 5, 134, 115, 33)
GUICtrlSetFont(-1, 14, 400, 0, "Impact")
GUICtrlSetBkColor(-1, 0xC0DCC0)
$Siedzi = GUICtrlCreateLabel("Siedzi przec 40 sekund", 21, 30, 32, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$trzydziesci = GUICtrlCreateLabel("trzydziesci", 53, 30, 52, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$sekund = GUICtrlCreateLabel("sekund", 109, 30, 39, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$TabSheet3 = GUICtrlCreateTabItem("Przekąski")
GUICtrlSetState(-1,$GUI_SHOW)
$Przekaski = GUICtrlCreateLabel("Przekaski", 13, 30, 50, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$prosze = GUICtrlCreateLabel("prosze", 69, 30, 35, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$ustawic = GUICtrlCreateLabel("ustawic", 109, 30, 40, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$na = GUICtrlCreateLabel("na", 149, 30, 16, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$klawiszu = GUICtrlCreateLabel("klawiszu", 165, 30, 44, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$Q = GUICtrlCreateLabel("Q", 213, 30, 12, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$Button4 = GUICtrlCreateButton("STOP", 125, 54, 115, 113)
GUICtrlSetFont(-1, 14, 400, 0, "Impact")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x008080)
$Button9 = GUICtrlCreateButton("Co 5min", 5, 54, 115, 33)
GUICtrlSetFont(-1, 14, 400, 0, "Impact")
GUICtrlSetBkColor(-1, 0x000080)
$Button10 = GUICtrlCreateButton("Co 10min", 5, 94, 115, 33)
GUICtrlSetFont(-1, 14, 400, 0, "Impact")
GUICtrlSetBkColor(-1, 0x0000FF)
$Button11 = GUICtrlCreateButton("Co 15min", 5, 134, 115, 33)
GUICtrlSetFont(-1, 14, 400, 0, "Impact")
GUICtrlSetBkColor(-1, 0x99B4D1)
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
AdlibUnRegister("Spacja")
AdlibRegister("Zet", 800)
Case $Button2
AdlibUnRegister("Zet")
AdlibRegister("Spacja", 800)
Case $Button3
AdlibUnRegister("Zet")
AdlibUnRegister("Spacja")
Case $Button6
AdlibUnRegister("siad15")
AdlibUnRegister("siad10")
AdlibRegister("siad5", 800)
Case $Button7
AdlibUnRegister("siad5")
AdlibUnRegister("siad15")
AdlibRegister("siad10", 800)
Case $Button8
AdlibUnRegister("siad5")
AdlibUnRegister("siad10")
AdlibRegister("siad15", 800)
Case $Button5
AdlibUnRegister("siad5")
AdlibUnRegister("siad10")
AdlibUnRegister("siad15")
case $Button9
AdlibUnRegister("pot2")
AdlibUnRegister("pot3")
AdlibRegister("pot1", 800)
case $Button10
AdlibUnRegister("pot1")
AdlibUnRegister("pot3")
AdlibRegister("pot2", 800)
case $Button11
AdlibUnRegister("pot1")
AdlibUnRegister("pot2")
AdlibRegister("pot3", 800)
case $button4
AdlibUnRegister("pot1")
AdlibUnRegister("pot2")
AdlibUnRegister("pot3")
EndSwitch
WEnd
Func Zet()
Send("{z}")
EndFunc ;==>Zet
Func Spacja()
Send("{space}")
EndFunc ;==>Spacja
Func siad5()
Sleep(300000)
send("{c}")
Sleep(30000)
Send("{c}")
EndFunc ;==>siadanie5
Func siad15()
Sleep(900000)
send("{c}")
Sleep(30000)
Send("{c}")
EndFunc ;==>siadanie10
func siad10()
Sleep(600000)
send("{c}")
Sleep(30000)
Send("{c}")
EndFunc ;==>siadanie15
func pot1()
sleep(300000)
Send("{q}")
EndFunc
func pot2()
sleep(600000)
Send("{q}")
EndFunc
func pot3()
sleep(900000)
Send("{q}")
EndFunc

 

 

Opublikowano

Po co dajesz sleep? Sleep jest już tak jakby przy AdlibRegister("pot3", 800) - to 800 to czas co jaki ma być wykonywana funkcja.

AdlibUnRegister("pot3") służy do wyłączenia, czyli funkcja przestaje być wykonywana, czyli kiedy zaczynasz jakąś funkcję to musisz wyłączyć pozostałe chyba, że chcesz żeby obie wykonywane były na przemian. Jak dajesz sleep to dopóki sleep trwa to nic nie działa. Przy sleep(900000) program będziesz mógł zamknąć praktycznie co 15 minut przez okres 800ms.

obraz24.png


Opublikowano

$trzydziesci = GUICtrlCreateLabel("trzydziesci", 53, 30, 52, 17)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$sekund = GUICtrlCreateLabel("sekund", 109, 30, 39, 17)

Co to za szalony pomysł by każde słowo umieszczać w osobnym labelu ? :D

Staraj się żeby kod zajmował jak najmniej linijek bo potem jak dorobisz kolejne rzeczy do gui to się nie połapiesz ;]

Opublikowano

Ja się połapie, ale co zrobić by zamknąć okno bo po dodaniu funkcji siadania i potowania nie chce się zamknąć okno (po włączeniu samego ataku okno się zamyka)

 

dodam, że "STOP" w siadniu i pocie nie działa.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...