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

[Problem] Napisany przeze mnie skrypt nie działa. Proszę o poprawę


Rekomendowane odpowiedzi

Opublikowano

#NoTrayIcon

 

#include <ButtonConstants.au3>

#include <GUIConstantsEx.au3>

#include <StaticConstants.au3>

#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=c:\users\admin\documents\projekt.kxf

$Form1_1 = GUICreate("0bot", 478, 358, 350, 230)

GUISetBkColor(0xC8C8C8)

$Button1 = GUICtrlCreateButton("Start", 56, 112, 209, 73)

GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

$Button2 = GUICtrlCreateButton("Pause", 56, 208, 209, 73)

GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

$Label2 = GUICtrlCreateLabel("Simple macro to Dragon Ball Legend", 88, 40, 321, 29)

GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")

$Label3 = GUICtrlCreateLabel("by Oski ", 400, 328, 75, 29)

GUICtrlSetFont(-1, 12, 400, 2, "Segoe Script")

$Group1 = GUICtrlCreateGroup("Choose Spell", 272, 112, 145, 169)

GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")

GUICtrlCreateGroup("", -99, -99, 1, 1)

$Radio1 = GUICtrlCreateRadio("Bukujutsu", 288, 152, 113, 33)

GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

$Radio2 = GUICtrlCreateRadio("Cube Fade", 288, 192, 121, 33)

GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

$Radio3 = GUICtrlCreateRadio("None", 288, 232, 113, 33)

GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###

 

 

$Start = 0

 

While 1

$nMsg = GUIGetMsg()

Switch $nMsg

Case $GUI_EVENT_CLOSE

Exit

Case $Button1

$Start = 1

Case $Button2

$Start = 0

EndSwitch

If $Start == 1 Then

Button1()

EndIf

 

If GUICtrlRead($Radio1) == 1 Then

ControlSend("Tibia", '', '', '{F1}')

Sleep (25000)

EndIf

WEnd

 

 

Func Button1()

 

ControlSend("Tibia", '', '', '{UP}')

 

Sleep(40)

 

ControlSend("Tibia", '', '', '{DOWN}')

 

Sleep(100)

EndFunc ;==>Button1

 

 

 

 

  • Odpowiedzi 69
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Z tymi sleepami w funkcji Button1() będziesz musiał podobnie tylko żeby wychodziło na ten czas z pętli:

 

#NoTrayIcon

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#region ### START Koda GUI section ### Form=c:\users\admin\documents\projekt.kxf
$Form1_1 = GUICreate("0bot", 478, 358, 350, 230)
GUISetBkColor(0xC8C8C8)
$Button1 = GUICtrlCreateButton("Start", 56, 112, 209, 73)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Button2 = GUICtrlCreateButton("Pause", 56, 208, 209, 73)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Simple macro to Dragon Ball Legend", 88, 40, 321, 29)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("by Oski ", 400, 328, 75, 29)
GUICtrlSetFont(-1, 12, 400, 2, "Segoe Script")
$Group1 = GUICtrlCreateGroup("Choose Spell", 272, 112, 145, 169)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Radio1 = GUICtrlCreateRadio("Bukujutsu", 288, 152, 113, 33)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Radio2 = GUICtrlCreateRadio("Cube Fade", 288, 192, 121, 33)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Radio3 = GUICtrlCreateRadio("None", 288, 232, 113, 33)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

$Timer1 = 0
$Start = 0

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			$Start = 1
		Case $Button2
			$Start = 0
	EndSwitch
	If $Start == 1 Then
		Button1()
	EndIf

	If GUICtrlRead($Radio1) == 1 And TimerDiff($Timer1) >= 25000 Then
		MsgBox(0, "", "")
		ControlSend("Tibia", '', '', '{F1}')
		$Timer1 = TimerInit()
	EndIf
WEnd


Func Button1()

	ControlSend("Tibia", '', '', '{UP}')


	Sleep(40)

	ControlSend("Tibia", '', '', '{DOWN}')

	Sleep(100)
EndFunc   ;==>Button1 

Najlepiej zrób oddzielny program dla każdej funkcji i jeden program główny sterujący tym wszystkim, zamykający i uruchamiający odpowiednie programy zamiast funkcji. Mogą się komunikować przez pliki .ini (IniRead, IniWrite) albo przez lokalne TCP albo jeszcze inaczej.

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Opublikowano

