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

[Pytanie]Background Mode & Sprawdzenie Połączenia...


Rekomendowane odpowiedzi

Opublikowano

Witam, mam 2 problemy/pytania.

 

1. Korzystam z KeSend, BackGround Mode, i mam pytanie, czy w tej funkcji można imitować wciśnięcie np. F1, czy trzymanie spacji? nie jako tekst, tylko np. jako skok w grze, ruch, atak czy uzycie skilla?

 

2. Czy można jakoś sprawdzić, czy nasz klient jest połączony z serwerem gry? Jeśli tak, to proszę o tut/komendę/wyjaśnienie jak to zrobić.

 

Dziękuję

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

do czego ma się wszystko donosić, jaka gra?

pewnie metin znowu , i nie powiem czy bedą działały bo nie używam wszystko trzeba samemu sprawdzić

 

co sprawdzić i jaki klient ??

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Tak, nasz kochany Metin, tylko, że cel tego programu to nie żaden pick up, relogger czy jakis autopoter... przechodząc do konkretów:

 

KeySend działa, bo to jest priv, jednak działa tylko w polu chatu, a ja chciałbym aby imitował wciskanie klawiszy czyli np machanie, bieganie, wsiadanie, i inne proste-zawiłe czynności.

 

a co do sprawdzenia i jaki klient to nie rozumiem za bardzo o co chodzi, sprawdzić, czy serwer odpowiada klientowi (czyli nie zaszlo zaklocenie w polaczeniu).

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

ty pytasz nie ja: "2. Czy można jakoś sprawdzić, czy nasz klient jest połączony z serwerem gry? " skoro grasz to jesteś podłączony , czego chcesz więcej

 

jak ci juz napisałem to normalny problem jeśli chodzi o klawisze w wiekszości gier , nie gram to nie potrafie nawet sprawdzić cokolwiek czy działa, teoretyzować też nie ma co bo to jak widać będzie strata czasu

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Rozumiem. A co do połączenia, to miało być sprawdzane, ponieważ gra miała iść na zminimalizowany/ja miałem spać ;] Dzięki za odp, a mam pytanie, czy te czynności może wykonać jakikolwiek inny język programowania?

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

Dziękuję wam ślicznie, po +iku leci, pozdrawiam :)

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

on chciał status postaci w grze, czy jest w danym momencie zalogowany w grze , a to troche skomplikowane chyba ze do odczytu uzyc pamięci ;)

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Wydaje mi się, ze jeśli postać nie jest zalogowana to serwer nie odpowiada, bo "nie ma po co". Sprawdzę Ping :)

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

taa, dla ciebie specjalnie włączają serwer zaraz jak się tylko zalogujesz i wyłączają po wylogowaniu , ping jest zawsze jak działa serwer

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Tak, sam się domyśliłem, ale nie mogłem akurat wejść na kompa ^^ A gdyby znaleźć jakiś stały (nie pamiętam jak się to nazywa, hex format 0x000...), który istnieje tylko podczas aktywnego połączenia z serwerem? np. ilość pieniędzy, hp czy mp? Możliwe jest coś takiego?

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

 

2. Czy można jakoś sprawdzić, czy nasz klient jest połączony z serwerem gry? Jeśli tak, to proszę o tut/komendę/wyjaśnienie jak to zrobić.

 

Ping ma te drobną wadę że będzie odpowiadał nawet jak gra przerwie połączenie (dostanie DC).

Daleko na nim nie zajedziecie.

Lepsza jest jakaś funkcja monitorująca połączenia, porty, ip czy coś w tym stylu.

Swego czasu miałem zamiar napisać taki uniwersalny botek ale mi przeszło, zostało to:

http://www.autoit.xaa.pl/viewtopic.php?f=8&t=638

Dwie wersje na monitor netstat.

Prostsza i mniej prostsza.

 

#include <GUIConstantsEx.au3>
#include <Constants.au3>
Global $edit, $begin = TimerInit(), $msg
GUICreate("Aktywne Polaczenia", 600, 600)
$edit = GUICtrlCreateEdit("", 10, 10, 580, 580)
GUISetState(@SW_SHOW)
Call("netstat")
While 1
       $msg = GUIGetMsg()
       If $msg = $GUI_EVENT_CLOSE Then Exit
       If 1000 < TimerDiff($begin) Then
               Call("netstat")
               $begin = TimerInit()
       EndIf
       Sleep(20)
