Skocz do zawartości


Zdjęcie

[Problem] AirControl w javie


  • Zaloguj się, aby dodać odpowiedź
7 odpowiedzi w tym temacie

#1 adrianCK

adrianCK

    Geniusz

  • Użytkownik+
  • 318 postów
  • guomb

Napisano 15 April 2017 - 10:11

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.



craftportal

Craftserve to największy i najlepszy polski hosting serwerów Minecraft, jest solidny i tani więc go polecam

#2 Dr. Ned

Dr. Ned

    I can fix that!

  • Użytkownik+
  • 764 postów

Napisano 15 April 2017 - 10:31

Czym jest ów "AirControl"? Pierwsze słyszę.


ned2.jpg


#3 adrianCK

adrianCK

    Geniusz

  • Użytkownik+
  • 318 postów
  • guomb

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 Dr. Ned

Dr. Ned

    I can fix that!

  • Użytkownik+
  • 764 postów

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

ned2.jpg


#5 adrianCK

adrianCK

    Geniusz

  • Użytkownik+
  • 318 postów
  • guomb

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 Dr. Ned

Dr. Ned

    I can fix that!

  • Użytkownik+
  • 764 postów

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

ned2.jpg


#7 adrianCK

adrianCK

    Geniusz

  • Użytkownik+
  • 318 postów
  • guomb

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 Dr. Ned

Dr. Ned

    I can fix that!

  • Użytkownik+
  • 764 postów

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_*).


ned2.jpg