Dzięki śliczne, zaraz przetestuję i popatrzę.

 

Najlepiej zrób oddzielny program dla każdej funkcji i jeden program główny sterujący tym wszystkim, zamykający i uruchamiający odpowiednie programy zamiast funkcji. Mogą się komunikować przez pliki .ini (IniRead, IniWrite) albo przez lokalne TCP albo jeszcze inaczej.

 

To już jest dla mnie czarna magia. Szczerze mówiąc z tym Sobie nie radziłem. Muszę jakieś tutoriale poczytać i wgl. zagłębić w tym moją wiedzę.

 

Mam pytanko. Czy tym programem osiągnę to czego chcę.

Np. Chodzi mi o coś takiego:

http://i45.tinypic.com/4v2zo7.jpg

 

Czy jest możliwe osiągnięcie takiego czegoś? To akurat jest w delphi robione, jednak zanim załapię cokolwiek w delphi to miną lata.

 

Teraz lipa wyszła, bo muszę co pare sekund klikać OK. Owszem, mogę zamknąć bota kiedy chcę, ale co chwila okienko wyskakuje, które muszę zatwierdzić ;/

Spoko. Żeby raz wyszło np. "bukujutsu has been selected" i później dało spokój to ok. Ale to wyskakuje co chwila ;/

 

 

Usunąłem

MsgBox(0, "", "")

pod radio. Funkcjonuje bez tego :D dzięki.

 

 

 

Agent K jesteś wielki!!

Wszystko pięknie, świetnie działa.

Postaram się też ogarnąć te sleepy w buttonach i zrobić to tak jak było w radioboxach.

 

 

If GUICtrlRead($Radio1) == 1 And TimerDiff($Timer1) >= 25000 Then

 

ControlSend("Tibia", '', '', 'bukujutsu')

Sleep(20)

ControlSend("Tibia", '', '', '{Enter}')

 

$Timer1 = TimerInit()

EndIf

 

If GUICtrlRead($Radio2) == 1 And TimerDiff($Timer2) >= 10000 Then

 

ControlSend("Tibia", '', '', 'cube fade')

Sleep(20)

ControlSend("Tibia", '', '', '{Enter}')

 

$Timer2 = TimerInit()

EndIf

 

 

Tak to mam teraz ;D

 

Mam jednak pytanie. Bo to wpisuje mi do gry po prostu ''bukujutsu//cube fade'', jednak czy da rade zrobić, by mi to jakoś zautomatyzowało to?

 

Chodzi mi o to, żeby nie było widać w grze że mi to wpisuje to bukujutsu. Np. gdy rozmawiam z kimś i piszę "ala ma kota" to może mi wpisać bukujutsu i będzie to wyglądać tak "ala ma kobukujutsu"

 

chodzi mi o zautomatyzowanie tego, mam nadzieję że idzie mnie zrozumieć xD Słyszałem, że da się tak zrobić właśnie :D

 

 

Opublikowano

Jeżeli chcesz to zrobić całkiem w tle to poczytaj o Memory.au3 ale nie wiem czy dasz radę.

 

Co do tego: http://tinypic.com/view.php?pic=4v2zo7&s=6

To o co pytasz? Bo jeżeli o okienko to da się je zrobić w AutoIt, a jeżeli o funkcje to nie wiem bo nie znam tej gry.

 

Ten MsgBox(0, "", "") to chciałem sprawdzić jak działa program.

Właściwie to pierwsza rzecz, którą powinieneś się nauczyć.

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Opublikowano

Poczytam o Memory.au3, dzięki :D

 

Co do tego:

http://tinypic.com/view.php?pic=4v2zo7&s=6

 

To nie chodzi mi o jakieś funkcje (przynajmniej na początku). Chodzi mi o to czy jest możliwość zaprogramować AutoIt tak, by czytał mój nick (name) w grze, liczbe życia/many, skille (jakieś tam umiejętności jak walka mieczem itp). Wszystko jest na zdjęciu. Jest tam okienko wraz z umiejętnościami, które są przedstawione w okienku w grze - na lewo od okna programu.

 

 

Opublikowano

Tak, do tego również posłuży Ci biblioteka Memory.au3.

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Opublikowano

Dzięki śliczne :D

 

Powiedz mi. Chcę zrobić 2 strony w moim bocie. Np. Na jednej to Start, Pause, a na drugiej te czary (bukujutsu, cube fade, oraz anti kick który właśnie stworzyłem).

