nieszczęsne ENDE. 1770 7

O temacie

Autor Pawciow

Zaczęty 7.11.2012 roku

Wyświetleń 1770

Odpowiedzi 7

Pawciow

Pawciow

Użytkownicy
posty533
Propsy70
ProfesjaTłumacz
  • Użytkownicy

Pawciow

nieszczęsne ENDE.
2012-11-07, 21:19(Ostatnia zmiana: 2012-11-07, 21:20)
mam problem z dialogami w modzie, otóż:
plik Text.d jest zedytowany i linijka(domyślnie w skryptach niemieckich):
const string Dialog_Ende = "ENDE";jest zamieniona na:
const string Dialog_Ende = "KONIEC";jednakże w dialogach, tzn. z tą postacią nie ma opcji
dialogowej, a pojawia się napis "ENDE." ;

nie znalazłem w skryptach i nie wiem, jak zmienić to na "KONIEC"...
tak jak jest w g2nk; ktoś ma jakiś pomysł na rozwiązanie
albo zetknął się z tym wcześniej?

inż. Avallach

inż. Avallach

Administrator
posty7662
Propsy5238
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

nieszczęsne ENDE.
#1 2012-11-07, 21:29(Ostatnia zmiana: 2012-11-07, 21:33)
O ile kojarzę, ENDE jest hardcode'owane w silniku w wypadku kiedy ta opcja dialogowa nie została zdefiniowana w skryptach. Musisz po prostu samemu dodać ten "dialog" kończenia u każdej takiej postaci. Dałoby się też zrobić jeden wspólny dla wszystkich npc, ale wtedy trzeba by skasować te normalne "Końce" i zrobić system który by ją ukrywał wtedy kiedy gracz nie powinien mieć możliwości przerwania dialogu, ale to masa roboty.

Być może istnieje jakaś inna specjalna zmienna w skryptach która nadpisuje ten tekst?

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

nieszczęsne ENDE.
#2 2012-11-07, 21:37(Ostatnia zmiana: 2012-11-07, 21:42)
W B_AssignAmbientInfos.d robisz coś takiego :D  
INSTANCE Info_Ambient_EXIT(C_INFO)
{
nr = 999;
condition = Info_Ambient_EXIT_Condition;
information = Info_Ambient_EXIT_Info;
permanent = 1;
description = DIALOG_ENDE;
};

FUNC INT Info_Ambient_EXIT_Condition()
{
   return 1;
};

FUNC VOID Info_Ambient_EXIT_Info()
{
   AI_StopProcessInfos(self);
};

FUNC VOID B_AssignAmbientInfos_NPC(var c_NPC slf)
{
   Info_Ambient_EXIT.npc = Hlp_GetInstanceID(slf);
};

FUNC VOID B_AssignAmbientInfos(var c_NPC amb_self) //wywoływanie w ZS_Talk
{
   if (amb_self.npctype==NPCTYPE_AMBIENT) //tylko NPC typu ambient
   {
      B_AssignAmbientInfos_NPC(amb_self);
   };
};

Jedynie musiałbyś usunąć normalne opcje dialogowe "KONIEC" u ambientów lub zmienić typ NPC na ambient :D , bo inaczej miałbyś u niektórych dwie opcje "KONIEC" xd

Pawciow

Pawciow

Użytkownicy
posty533
Propsy70
ProfesjaTłumacz
  • Użytkownicy
npce mają albo typ NPCTYPE_OCMAIN albo NPCTYPE_OCAMBIENT
i w tym pliku C_NpcBelongsTo.d (bo akcja moda w zamku GD się rozgrywa):
func int C_NpcBelongsToOldCamp(var C_Npc slf)
{
if((slf.npcType == NPCTYPE_OCMAIN) || (slf.npcType == NPCTYPE_OCAMBIENT))
{
if((slf.guild == GIL_VLK) || (slf.guild == GIL_MIL) || (slf.guild == GIL_PAL))
{
return TRUE;
};
};
return FALSE;
};
to musiałbym robić to co napisałeś jakoś pod te typy NPC?

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Tak, a właściwie musiałbyś zamienić na
FUNC VOID B_AssignAmbientInfos(var c_NPC amb_self) //wywoływanie w ZS_Talk
{
   if (C_NpcBelongsToOldCamp(amb_self))
   {    
      B_AssignAmbientInfos_NPC(amb_self);
   };
};

Pawciow

Pawciow

Użytkownicy
posty533
Propsy70
ProfesjaTłumacz
  • Użytkownicy
przejrzałem dokładniej pliki z moda i
tam nie ma właśnie (folder B_AssignAmbientInfos)
pliku B_AssignAmbientInfos.d są tylko:
B_AssignAmbientNews.d, B_Addon_GivePotion.d,
B_AssignCityGuide.d, B_AssignToughGuyNews.d ;
a w B_AssignAmbientNews.d można coś dać?

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
:facepalm:
Weź czasem trochę pomyśl.

Ogólnie B_AssignAmbientInfos jest chyba dodane przez ekipę spolszczającą bądź "czyszczącą" skrypty, oryginalnie istniało tylko  B_AssignAmbientNEWS, jednak patrząc na funkcję, powinieneś zrozumieć że różnica między nimi jest banalna, dokładniej, różnią się jedynie nazwą (no i co za tym idzie wywołaniem, ale to chyba rozumiesz : | ).

Jak chcesz to ta funkcja:
func void B_GADAJ_HUJU(var C_Npc slf)
{
DIA_Ambient_NEWS.npc = Hlp_GetInstanceID(slf); //DIA_Ambient_NEWS jest twoim ambient dialogiem.
};
da ten sam efekt.



PS. Paru osobom zdarza się zapomnieć dać end'a do dialogu, wzorując się tym skryptem można je automatycznie dodać dla każdego NPC, taka dobra rada wujka Sawika.
 
Ż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

Pawciow

Pawciow

Użytkownicy
posty533
Propsy70
ProfesjaTłumacz
  • Użytkownicy
przecież B_AssignAmbientInfos.d jak i B_AssignAmbientNews.d
jest w podstawce...a tu autor moda chyba usunął celowo
B_AssignAmbientInfos.d ... dlatego się pytam czy można
w innym pliku to dać ; nie znam się na skryptach specjalnie...


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