Skocz do zawartości

Szymi_2004

Użytkownicy
  • Postów

    45
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez Szymi_2004

  1. Witam wszystkich!

    Już dawno zaciekawił mnie ten wspaniały przykład Pieter'a 6. Dzisiaj postanowiłem dodać w projekcie możliwość zmiany koloru czcionki oraz jej stylu. W Delphi jestem very newbie, więc (jak to zawsze newbie :D) proszę was o pomoc :P. Szukałem jakiś kursów Delphi, ale niestety żaden z nich nie opisywał aspektu czcionki (no albo źle szukałem :P). Zamieszczę tutaj kod projektu zawartego w przykładzie:

     

    library edit_library;
    
    uses
       Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    var
    handle: THandle;
    
    function SendMessageByString(hwnd:hwnd;msg: cardinal;wParam: integer;lParam: string):integer;
    stdcall;external 'user32.dll' name 'SendMessageA';
    
    function texta(c:char;l:integer):string;
    var i:integer;
    begin
    result:='';
    for i:=1 to l do result:=result+c;
    end;
    
    procedure Init(h:double);  cdecl;
    begin
    handle := round(h);
    end;
    
    function CreateEdit(x,y,w,color,Ctl3D,pass,visible:double):double; cdecl;
    var TempEdit : TEdit;
    begin
       TempEdit := TEdit.Create(nil);
       TempEdit.Left := round(x);
       TempEdit.Top := round(y);
       TempEdit.Width := round(w);
    
       if Ctl3D = 0 then
          TempEdit.Ctl3D := false
       else
          TempEdit.Ctl3D := true;
    
       TempEdit.ParentWindow := handle;
    
       if visible = 1 then
          TempEdit.Visible := True
       else
          TempEdit.Visible := false;
    
       TempEdit.Color := round(color);
    
       if pass = 1 then
          TempEdit.PasswordChar := '*';
    
       result := TempEdit.Handle;
    end;
    
    procedure SetTextEdit(h:double; text:Pchar); cdecl;
    var
    hand:THandle;
    begin
    hand := round(h);
    SendMessageBystring(hand, WM_SETTEXT, 0, text);
    end;
    
    function GetTextEdit(h:double):Pchar; cdecl;
    var
    hand:THandle;
    text:string;
    clength:integer;
    begin
    hand := round(h);
    clength := sendmessage(hand,WM_GETTEXTLENGTH, 0, 0); // POBIERA DLUGOSC TEXTU
    text := texta(' ',clength+1); // ZAMIENIA DLUGOSC NA SPACJE
    SendMessageBystring(hand, WM_GETTEXT, clength + 1, text); // POBIERA TEXT
    result := pchar(text);
    end;
    
    exports Init, CreateEdit, SetTextEdit, GetTextEdit;
    
    begin
    end.

     

    Z góry dziękuję za pomoc :]. Szkoda, że nie ma na tym forum opcji "Pomógł" bo chętnie bym dał mojemu wybawcy xD. Pozdrawiam

    Szymi

  2. Niestety to chyba nie działa. Odpaliłem ostatnio i teraz wogóle widzę jakby sie nie ruszał :P (tak samo jest u niego). Możliwe, że coś spaprałem... Jeszcze poprubóje, ale i tak dzięki (ty jedyny rozgryzłeś tą "zagadkę" :P). Pozdro

     

    Edit: Już wiem co źle robiłem! Nie można wstawić writeshort(player.direction); w 43 linijce, powieważ jest tam "else" (zaprzeczenie :P). Gdy wstawiam w 44 linijkę to po połączeniu z serwerem pokazuję się błąd właśnie z tym kodem, i z tą linijką :/. Nie pomyliłeś się Crackk-Gm? Bo coś mi się to nie chce trzymać kupy :P. Jak będziesz mógł to odpowiedz. Z góry dzięki.

    Szymi

     

    Edit2: Sory, to był mój błąd. Zamiast w serwer dałem to w clienta -.-. Przeraszam bardzo za mój błąd :D. Pozdrawiam

  3. @warcrawt: Następnym razem czytaj pierwszy post a potem zakładaj, że dopiero zaczynam z GM'em (mam już na koncie 1 grę i trochę umiem...)

     

    @RaistlinBlackRobe: Czyli, że coś ze skryptami jest?? Nie umiem operować w 39dll, więc chyba duzo nie poradze :/. Jeżeli ktos zna ten przykład i mógłby mi go jakoś "naprawić" żeby było normalnie to byłbym bardzo wdzięczny :]. Pozdro

  4. Witam wszystkich!

    Tak jak pisałem w poprzednim teamcie zacząłem bawić się z przykładem ONL1N4 pt. Online 2. Po wypaleniu projektu (wyścigi mp) wysłałem go mojemu koledze. Zahostowałem serwer i zaczeliśmy grać. Okazało się jednak, że ja widze go jakby jechał bokiem, i on mnie też tak. W poprzednik temacie dostałem odpowiedź, że muszę oprócz położenia gracza pobierać również jakieś image_angle. Znalazłem wzmianke o tym w objekcie drugiego gracza (przeciwnika) w akcji Step. W kodzie była oto taka linijka:

    image_angle = direction

    Nie wiem czy jest to zainicjowanie tego image_angle, ale domyślam się, że nie. Jeżeli to nie jest (albo i jest) zainicjowaniem tego to w takim razie co? Czy mam jakoś zmienić ten kod czy jak? Z góry dziękuję za pomoc i pozdrawiam wszystkich.

    Szymi

  5. Witam wszystkich!

    W ostatnim czasie z nudów przeglądałem Google w poszukiwaniu dobrego przykładu multiplayer. WreszczeWreszcie go znalazłem! Pobrałem Online Engine V2 autorstwa ONL1N3 i zabrałem się do pracy :P. Zaciekawił mnie dołączony do przykładu ,,modółmoduł" (nazwijmy to tak) przedstawiający prostą wyścigówkę multiplayer. Wypaliłem projekt server'a oraz projekt gry. Zahostowałem serva, wysłałem do kumpla projekt gry i zalogowaliśmy się na moje IP. OdrazuOd razu zauważyłem drobny, chodź przeszkadzający bug. Samochód mojego kolegi jeździł bokiem. Nie mam pojęcia czemu, ale tylko ja to widziałem. taki sam efekt był u niego. Poszperałem w kodzie, jednak nic nie znalazłem. Proszę o pomoc, bo chcę wykorzystać ten przykład w mojej grze :D. Pozdrawiam

    Szymi

  6. Witam wszystkich!

    Mam taki dylemacik... Ostatnio postanowiłem napisać notatnik w GM'ie. Zabrałem się za pierwszy leprzy przykład który znalazlem u Siebie na dysku pt. "key" autorstwa (o ile dobrze pamiętam) Tymona. Potrzebny mi wskaźnik włożyłem na nową "formę" i zacząłem pracę... Stanąłem z pracą w momencie kiedy pomyslałem sobie o zapisywaniu pliku (dopiero w tedy o tym pomyślałem :lol: ). Nie wiem dokładnie jak zapisać tekst (wpisany w okienko) do dokumentu INI (już chyba wiem jak się je obsługuje :D :jezor: ). Byłbym bardzo wdzięczny za podanie kodu jak tekst pokazany w okienku (przykładu "key" Tymona)zapisywał się do pliku INI. Z góry dziękuję za pomoc

    Szymi

  7. Witajcie!

    Od długiego już czasu zajmuję się moim projektem "Kulki MP" (raz robię, raz nie xD). Ustawiłem w objectcie 1 (naszej postaci, kulki), żeby po naciśnięciu klawisza Insert zmienił się kolor owej kulki. Znudziło mnie na klika dni robienie mojej gry, więc wymyśliłem do niej bota. Ten oto bot miałby naciskać i puszczać przycisk Insert co np. 1 sec. Wymyśliłem sobie, że bot będzie odpalał się w tray'u by zaoszczedzić miejsca użytkownikowi na pulpicie/pasku. Niestety nie wiem jak zminimalizować aplikację do traya :/. Bawię się jakiś czas w Delphi i tam aby minimalizować okienko programu do tray'a potrzeba odpowiedniego komponentu. Czy w przypadku Game Makera bedzie potrzebny jakis dll? Z góry dziękuję za pomoc i pozdrawiam wszystkich :P.

    Szymi

  8. Dzięki bardzo Tymon żądzisz ;]. Już zabieram się do pracy :]. Pozdro

     

    12:52 : OK wszystko jest git tylko, że... Jak spisuje w object "edt" to 3 co mi dałeś to tworzy mi tylko 1 linijke to wpisywania. Jak zrobic żeby były 2 ? A i jeszcze jak ustawic żeby czciaonka była koloru białego ? Troche to przydługie :/, można zmienic szerokośc ? Plx odpowiedz jak najszybciej możesz.

  9. Witajcie!

    Ostatnio naszło mnie na robienie gry multiplayer, ale nie wiem jak zrobic żeby pisany tekst w polach był zapisywany w pliku obok. Poczytałem troche o plikach INI w FAQ (duzo tego jest i cuś zajażyłem xP). Ściągnąłem przykład "formulaz dll" (najlepszy przykład dotyczący pola formularza jaki znalazłem) i utknąłem przy 1 zagadnięciu... Otóż mam taki kod na INI:

    ini_open('dane.ini')
    ini_write_string('Dane','Numer1','87654321')
    ini_write_string('Dane','Numer2','12345678')
    ini_close()

    A tutaj kod z "pole formularza dll" (po nacisnieciu na objecta pojawia się wszystko co było wpisane za gwazdkami):

    show_message("Login: "+edit_gettext(global.login_edit)+"#Hasło: "+edit_gettext(global.pass_edit));

    Moje pytania:

    1. Jak zrobic żeby to co się wpisało do okienka (wszystko za gwiazdkami) pojawiało się w dokumencie INI (tzn. jak przerobic kod INI tak żeby pisany przez gracza tekst za gwiazdkami był umieszczany w dokumencie INI).

    2. Czy pole tych 2 formularzy można jakoś zmniejszyc ? Doszukałem się scripta którego w 50% pojąłem (nie rozumiem gdzie to się ustawia przy wstawianiu pola formularza)

    // Tworz edit i zwroc jego uchwyt
    // argument0 - x
    // argument1 - y
    // argument2 - dlugosc
    // argument3 - kolor
    // argument4 - true/false - Ctl3D
    // argument5 - true/false - czy edit ma byc haslem
    // argument6 - true/false - visible czyli widzialnosc
    
    return external_call(global.CreateEdit_lib,argument0,argument1,argument2,argument3,argument4,argu
    ment5,argument6);

    3. Pytanie podobne do poprzedniego. Czy można zmienic kolor środka pola do wpisywania ? (z skryptu wyżej wychodzi, że można ale jak to się ustawia ?? :P)

     

    Mam nadzieję, że w miare jasno przedstawiłem mój problem :]. Jeżeli ktoś mógłby napisac gdzie to się ustawia byłbym bardzo wdzięczny.

    Pozdrawiam

    Szymi

     

     

    P.S. Chciałbym żeby pole formularza było mniej więcej takiej wielkości a654a1091521ef00.jpg . Kolor w środku może byc taki a29f4175defb4cfb.jpg . Pozdro

×
×
  • Dodaj nową pozycję...