Te strony to raczej w gui?

 

 

Opublikowano

Tak w KODA (zakładka Win32, drugie od prawej) dodajesz sobie coś takiego jak Tab.

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Opublikowano

Up próbowałem i nie jestem pewny czy sie da

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

Bo się nie da:

Only Button, Label, Checkbox, Group, Radio, Edit, Input, List, Listview, ListviewItem, Treeview, TreeviewItem, Graphic, Progress, Slider and Combo controls can currently be colored.

Lepiej już dać w tym miejscu jakąś grafikę czy coś.

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Opublikowano

czyli o ile dobrze wnioskuję mogę po prostu stworzyć szare tło np. w paincie i tam wklikać :D wtedy będzie efekt taki jaki chciałem, hahaha ;D

 

 

Opublikowano

Może nie do końca, lepiej żeby bot działał, a nie miał ładne GUI - to też ważne ale bez przesady.

AutoIt nie ma jakiś dodatkowych bibliotek graficznych do GUI.

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Opublikowano

Okej. Da się jakoś przerzucić mój kod SCiTE na kode, żeby edytować? Czy muszę ekstra to robić numerkami w kodzie?

Da się jakoś usunąć tło napisów?

 

 

Opublikowano

Eeee jakie tło napisów, konkretnie?

Bardziej Ci się opłaca raczej zrobić to od nowa, przecież to kilka minut zrobić GUI w KODA. Chyba, że istnieje jakiś specjalny program, który zamieni twój kod GUI na plik .kxf.

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Opublikowano

chodzi o to, że jak robię napisy to one mają jakieś tam tło. Np. jest to napis o treści "napis" i ma szare tło. Taki prostokąt

 

 

Opublikowano

możesz użyć komendy aby to zmienić na kolor GUICtrlSetColor bodajże (z głowy) - nie wiem jak z przezroczystoscią

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

o tej zmianie koloru to wiem :D Nie wiem tylko jak z przezroczystością, ale przeżyję to.

 

Ogarnia ktoś wychodzenie z pętli?

Opiszę to...

Załóżmy - mam funkcję

If GUICtrlRead($Checkbox1) == 1 And TimerDiff($Timer3) >= 840000 Then

 

ControlSend("Tibia", '', '', '{CTRLDOWN}' & '{DOWN}' & '{CTRLUP}')

Sleep(10)

ControlSend("Tibia", '', '', '{CTRLDOWN}' & '{UP}' & '{CTRLUP}')

 

$Timer3 = TimerInit()

EndIf

Opcje polega na tym, że gdy zaznaczę checkboxa, to wtedy w grze program jakby wciśnie ctrl down + ctrl up i za 14 min znowu.

Nawet jak odznaczę tego checkboxa i zaznaczę na nowo to i tak dopiero po 14 minutach się to zrobi.

 

Potrzebuję jakiejś komendy, która by pozwoliła na to, że gdy odznaczę tą opcję i zaznaczę na nowo to znowu zacznie działać (nie będę musiał czekać 14 min, lub zamykać program).

Próbowałem ExitLoop, bo po prostu myślałem że mi wyjdzie z pętli jakby. A to tak naprawdę wychodzi z pętli w ten sposób, że gasi program xD

 

 

aah.. jeszcze jedna rzecz nad którą kminiłem bardzo długo.

załóżmy mam funkcję właśnie tą co wysłałem. Działa ona po zaznaczeniu radioboxa. Opisałem jej działanie..

Jednak chciałbym by np. ona działała nie po zaznaczeniu samego radio boxa, a po zaznaczeniu radio boxa + wciśnięcia buttonu Start.

 

np.

func button1

if checkbox1 selected then

IGUICtrlRead($Checkbox1) == 1 And TimerDiff($Timer3) >= 840000 Then

 

ControlSend("Tibia", '', '', '{CTRLDOWN}' & '{DOWN}' & '{CTRLUP}')

Sleep(10)

ControlSend("Tibia", '', '', '{CTRLDOWN}' & '{UP}' & '{CTRLUP}')

 

$Timer3 = TimerInit()

EndIf

EndFunc

 

 

Opublikowano

Spróbuj GUICtrlSetBkColor.

Potem zobaczę jeszcze.

Nie to nie działa, sam próbowałem kiedyś i nie znalazłem opcji takiej oraz na necie przeczytałem na jakims forum że sie nie da

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...