Cześć! Nie wiedziałem w jakim dziale napisać, więc napisałem tu, jak coś się nie zgadza to przenieście, a co do tematu to mam problem, bo piszę modyfikację do gry, dokładniej klienta z AirControlem, czyli strefami, ale nie wiem jak się pisze AirControl, więc może mi podacie kod i do czego co służy? Robię modyfikację klienta w eclipse, w javie 8 update 121 i w mod coder pack 9.10.
[Problem] AirControl w javie
#1
Napisano 15 April 2017 - 10:11
#2
Napisano 15 April 2017 - 10:31
Czym jest ów "AirControl"? Pierwsze słyszę.
#3
Napisano 15 April 2017 - 10:37
@up AirControl to jest kontrola ruchu w powietrzu, czyli takie strejfy jak w cs'ie, już wiesz?
@EDIT dobra inaczej, spróbuję sam ogarnąć AirControl, ale jaki był if na sprawdzenie czy ktoś klika dany klawisz?
Użytkownik adrianCK edytował ten post 15 April 2017 - 10:40
#4
Napisano 15 April 2017 - 10:47
@up Tak, teraz tak.
Napisanie czegoś takiego jedynie dla klienta według mnie byłoby raczej kiepskie. Serwerowi nie spodobają się takie chaotyczne, nienaturalne akcje ze strony gracza i albo je opóźni, albo zapewne wycofa. Przy czym nawet przy sukcesie ze strony klienta ruch pewnie nie będzie ani trochę płynny. Nie wspominając już o serwerach, gdzie pewnie gracz zostanie z marszu wyrzucony za fałszywą, dodatkową prędkość w locie.
W każdym razie jak chcesz dalej próbować - celowałbym w jedną z dwóch rzeczy. Refleksje, albo śledzenie chociażby ClientTickEvent. Tylko warto mieć na uwadze, że bezpośrednie dodanie nowego ruchu po stronie klienta nic nie da, bo to serwer nim steruje.
- adrianCK lubi to
#5
Napisano 15 April 2017 - 10:57
@up dobra, ale teraz jak sprawdzić czy gracz trzyma dany przycisk klawiatury, i dlaczego mi holender else nie działa?
Użytkownik adrianCK edytował ten post 15 April 2017 - 10:58
#6
Napisano 15 April 2017 - 11:10
@up
Odnośnie pierwszego - Minecraft.getMinecraft().gameSettings. W tym obiekcie masz wszystkie, domyślnie istniejące w grze klawisze i funkcje pokazujące czy cokolwiek zostało kliknięte. Swoją drogą do reagowania na klawisze z reguły zamiast ClientTickEvent tworzy się reakcje na KeyBindEvent bodajże.
A odnośnie drugiego - coś źle robisz ;p.
P.S. A jeśli nie chodziło Ci o żaden klawisz zbindowany w grze tylko po prostu konkretny przycisk jak np. jakaś litera - Minecraft używa LWJGL, gdzie masz wszystkie potrzebne funkcje.
Użytkownik Ktos94852 edytował ten post 15 April 2017 - 11:12
#7
Napisano 15 April 2017 - 11:17
@up kolego, ja jestem noobem javy, może wymienimy się skypami i mi wszystko konkretnie wytłumaczysz jak początkującemu?
@EDIT nieno, poszukam w necie kuniec tematu, jak to zbindować poza bindami w grze ;P
Użytkownik adrianCK edytował ten post 15 April 2017 - 11:18
#8
Napisano 15 April 2017 - 11:56
@up
Kolego, wybacz bezpośredniość, ale nie mam czasu by dosłownie pisać komuś kolejny mod. A odnośnie klawiszy już Ci powiedziałem. W LWJGL masz prostą funkcję Keyboard::isKeyDown i keyPressed, gdzie jako argument podajesz klawisz - czy to jako kod klawisza (ASCII) bezpośrednio, czy korzystając z dostępnego w tej samej klasie ułatwienia (KEY_*).