Przyspieszanie / spowalnianie upływającego czasu 5052 0

O temacie

Autor Bogdan Zwei

Zaczęty 1.12.2015 roku

Wyświetleń 5052

Odpowiedzi 0

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Jako, że mi się dzisiaj nudziło i chciałem także ulepszyć sen, postanowiłem zrobić funkcję, która przyspiesza lub spowalnia czas. Łapcie, darmozjady!  :trollface: :ok:

Spoiler
func void B_ScaleTime (var int x)
{
   var int world_timer; world_timer = MEM_Timer.frameTimeFloat;
   var int acceleration; acceleration = fracf(x, 100);
   world_timer = mulf(world_timer, subf(acceleration, mkf(1)));
   MEM_WorldTimer.worldTime = addf(MEM_WorldTimer.worldTime, world_timer);
};

Jak używać: Chciałem nie pisać, ale napiszę, a co mi tam! :F
B_ScaleTime (100);//czas upływa normlanie
B_ScaleTime (55);//czas upływa 45% powolniej (czyli 55% standardowego upływania czasu)
B_ScaleTime (1000);//czas upływa 10 razy szybciej

A jeśli chcemy, żeby jedna sekunda to była jedna Gothicowa minuta:
B_ScaleTime(25); //Jedna sekunda = 15 Gothicowych sekund; 4 sekundy = 1 Gothicowa minuta

A jak ktoś chce zrobić, żeby 1 sekunda = około 1 sekunda w Gothic... :F :F :F
Spoiler
const int GameScaleToRealScaleApprox = 6616225;
func void B_ScaleGameTimeToRealTime ()
{
   var int world_timer; world_timer = MEM_Timer.frameTimeFloat;
   var int acceleration; acceleration = fracf(GameScaleToRealScaleApprox, 100000000);
   world_timer = mulf(world_timer, subf(acceleration, mkf(1)));
   MEM_WorldTimer.worldTime = addf(MEM_WorldTimer.worldTime, world_timer);
   if(!MEM_Game.game_showtime){MEM_Game.game_showtime = !MEM_Game.game_showtime;};
};

Skrypt wywoływać najlepiej co klatkę.


Liczyłem dokładnie, nie bójcie się! :trollface: :ok: :trollface: :ok: :trollface: :ok: :trollface: :ok: :trollface: :ok: :trollface: :ok: :trollface: :ok:


EDIT (02.12.2015): Clean-up zrobiony. Lepsza wersja.
EDIT (19.07.2016): Dostosowano B_ScaleGameTimeToRealTime, żeby jeszcze trafniej skalował czas gry z naszym (w sumie, sama zmienna GameScaleToRealScaleApprox powinna wynosić około 6616224738192, ale Gothic nie uciągnie takiej matematyki).
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry