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

Rekomendowane odpowiedzi

Opublikowano

Witam,

W tym poradniku chciałbym pokazać Wam jak napisać prostego cheata do Minecraft Multiplayer. Jeżeli pierwszy raz spotykasz się z programowaniem w Javie, polecam przeczytać mojego poprzedniego tutoriala, [Mega-Tut][ModLoader] Od zera do Moddera. Będzie to wyglądało dość podobnie - różnicą jest to, że tutaj będziemy edytować grę zamiast tworzyć nowe pliki. :)

 

Dzięki poniższemu poradnikowi napiszecie w pełni funkcjonalnego, działającego na większości serwerów FlyHack'a. Jest to cheat pozwalający na swobodne latanie po świecie gry.. i dostawanie się tam, gdzie nie powinniśmy się dostać. ;) Nie będziemy tworzyć żadnych nowych DLL'ek, wszystkiwać/aka injectować niczego do gry, bo jeżeli klient Minecraft nie ma żadnych zabezpieczeń, to po co sobie utrudniać życie? Wszystkie zmiany wprowadzimy bezpośrednio w kodzie źródłowym gry. :)

 

Przygotowania:

 

1. Pobierz MCP ze strony mcp.ocean-labs.de/index.php/MCP_Releases

2. Jeżeli nie posiadasz jeszcze zainstalowanego Java Development Kit (JDK), pobierz go stąd

3. Zainstaluj JDK, przejdź do Mój komputer -> PPM -> Właściwości -> Zaawansowane -> Zmienne środowiskowe

4. Zdefiniuj nową zmienną Path o wartości C:\Program Files\Java\jdk1.6.0_26\bin (zależnie od wersji i ścieżki może się różnić)

5. Jeżeli po wpisaniu w cmd polecenia javac nie występuje błąd, zainstalowałeś Java SDK poprawnie!

 

6. W katalogu z MCP znajduje się folder jars, przenieś tam katalogi bin i resources z %appdata% -> .minecraft

7. Pobierz ze strony minecraft.net plik minecraft_server.jar, jego również przenieś do folderu jars

8. Uruchom plik decompile.bat - zdekompiluje on i udostępni źródło gry (ten proces może trochę potrwać)

9. Jeżeli wszystko się udało, powinien pojawić się folder src zawierający pliki *.java

10. Gotowe, przygotowałeś właśnie wszystko co potrzebne do tworzenia cheatów!

 

Przejdźmy teraz do właściwego programowania. Otwórz src -> minecraft -> net -> minecraft -> src. Zobaczysz wiele plików *.java, ale w praktyce potrzebne Ci będą tylko dwa z nich. Uruchom np. Notepad++ i otwórz plik GuiIngame.java. Przejdź na sam koniec pliku, aż do deklaracji zmiennych. Ostatnią z nich powinna być float prevVignetteBrightness. Dodaj nową linijkę, wpisz w niej public static boolean toggle;. Zadeklarowaliśmy właśnie toggle'a true/false. Czym on jest? Określa on po prostu czy nasz cheat jest włączony, czy nie. Kiedy zmienna ta ma wartość true, wtedy wszystkie funkcje cheata działają - kiedy ma wartość false, nie. Ten plik możesz już zapisać i wyłączyć. Otwórz teraz EntityClientPlayerMP.java. Wyszukaj taki fragment kodu.

 

 

public void sendChatMessage(String s)

{

sendQueue.addToSendQueue(new Packet3Chat(s));

}

W tym miejscu znajduje się funkcja wysyłania wiadomości wpisanych w oknie czatu. Zmienna s typu String to właśnie wiadomość, którą wysyłamy. A teraz, dodaj przed linijką sendQueue.addToSendQueue(new Packet3Chat(s)); taką instrukcję if.

 

if(s.startsWith(".flyhack"))

 

{

return;

}

 

Magia? Nie do końca. Oznacza to mniej więcej tyle, że jeżeli wysłana wiadomość zaczyna się od .flyhack, to zostanie wykonany kod w klamrze. Aktualnie jest nim tylko return; który powoduje, że instrukcja zostanie w tym miejscu przerwana i dalsza część void sendChatMessage nie zostanie wykonana. Czyli wiadomość nie dotrze do innych graczy, ponieważ linjka sendQueue.addToSendQueue(new Packet3Chat(s)); znajduje się pod return; i poza klamrą. Niestety, nie tylko o to nam chodzi. Chcemy, aby wpisanie .flyhack w czacie powodowało przestawienie wartości toggle'a na przeciwną (true/false). Także wpiszemy sobie w klamrze taki oto kod.

 

if(s.startsWith(".flyhack"))

 

{

GuiIngame.toggle = !GuiIngame.toggle;

if(GuiIngame.toggle)

{

addChatMessage("ON");

} else

{

addChatMessage("OFF");

}

return;

}

 

 

Czyli teraz, każde wpisanie .flyhack w czacie będzie powodowało przestawienie wartości toggle'a i wyświetlenie odpowiedniej wiadomości (widocznej oczywiście tylko dla nas). Część wpisywania komendy zakończona, teraz najtrudniejsza część - pisanie FlyHack'a! Przejedź nad samą górę pliku, aż do linijki import net.minecraft.client.Minecraft; Pod nią dopisz takie kolejne dwie.

 

