Skocz do zawartości

Pieter

Użytkownicy
  • Postów

    1 990
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Pieter

  1. Pieter

    Przetłumaczony kod

    sorry za doubleposta ale powiedźcie mi chociaż czy to jest dobrze przetłumaczone: void CTrainer::writeString(DWORD address, std::string value) { unsigned char nullTerminator = 0x00; int j = 0; for(unsigned int i = 0; i < value.size(); i++) { ::WriteProcessMemory(processHandle, reinterpret_cast<void*>(address + j), &value[i], 1, 0); j++; // increment address } ::WriteProcessMemory(processHandle, reinterpret_cast<void*>(address + j), &nullTerminator, 1, 0); } na procedure WriteString(address:DWORD; value: string); var no:DWORD; i,j,len: integer; nullTerminator:integer; begin no := 0; nullTerminator := $00; len := length(value); j := 0; for i:=0 to len-1 do begin WriteProcessMemory(processHandle, ptr(address+j), @value[i], 1, no); inc(j); end; WriteProcessMemory(processHandle, ptr(address+j), @nullTerminator, 1, no); end;
  2. na to ci mogę odpowiedzieć chodź to będzie mały offtop. Gra może dla początkującego jest nudna ale kiedy wyjdziesz z "Rookgaardu" (wyspy dla nowych) to gra wciąga tak mocno że nie wiem. Gdy stoisz pod depot i patrzysz jak High lewele (80/100/200/lvle) przechodzą obok a wszyscy się im kłaniają to też chcesz być tak potężnym. Jest też fabuła tej gry chodź to mmo i z grafiką nie za ładną to możliwości itd baaardzo wciągają... btw. Piszesz że ludzie nie pozostaną przy tej grze na dłużej. Jeżeli Borek napisze system m/w jak w tibi. Wybór światów, mapa dla treningu (noob land) to napewno dorówna a nawet przewyższy tibie popularnością. Skoro ludzie grają jeszcze w takie gry jak runescape (strasznie mi się ta gra nie podoba ale ludzie w nią grają) to w tę grę też napewno zagrają. Przydały by się jeszcze jakieś questy łatwe i cholernie trudne które (te drugie) mogą wykonać tylko high levele. W tibi jest takie coś że na wyspie nowicjuszy jest legenda o "Mieczu furii" kto go zdobędzie dostanie władanie nad całym rookgaardem itd... A o ile mi wiadomo jedyną osobą która ma ten miecz jest nie jaki "Sunrise" który na wyspie nowicjiuszy zdobył 100 level, a z tamtąd wychodzi się na 8 levelu :P ale to nie o tibi tu mowa :P Powiem ci tyle. Gra na 100% będzie miała zainteresowanie. Czytając powyższe posty stwierdzam że przykuje wszystkich do monitora na dłuuuugie godziny, dni, miesiące a może lata :P
  3. Mam napisanego dll'a w c++ i chce go wywołać w delphim ale jest problem :/ pokazuje mi się błąd i nie wiem jaka jest jego przyczyna. proszę pomocy! PLIK: PROJEKT DOWNLOAD
  4. jeżeli będzie dość ciekawe to przeżucie się z tibi na to :P btw. 70 rużdzek ? lol w tibi jest ich tylko 10 xD ty chyba kiedyś w tibie grałeś bo pomysł jest taki jak tam... no może trochę lepszy wymyśliłeś :P
  5. Pieter

    Przetłumaczony kod

    poprostu napisałem że ten kod co tam jest w c++ (ten pierwszy) przetłumaczyłem na ten w delphi (ten drógi) i chce wiedzieć czy dobrze przetłumaczyłem i czy nie będzie jakiś problemów a nie mam jak tego sprawdzić :/ EDIT: tak tłumacze silnik dla celów osobistych. Już nie raz zdarzało mi się tłumaczyć języki na delphi np visual basica itd więc mam wprawę :P EDIT Dobra ostatnia sprawa bo ten kod mi nie działa co go próbowałem przetłumaczyć. CZY ZNA SIĘ KTOŚ TU NA C++ I POTRAFIŁ BY MI NAPISAĆ DLL'A Z TEJ BIBLIOTEKI? To jest mało bo tylko 5 krótkich funkcji proszę niech się ktoś tym zajmie. Dodam do credits :) http://www.gmxxl.ovh.org/trainer.zip
  6. Pieter

    Przetłumaczony kod

    Przetłumaczyłem sobie kod z c++ na delphi ale nie wiem czy będzie działać a nie mam jak to sprawdzić. Dam wam go tu i powiedzcie mi czy według was powinno działać Kod w c++: #include "trainer.h" /* Trainer by Evremonde */ /* constructor and deconstructor */ CTrainer::CTrainer() { // } CTrainer::~CTrainer() { // } /* process */ void CTrainer::setProcess(HWND gameWindow) { // get game window hwnd = gameWindow; // get process id ::GetWindowThreadProcessId(hwnd, &processId); // get process handle processHandle = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId); } void CTrainer::closeProcess() { // close process handle ::CloseHandle(processHandle); } /* read and write memory */ void CTrainer::writeBytes(DWORD address, int value, int bytes) { ::WriteProcessMemory(processHandle, reinterpret_cast<void*>(address), &value, bytes, 0); } int CTrainer::readBytes(DWORD address, int bytes) { int buffer = 0; ::ReadProcessMemory(processHandle, reinterpret_cast<void*>(address), &buffer, bytes, 0); return buffer; } void CTrainer::writeString(DWORD address, std::string value) { unsigned char nullTerminator = 0x00; int j = 0; for(unsigned int i = 0; i < value.size(); i++) { ::WriteProcessMemory(processHandle, reinterpret_cast<void*>(address + j), &value[i], 1, 0); j++; // increment address } ::WriteProcessMemory(processHandle, reinterpret_cast<void*>(address + j), &nullTerminator, 1, 0); } std::string CTrainer::readString(DWORD address) { static char buffer[255]; ::ReadProcessMemory(processHandle, reinterpret_cast<void*>(address), &buffer, sizeof(buffer), 0); return buffer; } void CTrainer::writeNops(DWORD address, int nops) { unsigned char nop = 0x90; int j = 0; for (int i = 0; i < nops; i++) { ::WriteProcessMemory(processHandle, reinterpret_cast<void*>(address + j), &nop, 1, 0); j++; // increment address } } a tu mój w delphim unit trainer; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; var processHandle: THandle; procedure setProcess(gameWindow:THandle); procedure closeProcess(); procedure WriteBytes(address:DWORD; value,bytes: integer); function ReadBytes(address:DWORD; bytes: integer):pchar; procedure WriteString(address:DWORD; value: string); function ReadString(address:DWORD): string; procedure WriteNops(address:DWORD; nops: integer); function WriteProcessMemory(hProcess: THandle; const lpBaseAddress: pointer; lpBuffer: pointer; nSize: DWORD; var lpNumberOfBytesWritten: DWORD): BOOL; stdcall; external kernel32 name 'WriteProcessMemory'; function ReadProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer; nSize: DWORD; var lpNumberOfBytesRead: DWORD): BOOL; external kernel32 name 'ReadProcessMemory'; implementation procedure setProcess(gameWindow:THandle); var pid:DWORD; begin if IsWindow(gameWindow) then begin GetWindowThreadProcessId(gameWindow, @pid); processHandle := OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); end; end; procedure closeProcess(); begin CloseHandle(processHandle); end; procedure WriteBytes(address:DWORD; value,bytes: integer); var no:DWORD; buf: PChar; begin no := 0; GetMem(buf, 1); buf^ := Chr(Value); WriteProcessMemory(processHandle, ptr(address), @buf, bytes, no); FreeMem(buf); end; function ReadBytes(address:DWORD; bytes: integer):pchar; var no:DWORD; buf: pchar; begin buf := 0; no := 0; ReadProcessMemory(processHandle, ptr(address), @buf, bytes, no); result := buf; end; procedure WriteString(address:DWORD; value: string); const nullTerminator = $00; var no:DWORD; i,j,len: integer; begin no := 0; len := length(value); j := 0; for i:=0 to len do begin WriteProcessMemory(processHandle, ptr(address+j), pchar(@value[i]), 1, no); inc(j); end; WriteProcessMemory(processHandle, ptr(address+j), pchar(nullTerminator), 1, no); end; function ReadString(address:DWORD): string; var no:DWORD; i:integer; s:string; buf: array of char; begin no := 0; s := ''; setlength(buf,255); ReadProcessMemory(processHandle, ptr(address), @buf, 1, no); for i:=0 to 255 do begin s := s + buf[i]; end; result := s; end; procedure WriteNops(address:DWORD; nops: integer); const nop = $90; var no:DWORD; i,j:integer; begin no := 0; j := 0; for i:=0 to nops do begin WriteProcessMemory(processHandle, ptr(address+j), pchar(nop), 1, no); inc(j); end; end; end.
  7. Moim zdaniem to daj sobie spokuj. Następny projekt a'la tibia ~~
  8. Pieter

    Przywitaj sie

    tak nie podoba mi się to. I mam dość widoku jak zakładane są bezsensowne tematy tego typu...
  9. Pieter

    Przywitaj sie

    wolfoxer ty zawsze robisz spamowiska...
  10. to daj go ja go przerobie bo nie chce mi sie pisać wszystkiego od nowa :/
  11. albo wiesz co :P naciągnę cię na full wersje bo pisze na gmclanie iPROBOWALEM ci pomoc z tymi kostkami :P
  12. czyli chodzi ci o m/w takie coś jak jest w tibi? Da się zrobić chodź dużo roboty jest :/ MOŻE ale to MOŻE jak będę miał czas jutro po szkole to ci to napiszę ok?
  13. ta gra jest coraz lepsza xD chyba zakupie pełną wersje :) btw. co to moda na wilcze avatary? ja też mam ładnego wilka :P
  14. jak byś przejrzał przykłady na stronie to bis coś takiego znalazł...
  15. wolał bym żebyś nie dawał projektu dll'a do tego przykłądu bo ludzie pomyśla jeszcze że sam go napisałeś :3 EDIT: spox
  16. real zamienia ogólnie jakie kolwiek liczby w stringu na integer. nie ma podziału
  17. if file_exists(parameter_string(1)) { otworz_plik(parameter_string(1)); } dajesz to w evencie create. parameter_string(1) - ścieżka do otwartego pliku. otworz_plik([...]) - funkcja otwierająca plik zamień ją na swoją (myślę że nie jesteś głupi i na pewno się skapnąłeś o co chodzi, ale napisać nie zaszkodzi :P) dał bym ci jeszcze jak przypisać rozszerzenie do programu ale nie pamiętam jak to się pisało w rejestrze :/
  18. można ewentualnie zastosować path...
  19. tyle że dorobiłem sobie kilka kropek na paincie i tyle :P a te kostki i tak są na czarnym tle wiec czym sie przejmujesz? zrob maske to o wiele poprawi jakosc :P
  20. a czy tak ciężko jest zrobić AA :P? tu masz z AA:
  21. niestety żadnego przykładu do 39dll nie ma :/ sam musisz napisać niestety... Ale dll jest dość łatwy szybko go pojmiesz. Ja już mam swój silnik.
  22. może i drogi ale wart swojej ceny :P Bawiłem się kiedyś w GS ale zrezygnowałem :P Zielak naucz się robić gry w game makerze a potem weź się za gry 3D w GM xD
  23. Widze że grę robisz na Ultimate Mplay :) powodzenia xD chodź to do gier na więcej niż 3 osoby się nie nadaje... Korzystaj tak jak ja z dll'a 39dll :P
  24. my mamy ci podawać propozycje tego co chcesz zrobić? oO
×
×
  • Dodaj nową pozycję...