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 ze skryptem


Rekomendowane odpowiedzi

Opublikowano

Witam, potrzebuje pomocy w napisaniu prostego skryptu, bedzie to bardzo prosty skrypt do gry.

- klawisz Start/Stop = Alt + Pause Break

po nacisnieciu klawisza start:

- skrypt naciska F1, odczekuje 2 sekundy, uzywa prawego przycisku myszki
odczekaj dwie sekundy
skrypt naciska F2, odczekuje 2 sekundy, uzywa prawego przycisku myszki
odczekaj dwie sekundy
skrypt naciska F3, odczekuje 2 sekundy, uzywa prawego przycisku myszki
bot ma kontynuowac naciskanie "F3, odczekaj 2 sekundy,
 uzywa prawego przycisku myszki przez 1-2 minuty i tak na okraglo

Wazne by skrypt klikal tam gdzie ustawilem myszke, czyli bez ustawiania przednich koordynacji.

 

Opublikowano

Podstawy...

Nie można się samemu wysilić? Czy to jest zbyt skomplikowane. My jesteśmy tutaj aby Tobie POMÓC a nie zrobić za Ciebie.

 

 

 

 

- klawisz Start/Stop = Alt + Pause Break  

GUI stworzysz w dołączonej do pakietu Scite aplikacji Koda.exe (KodaFormDesinger). W ten sposób zrobisz buttony.

Jeżeli jednak chcesz zostać przy klawiszach na klawiaturze, to możesz zrobić to za pomocą HotKey'ów ('HotKeySet')

 

 

 

po nacisnieciu klawisza start:

Jeżeli chcieć to zrobić pod GUI to proste. W linijce sprawdzającej wybór w gui (Switch $mg coś tam ;D ) Dodajesz nową linijkę

Case $ButtonStart

Gdzie $buttonStart odwołuje się do zmiennej przechowującej kontrolkę Buttona.

 

Jeżeli jednak chcesz zrobić to pod klawisze do możesz użyć jednej z dwóch możliwości :

 

  • HotKeySet 

Jest to chyba najlepszy wybór dla początkujących.

Składnia funkcji

HotKeySet ("Klawisz","Nazwa funkcji")

Drugą metodą było sprawdzenie jakie przyciski są aktualnie wduszone. Wykorzystałbyś wtedy 

  • _IsPressed

Składnia

$idklawisza = "10" ;10 to jest Shift. Rozpiskę znajdziesz w helpie
$hDLL = DllOpen("user32.dll")
_IsPressed ($idklawisza,$hDLL)

Aby sprawdzić czy są one wszystkie wduszone zrobiłbyś zwykłą funkcję warunkową ("if")

If _IsPressed ("12") And _IsPressed ("13") Then
;tu wklepujesz swój skrypt albo wywołujesz funkcję. Twój wybór
EndIf

I to tyle.

Chociaż, aby 'symulować' wciśnięcie klawisza możesz użyć funkcji Send

Składnia

Send ("Nazwa klawisza")
Klawisze specjalne typu F1, F13 piszemy tak
Send ("{F1}")

Aby zasymulować kliknięcie przycisku myszy użyj funkcji MouseClick

Składnia 

MouseClick ("Klawisz", ] $kordyx, $kordyy)
Gdzie klawisz wstawiasz left albo right
Znak ] oznacza, że nie musisz uzupełniać dalej funkcji. Wtedy przyjmie wartości domyślne. W tym przypadku obecną pozycję myszki

Przerwa w działaniu skryptu - Funkcja Sleep

Składnia

Sleep ("Czas wyrażony w ms")
;1s = 1000ms

I tak pewnie tego nikt nie przeczytał ;P

Tysiące lat wojen, ani jednego dnia pokoju,

pytam czy to skończy się.

 

Zegarek BB

Opublikowano

czy to co zrobilem ma jakis sens?
 

 

hotkeyset("{end}", "_run")

hotkeyset("{home}", "_stop")
 
Func _keypress()
send("{F1}")
Sleep(2000)
EndFunc
 
Func _mouseclick()
MouseClick("right")
Sleep(2000)
EndFunc
 