import org.lwjgl.input.Keyboard;

import.org.lwjgl.opengl.GL11;[/code]

 

Nie ma sensu się teraz rozpisywać nad sensem tych dwóch linijek, napiszę tylko, że bez nich nie dacie rady poprawnie napisać napisać dalszej części kodu. Teraz wyszukaj public void func_4056_N(). Tuż pod klamerką w następnej linijce wpisz

 

if(GuiIngame.toggle)

{

 

}

Czyli jeżeli toggle ma wartość true, zrób to co jest w klamerce. A do klamerki dopiszemy taki kod.

 

 

if(GuiIngame.toggle)

{

onGround = true;

if(!(Keyboard.isKeyDown(57)) || !(Keyboard.isKeyDown(29)));

{

motionY = 0.0D;

}

}

Czyli kolejno, onGround = true; jesteśmy na ziemi = prawda. Takie małe oszustwo. Następnie: jeżeli klawisz 57 (spacja) lub klawisz 29 (CtrL) nie jest naciśnięty, wtedy motionY (wysokość.. powiedzmy) jest równe 0. Pod tym dopiszemy jeszcze dwie instrukcje if i koniec!

 

 

if(GuiIngame.toggle)

{

onGround = true;

if(!(Keyboard.isKeyDown(57)) || !(Keyboard.isKeyDown(29)));

{

motionY = 0.0D;

}

if(Keyboard.isKeyDown(29))

{

motionY--;

}

if(Keyboard.isKeyDown(57))

{

motionY++;

}

}

Czyli. Kiedy wciskamy klawisz 29 (CtrL) wysokość na osi Y zmniejsza się (motionY-- ;)/lecimy w dół/whatever. Zaś kiedy wciskamy klawisz 57 (spacja) analogicznie wysokość na osi Y zwiększa się (motionY++ ;). W grze oznacza to tyle, że po wpisaniu w czacie .flyhack naciskając spację lecimy do góry, wciskając CtrL opadamy na dół. Tylko przypadkiem nie wpisywać z powrotem .flyhack w locie bo spadniecie.. i zaliczycie czerwony ekran.

 

Istnieje wiele kodów na fly ale wydaje mi się, że ten jest dla początkujących najłatwiejszy.

Został zaprezentowany przez TeamAntelope na HackForums.net - thanks! <3

 

Skończyłeś już zabawę z kodem, zapisz wszystkie zmiany i powróć do głównej ścieżki folderu MCP. Uruchom tam kolejno pliki recompile.bat i reobfuscate.bat. Po skończeniu, pliki *.class z /reobf/minecraft wrzuć do minecraft.jar. I usuń folder META-INF.

 

Zrobione!

 

Zakaz kopiowania powyższej publikacji na inne fora, a już na pewno nie bez zgody autora.

 

Życzę miłej zabawy z programowaniem w Java.

Pozdrawiam, ~Gaw3l. :ninja:

Opublikowano (edytowane)

Wow ! :O:D To jest bardzo zaje*****e ciekawe ! Muszę to przetestować. :D Lubię To ! ^_^ ;)

 

@Edit

 

Ten link nie działa : 1. Pobierz MCP ze strony mcp.ocean-labs.de/index.php/MCP_Releases <_<

 

To jest ukryta treść, proszę

 

@Edit 2

 

Dobra git działa. ;) Nie potrzebnie na początek adresu wpieprzało mi się ' www. ' . ^_^

 

@Edit 3

 

A da radę coś napisać pod 1.9.4 ? Widziałem Twój temat : http://www.mpcforum.pl/topic/413638-mega-tutmodloader-od-zera-do-moddera/ i czy jeśli będę chciał coś napisać jakiegoś moda pod 1.9.4 dam radę czy nie za bardzo ? Czy tylko to jest pod 1.8.1 ?

Edytowane przez xKaMaSx

xKaMaSx


exMod


Memory

Opublikowano

Następny poradnik całkowicie

świetnie napisany,czekam na kolejne które

jeszcze bardziej zadziwią.

 

Like

Jeżeli ty nie masz szacunku do mnie,ja go nie mam do Ciebie

Opublikowano
A da radę coś napisać pod 1.9.4 ? Widziałem Twój temat : http://www.mpcforum....era-do-moddera/ i czy jeśli będę chciał coś napisać jakiegoś moda pod 1.9.4 dam radę czy nie za bardzo ? Czy tylko to jest pod 1.8.1 ?

 

W przypadku pisania modów pod ModLoadera, musisz pobrać wersję na 1.9pr4.

Tutaj musisz po prostu edytować pliki MC1.9pr4 zmiast 1.8.1. ;)

Opublikowano (edytowane)

W przypadku pisania modów pod ModLoadera, musisz pobrać wersję na 1.9pr4.

Tutaj musisz po prostu edytować pliki MC1.9pr4 zmiast 1.8.1. ;)

 

Ahym. ;) Modloader'a mam już pod 1.9.4 wgranego. ^_^ No czyli jednak bd mógł się pobawić. :D Bd miał chwilę to pokombinuje ^_^ Dzięki wielkie ! :D

 

@Edit

 

Ku**a... Poje***o mi się... <_< Przecież nie ma jeszcze ModLoader'a pod 1.9.4... :(

Edytowane przez xKaMaSx

xKaMaSx


exMod


Memory

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...