WEnd
Func netstat()
       Local $foo = Run(@ComSpec & " /c " & "netstat -n", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
       Local $line, $return = ""
       While 1
               $line = StdoutRead($foo)
               If @error Then
                       If $return <> GUICtrlRead($edit) Then GUICtrlSetData($edit, $return)
                       Return
               EndIf
               If $line <> "" Then $return &= $line
       WEnd
EndFunc   ;==>netstat

 

 

 

 

 

#include <GUIConstantsEx.au3>
#include <Constants.au3>
#include <GuiListView.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Opt("GUIOnEventMode", 1)

Global $begin = TimerInit(), $label_cyfra, $idx, $listview, $stara_lista = "", $stare_kolory = ""
Global $parametr[7] = [" -a", " -b", " -e", " -n", " -o", " -r", " -s"], $cyfra = 1, $jezyk_PL = False
Global $hex[7], $LabelRGB[3], $imputRGB[3], $imput_nadole, $progres, $odlicz_progres = 0
Global $Default[3][2] = [[0x00ff00, ":80 www. :http"],[0x0000ff, ":21 onet"],[0xff0000, "autoitscript.com"]]
Global $ar_lang_PL[9][2] = [["", "ł"],["Ą", "ą"],["˘", "ó"],["", "s"],["©", "e"],["˝", "Ż"],["	", ":"],["ľ", "ż"],["«", "ź"]]
If @OSLang = 0415 Then $jezyk_PL = True
GUICreate("Netstat Monitor 0.1", 600, 690)
$progres = GUICtrlCreateProgress(0, 0, 600, 6)
GUICtrlCreateLabel("netstat", 10, 15, 50, 17)
For $idx = 0 To 6
$hex[$idx] = GUICtrlCreateCheckbox($parametr[$idx], 60 + (40 * $idx), 13, 40, 17)
GUICtrlSetState(-1, IniRead("configbot.ini", "NETSTAT", "hex[" & $idx & "]", "0"))
Next
$label_cyfra = GUICtrlCreateLabel("Sprawdzam po raz 1.", 450, 15, 140, 17)
For $idx = 0 To 2
$LabelRGB[$idx] = GUICtrlCreateLabel("save", 10 + ($idx * 200), 35, 30, 20, $SS_CENTER + $SS_CENTERIMAGE)
GUICtrlSetBkColor(-1, $Default[$idx][0])
$imputRGB[$idx] = GUICtrlCreateInput(IniRead("configbot.ini", "NETSTAT", "Input[" & $idx & "]", $Default[$idx][1]), 40 + ($idx * 200), 35, 150, 20)
Next
$listview = GUICtrlCreateListView("Aktywne Polaczenia", 10, 65, 580, 580)
GUICtrlSendMsg($listview, 0x101E, 0, 550)
_GUICtrlListView_SetBkColor($listview, $CLR_MONEYGREEN)
_GUICtrlListView_SetTextColor($listview, $CLR_BLACK)
_GUICtrlListView_SetTextBkColor($listview, $CLR_MONEYGREEN)
$imput_nadole = GUICtrlCreateInput("", 10, 655, 580, 20)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUISetOnEvent($GUI_EVENT_CLOSE, "Close")
Call("netstat")
While 1
If 2000 < TimerDiff($begin) Then
	Call("netstat")
	$begin = TimerInit()
EndIf
Sleep(20)
WEnd
Func netstat()
Local $param = "", $idx
For $idx = 0 To 6
	if (GUICtrlRead($hex[$idx]) = $GUI_CHECKED) Then $param &= $parametr[$idx]
Next
GUICtrlSetData($label_cyfra, "Sprawdzam po raz " & $cyfra & ".")
Local $foo = Run(@ComSpec & " /c " & "netstat" & $param, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line, $return = ""
While 1
	$line = StdoutRead($foo)
	If @error Then
		GUICtrlSetData($label_cyfra, "Sprawdzono " & $cyfra & " razy.")
		$cyfra += 1
		$odlicz_progres = 0
		GUICtrlSetData($progres, 0)
		tworz_liste($return, $param)
		Return
	EndIf
	If $line <> "" Then $return &= $line
	$odlicz_progres += 1
	If $odlicz_progres > 10000 Then $odlicz_progres = 0
	If IsInt($odlicz_progres / 100) Then GUICtrlSetData($progres, $odlicz_progres / 100)
WEnd
EndFunc   ;==>netstat

Func tworz_liste($lista, $parame)
Local $ar_Ziel, $ar_Nieb, $ar_Czer
Local $list_kolory = GUICtrlRead($imputRGB[0]) & GUICtrlRead($imputRGB[1]) & GUICtrlRead($imputRGB[2])
Dim $ar_Ziel = StringSplit(GUICtrlRead($imputRGB[0]), " ") ; co ma byc na zielono
Dim $ar_Nieb = StringSplit(GUICtrlRead($imputRGB[1]), " ") ; co ma byc na niebiesko
Dim $ar_Czer = StringSplit(GUICtrlRead($imputRGB[2]), " ") ; co ma byc na czerwono
GUICtrlSetData($listview, @ComSpec & " /c " & "netstat" & $parame)
If $jezyk_PL = True Then $lista = korekta_pisowni_PL($lista)
If ($lista <> $stara_lista) or ($list_kolory <> $stare_kolory) Then
	$stara_lista = $lista
	$stare_kolory = $list_kolory
	_GUICtrlListView_DeleteAllItems($listview)
	Dim $aray = StringSplit($lista, @CRLF, 2) ; robi tablice
	For $idx = 0 To UBound($aray) - 1
		If $aray[$idx] <> "" Then ; to mozna usunac ale wtedy bedą puste przerwy (element estetyczny)
			GUICtrlCreateListViewItem($aray[$idx], $listview)
			koloruj_text($aray[$idx], $ar_Ziel, "Green")
			koloruj_text($aray[$idx], $ar_Nieb, "Blue")
			koloruj_text($aray[$idx], $ar_Czer, "Red")
		EndIf
	Next
EndIf
EndFunc   ;==>tworz_liste

Func koloruj_text($text, $arrayInputRGB, $kolor)
Local $n
For $n = 1 To $arrayInputRGB[0]
	If 0 <> StringInStr($text, $arrayInputRGB[$n]) Then
		If $kolor = "Green" Then
			GUICtrlSetColor(-1, 0x000066) ; kolor czcionki
			GUICtrlSetBkColor(-1, 0x00ff00); Kolor tła dla tekstu (zielone)
		ElseIf $kolor = "Blue" Then
			GUICtrlSetColor(-1, 0xffffff)
			GUICtrlSetBkColor(-1, 0x0000ff)
		ElseIf $kolor = "Red" Then
			GUICtrlSetColor(-1, 0xffffff)
			GUICtrlSetBkColor(-1, 0xff0000)
		EndIf
	EndIf
Next
EndFunc   ;==>koloruj_text

Func korekta_pisowni_PL($text)
Local $i
;Local $ar_lang_PL[9][2] = [["", "ł"],["Ą", "ą"],["˘", "ó"],["", "s"],["©", "e"],["˝", "Ż"],["	", ":"],["ľ", "ż"],["«", "ź"]]
For $i = 0 To UBound($ar_lang_PL, 1) - 1
	$text = StringReplace($text, $ar_lang_PL[$i][0], $ar_lang_PL[$i][1])
Next
Return $text
EndFunc   ;==>korekta_pisowni_PL

Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam, $ilParam
Switch $iwParam
	Case $hex[0]
		save_hex(0)
	Case $hex[1]
		save_hex(1)
	Case $hex[2]
		save_hex(2)
	Case $hex[3]
		save_hex(3)
	Case $hex[4]
		save_hex(4)
	Case $hex[5]
		save_hex(5)
	Case $hex[6]
		save_hex(6)
	Case $LabelRGB[0]
		save_Input($imputRGB[0], 0)
	Case $LabelRGB[1]
		save_Input($imputRGB[1], 1)
	Case $LabelRGB[2]
		save_Input($imputRGB[2], 2)
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

Func WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
#forceref $hWndGUI, $MsgID, $wParam, $lParam
Local $tagNMHDR, $event
$tagNMHDR = DllStructCreate("int;int;int", $lParam);NMHDR (hwndFrom, idFrom, code)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3)
Select
	Case $wParam = $listview
		Select
			Case $event = $NM_DBLCLK
				Local $tagNMITEMACTIVATE = DllStructCreate("int;int;int;int;int;int;int;int;int", $lParam)
				GUICtrlSetData($imput_nadole, _GUICtrlListView_GetItemText($listview, DllStructGetData($tagNMITEMACTIVATE, 4)))
				;ConsoleWrite("kolumna = " & DllStructGetData($tagNMITEMACTIVATE, 5) & ":" & DllStructGetData($tagNMITEMACTIVATE, 4)  & @CRLF)
		EndSelect
EndSelect
Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Func save_hex($ile)
IniWrite("configbot.ini", "NETSTAT", "hex[" & $ile & "]", GUICtrlRead($hex[$ile]))
EndFunc   ;==>save_hex

Func save_Input($jaki, $ile)
IniWrite("configbot.ini", "NETSTAT", "Input[" & $ile & "]", GUICtrlRead($jaki))
EndFunc   ;==>save_Input

Func Close()
Exit
EndFunc   ;==>Close

Opublikowano

jak potrafi to zrobi, hehe

 

o le sie nie myle serwer metina ( no dokładnie to status z bazy danych , wyświetlany potem na www) tworzy tez jakąs strone ze statusem serwera wystarczy w gui pobierać dane z tej strony stwierdzające czy jest włączony

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

To już musisz sprawdzić sam :)