Func _keypress()
send("{F2}")
Sleep(2000)
EndFunc
 
Func _mouseclick()
MouseClick("right")
Sleep(2000)
EndFunc
 
Func _keypress()
send("{F3}")
Sleep(2000)
EndFunc
 
Func _mouseclick()
MouseClick("right")
Sleep(2000)
EndFunc

 

 
Opublikowano

czy moze to bardziej bedzie robilo?

 

 

HotKeySet ("{F7}", "_run")

HotKeySet ("{F8}", "_stop")
 
While 1
Sleep (2000); increased that to reduce cpu-load
wend
 
Send ("{F1}")
 
Sleep (2000)
 
MouseClick ("right", ] $kordyx, $kordyy)
 
Sleep (2000)
 
Send ("{F2}")
 
Sleep (2000)
 
MouseClick ("right", ] $kordyx, $kordyy)
 
Sleep (2000)
 
Send ("{F3}"); Funkcja klawisza F3 - nie wiem jak dla niej ustawic petle na 1-2 minuty
 
Sleep (2000)
 
MouseClick ("right", ] $kordyx, $kordyy)
 
Sleep (2000)

 

Opublikowano

@1361622928-U485574.pngflozcag

Żaden z tych skryptów nie będzie działał ;P

 

1 skrypt -

Uwagi :

Brak zdeklarowanych funkcji _run i funkcji _stop

Func _run() ; deklarowanie funkcji _run

EndFunc

Func _Stop() ; deklaracja funkcji _stop
Exit ; wyłączenie aplikacji
EndFunc 

Aplikacja jeżeli uruchomiłaby się to od razu zamknęła by się. Nie ma pętli podtrzymującej życie aplikacji

While 1 ; pętla nieskończona, aby utrzymać działanie aplikacji
Sleep (100) ; lekki odpoczynek dla procesora ;D
WEnd ; koniecpętli nieskończonej

 W funkcji _run możemy także dać pętle nieskończoną, która będzie powodowała uruchomienie kolejnych 'kroków'

Func _run()
While 1
_Krok1()
_Krok2()
_Krok3()
WEnd
EndFunc

Teraz musimy zmienić twoje deklaracje funkcji.

Z tego co widzę, niekiedy zdeklarowałeś 2 różne funkcje pod jedną nazwą. Aplikacja nie będzie wiedziała, co ma zrobić i wyrzuci tobie błąd.

Więc lepiej zrobić to tak jak podałem wyżej : zrobić 3 funkcje odpowiadające kolejnym zadaniom:

 

Więc co aplikacja ma zrobić w pierwszym kroku. Napisałeś, że ma nacisnąć F1, zaczekać 2 sek, Wcisnąć PPM i znowu zaczekać 2 sekundy.

W 2 kroku ma zrobić : Wciśnąć F2, zaczekać 2 sek, Kliknąć PPm, zaczekać 2 sek.

A w 3 kroku masz już pewne utrudnienie. To znaczy masz zadanie narazie proste - wciskanie F3, zaczekanie, PPM, zaczekanie. Tylko, że chcesz to zrobić przez dany czas.

 

 

#Jak zrobić krok 3 !!!!

 

 

Możesz zrobić to za pomocą tradycyjnej pętli While, jednak dając jej jakiś warunek, a nie tylko wartość 1

$i = 0
While $i < 120
;twoje zadanie
$i+=4
WEnd

Ta pętla będzie działać, dopóki zmienna $i nie będzie mniejsza od 120 (120 chodziło mi o sek. 2 min = 120 sek). Potem, skrypt będzie dalej działał.

 

Wykonanie tej funkcji zajmuje 4 sek, więc niech wartość $i również zwiększa się o 4.

Taki prowizoryczny zegarek ;P

 

No to masz wszystko podane, zresztą sam to dobrze zrobiłeś, tylko że dałeś różne zadania taj samej funkcji. Musisz to po prostu rozpisać

Func _Krok1()
;zadanie 1
EndFunc

Func _Krok2()
;zadanie 2
EndFunc

Func _Krok3()
$i = 0
While $i < 120
;twoje zadanie
$i+=4
WEnd
EndFunc

A zapomniałem, MouseClick nie potrzebuje tych 'danych" $kordyx i $kordyy. Jeżeli nie chcesz z nich korzystać to robisz tak

 
MouseClick ("right")

Jeżeli jednak chcesz, aby aplikacja klikała w odpowiednie miejsce to możesz ten skrypt wtedy powiększyć podając mu koordynacje(?)

MouseClick ("right",400,500)

Jeżeli jeszcze jakoś pomóc to pisz

Tysiące lat wojen, ani jednego dnia pokoju,

pytam czy to skończy się.

 

Zegarek BB

Opublikowano
#include <MsgBoxConstants.au3>

 

; Press Esc to terminate script, Pause/Break to "pause"

 

Global $g_bPaused = False

 

HotKeySet("{PAUSE}", "TogglePause")

HotKeySet("{ESC}", "Terminate")

HotKeySet("+!d", "ShowMessage") ; Shift-Alt-d

 

While 1

    Sleep(100)

WEnd

 

Func TogglePause()

    $g_bPaused = Not $g_bPaused

    While $g_bPaused

        Sleep(100)

        ToolTip('Script is "Paused"', 0, 0)

    WEnd

    ToolTip("")

EndFunc   ;==>TogglePause

 

Func Terminate()

    Exit

EndFunc   ;==>Terminate

 

Func ShowMessage()

    MsgBox($MB_SYSTEMMODAL, "", "This is a message.")

EndFunc   ;==>ShowMessage

 

Func _Send1()

Send("{F1}"

EndFunc

 

Sleep(2000)

 

Func _MouseClick2()

MouseClick("right" [, x, y [, clicks = 1 [, speed = 10]]])

EndFunc

 

Sleep(2000)

 

Func _Send2()

Send("{F2}"

EndFunc

 

Sleep(2000)

 

Func _MouseClick2()

MouseClick("right" [, x, y [, clicks = 1 [, speed = 10]]])

EndFunc

 

Sleep(2000)

 

Func _Send3()

Send("{F3}"

EndFunc

 

Sleep(2000)

 

Func _MouseClick3()

MouseClick("right" [, x, y [, clicks = 1 [, speed = 10]]])

EndFunc

 

Sleep(2000)

 

Opublikowano

@1361622928-U485574.pngflozcag

Nie wrzucaj tak kodu bez słowa komentarza, poza tym do wstawiania kodu jest opcja code.png.

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

Doszedlem do tego kodu po dlugiej bitwie, moze ktos pomoc lub wstawic ew. poprawki? wszystko dziala procz funkcji F2, w ogole jej nie czyta, nie dziala takze pauza przy uzyciu alt+pause break

 

HotKeySet("!{PAUSE}", "_Start")
HotKeySet("{ESC}", "_Exit")

;sets the hot key "alt+pause" for function _start
;sets the hot key "esc" for function _exit

Global $isPaused = True

;bool for toggle start/pause

While 1
    If $isPaused = False Then
        ;checks if bot is on/off
        ;if on then...
        ;everything in this while will be repeated until you press alt+pause again
        Send("{F1}")
        ;sends key F1
        Sleep(2000)
        ;sleeps for 2000ms = 2s
        MouseClick("Right")
        ;uses right click (mouse)

        Send("{F2}")
        Sleep(2000)
        MouseClick("Right")

        $timer = TimerInit()
        ;sets a timer
        $diff = TimerDiff($timer)
        ;reads the time difference to TimerInit()
        While $diff < 120000
            ;while the timer difference is less than 120000ms (2min).....
            $diff = TimerDiff($timer)
            ;read diff again otherwise it will always be as big as before the while
            Send("{F3}")
            Sleep(2000)
            MouseClick("Right")
        WEnd
    EndIf
    ;if off then ask again
WEnd

Func _Start()
    ;function which is called by pressing alt+pause
    If $isPaused = False Then $isPaused = True
    If $isPaused = True Then $isPaused = False
EndFunc

Func _Exit()
    Exit
EndFunc

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...