Skocz do zawartości

nowy_user

Użytkownicy
  • Zawartość

    191
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    3

Zawartość dodana przez nowy_user

  1. Temat zbiorczy na drobnostki

    Właściwie to chyba nawet na zamówienie, bo zadałem podobne pytanie na GMC i ten użytkownik też mi tam odpisał... asset działa tylko na Windowsa, a mi zależało też na MAC'u, ale możliwe, że skorzystam z tego programu. Pozdrawiam, nowy_user
  2. Temat zbiorczy na drobnostki

    Hej, mam drobnostkę dotyczącą display_get_width / display_get_height. W przypadku podłączonego monitora do laptopa, program odbiera za pomocą tych funkcji szerokość i wysokość tylko monitora z laptopa, nawet jeśli przeniosę okno z grą na drugi moniotr - znacznie większy. Czy ktoś wie, jakiej funkcji mam użyć, aby window_get_width / window_get_height dotyczyło monitora, na którym okno z grą jest aktualnie wyświetlane? Z góry dzięki za pomoc i pozdawiwam, Dawid Maj
  3. Temat zbiorczy na drobnostki

    Oki, dzięki za informacje, czyli po prostu przed stworzeniem zipa albo instalatora muszę pousuwać zbędne 'Included files' (zwłaszcza te dotyczące assetu GMLive ) oraz niektóre z 'Extensions' . Oby tylko nie zcrashowało mi to apki w najmniej oczekiwanym momencie.
  4. Temat zbiorczy na drobnostki

    Hej mam naprawdę dziwny problem... Ukończyłem projekt w GMS 1.4999, i eksportuję go do .exe (wybieram opcję Single runtime executable.) -eksport na platformę Windows. Do tego momentu wszystko jest w porządku, program eksportuje się do .exe i mam jeden plik - zgodnie z przewidywaniami. Pakuje go do zipa, i wrzucam na serwer. Z ciekawości pobrałem tego zipa na mój inny komuter - Macbook. Oczywiście wiem, że taki plik .exe przygotowany pod Windowsa nie odpali mi się na Macu, ale nie to jest tu sednem problemu. Wyobraźcie sobie, że z ciekawości rozpakowałem tego zipa za pomocą jakiegoś MAC'owskiego odpowiednika Winrara ( jakiś dekompresor) , i.... w co nie mogę do tej pory uwierzyć, rozpakowało mi paczkę w taki sposób, że w folderze pojawił się nie tylko plik .exe , ale także wszystkie included files — dokładnie tak jakbym przy tworzeniu apki wybrał opcję : 'Compressed Applications Zip', a ja przecież wybrałem 'Single runtime executable'. To oznacza, że przy pomocy jakiegoś dekompresora, uzytkownicy mogą mieć dostęp do included files. Czy ja mam jakieś zwidy, czy rzeczywiście można sobie tak łatwo zdekompresować pojedyńczy .exe stworzony w GMS 1.4999 ?
  5. Witajcie, mam do czynienia z dziwną sytuacją. Co jakiś czas w moim projekcie dochodzi do spadków FPS z 60 do ok 35. Na ogół kilka minut po wejściu do rooma. Dzieje się tak czasami, nawet gdy nic nie robię w aplikacji. Spadek FPS trwa różnie - czasami 30 sekund czasami minutę lub dwie. Potem, na ogół, wraca do normy. Zdarza się, że restart roomu pomaga. Nie jestem w stanie zdiagnozować co jest przyczyną problemu ( nie tworzą się żadne nowe obiekty, bo mam ciągle wyświetlaną ilość aktywnych obiektów.), raczej to też nie problem ze strukturami danych — używam raptem dwóch list, które zawsze po użyciu są usuwane. Nie mam pojęcia, w jaki sposób mogę zdiagnozować przyczynę problemu, czy ktoś ma jakiś pomysł , jak dokonać diagnostyki tego nieoczekiwanego spadku FPS? Pozdrawiam, nowy EDIT Zmieniłem w ustawieniach sleep marigin z 1ms na 10 ms - nic to nie dało.
  6. Panowie, ostatnio GM daje mi się we znaki ( jak to zwykle bywa, tuż przed publikacją produktu, i gdy już skupiałem się na marketingu, nagle zaczęły wyskakiwać mi dziwne bugi ). Niestety, na wskutek tych bugów prawdopodobnie muszę zrezygnować z systemu zapisu danych w chmurze i próbuję robić zapis off-line. Dziś napotkałem na bardzo dziwny bug i nie wiem już, czy to przez nerwy czy raczej GM zachowuje się dziwnie w prostej sytuacji. Proszę o pomoc. Wszystko jest ok gdy próbuję zapisać sobie plik za pomocą kodu: { var _path, _file; _path = get_save_filename("project|*.txt", ""); if (_path != "") { _file = file_text_open_write(_path); file_text_write_string(_file, string(_savedane)); file_text_close(_file); } } Pojawia się okno dialogowe, ja mogę sobie wybrać lokalizację pliku i zapisać go gdzie chcę. Problem pojawia się, gdy chcę zrobić sobie autosave projektu wybranego wcześniej też za pomocą okna dialogowego. Przy wgrywaniu pliku mam kod: var _path, _file, _savedane; _savedane=''; _path = get_open_filename("project|*.txt", ""); if (_path != "") { _file = file_text_open_read(_path); _savedane=file_text_read_string(_file); file_text_close(_file); global.cloudoff_load_result = _savedane global.cloudoff_file_path=_path; room_goto_next(); } Jak widzimy, ten kod zapisuje sobie w zmiennej globalnej global.cloudoff_file_path ścieżkę wybranego przez nas pliku. Jest ona prechowywana, po to, aby właśnie potem, przy autosavie nie otwierać okna dialogowego, tylko aby plik zapisywał się właśnie automatycznie. Używam do tego kodu: { var _path, _file; _path = global.cloudoff_file_path if (_path != "") { _file = file_text_open_write(_path); file_text_write_string(_file, string(_savedane)); file_text_close(_file); } } Jak widać ten kod jest łudząco podobny do tego, który przedstawiłem na początku, różnica jest taka że zamiast _path = get_save_filename("project|*.txt", ""); mamy _path = global.cloudoff_file_path . Pomimo, że w obu przypadkach _path zwraca nam tę samą ścieżkę ( sprawdzałem za pomocą show_debug_message), to w pierwszym przypadku - z oknem dialogowym - plik zapisuje się bezproblemowo, a w drugim wysakuje błąd w oknie compile form : Error! not allowing save with filename Error! not allowing save with filename 'C:\Users\Dawid\Desktop\pulpit\Base_Project_New.txt'.Error! not allowing save with filename ''. ( tu na końcu jest kropka i strzałka w górę narysowana). Czy ktoś ma pomysł , dlaczego tak się dzieje? Z góry dzięki za pomoc nowy_zdesperowany_user
  7. Dzięki, teraz jest to jasne EDIT.... Przy okazji, wiesz może @gnysek czy mogę dostać jakoś informację zwrotną od GMa, gdy zapis do pliku tekstowego zostanie już wykonany? Wiem , że istnieje funkcja file_exists ale jeśli nadpisuję plik, który już istnieje, to formuła if file_exists tu nie zadziała... Pytam, ponieważ chciałem ustawić zapis gry przy wyłączeniu, i dotychczas ustawiałem alarm na chybił trafił np.2 sekundy po odpaleniu kodu do zapisu gry , gra się wyłączałą. Tylko co, jeśli plik będzie na tyle duży albo komputer będzie zajęty jakimiś innymi procesami w tle, i zapis zabierze mu więcej niż te 2 sekundy? Wówczas gra się zamknie, a plik nie zdąży zostać zapisany. Niestety w GMie nie ma żadnej funkcji typu if file_save_is_done albo coś w tym stylu... może da się to jakoś sprytnie obejść? Pozdrawiam
  8. Temat zbiorczy na drobnostki

    Ok postaram się to ogarnąć, najdziwniejsze jest to, że jak próbuję forsować wczytanie danych ( gdy się nie uda to ustawiam alarm[0] na 1 step który ponawia próbę i tak w kółko ) to zaledwnie po kilku próbach wczytuje tego Jsona, nawet jeśli jest on kilkukrotnie dłuższy. Jeśli alarm[0] ustawię na 30 lub 60 stepów, to wtedy nawet po 20 próbach ma problem z wczytaniem tego Jsona , to jest bardzi dziwne ...
  9. Temat zbiorczy na drobnostki

    Ale mi nie ucina znaków, po prostu gdy JSON jest za długi to nie wczytuje go wcale a w debug message mam:http:// *adres strony www */load.php?: Load Failed! RESULT: undefined JSON zapisuje się poprawnie, problem jest z wczytaniem.
  10. Temat zbiorczy na drobnostki

    Ten skrypt wygląda następująco: <?php header("Access-Control-Allow-Origin: *"); // Get config variables require_once 'include/Config.php'; // Get Database functions require_once 'include/DB_Functions.php'; $db = new DB_Functions(); // json response array $response = array("error" => FALSE); if (isset($_POST['unique_id']) && isset($_POST['save_code']) && isset($_POST['slot'])) { // receiving the post params $unique_id = $_POST['unique_id']; $save_code = $_POST['save_code']; $slot = $_POST['slot']; // Get user $info=$db->getUserByUserIdAndSaveCode($unique_id,$save_code); $user=$info[0]; switch ($slot) { case 1: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["save001"]; }else{ // Error $error_info=$info[1]; } break; case 2: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["save002"]; }else{ // Error $error_info=$info[1]; } break; case 3: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["save003"]; }else{ // Error $error_info=$info[1]; } break; case 4: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["save004"]; }else{ // Error $error_info=$info[1]; } break; case 5: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["save005"]; }else{ // Error $error_info=$info[1]; } break; default: $error_info = $slot . " saves slot don't exists!"; } if ($error_info=="") { $response["error"] = FALSE; } else { $response["error"] = TRUE; $response["error_msg"] = $error_info; } echo json_encode($response); } else { if (isset($_POST['share_code']) && isset($_POST['slot'])) { // receiving the post params $share_code = $_POST['share_code']; $slot = $_POST['slot']; // Get user $info=$db->getUserByShareCode($share_code); $user=$info[0]; switch ($slot) { case 1: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["share001"]; }else{ // Error $error_info=$info[1]; } break; case 2: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["share002"]; }else{ // Error $error_info=$info[1]; } break; default: $error_info = $slot . " save slot don't exists!"; } if ($error_info=="") { $response["error"] = FALSE; } else { $response["error"] = TRUE; $response["error_msg"] = $error_info; } echo json_encode($response); } else { if (isset($_POST['unique_id']) && isset($_POST['save_code']) && isset($_POST['row'])) { // receiving the post params $unique_id = $_POST['unique_id']; $save_code = $_POST['save_code']; $row = $_POST['row']; // Check if allow public if (GLOBAL_PUBLIC_1==FALSE) { // Get user $info=$db->getUserByUserIdAndSaveCode($unique_id,$save_code); $user=$info[0]; // Check if all went ok if ($info[1]=="") { $all_ok=TRUE; } else { $all_ok=FALSE; } } else { // Don't need user $all_ok=TRUE; } // Check if all went ok if ($all_ok){ // All ok $error_info=$db->loadVar($row); $new_value=$error_info["value"]; $error_info=$error_info["error"]; $response["value"] = $new_value; }else{ // Error $error_info=$info[1]; } if ($error_info=="") { $response["error"] = FALSE; } else { $response["error"] = TRUE; $response["error_msg"] = $error_info; } echo json_encode($response); } else { if (isset($_POST['row'])) { // receiving the post params $row = $_POST['row']; $error_info=$db->loadPublic($row); $new_value=$error_info["value"]; $error_info=$error_info["error"]; $response["value"] = $new_value; if ($error_info=="") { $response["error"] = FALSE; } else { $response["error"] = TRUE; $response["error_msg"] = $error_info; } echo json_encode($response); } else { // required post params is missing $response["error"] = TRUE; $response["error_msg"] = "Required parameters are missing!"; echo json_encode($response); } } } } ?>
  11. Temat zbiorczy na drobnostki

    Dokładnie tak, JSON jest czytany z mysql przez PHP i mogę sobię go przejrzeć z poziomu przeglądarki w MyPhpAdmin. Co ciekawe, jeśli ustawię sobie w alarmie, aby ponowić próbę pobrania JSONA ( w przypadku gdy się nie uda za pierwszym razem) , i alarm ustawię np. na 60 stepów, no to co sekundę będzie próbować pobrać Jsona , ale nawet i po 20 powtórzeniach mu się nie uda, jeśli JSON jest długi. Natomiast... co jest mega dziwne.... jesli ustawię alarm na 1 step to dzieje się coś totalnie nieprzewidywalnego, ponieważ pierwsza próba pobrania JSONA jest nieudana ( to jest jeszcze zgodne z przewidywaniami ), ale.... następna jest już ok i pobiera JSONa nawet jeśli jest bardzo długi ! Czasami potrzebuje kilku prób, ale max 5-10 nawet przy bardzo długiej zmiennej... Dziwne jest to, że jak alarm ustawiam na np 60 stepów, to nawet i po kilkudziesięciu próbach nie wczytuje tego JSONa... a przy alarmie ustawionym na 1 step, max kilka prób... nie potrafię tego wytłumaczyć logicznie, ale muszę to zrozumieć, bo to rozwiązanie, które udało mi się wykombinować na chybił trafił zdaje się zbyt niestabilne, i nie chcę żadnych fakapów w przyszłości - zwłaszcza, że będę moją apkę sprzedawać. Czy ktoś ma jakikolwiek pomysł, dlaczego takie dziwne rzeczy się dzieją?
  12. Temat zbiorczy na drobnostki

    Hej, czy serwer może narzucić mi limit długości stringa Json, który mogę wczytać z bazy MySQL? Mam problem, że gdy string Json jest dość długi, ale nie jakoś bardzo, (zawiera 13 500 znaków) to mogę go bez problemu zapisać do bazy MySQL, ale wczytać już nie bardzo. Przy krótszych string’ach działa bez zarzutu. Zastanawiam się, czy problem leży w moim kodzie w GM, czy jednak to serwer i jego ustawienia za to odpowiadają. Czy ktoś ma jakieś wskazówki?
  13. Temat zbiorczy na drobnostki

    To akurat nie jest problem, mam w bazie datę rejestracji , i datę ostatniego logowania, więc mam te dwie daty. Problem w tym, że chcę porównać czy różnica w dniach pomiędzy dwoma datami to 14 dni. Ja wymyśliłem taki skrypt: var day1, month1, year1, day2, month2, year2; day1=25; month1=11; year1=2019; day2=3; month2=12; year2=2019; var difference; difference = ( day2+ceil((month2*30.5))+(year2*365) ) - (day1+ceil((month1*30.5)) + (year1*365) ) Teoretycznie działa, nie jest to super dokładny sposób i czasami, gdy daty są z różnych miesięcy albo lat to skrypt myli się o jeden dzień, ale na razie chyba mi to wystarczy. Gdyby ktoś miał lepszy pomysł to może napisać, w innym wypadku będę korzystał z tego, co sam wykombinowałem. EDIT O rany, pogrzebałem w dokumentacji i znalazłem funkcję: date_day_span(date1, date2); Problem uznaję zatem za rozwiązany
  14. Temat zbiorczy na drobnostki

    Hej, mam pytanie, czy ktoś wie jak wyliczyć dokładną różnicę dni pomiędzy dwoma dniami ( tak żeby nie wskazywało jakichś głupot, gdy porównamy daty z dwóch różnych miesięcy lub dwóch różnych lat) w GM studio? Tworzę system, który ma za zadanie automatycznie zablokować dostęp do mojego programu po 14 dniach ( system trial ) i nie wiem do końca jak to zaimplementować . GM studio ma funkcję date_compare_daytime , ale to zwraca nam tylko informację, czy dana data jest wcześniejsza, czy późniejsza, bez dokładnego określenia różnicy dni pomiędzy nimi.
  15. Przycinki w HTML5 ale FPS jest ok

    Dzięki, działa płynnie ! Pozdrawiam!
  16. Cześć mam problem, gra trochę przycina mi gdy eksportuję ją do HTML 5 i wrzucam na serwer. Co ciekawe FPS cały czas pokazuje mi 30 ( czyli taki jak Room Speed) abrak jest takiej płynności, która jest obecna gdy grę testuję w wersji na windowsa. Nie są to jakieś straszne lagi, ale zastanawia mnie z czego to się bierze? Mam jedynie 11 obiektów w roomie, każdy z nich ma naprawdę niewiele kodu ( no dobra, każdy z nich podąża ścieżką wyznaczoną przez path, a path ma jakieś 15 punktów- to też chyba nie jest tragedia), jest też jeden sprite który robi za background ( jest nieduży, bo gra jest przygotowana pod telefony), a z kolei obiekty nie mają sprite'a , tylko każdy z nich rysuje w evencie draw zamalowane kółko w swojej pozycji x i y. Czy ktoś wie, jak moge zoptymalizować grę pod kątem HTML5? Jak mogę sprawdzić co powoduje ten brak płynności? Na co zwracać uwagę? Może lepiej rysować sprity, niż używać funkcji typu draw_circle itp.? Bardzo tajemnicze jest to, że w momentach przycinek FPS dalej jest na maxa. Będę wdzięczny za sugestie. Pozdrawiam, nowy
  17. Szukam programu

    Dzięki za podpowiedź niestety nie mogę połączyć się ze swoim PC , gdy próbuje się połączyć za pomocą MACA to wyskakuje błąd ( na MACu), że mój PC z którym próbuje się połączyć jest niepodłączony do internetu ( a na pewno jest), albo nie ma uruchomionego programu ( a na pewno ma) . Mam w ustawieniach zaznaczone, że zezwalam na zdalną kontrolę komputera... czy ktoś zna jakieś alternatywy dla Team Viewera oraz Microsoft Remote Desktop?
  18. Szukam programu

    Hej, szukam programu, który pozwoliłby mi na zdalną kontrolę nad kompuuterem ( PC z windowsem ) za pomocą Macbooka. Do tej pory używałem TeamViewer'a ale niestety, program 'wykrył' , że używam go do celów komercyjnych ( co jest nieprawdą! ) i mam zablokowany dostęp - musz wykupić licencję (najtańsza to 115 zł miesięcznie). Próbowałem użyć Pythonowego sktryptu z githubu : https://gist.github.com/idarek/9f121fa63106ef0224372e563c809830 , ale gdy otwieram go przez Python Launcher, to wyskakuje mi info, że muszę odpalić skrypt z root;a . Gdy odpalam skrypt z konsoli, wyskakuje info 'command not found'. W związku z tym pewnie będę musiał poszukać innego programu, może znacie jakąś dobrą , najlepiej darmową ( albo chociaż tanią ) alternatywę dla TeamViewera. Ważne jest to , abym miał możliwość połączenia się za pomocą MacBooka z PC. pozdrawiam, nowy_user!
  19. Temat zbiorczy na drobnostki

    Rzeczywiście , umknęło mi to , dzięki za pomoc !
  20. Temat zbiorczy na drobnostki

    Hej, mam pytanie, chciałbym zapisać sobie pewne statsy do pliku txt, z możliwością wyboru folderu, gdzie plik zostanie zapisany. Używam następującego kodu: var _file; _file = get_save_filename("project|*.txt", ""); if _file != "" { file_text_open_write(_file) file_text_write_string(_file, _savedane); file_text_close(_file); } } Program jednak crashuje z informacją: Nie rozumiem, zrobiłem wszystko tak jak jest przedstawione w manualu... czy o czymś zapomniałem? Pozdrawiam, nowy
  21. json, ds_map i wartość undefined.

    Działa, że też na to sam nie wpadłem Dzieki Gnysek !
  22. Witajcie, Tworzę aplikację, w której do tej pory miałem zaimplementowany system savów oparty na pliku ini zawierającym szereg zmiennych, które były zaczytywane przy kolejnym uruchomieniu aplikacji. Jak wiecie przy użyciu funkcji ini_read_string oraz ini_read_real podajemy 3 wartości: (section, key, default). Ta ostatnia - default - jest prawdziwym zbawieniem, ponieważ w przypadku braku możliwości zaczytania danej wartości ( np. Z powodu usunięcia pliku, albo co bardziej istotne - z powodu aktualizacji aplikacji, gdzie dochodzą nowe zmienne) przypisuje wartość którą sobie ustalimy wcześniej. Działało to wyśmienicie i byłem zadowolony z mojego systemu. Muszę ten system jednak zmienić, ponieważ chce przechowywać dane w chmurze, i najlepszy do tego jest skorzystanie z ds_map i wygenerowanie stringa json. Problem pojawia się, gdy próbuję odczytać dane. Po użyciu funkcji json_decode otrzymujemy ds_mapę, z której możemy dowolnie sczytywać zmienne, ale niestety funkcja ds_map_find_value(id,key) , nie daje możliwości wpisania zmiennej default. Okazuje się, że gdy nie uda się znaleźć danego ‘key’ to przypisana wartość to ‘undefined’ co ma druzgocące skutki i potem crashuje aplikację. I teraz pytanie, czy ja muszę ręcznie , po wczytaniu zmiennych pozmieniać wszystkie ‘undefined’ czyli napisać kod w stylu: var _default=0; If zmienna1 == null zmienna = _default; If zmienna2 == null zmienna2 = _default; If zmienna3 itd.. Czy może jest jakiś szybszy sposób na przypisanie domyślnej wartości dla zmiennej, która nie znalazła ‘keya’ przy wyszukiwaniu z mapy?
  23. HTML5 i przycisk "wstecz"

    Hej tworzę sobie dla rozluźnienia gierkę w module HTML5 (gm 1.4) i mam jeden problem. Korzystając ze smartfona i otwierając gierkę na stronce, bardzo łatwo jest nieopatrznie kliknąć przycisk wstecz (ten wbudowany w telefonie, w prawym dolnym rogu urządzenia) i stracić cały zapis gry . Czy jest jakiś sposób, aby zablokować taką możliwość, albo aby pojawił się pop-up w stylu: “Czy na pewno chcesz cofnąć stronę? “Albo coś w tym stylu? Podejrzewam, że nie , bo to już zależy od oprogramowania telefonu, ale warto zapytać. Innym sposobem byłoby zapisanie stanu gry, i nawet niechcący klikniemy sobie wstecz, to szybko moglibyśmy pwrócić do poprzedniego momentu, ale problemem jest to, że gierkach htmll5 nie można zapisać stanu gry
  24. HTML5 i przycisk "wstecz"

    Wygląda na to, że działa! obyło się bez setInterval - samo setTimeout wystarczyło Wielkie dzięki za pomoc! Teraz już nikt nie wyłączy mojej aplikacji przypadkowo pozdrawiam nowy_user
  25. HTML5 i przycisk "wstecz"

    hm.. otworzyłem konsolę, i wpisałem window.onbeforeunload, wyszło coś takiego: Jak dla mnie to losowy ciąg znaków, ale może Gnysek ty coś więcej tu widzisz?
×