Tick_Tock 9744 31

O temacie

Autor zommer

Zaczęty 12.11.2011 roku

Wyświetleń 9744

Odpowiedzi 31

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy

RafalBudzis

Tick_Tock
#20 2011-11-13, 15:35(Ostatnia zmiana: 2011-11-13, 15:37)
startup jest zły powinien być taki

// *********
// OLDWORLDMOD
// *********
func void STARTUP_OLDWORLDMOD ()
{
Wld_InsertNpc (PAL_6001_Alfred,"MOVEMENT_MOLERAT_06_CAVE_GUARD2");
Wld_InsertNpc (PAL_6002_Gerik,"MOVEMENT_MOLERAT_06_CAVE_GUARD3");
Wld_InsertNpc (STRF_6003_Mike,"OW_CAVE_04");
Wld_InsertNpc (STRF_6004_STRF,"OW_CAVE_03");
Wld_InsertNpc (DJG_6005_Brein,"OW_DJG_SWAMPCAMP_01");
Wld_InsertNpc (DJG_6006_Price,"OW_DJG_SWAMPCAMP_02");
Wld_InsertNpc (DJG_6007_Erkin,"OC_SIT");
Wld_InsertNpc (PAL_6008_czykropki,"OW_SIT_BENCH_01");
Wld_InsertNpc (YWolf,"SPAWN_OW_SCAVENGER_AL_ORC");
Wld_InsertNpc (YWolf,"OW_PATH_3_01");
Wld_InsertNpc (YWolf,"OW_PATH_OC_NC");
INIT_OLDWORLDMOD ();//tego brakowało

};

func void INIT_SUB_OLDWORLDMOD ()
{
};

func void INIT_OLDWORLDMOD ()
{
Wld_SendTrigger("TICK_TOCK");
B_InitMonsterAttitudes ();
B_InitGuildAttitudes();
B_InitNpcGlobals ();

INIT_SUB_OLDWORLDMOD();
};
Taa dopisałem to do startup.d ale oprócz gwałtownych lagów i spatków wydajności nic się nie pokazuje.

stało sie to co przwidziałem funkcja się za pętliła nadmiernie.

usuń całkiem ze skryptu

if(true){
   Wld_SendTrigger("TICK_TOCK");
};

@edek

nie zamierzam się z tobą kłócić ale głupcem jest ten kto mówi ze umi wszystko ;p

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis

EdekSumo
Wyspa Khorinis

Tick_Tock
#21 2011-11-13, 15:39(Ostatnia zmiana: 2011-11-13, 15:43)
Więc coś w tick tocku jest spieprzone. Najlepiej napisz do mnie na gg pójdzie szybciej niźli tutaj. I nie będzie takiego spamu.

@UP Ja tak nie mówię a co do nadmiernego zapętlanie nie będzie coś takiego ponieważ w ustawieniach tego trigera w spacku jest linijka ustalająca co ile czasu triger może być reaktywowany.

@down jak by nie było go w świecie nie było by lagów.
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel

Sawik
Moderator działu

Tick_Tock
#22 2011-11-13, 15:40(Ostatnia zmiana: 2011-11-13, 15:50)
Może sprawdź czy trigger znajduje się w świecie? W konsoli wpisz goto tick_tock

Edek (up) nie tylko tick_tock może powodować lagi.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

zommer

zommer

Użytkownicy
posty135
Propsy25
ProfesjaNierób
  • Użytkownicy
Dobra, to teraz wyskakuje błąd :
Cytuj
Unknown identifier : INIT_OLDWORLDMOD (line 4845)
Czyli to co kazał dopisać budzis.
 

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis
Tego nie trzeba dopisywać ta funkcja jest odpalana automatycznie. Pokaż screena tick tocka ze spacera (po przemianach)
 

zommer

zommer

Użytkownicy
posty135
Propsy25
ProfesjaNierób
  • Użytkownicy
@sawik trigger jest w świecie sprawdziłem

@Edek, tera są i tak w pizdziec wielkie lagi (Co sekundę więc zdaję mi się że przez tick_Tocka), i wyświetla się tylko raz napis, usunąłem to if i init. Działa jak mówię ale tylko raz.
 

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis
Nom bo po to jest if(true) aby mogło się znowu uruchamiać mówię pokaż screena bądź napisz do mnie na gg.
 

Demonical Monk

Demonical Monk

Użytkownicy
posty145
Propsy152
  • Użytkownicy

Demonical Monk

Tick_Tock
#27 2011-11-13, 16:06(Ostatnia zmiana: 2011-11-13, 16:09)
Edek (up) nie tylko tick_tock może powodować lagi.

Musimy pamiętać, że tick_tock jest odpalany kilka dobrych razy na sekundę i optymalizować wszystko co się w nim znajduje właśnie pod tym kontem. Czy naprawdę niektóre rzeczy trzeba wykonywać tak często? Po wywołaniu skryptu wszystkie inne czynności zatrzymają się do czasu jego zrealizowania, więc można ładnie schrzanić sobie FPS wykorzystując tam obciążające skrypty. Można ograniczyć wykonywanie kodu na wiele sposobów, najprymitywniejszy:

var trigger_ticks = 0;

func void tick_tock() {
   if (trigger_ticks != 0) {
      if (trigger_ticks > 8) {
          trigger_ticks = 0;
      }
   } else {
      //kod
   }
   trigger_ticks++;
}

