Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[PL]Quest 1- Dzień i noc
#1
"Quest" to trochę inna seria niż "Ucz się z Danielem". O ile tamto bez dwóch zdań można nazwać poradnikiem, to będzie raczej taki "samouczek". Mam zamiar wypisywać tutaj tylko co trzeba zrobić, bez żadnych kodów czy analiz. Nie znaczy to, że będzie to tylko zapchajdziura, zapewniam, że ta seria będzie tak samo wartościowa jak moja pierwsza.

Przed rozpoczęciem polecam przeczytać
Pierwsze zmiany w skryptach serwera.
Wyświetlanie i odliczanie.


Jeśli ktoś czytał mój poradnik o Timerach, wie, że zaleciłem przygotować sobie ładne tekstury oraz DX11. Zrobiłem to, ponieważ zaraz będziemy podziwiali piękno nocy i dnia w Gothicu. Już teraz polecam otworzyć wiki, utworzyć nowy plik .nut, a dla przypomnienia także poprzednie poradniki.
Zadanie 1: Przeżyj dzień i noc w Gothicu przez 1 minutę.
  1. Na początku wybierz formę aktywowania instrukcji: klawisz, komenda lub przy starcie serwera.

  2. W odpowiednim miejscu w skrypcie utwórz Timer. Na początku niech będzie standardowo wywoływał się co sekundę.
    • Za każdym razem odliczanie zwiększa się o 1.
    • Odliczanie ustaw na od 1 do 24.
    • Jeśli chcesz, możesz ustawić sobie drawa czy inną formę wyświetlania powtórzeń.
    • Zapoznaj się z funkcjami setTime() oraz getTime()
  3. Pobierz czas
    Podpowiedź1
  4. Użyj funkcji setTime(). W miejsce godziny wpisz godzinę pobraną punkt wyżej. Minuty ustaw dowolnie.
  5. Dodaj do godziny zmienną liczącą powtórzenia.
    Robimy to po to, żeby czas doliczał się od tej godziny w której gracz wejdzie na serwer, nie, żeby zaczynał się np. o północy za każdym wejściem.
    Podpowiedź2


I gotowe. Teraz co sekundę minie 1 godzina na serwerze. Usuwając limit do 24 będziemy tak mieli bez końca.

PODPOWIEDZI
Podpowiedź1 
Czas pobierz przed Timerem, nie w nim. Chcemy do początkowego czasu doliczać godziny, gdybyśmy umieścili go w Timerze, za każdym razem pobierałoby nam go od nowa i wyszłoby nam...coś dziwnego
Podpowiedź2 
Zwróć uwagę, co zwraca nam funkcja getTime(). Przy okazji zastanów się też nad różnicą pomiędzy get i set.
Zmienną do zmiennej dodajemy po prostu plusem. Może to zrobić w innej zmiennej, lub bezpośrednio w setTime



Zadanie 2: zmiana czasu co do minuty.

Potrzebujemy skryptu, który nie będzie operował tylko na godzinach, ale także na minutach. Po prostu nie chcemy mieć tych przeskoków. Zwiększ prędkość wywoływania timera, a powtórzenie zamiast do godziny, dodawaj do minut. Dodaj także warunek: jeśli minuty będą równe 59, to zwiększ godzinę o 1. Musimy także przywrócić minuty do stanu 0, żeby odliczały się od nowa.
Miłoby było zrobić drawa, który będzie wyświetlał aktualny czas.
Quote:I jak? Czy widzisz jakiś wpływ częstotliwości wywoływania Timera na liczbę FPSów? Jeśli nie, to ustaw wywoływanie się co 1 milisekundę Big Grin


Teraz nie pozostaje nam nic innego, jak, razem z naszą paczką tekstur (polecam Vurt graphic overhaul + normalmapy do Dx11) oglądać piękne niebo, ruch cieni i płynną zmianę czasu wokół nas.
Nie będzie mnie do sierpnia, jestem w Szkocji i zarabiam na studia. Do zobaczenia.
Reply
#2
Nie lepiej setDayLength(milisecond)?
Reply
#3
Ale tu chodzi o zadanie Big Grin
Nie będzie mnie do sierpnia, jestem w Szkocji i zarabiam na studia. Do zobaczenia.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)