Skocz do zawartości

Opisek

Użytkownicy
  • Postów

    72
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez Opisek

  1. Szukam po całym internecie i nigdzie tego nie ma...

    Chcę kamerę z tego DLL przenieść na odrębnione od gry okno.

    Pewnym sposobem jest odpalanie dodatkowego programu, który zawiera wyłącznie ten obiekt monitorujący grającego, jednak ja bym wolał nie stosować kolejnych plików. Jest na to sposób?

    Ewentualnie można ciągle zapisywać obraz z kamery, który będzie wyświetlany w osobnym oknie (chociaż nie wiem czy to by było możliwe), ale co z gorszymi komputerami?

    Może ktoś mi pomóc?

  2. Od razu widzę problem, też to miałem u siebie. Zapisujesz grę przed wejściem do sklepu, czyli wszystkie zmienne np, że w plecaku nic nie masz. Wchodzisz do sklepu i wszystko działa, ale jak wychodzisz gra się wczytuje i wczytuje się zmienna plecaka - nic w nim nie ma.

    W mojej grze wpadłem na pomysł zapisywania zakupionych rzeczy w osobnym pliku, w twoim przypadku najlepszy jest plik z rozszerzeniem .ini

     

    Wychodzimy ze sklepu:

    GML
    //Plecak zapisywany jest w pliku

    ini_open('plecak.ini');

    ini_write_string('Plecak','pole1',global.pole1);

    ini_write_string('Plecak','pole2',global.pole2);

    ini_write_string('Plecak','pole3',global.pole3);

    ini_close();

    //Gra powraca do momentu przed wejściem do sklepu

    game_load(plik.zapis);

    //Zapisany plecak jest teraz wczytywany

    ini_open('plecak.ini');

    pole1=ini_read_string('Plecak','pole1',global.pole1);

    pole2=ini_read_string('Plecak','pole2',global.pole2);

    pole3=ini_read_string('Plecak','pole3',global.pole3);

    ini_close();

     

    Powinno działać.

  3. Prosiłeś mnie o przykład. Ok, ale powiedz czy to jest nadal aktualne.

     

    EDIT:

     

    Przy okazji do przykładu wrzuciłem mechanizm losujący samochód, osiągi itd.

    (Jeszcze nad nim pracuję - w najbliższym czasie Ci go wyślę.)

     

    EDIT:

    Kody możesz wykorzystać, ale oczywiście chcę do CREDITS'ów.

  4. GML
    //event: start pierwszego wyścigu:

    //zmienna global.miejsca - liczba miejsc zmienna global.wyscigi - liczba wyscigow

    global.wyscigi=x;

    global.miejsca=x;

    global.max_punkty = global.miejsca*global.wyscigi;

    global.punkty = global.max_punkty

    //event ukończenia jednego wyścigu (zmienna global.miejsce - miejsce które zająłeś)

    global.punkty -= global.miejsce;

    //event skończenia wszystkich wyścigów;

    score = global.max_punkty -= global.punkty;

    UWAGA! Pierwsze miejsce to musi być 0 (wyświetlanie:)

    GML
    draw_text(x,y,global.miejsce += 1;)

    Z miejscami myślę, że sobie poradziłeś, a jeśli zrobiłeś 1st miejsce = 1 to mozesz tak:

    GML
    global.miejsce = global.twoje_miejsce -= 1;

    Chyba rozumiesz... Jak nie to wyjaśnię Ci po kolei albo zrobię przykład. Przy okazji - daj wersję gm, muszę wiedzieć jak robię przykład.

  5. Radzę Ci używać opcji Included Files - dzięki niej program po pierwszym uruchomieniu zapisuje wszystkie dll (które ustaliłeś w tej opcji) (podczas pierwszego uruchomienia dll muszą być w tym samym katalogu co gra) "w sobie". Następnie, gdy uruchamiasz grę pliki zostają przeniesione do katalogu, a gdy gra zostanie zakończona, znów do niej "wchodzą".

  6. Nie wiem czy to było planowane, ale w config.ini da się ręcznie zmieniać ustawienia w tym odblokowanie wyższych poziomów. Zobacz metodę szyfrowanie XOR od ediepl, ja jej używam i więcej do szczęścia mi nie potrzeba.

  7. Z tym się nie zgodzę, gdyż mam inny updater, który działa i z niego skopiowałem kod tylko pozmieniałem linki i dodałem opcje sprawdzania czy jest dostępny update (pobiera plik AB-czyUPDATE.txt). Z tego myślę, iż problem dotyczy linku i samego serwera gmclanu, ponieważ plik AB-News.txt zmienia się na AB_News.txt, co może wpływać na działalność. Próbowałem już:

     

    - download_to_file('[...]/AB-News.txt','AB-News.txt')

    - download_to_file('[...]/AB_News.txt','AB-News.txt')

    - download_to_file('[...]/AB_News.txt','AB_News.txt')

    - download_to_file('[...]/AB-News.txt','AB_News.txt')

     

    i żaden z powyżej wymienionych kodów nie działa.

     

    Proszę o pomoc. (Kluczowe fragmenty tekstu zostały podkreślone.) [AB-News.txt zmienia się na AB_News.txt - przez podkreślenia nie widać]

     

    EDIT:

     

    Jednak nie... Mój stary updater już nie chce działać... Nie pobiera plików. Z problemem linku już sobie poradziłem, ale czy nie tworzy się przepadkiem jakaś blokada w zaporze? Nie pojawił się znaczek administratora na ikonce updatera. Sprawdzę czy coś się nie zablokowało, a jeśli ktoś będzie coś o tym wiedział proszę o udzielenie się.

     

    EDIT:

     

    Zapora dla tych programów jest otwarta, a jednak nie pobierają plików (stary i nowy). Stworzyłem program pobierającego News.txt, a i ten nie działał więc to nie problem linku. To może być problem serwera lub dll_39dll.dll. Najdziwniejszy jest brak znaczku administratora. Jeśli ktoś wie o co chodzi bardzo proszę o pomoc.

  8. Witam,

    od razu przejdę do rzeczy, używam dll_39dll.dll do pobierania plików. Na uploadera w gmclanie dałem trzy pliki; AB-News.txt, AB-czyUPDATE.txt i AnnoyingBird.zip. Problem tkwi w tym, że gm mi ich nie pobiera. Każdy ma kod download_to_file('http://www.gmclan.org/uploader/8780/AB_czyUPDATE.txt','AB-czyUPDATE.txt') (każdy oczywiście własny link). Przy okazji czy nie będzie problemu jeśli zmienię typ pliku np. na .AB i zaszyfruję Xorem od (chyba) ediepl (w file_text_open_read)?

    Proszę o szybką odpo już jestem i tak spóźniony.

  9. Witam, tworzę grę multiplayer na podstawie tego poradnika: (klik).

    Wszystko idzie dobrze lecz gracze nie widzą się nawzajem oraz id każdego gracze zawsze wynosi 0.

    Przed tym problemem miałem jeszcze błąd "unknown variable clients or array index out of bounds" lecz po zaznaczeniu opcji przypisania nieznanym zmiennym wartości 0 (w Global Game Settings), ten błąd zniknął. Czy to może być wina tego, a jeżeli tak to w jaki sposób wyeliminować błąd z nieznaną zmienną clients?

     

    Kody:

     

    Information about object: obj_Menu

     

    Sprite: <no sprite>

    Solid: false

    Visible: true

    Depth: 0

    Persistent: false

    Parent: <no parent>

    Mask: <same as sprite>

     

    Create Event:

    execute code:

     

    global.gracze = 0

    global.maxGracze = 0

     

     

    Key Press Event for H-key Key:

    execute code:

     

    instance_create(0,0,obj_Server)

     

     

    Key Press Event for J-key Key:

    execute code:

     

    instance_create(0,0,obj_Client)

     

     

     

    Information about object: obj_Server

     

    Sprite: <no sprite>

    Solid: false

    Visible: true

    Depth: 0

    Persistent: false

    Parent: <no parent>

    Mask: <same as sprite>

     

    Create Event:

    execute code:

     

    global.maxGraczy = get_integer("Podaj maksymalną ilość graczy:","2")

     

     

    net_init("dll_39dll.dll",false)

    net_server_start(0001,global.maxGraczy)

    net_client_connect("",0001)

     

    net_client_send(CONNECT,1,NET_INT,0)

    net_client_send(DISCONNECT,2,NET_INT,0,0)

    last_con = 0

    last_dis = 0

    found_id = 0

    global.gracze = 1

     

    for(i = 0; i>= global.maxGraczy; i += 1)

    {

    clients = 0

    }

     

     

     

    Step Event:

    execute code:

     

    net_server_update()

    net_client_update()

     

    net_client_send(global.maxGraczy,1,NET_INT,global.maxGraczy)

     

    pack_con = net_client_get(CONNECT,1)

    if pack_con != last_con then

    {

    global.gracze+=1

    last_con = pack_con

    found = false

    for(i = 1; i <=global.gracze; i += 1)

    {

    if found = false then

    {

    if clients = 0 then

    {

    clients = i

    found_id = i

    found = true

    net_client_send(RESPONSE,2,NET_INT,pack_con,found_id)

    }

    }

    }

    }

     

    pack_dis = net_client_get(DISCONNECT,1)

    if pack_dis != last_dis then

    {

    pack_client = net_client_get(DISCONNECT,2)

    global.gracze -=1

    last_dis = pack_dis

    players[pack_client] = 0

    }

     

    net_client_send(PLAYERS,1,NET_INT,global.gracze)

     

     

     

    Draw Event:

    execute code:

     

    draw_text(100 + view_xview, 20 + view_yview , "Gracze:" + string(global.gracze-1) + "/" + string(global.maxGraczy))

     

     

     

    Information about object: obj_Client

     

    Sprite: <no sprite>

    Solid: false

    Visible: true

    Depth: 0

    Persistent: false

    Parent: <no parent>

    Mask: <same as sprite>

     

    Create Event:

    execute code:

     

    net_init("dll_39dll.dll",false)

    net_client_connect("",0001)

     

    xy_id = round(random(600))

    net_client_send(CONNECT,1,NET_INT,xy_id)

    player_id = 0

    got_id = false

    name = ""

     

     

    Step Event:

    execute code:

     

    net_client_update()

    return_id = net_client_get(RESPONSE,2)

    if got_id = false && return_id = xy_id

    {

    found_id = net_client_get(RESPONSE,2)

    player_id = found_id

    got_id = true

    name="Player" + string(player_id)

    }

    else

    {

    net_client_send(player_id,2,NET_INT,x,y)

    }

    if keyboard_check(ord("W")) then y -=5

    if keyboard_check(ord("S")) then y +=5

    if keyboard_check(ord("A")) then x -=5

    if keyboard_check(ord("D")) then x +=5

     

     

    Other Event: Game End:

    execute code:

     

    net_client_send(DISCONNECT,2,NET_INT,round(random(600)),player_id)

     

     

     

    Draw Event:

    execute code:

     

    //draw_text(100 + view_xview, 20 + view_yview , "Gracze:" + string(global.gracze))

    draw_text(10 + view_xview, 10 + view_yview, "Twoje id:" + string(player_id))

     

    for (count = 1; count<= global.gracze-1; count+=1)

    {

    if count != player_id

    {

    xx = net_client_get(count,1)

    yy = net_client_get(count,2)

    draw_circle(xx,yy,5,false)

    draw_text(xx,yy-16,"Player"+ string(count))

    }

    }

     

    draw_circle(x,y,5,false)

  10. (sorry, nie napisałem, że to dotyczy GameMaker 8.0 Pro)

    Witam, moje pytanie to jak sprawdzić pojedynczy piksel w bmp, np jeżeli trzeci piksel od góry i tym samym drugi od lewej jest czerwony, mamy zielony samochód (tak wiem, że to już było, ale nie mogłem tego znaleźć)

    Z góry dzięki!

    P.S.

    Nie nie chodzi mi o to: https://forum.gmclan.org/index.php?showtopi...3&hl=piksel

    (Chociaż, gdy to pisałem to może mi i chodziło?)

  11. Ok ja na razie z tym kończę (w tej chwili to mnie przerasta :D)

    Jeszcze jedno, wracam do tematu; czy jest sposób, aby room, który stworzyłem w Game Maker przenieść do pliku, dać do pobrania i zrobić tak aby gra go wczytała? Np.: room nazwałem room1.[no właśnie co ma być po kropce] i gra wczytuje room np gdyby była taka funkcja room_add_file(room1.[coś]) i potem room_goto(room1) ???

    Trochę pomieszałem, ale chyba wiadomo o co chodzi nie?

  12. Ok nauczyłem się tego XOR'a i co dalej?

    Tu chodzi o dodawanie obiektów nie? Jak tak to to robię pobocznie, bo potrzebne mi roomy w folderze

    Katalog z grą:

     

    _____________________________________________

    Gierka|Miliony DLL'ów|Jeszcze więcej DLL'ków

    _____________________________________________

    Muzyczki|Jakiś tam folder|Folder o nazwie roomy

    _____________________________________________

     

     

     

     

    Folder o nazwie roomy:

     

    Tu są roomy :o

     

     

     

     

    Włącza się gierka i coś tam robi

     

     

     

    I ROOMY Z FOLDERU "wchodzą do gry"

     

    ---------------^----<<<--- To miała być strzałka :D

    Jak to zrobić??? |

  13. GRACZ/KONTROLER:

     

    EVENT CREATE/ROOM START:

     

    EXECUTE CODE:

     

    GML
    global.zabojstwa = 0;

     

    EVENT BEGIN STEP/STEP/END STEP:

     

    EXECUTE CODE:

     

    GML
    if global.zabostwa == 10

    {

    room_goto_next;

    }

    POTWOREK:

     

    MOMENT GDZIE POTWÓR GINIE (powinieneś mieć tam instance_destroy):

     

    EXECUTE CODE:

     

    GML
    global.zabojstwa+=1;

     

     

     

    __________________________________________

    Tak posłuchałem waszych świetnych rad

    i uczę się "dobrych nawyków" w programowaniu :D

    @Misiek999 Nie chodzi o ciebie ;)

    __________________________________________

     

     

    [Do pytającego]

    Jak to ma być? Ta butelka ma coś robić? Bo z tego co wynika jest tak:

     

    1) Jest sobie gracz

    2) Są potworki

    3) Gracz zabija 10 potworków

    4) Idzie do następnej planszy

     

    Coś jeszcze do tego? ^^^

  14. Walić Game Maker, napisz do tego skrypt w Bashu który korzysta z funkcji unzip (patrz pana wyżej), a używa curl/wget do pobierania pliku. Samo gui możesz zrobić w Pythonie 2.7 z użyciem tkinter, a następnie zastosować Freeze do zkompilowania. Następnie, możesz użyć rm do usunięcia plików [w skrypcie]. Nie jestem pewien, czy potrzebne będzie sudo.

     

    Jednak - czemu .exe na Linuxie?

     

    Maciej

    Najbardziej spodobała mi się pierwsza odpowiedź, ale dzięki, a tak poza tym;

    kto tu mówi o Linuxie?

  15. Cześć,

    mam pytanko. Jak przez game makera rozpakować zip, które wcześniej przez tego samego game makera zostało pobrane (dzięki Httpdownloader).

    Chodzi mi o takie coś:

     

    1) Włączamy grę i wciskamy dany przycisk (umiem, mam)

    2) Pobiera nam się katalog .zip (umiem, mam)

    3) Zip się rozpakowuje (nie umiem, nie mam)

    4) Rozpakowane .exe jest włączane (umiem, nie mam [bo bez wcześniejszego kroku nie ma sensu mieć no nie?])

    5) Usunięcie .zip i .exe (umiem, nie mam [ten sam argument co na górze])

     

    A więc pytam o ten trzeci krok... Ktoś wie jak to zrobić? I czy to jest możliwe? (I czy to powinno być w dziale początkujących :D)

×
×
  • Dodaj nową pozycję...