Zmiana czasu w dialogu 4515 8

O temacie

Autor karus

Zaczęty 18.02.2012 roku

Wyświetleń 4515

Odpowiedzi 8

karus

karus

Użytkownicy
posty122
  • Użytkownicy
Witam

Postaram się opisać problem jak najdokładniej. Otóż jest sobie postać, która ma trzy długie dialogi + dialog wstępny który jest przed pozostałymi a więc razem cztery. W dialogu wstępnym mam zadeklarowaną przed instance zmienną

var int zmienna;
Dobra teraz dalej - chcę by dialog 1 był odpalany dopiero następnego dnia i analogicznie, dialog 2 za dwa dni, a dialog trzeci za 3 dni. Wobec tego robiłem wiele kombinacji - niżej jest warunek na dialog dzień do przodu

FUNC INT DIA_BP_HB_Condition()

{
if (zmienna + 1 <= Wld_GetDay())
{
return true;
};
};

Dwa dni do przodu

FUNC INT DIA_BP_HB_Condition()

{
if (zmienna + 2 <= Wld_GetDay())
{
return true;
};
};

Trzy dni

FUNC INT DIA_BP_HB_Condition()

{
if (zmienna + 3 <= Wld_GetDay())
{
return true;
};
};

I teraz - niezależnie od operatora którego używałem, (==), niezależnie nawet od dodawania dnia bez zmiennej, za pomocą zwykłej funkcji Wld_GetDay, to zawsze po przespaniu przed aktywacją tej zmiennej czy dialogów, dialogi owe były dostępne w momencie wywołania zmiennej - i na dodatek jeszcze wszystkie, nawet te na 3 dni do przodu. Jest jakieś racjonalne tego wyjaśnienie?

Pozdrawiam
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
A gdzie przypisujesz wartość zmiennej?
zmienna = Wld_GetDay();

karus

karus

Użytkownicy
posty122
  • Użytkownicy
Robiłem już tak - zrobiłem to pod deklaracją zmiennej var int zmienna; , przy kompliacji wywaliło Syntax Error w tym miejscu.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Jeśli chcesz przypisać jakąś wartość poza blokiem funkcji, to musisz zrobić tak
const int zmienna = Wld_GetDay();Inaczej się nie da.

Takie coś
zmienna = Wld_GetDay();zadziała jedynie w bloku jakiejś funkcji.

Czemu tylko tak? Bo tak został zaprojektowany język skryptowy Gothica.

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Adanos a czy to się przypadkiem nie pokrzaczy? WLD_GETDAY zmiania się co jakis czas a ty zapisujesz to w stałej.
 
Ż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

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Zmiana czasu w dialogu
#5 2012-02-18, 12:18(Ostatnia zmiana: 2012-02-18, 12:19)
A niby czemu? Jeśli raz przypiszesz wartość, to nic się nie stanie. Chociaż z drugiej strony, to nie wiem... Zależy od tego, ile razy jest "wywoływany" skrypt. Najlepiej przypisać wartość zmiennej w jakiejś funkcji.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy

RafalBudzis

Zmiana czasu w dialogu
#6 2012-02-18, 12:30(Ostatnia zmiana: 2012-02-18, 12:33)
Jeśli chcesz przypisać jakąś wartość poza blokiem funkcji, to musisz zrobić tak
const int zmienna = Wld_GetDay();Inaczej się nie da.

Takie coś
zmienna = Wld_GetDay();zadziała jedynie w bloku jakiejś funkcji.

Czemu tylko tak? Bo tak został zaprojektowany język skryptowy Gothica.

Jeśli zrobi
const int zmienna = Wld_GetDay();bo będzie miał stałą tylko w obrębie danej funkcji


Karus musisz dodać
zmienna = Wld_GetDay();do pierwszego dialogu w tych klamrach gdzie sie do siebie odzywają


Adanos a czy to się przypadkiem nie pokrzaczy? WLD_GETDAY zmiania się co jakis czas a ty zapisujesz to w stałej.
Sawik gothic ma tylko zmienne stała różni sie tylko tym ze początkowa wartość przypisujesz od razu.

karus

karus

Użytkownicy
posty122
  • Użytkownicy

karus

Zmiana czasu w dialogu
#7 2012-02-18, 12:48(Ostatnia zmiana: 2012-02-18, 12:50)
Dzięki chłopacy za pomoc, wszystko zajebiście trybi i gra ;)  :ok:  Będę wiedział od teraz że trzeba w funkcji przypisywać określone "funkcje?" zmiennym.
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
przypisywać określone "funkcje?" zmiennym.
określone wartości zmiennym (funkcja zwraca wartość a wartość jest zapisywana ;))


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