Kod zamieszczony w miejscu komentarza wykona się raz na osiem odpaleń zdarzenia i znacznie odciąży grę.

Cytuj
A po drugie kilkadziesiąt razy pisałem tick tocki sobie i innym więc chyba wiem lepiej?
Możesz amatorsko rzeźbić z kamienia przez rok. Prace wykonane przez osobę z krótszym stażem, lecz sporym nakładem wiedzy na temat zachowania tworzywa i tak zapewne będą lepsze. Długość czasu spędzonego nad czymś nijak się ma do umiejętności.

Cytuj
Nom bo po to jest if(true) aby mogło się znowu uruchamiać mówię pokaż screena bądź napisz do mnie na gg.
Błąd logiczny. Ten zapis:
if (true) {
   something();
};
Po prawidłowej optymalizacji może zostać automatycznie uproszczony do kodu:
something();To nic innego jak zwykły blok warunkowy, jeśli warunek jest spełniony to wykona się kod między klamrami. Jedyne co możesz osiągnąć stosując taki zapis to opóźnienie na poziomie milisekund (nanosekund?), zakładając że interpreter poświęci za każdym razem chwilę na sprawdzenie tego bezsensownego warunku.
 

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis

EdekSumo
Wyspa Khorinis

Tick_Tock
#28 2011-11-13, 16:11(Ostatnia zmiana: 2011-11-13, 16:21)
To nie będzie działać.

var int trigger_ticks = 0;

func void tick_tock() {
   if (trigger_ticks != 0) {
      if (trigger_ticks > 8) {
          trigger_ticks = 0;
      }
   } else {
      //kod
   };
   trigger_ticks+= 1;
};
To nie c++ czy c# więc aby działało musi być tak i (no chyba że tu działa ++ nigdy nie sprawdzałem). Ale i tak nie zadziała bo tick tock musi odpalać trigera na nowo dzięki temu powstaje pętla.

BTW aby tick tock był odpalany kilka razy w ciągu sekundy trza skorzystać z ikarusa.

@DOWN Nie jestem informatykiem tylko kucharzem :lol2:  więc wracając do tematu zommer pokaż screena ze spacera.
 

Demonical Monk

Demonical Monk

Użytkownicy
posty145
Propsy152
  • Użytkownicy

Demonical Monk

Tick_Tock
#29 2011-11-13, 16:15(Ostatnia zmiana: 2011-11-13, 16:42)
Fakt, Daedalus jest dość ograniczony. Ten kod nie miał działać tylko pokazać ogólną koncepcję zrealizowania czegoś takiego. Użyłem tutaj pseudokodu:
Cytuj
Pseudokodem nazywany jest taki sposób zapisu algorytmu, który, zachowując strukturę charakterystyczną dla kodu zapisanego w języku programowania, rezygnuje ze ścisłych reguł składniowych na rzecz prostoty i czytelności.

Cytuj
@DOWN Nie jest informatykiem tylko kucharzem
Daruj sobie gówniarzeryjne odzywki, na jakiej podstawie wysnułeś taki wniosek? W sporej części opracowań ludzi z wysokimi tytułani naukowymi używa się pseudokodu - właśnie po to żeby nie katować się gramatyką tylko skupić się na problemie, który mamy rozwiązać.

Liźnij chociaż podstawy logiki, bo póki co ze swoim "if (true)" to ty na kucharza pretendujesz.

@DOWN - to ciekawe, bo to co cytowałem wyżej to kopiuj-wklej z twojego posta. Trochę odpowiedzialności cywilnej? Bycie kucharzem cię nie usprawiedliwia - pokazujesz tutaj że nie masz ani wiedzy udokumentowanej, ani praktycznej. Zamykanie się w swoim światku jak to określiłeś "moddingu" nic nie da, jak widać przeklejasz cudzy kod bez żadnego zrozumienia. Mniej agresji - więcej myślenia. No i nikt nie obarcza cię winą za nienormalność interpretera, poinformowałem po prostu że to jest pseudokod, więc ewentualne błędy choć niezamierzone mogą występować.
 

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis

EdekSumo
Wyspa Khorinis

Tick_Tock
#30 2011-11-13, 16:27(Ostatnia zmiana: 2011-11-13, 16:28)
Czy moja wina że gothic jest pojebany? i inaczej to nie działa? Może masz wiedzę o programowaniu ale o moddingu NIE. Niech ktoś usunie spam bo mnie się rzygać chcę jak widzę / czytam takich ludzi btw jak myślisz żeś mądry / moder gothica rozwiąż ten problem. A ja dziękuje dobranoc nie będzie mi nikt krwi psuł.
EDIT przeczytaj co ja napisałem że ja JESTEM KUCHARZEM a nie informatykiem :facepalm:
 

zommer

zommer

Użytkownicy
posty135
Propsy25
ProfesjaNierób
  • Użytkownicy
Dobra więc tak, po resecie pc'ta zauważyłem że to on tak zamulał x] Cóż, wszystko mi już działa i tak naprawdę największa zasługa w tym Edka, więc leci props i dzięki. Całej reszcie też trza podziękować że raczyli w ogóle tu zajrzeć, więc dziękować.

//Temat do zamknięcia.
 


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