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

Prośba o naprawę skryptu


Rekomendowane odpowiedzi

Opublikowano

Witam. To znowu ja :)

 

Otóż pracuję nad nową wersją bota do NosTale (na razie tylko dla siebie go robie) i chcę, aby gdy kliknie się Bootuj, bot przeczytałby dane ze swojego GUI (Chekbox'y) i wykorzystał te dane. Próbowałem sam, ale no znacie mnie :D nie kumam za bardzo if'ów. To proszę o pomoc. Opiszę to mniej więcej tak ja bot ma działać:

 

Włączona aplikacja ->Wybieranie funcji (Chekbox'y) -> Kliknięcie przycisku Bootuj -> Czytanie danych z GUI i wykorzystanie ich w praktyce (loot- wciskanie znaku ` , spacja to wciskanie spacji i atak drugorzędną to wciskanie Z)

 

 

Oto skrypt :

 

 
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("NochalBot v2 by JDaniel1", 351, 191, 302, 210)
$Button1 = GUICtrlCreateButton("Bottuj", 16, 8, 113, 57)
$Button2 = GUICtrlCreateButton("Wyjscie", 152, 8, 81, 25)
$Button3 = GUICtrlCreateButton("Strona mpc.", 240, 8, 81, 25)
$Group1 = GUICtrlCreateGroup("Dane", 8, 72, 305, 97)
$Checkbox1 = GUICtrlCreateCheckbox("Atakuj spacją (jesli nie to będzie atak bronią drugorzędną-Z)", 16, 96, 297, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Zbieraj loot", 16, 120, 97, 17)
$Checkbox3 = GUICtrlCreateCheckbox("Buffy on (9 i 0)", 16, 144, 97, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
 
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            $atak= GUICtrlRead ($Checkbox1)
            $loot= GUICtrlRead ($Checkbox2)
            If $atak = 1 Then
                If $loot = 1 Then
                TrayTip ( "NochalBot v2", "Atak Spacją i loot na nieaktywnym oknie za 5 sekund", 5000)
                Sleep (5000)
                TrayTip ("NochalBot v2", "Bot rozpoczął atak", 1500)
                Run ("C:/Documents and Settings/All users/Buffy.au3")
                While 1
                ControlSend ( "NosTale", "", "", "{Space}" )
                Sleep ( 300 )
                ControlSend ( "NosTale", "", "", "{`}" )
                Sleep ( 300 )
                WEnd
            EndIf
 
                If $loot = 0 Then
                TrayTip ( "NochalBot v2", "atak spacją nie loot, na nieaktywnym oknie za 5 sekund", 5000)
                Sleep (5000)
                TrayTip ("NochalBot v2", "Bot rozpoczął atak", 1500)
                While 1
                ControlSend ( "NosTale", "", "", "Z" )
                Sleep ( 300 )
                WEnd
            EndIf
            EndIf
 
 
If $atak = 0 Then
    If $loot = 0 Then
        TrayTip ( "NochalBot v2", "Atak drugoręczną nie loot, na nieaktywnym oknie za 5 sekund", 5000)
                Sleep (5000)
                TrayTip ("NochalBot v2", "Bot rozpoczął atak", 1500)
                While 1
                ControlSend ( "NosTale", "", "", "Z" )
                Sleep ( 300 )
                WEnd
            EndIf
    If $loot = 1 Then
        TrayTip ( "NochalBot v2", "Atak drugorzędną z loot na nieaktywnym oknie za 5 sekund", 5000)
                Sleep (5000)
                TrayTip ("NochalBot v2", "Bot rozpoczął atak", 1500)
                While 1
                ControlSend ( "NosTale", "", "", "Z" )
                Sleep ( 300 )
                ControlSend ("NosTale", "","", "{`}")
WEnd
EndIf
EndIf
EndSwitch
WEnd
 

Tysiące lat wojen, ani jednego dnia pokoju,

pytam czy to skończy się.

 

Zegarek BB

Weteran
Opublikowano


If GUICtrlRead($CheckBox) = $GUI_CHECKED Then ;jeżeli checkbox jest zaznaczony

;co ma robić

Endif

1329036830-U154499.png
Opublikowano

Nie chce mi się ogarniać tego, ale myślę, że to będzie dobre rozwiązanie:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 437, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 176, 128, 249, 97)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			While 1
				;Tutaj twoje instrukcje warunkowe
				$nMsg = GUIGetMsg()
				Switch $nMsg
					Case $GUI_EVENT_CLOSE
						Exit
					Case $Button1
						ExitLoop
				EndSwitch
			WEnd
	EndSwitch
WEnd

Po prostu, po kliknięciu button'a wchodzisz w kolejną pętlę, i dajesz w niej swoje instrukcje, jak chcesz stop to jeszcze raz klikasz na button.

If GUICtrlRead($Checkbox1) == 1... też może być.

obraz24.png


Opublikowano

co do checkboxów:

If Guictrlread($checkbox)=$Gui_checked Then
funkcja

po co tyle if'ów jeśli masz tylko 2 możliwości np. $atak=1 i $atak=0 to użyj else

4758463064.png

 

Opublikowano

Dzięki C.J działa. Jakby Mod mógł zamknąć ten temat byłbym wdzięczny.

 

EDIT: Proszę o kolejną pomoc. Gdy wybieram dwie podane funkcje to bot wykonuje tylko pierwszą wiem, że to pętla nieskończona, ale chcę, aby działały wszystkie podane opcje, jak ktoś wybierze je wszystkie. Proszę o pomoc.

Tysiące lat wojen, ani jednego dnia pokoju,

pytam czy to skończy się.

 

Zegarek BB

Opublikowano

Mógłbyś bardziej to opisać? Albo podać jakiś przykład? Byłbym wdzięczny.

Tysiące lat wojen, ani jednego dnia pokoju,

pytam czy to skończy się.

 

Zegarek BB

Opublikowano

Co tu opisywać.

Podepnij się pod GUI tym, tam gdzie masz komentarz wrzuć warunki, If GUICtrlRead($Checkbox1) == 1 Then... rób coś tam:

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
While 1
;Tutaj twoje instrukcje warunkowe
$nMsg
= GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
ExitLoop
EndSwitch
WEnd
EndSwitch
WEnd

obraz24.png


Opublikowano

Zrobię to jutro i dam EDITA. Nie rozumiałem o co tobie biega, teraz już wiem.

 

EDIT: Działa thx wszystkim.

Tysiące lat wojen, ani jednego dnia pokoju,

pytam czy to skończy się.

 

Zegarek BB

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...