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 z funkcją send


Rekomendowane odpowiedzi

Opublikowano

Dlaczego to

 

$s = 's'
while 1
Send([$s])
WEnd

nie działa tak płynnie jak to

while 1
Send("{s down}")
WEnd

?

 

Problem widać przy poruszaniu się postaci w grze. Używając drugiego kodu, postać chodzi płynnie, a przy pierwszym widać, że ją laguje. Jakbym miał w kodzie pisać cały czas ten drugi sposób, zmieniając klawisze wsad, to nie wiem ile linijek zająłby ten program...

 

Mam też problem ze _StringBetween, nie wiem jak zrobić żeby wynik był bez enterów, ponieważ słowo które ma wyszukiwać jest oddzielone od sąsiadów właśnie enterami. :(

Opublikowano

Może dlatego działą wolniej bo jak wywołujesz funkcję Send to w dodatku za każdym razem program musi znaleźć tą zmienną $s, odczytać ją i zastosować. A tak to od razu ją stosuje.

TuByłaSygnatura.png

Opublikowano

Zapodaj kod zrodlowy strony to ci powiem jak wycignac bez enteru.

1 sposob zajmie ci wiecej linii jak ten drugi, wiec nie widze w czym problem :)

Zawsze podawaj caly kod swojego programu.

Opublikowano

1) Jak ustawić żeby funkcja send wcisnęła i trzymała klawisz wczytany z pliku.txt?

cały kod:


_FileReadToArray('C:\Test.txt', $s)
For $x = 1 To $s[0]

while 1
Send("{[$s[$x]] down}") ; <- nie działa taki zapis a samo Send([$s]) źle działą
WEnd

Next

W pliku Test.txt w każdej linijce jest pojedynczy klawisz.

 

 

 

2) W takiej grze są współrzedne postaci, które fajnie by było jakbym mógł wczytywać i używać ich w programie, one oczywiście wraz z ruchem postaci się zmieniają.
http://i.imgur.com/LEAT1WC.png?3

Mam takie coś:

 

#include <String.au3>
#include <Ie.au3>

$oie = _IECreate("http:\\gierka.pl")
_IELoadWait($oie)
$zmienna = _IEBodyReadText($oie)

$stringbetween = _StringBetween($zmienna, 'przedmioty!', 'Lista')
For $x = 0 To UBound($stringbetween) - 1
   MsgBox(0, 'StringBetween', $stringbetween[$x])
Next

Tylko że to pewnie będzie lagowało postać, takie wczytywanie całej strony i wybieranie tych cyferek. Najlepiej jakby mi funkcja ciągle wyciągała tylko te liczby bez wczytywania wszystkiego i w postaci cyfry z przecinkiem.

Opublikowano

Nic ci nie bedzie lagowalo.

 $startWait = _Timer_Init()
While 1
 If _Timer_Diff($startWait) >= 300 Then ; Co 0,3s bedzie sprawdzal hp.
$zmienna = _IEBodyReadText($oie)
$stringbetween = _StringBetween($zmienna, 'przedmioty!', 'Lista')
If _IsArray($stringbetween) >=1 Then
   MsgBox(0, 'StringBetween', $stringbetween[0]) ; Tutaj sobie ustal ktora komorka zwraca ci hp.
Endif
$startWait = _Timer_Init()
Endif
Wend
Opublikowano

 

MsgBox(0, 'StringBetween', $stringbetween[0]) ; Tutaj sobie ustal ktora komorka zwraca ci hp.

Jak tak zostawie, to wyskakuje mi http://i.imgur.com/4pcuP2A.png?1

a jak wpiszę $stringbetween[1] lub więcej to wyskakuje błąd:

Error: Array variable has incorrect number of subscripts or subscript dimension range exceeded.

Opublikowano
 $startWait = _Timer_Init()
While 1
If _Timer_Diff($startWait) >= 300 Then ; Co 0,3s bedzie sprawdzal hp.
$zmienna = _IEBodyReadText($oie)
$stringbetween = _StringBetween($zmienna, 'przedmioty!', 'Lista')
If _IsArray($stringbetween) >=1 Then
$str = StringReplace($stringbetween[0],' ','')
MsgBox(0, 'StringBetween',$str) 
Endif
$startWait = _Timer_Init()
Endif
Wend


Wez poczytaj sobie o stringach...

http://pl.wikibooks.org/wiki/AutoIt/Napisy_(stringi)

Opublikowano

A znasz odpowiedź na to?

 

Jak ustawić żeby funkcja send wcisnęła i trzymała klawisz wczytany z pliku.txt?

cały kod:

Cytuj


_FileReadToArray('C:\Test.txt', $s)
For $x = 1 To $s[0]

while 1
Send("{[$s[$x]] down}") ; <- nie działa taki zapis a samo Send([$s]) źle działą
WEnd

Next

W pliku Test.txt w każdej linijce jest pojedynczy klawisz.

Opublikowano

funkcja ..

Send([$s])

Wez moze poczytaj poradniki o samych podstawach..

Send($s[$x])

A jak chcesz up/down to

Send('{' & $s[$x] & '}')

A w txt ;

a down

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...