Skocz do zawartości
Chell

Temat zbiorczy na drobnostki

Rekomendowane odpowiedzi

:o a ja myślałem, że dodanie () po nazwie skryptu definiuje go jako void. Dlatego jeśli chciałem aby mi zwrócił int'a to napisałem go bez nawiasów.

Dzięki za odpowiedź, tego potrzebowałem kilka razy ale zawsze jakoś sobie radziłem na około

Cytuj

if(scr_arrow_can_hit() == 1) (...)

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
1 godzinę temu, SimianVirus7 napisał:

:o a ja myślałem, że dodanie () po nazwie skryptu definiuje go jako void. Dlatego jeśli chciałem aby mi zwrócił int'a to napisałem go bez nawiasów.

Dzięki za odpowiedź, tego potrzebowałem kilka razy ale zawsze jakoś sobie radziłem na około

 

 

Bo bez nawiasów zwraca Ci inta, ale jest to identyfikator skryptu. Czasami użyteczne jak masz skrypt i jego ID przypisujesz do zmiennej. Wtedy możesz wywoływać ten skrypt funkcją script_execute. Np.

var skrypt = scr_arrow_can_hit; // nie ma tutaj nawiasów
script_execute(skrypt, parametr1, parametr2);

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

image.png.4476630cac8a14c3b10c87bdac5735e9.png

 

Robię turową strategię na kilku graczy, w każdej bazie można rekrutować jednostki (na obrazku zrekrutowana jednostka).

Chcę, żeby pod tą symboliczną reprezentacją jednostki wyświetlana była liczba żołnierzy trzymana w lokalnej zmiennej number:

draw_text(Jednostka.x+20,Jednostka.y+20,Jednostka.number);

Moje pytanie: jak zrobić, żeby obiekt rysujący te liczby loopował wszystkie instancje Jednostki i rysował liczbę pod każdą z nich?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
with (obj_jednostka) {
   draw_text(x+20,y+20,number);
}

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Hej, sprawa dotyczy GMS1.4999. Jak sprawić , aby przy otwarciu kodu, okno było scrollowane do tego momentu, w którym ostatnio było zamknięte?  Mam dość długi kod, zmieniam coś w środku,  a następnie  zamykam aby zatwierdzić zmiany i odpalam projekt. Potem otwieram kod ponownie, żeby coś zmienić i okno jest 'scrollnięte' znowu na samą górę, i muszę przekopywać się przez setki linijek kodu, żeby znaleźć interesujący mnie fragment, nad którym ostatnio siedziałem. Doprawdza mnie do szewskiej pasji, napewno jest jakiś prosty sposób aby temu zapobiec, proszę o porady.

 

Z góry dziękuję

nowy_user!

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Nie musisz zamykać okna - jak odpalasz projekt to i tak się on zapisuje. Ba, nawet jak masz otwarte okno i klikniesz zapisz (skrót czy ikona), to też sie zapisze to co masz otwarte. Generalnie, to chyba nawet nie da się poza ctrl+z anulować zmian ;) to się w gms 1.2 albo 1.3 pojawiło.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Masz chyba też zakładki ( bookmarks ), poczytaj w manualu.

  • Lubię (+1) 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ooo i oto mi właśnie chodziło , teraz praca z GMem stanie się o wiele przyjemniejsza! Dzięki za pomoc :)

  • Lubię (+1) 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Hej, mam pytanko, czy wie ktoś jaki jest GMLowy odpowiednik kliknięcia w przycisk 'Maksymalizuj' w oknie? Chodzi mi o ten przycisk:

 

image.png.c43dca4fe97fb451f29e67fe1af44188.png

 

Ten przycisk sprawia, że okno się rozszerza , przy uwzględnieniu paska zadań.  Okno jest więc prawie na całym ekranie, ale jest dopasowane do naszego paska zadań, niezależnie od tego, czy pasek jest na dole, czy z boku. Niestety, GMLowska funkcja window_set_fullscreen sprawia, że okno maksymalizuje się totalnie, wchodzi w stan full screen, i pasek zadań nie jest widoczny. 

 

Próbowałem funkcji window_set_size   i display_get_width/height , ale niestety efekt nie jest taki sam jak przy kliknięciu przycisku 'Maksymalizuj'

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Nie ma takiej opcji. Trzeba by chyba dopisać DLL.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

@nowy_user wydzieliłem Twoje pytanie o HTML5 do nowego tematu, bo to nie taka drobnostka wyszła:

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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ą: 

Cytuj

File not opened for writing.
 at gml_Script_scr_save (line 171) -     file_text_write_string(_file, _savedane);

  Nie rozumiem, zrobiłem wszystko tak jak jest przedstawione w manualu... czy o czymś zapomniałem?

Pozdrawiam,

nowy

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

@nowy_user Chyba nie wszystko jak w manualu, bo ja tam widzę jak do zapisywania w pliku używają zmiennej którą zwraca file_text_open_write, a Ty używasz tej od get_save_filename...

 

var _path, _file;

_path = get_save_filename("project|*.txt", "");
if (_path != "") {
    _file = file_text_open_write(_path);
    file_text_write_string(_file, _savedane);
    file_text_close(_file);
   }
}

Jedna funkcja zwraca ścieżkę, druga id pliku.

  • Lubię (+1) 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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.

 

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

gm:s posiada jeszcze current_day i current_month. Myślę, że sczytanie daty do zmiennych przy pierwszym uruchomieniu i później sprawdzanie czy minęło 14 dni, jest jakimś rozwiązaniem :P Tylko, że jeśli chcesz ominąć spryt użytkowników, musiałbyś sczytywać datę z internetu, bo tak lokalnie mogą sobie zmienić

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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 :)

 

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×