Skocz do zawartości

Konrad-GM

Użytkownicy
  • Postów

    2 728
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    44

Odpowiedzi opublikowane przez Konrad-GM

  1. Natywnie w GM: S nie ma szans. Nie lepiej napisać auto-updater'a w innym środowisku?

    Odkąd GM potrafi obsługiwać się plikami binarnymi, nie można tego tak napisać. Co nie umniejsza faktu że się nie opłaca pisać własnego LIBa dla GM:S i to w GMLu tylko po to, by rozpakować archiwum. ;D

     

    Popieram jednak towarzysza co do "innego środowiska". Zapoznaj się bliżej z dotNET/Qt/wxWidgets, na pewno znajdziesz coś co Ci będzie odpowiadać.

  2. Ładujesz w komórce ds_grid, np nowo utworzony ds_map.

     

    GML
    var _grid = ds_grid_create(...);

     

    var _map = ds_map_create();

     

    ds_grid_set(_grid, x, y, _map);

     

    ds_map_replace(_map,"set1",0);

    ds_map_replace(_map,"set2",1);

    ds_map_replace(_map,"item",2);

     

    Następnie:

     

    GML
    var _map = ds_grid_get(_grid, x, y);

     

    var _set1 = ds_map_find_value(_map, "set1");

    var _set2 = ds_map_find_value(_map, "set2");

    var _item = ds_map_find_value(_map, "item");

  3. przed modelem 3d

    Tzn 3th person?

     

    GML
    var _dir = objPlayer.direction + 180, _x = objPlayer.x, _y = objPlayer.y, _z = objPlayer.z;

    eye_x = _x + lengthdir_x(_dir, 10);

    eye_y = _y + lengthdir_y(_dir, 10);

    eye_z = _z + 8;

     

    at_x = _x;

    at_y = _y;

    at_z = _z+6;

    Podziałaj trochę z tym ;)

  4. Żeby Twój sposób, który obrałeś (komunikacja gracz-gracz) zadziałał, dwaj gracze muszą się ze sobą połączyć. Przypuśćmy że host wysyła IP graczy podpiętych do gry, musiałbyś połączyć ich ze sobą, np. wysyłanie pakietów UDP pod dany port, także nadany graczowi przez host - jako ten "wolny" w komunikacji P2P. Pamiętaj jednak o tzw. hole punching.

  5. Może spróbuj w obiekcie odpowiedzialnym za GUI, o "najniższej" wartości DEPTH, dodać event DRAW. A w niej kod:

    GML (DrawEvent)
    draw_text(view_xview + 5, view_yview + 5, string(score));

     

    Jeżeli używasz GM:Studio, to jest jeszcze event DRAW_GUI, w niej zaś można przypisać taki kod:

    GML (DrawEvent)
    draw_text(5, 5, string(score));
  6. Kongrad-GM
    Dzięgki ;_;

     

    Szczerze to, jak odpaliłem twój kod na webserv'ie, to alert się nawet nie wyświetlił.

    Zedytowałem go tylko w ten sposób, że zamiast wypisywania zmiennej, wypisałem '3' w php.

    W przypadku kodu Ranmusa, to alert wypisuje Undefined, a jak zamienie innerText na innerHTML, to <!--?php echo "3"; ?-->.

    Zapewne serwer nie widzi pliku JS. Jeżeli korzystasz z Chrome/Firefox użyj narzędzi pod klawiszem F12, i sprawdź czy się w ogóle plik ładuje.

  7. A nie może być po prostu:

    <html>
        <head>
            <script type="javascript">
                var obj = {
                    zmienna: <?php echo $zmienna; ?>,
                };
            </script>
            <script type="javascript" src="plik.js"></script>
        </head>
        <body>
            (...)
        </body>
    </html>

    ?

     

    A plik JS może wyglądać tak:

    window.onload = function() {
        alert(obj.zmienna);
    }

  8. Zapewne skakać się nie da, bo brak siły, która wybiłaby obiekt w górę - identyczna zasada jak na lekcji fizyki, o newtonie dokładniej. Grawitacja, i wektor siły (w GMie są to zmienne tj. vspeed, hspeed). Zaś co do poruszania się lewo-prawo, używasz nieodpowiednich zdarzeń, musisz zastąpić zdarzenia 'Press/Release' na 'Down' (klocek bez strzałek).

  9. Nie działa mi na stonie, nic się nie dzieje, sprawdzałem nawet jakieś przykłady z różnych stron, nawet gotowce, nie działa ;/

    Mam Chrome, może od tego coś zależeć ?

    Np. Niektóre przyległe obrazki do prawej i wycentrowane nie działają ;/

    Bo to jest skrypt PHP. A nie statyczna strona HTML. Jeżeli chciałbyś aby można było dodawać strony, musisz zagłębić się w tajniki programowania w języku np. PHP, i ew. MySQL.

  10. W odp. na priva. Forum jest po to, by dzielić się swymi doświadczeniami :P

     

    Tutaj sprawa wygląda bardziej skomplikowanie. Musiałbyś skorzystać z ciasteczek, aby gdzieś zachować identyfikację sesji po logowaniu. A np. powodzenie logowania (oraz ew. wczytywanie danych z bazy) sprawdzać pod innym (autorskim) modułem, gdzie np. wypisane byłyby TYLKO (RAW output) dane w formacie np. JSON i je parsować w GMie. Coś jak:

     

    Niepowodzenie:

    {
        "loggedIn": "no"
    }

    Powodzenie:

    {
        "loggedIn": "yes",
        "db": {
            "score": 1000,
            "equipment": ["Leather Helmet", "Leather Socks", "", "", "Wooden Sword"],
            "items": ["Potion HP", "Slime"]
        }
    }

    Oczywiście podałem to, jako przykład. Format wyjściowy może być przeróżny - wedle uznania. Zawsze można odpuścić sobie WP, i napisać własny system logowania się, i zarządzania bazą danych w PHP. Zasada działania byłaby identyczna.

  11. @konrad: na ilu graczy planujesz? podział na drużyny czy cuś?

    Jak na razie walczę z efektywną synchronizacją tego wszystkiego u innych graczy. Póki co będzie tylko rzeź, tzn. każdy z każdym. Później może coś wykombinuje z CTF, i TDM. :P Ale nie przewiduje więcej jak 10 graczy na serwerze.

  12. Z tego, co się orientuję... To jest kilka sposobów na to... Jeden z prostszych, a drugi trudniejszy, ale również do osiągnięcia.

     

    1. Używać oddzielnych obiektów o różnej głębi i przypiąć je do naszego głównego bohatera.

     

    2. Skorzystać z dobrodziejstw D3D i rysować obiekty w przestrzeni 3D, jednak z projekcją ortogonalna.

     

     

    EDIT: Ok, teraz zrozumiałem ocb. : D

     

    Można też zrobić to w inny sposób: np.

    GML
    if(mouse_x > bbox_left && mouse_x < bbox_right && mouse_y > bbox_top && mouse_y < bbox_bottom) {

    // ...

    }

×
×
  • Dodaj nową pozycję...