My nie gramy w Metina, więc nie możemy za Ciebie tego zrobic :P

 

Wiem wiem, ale dla mnie Metin jest jak palenie - nałóg :/

 

 

jak potrafi to zrobi, hehe

 

o le sie nie myle serwer metina ( no dokładnie to status z bazy danych , wyświetlany potem na www) tworzy tez jakąs strone ze statusem serwera wystarczy w gui pobierać dane z tej strony stwierdzające czy jest włączony

 

Jeśli serwer jest wyłączony, to jest oczywista sprawa, że klient jest rozłączony, ale zachodzi takie zjawisko, że serwer jest włączony a klient i tak rozłącza.

 

Cóż, jeszcze jestem za dużym noobkiem w AutoIT, żeby umieć złączyć i zedytować kody dla moich potrzeb, ale trzeba się w końcu nauczyć tego języka. Od podstaw. Dzięki za skrypty, +ik :)

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

Palenie zaija=metin= twoj wniosek ;D

 

Metin też zabija... mózg, a jeśli się gra dniami i nocami w Metka to rosną takie trolle bez mózgu, które zaśmiecają fora ;d (np. ja)

 

BTW.

 

kolejne 2 pytania

 

Czy można na podstawie wszystkich znalezionych połączeń znaleźć połączenie z serwerem i przypisać mu zmienną przyjmującą wartości 0(nie ma takiego połączenia) i 1(połączenie jest nawiązane)? Jeśli tak to jak?

 

