Frame function miast Tick_Tock'a 4036 6

O temacie

Autor Toworish

Zaczęty 1.12.2015 roku

Wyświetleń 4036

Odpowiedzi 6

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh

Toworish

Frame function miast Tick_Tock'a
2015-12-01, 19:52(Ostatnia zmiana: 2015-12-02, 07:41)
Yo! kilka osób ostatnio pyta mnie jak użyć tick_tocka Gdy pokaże im Frame Function to potem pytają jak użyć tego drugi raz, już tłumaczę:

POTRZEBNY IKARUS I LEGO !!!!!
Tutaj tutek:
http://themodders.org/index.php?topic=16580
Masz? a ok jesteś pojętny, jazda!

Plik startup.d
szukamy:
func void INIT_GLOBAL()
{
// wird fuer jede Welt aufgerufen (vor INIT_<LevelName>)
Game_InitGerman();
        LeGo_Init (LeGo_All);
};
I lekko modyfikujemy na:
func void INIT_GLOBAL()
{
// wird fuer jede Welt aufgerufen (vor INIT_<LevelName>)
Game_InitGerman();
        LeGo_Init (LeGo_All);
if (!FF_Active (Funkcja)) //chyba jeśli funkcja jest aktywna
{
FF_Apply (Funkcja); // To ją zaaplikuj :D
};

if(!FF_Active (Funkcja2))
{
FF_Apply (Funkcja2);
};
};
I tak w kółko

Dla przejrzystości tworzymy sobie folder o nazwie _moje w scripts\content
otwieramy plik gothic.src i na samym dole przed:
Startup.dwklejamy:
_moje*.d
Noo i w folderze moje tworzycie pliki w których będziecie tworzyć swoje funkcje np NowyPasek.d a w nim funkcje nowego paska itd :)
Edit:

A jak jest tak jak podałem to działa cały czas :D

Noo Bogdan wytłumaczył jaśniej :)

Edit2:
Od razu pozwolę sobię podpierdolić skrypt Splash'a z działu Problematyka jest jeszcze taka możliwość:
func void twoja_funkcja()
{
    FF_ApplyOnce(Loop_1);
};
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
if (!FF_Active (Funkcja)) //chyba jeśli funkcja jest aktywna
{
FF_Apply (Funkcja); // To ją zaaplikuj :D
};

if (!FF_Active (Funkcja)) -> znaczy jeśli FrameFunction nie jest aktywny
FF_Apply (Funkcja); -> załącz funkcję (wykonuje funkcję co klatkę)

Jeśli chcecie ustawić czas, co ile ma się funkcja wykonywać:

FF_ApplyOnceExt (Funkcja, CzasWMilisekundach, Cykle);Przykład:
FF_ApplyOnceExt (B_MojaFunkcja, 100, -1);//10 razy na sekundę
FF_ApplyOnceExt (B_MojaFunkcja, 1000, -1);//raz na sekundę
FF_ApplyOnceExt (B_MojaFunkcja, 10000, -1);//raz na 10 sekund
Cykle to po prostu ile razy będzie wykonywana ta funkcja, czyli jeśli ustawimy 5, to funkcja wywoła się 5 razy, po czym przestanie działać.
Jeśli CzasWMilisekundach ustawimy na 0, będzie się wywoływać co klatkę


Ważne info! Jeśli ustawimy czas między 1 (1000 razy na sekundę) i na 10 (100 razy na sekundę) to możemy spodziewać się osłabienia gry (spadek FPS).
 
: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.

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Dodam także, że zamiast tworzenia miliarda funkcji wywoływanych co klatkę można zrobić tak --> przykład :FF_Apply (Funkcja1);
FF_Apply (Funkcja2);
FF_Apply (Funkcja3);
itd..
Można zrobić w taki sposób:func void Frame_Global(){
funkcja1();
funkcja2();
funkcja3();
...
funkcja10();
};
A potem wywołać to w Startup.d jeden raz jako:
FF_Apply (Frame_Global);
Dzięki temu nie będzie nam się mieszać w Startupie jak to było u mnie :F
Najlepiej aby plik z funkcja Frame_Global była prawie na samym końcu gothic.src tuż nad Startupem
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Tak mnie nurtuje pytanie:
Czym się różni FF_Apply(func); od FF_ApplyOnce(Func);
Co jest wydajniejsze ? Co nie sprawi aby nie było czasami dropów.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Splash

Splash

Moderator
posty4207
Propsy3403
ProfesjaNierób
  • Moderator
FF_ApplyOnce inicjuje się tylko raz. Jeśli w funkcji INIT_Global użyjesz FF_Apply, funkcja zostanie zainicjowana w danym świecie tyle razy, ile zostanie wczytany po zapisaniu. Kiedy pierwszy raz stykałem się z LeGo, głowiłem się czemu regeneracja działała potrójnie :F
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Każdy FF jest tak samo wydajny.
FF_ApplyOnce sprawdza, czy istnieje FF z daną funkcją, FF_Apply nie.
 
: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.

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Czyli lepiej FF_ApplyOnce :F Bo np. paski mogą się na sb. nakładać ?
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.


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