Dalej dręczy mnie to SendKey... czy na pewno nie da się nic takiego zrobić...? Próbowałem liznąć Delphi, potomka Pascala ale ciągle i ciągle wracam do AutoIT...

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

z tego co wiem chyba w kamermodzie jest perl użyty do starowania klawiaturą i jakaś biblioteka , ale o to pytaj autora jak to zrealizował

 

 

jak się chcesz zając analizą połączeń pobaw sie opcjami tcp/ip w autoit

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Dobra, jako, że ZACZYNAM przygodę z AutoIT, może mi to zająć kilka dni :P

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

Sorry za double, ale gdybym dał edita, to nikt by tutaj nie zajrzał...

 

 

wszystystko da się obejść wystarczy zastosować sterowanie zewnetrznym programem czy klawiaturą to działa bezproblemowo , pozostaje tylko wiedzieć jak.

 

ja raczej nie mam problemu nigdy z żadnym botem ( nawet w metinpl ) co zrobiłem siostrzeńcowi bo skrypt steruje klawiaturą a nie bezpośrednio grą, zresztą większośc funkcji i tak wykonują makra klawiatury to proste funkcje sam sobie na niej robi

 

Jak to zrobiłeś? Już palicho BackGround, powiedz tylko jak?

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

napisz sobie sterownik i program do mikrokontrolera ( wystarczy prosty na usb ) i masz emulator klawiatury gotowy

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Ale na jakiej zasadzie ja mam to zrobić, bo zazwyczaj emulator służy np do przypisania gałek pada do klawiszy klawiatury etc. Mi tam trzeba czekaj 6 klawiszy tylko czyli co, jeśli w autoit dam Send("{LEFT down}") a w emulatorze lewą strzałkę przypiszę jako spację to w grze będzie mi to działało jako spacja?

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

czego nie rozumiałeś znowu ?

wiele botów, tylko płatnych działa w oparciu o takie emulatory klawiatury ( usb stick ) i nie ma żadnych problemów z nimi bo są praktycznie nie wykrywalne a nie wspomne że gra nie musi mieć żadnych usuwanych zabezpieczeń czy specjalnie robionych baypassów . sterujesz emulatorem tak jakbyś wciskał normalną klawiature i nią się posługiwał , znowu na klawiaturach z programowalnymi makro wystarczy wywołać skrót do makro by go wykonało w konkretnej grze

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...