Warunek If - pytanie 4003 7

O temacie

Autor Nekron197

Zaczęty 30.11.2012 roku

Wyświetleń 4003

Odpowiedzi 7

Nekron197

Nekron197

Użytkownicy
posty192
Propsy13
  • Użytkownicy

Nekron197

Warunek If - pytanie
2012-11-30, 18:21(Ostatnia zmiana: 2012-11-30, 18:21)
Witam.
Czy można zrobić dialog w którym instancja (np. Po poprzedniej instancji)
była wywołana dopiero po wykonaniu czegoś np.
if (Npc_IsDead(Instancja));
Instance DIA_Cos_0000_cos (C_INFO)
npc         = jakis;
nr          = 1;
condition   = DIA_cos_000_cos_Condition;
information = DIA_cos_000_cos_Info;
permament   = FALSE;
description = "coś"

Czy trzeba to jakoś inaczej kombinować?
 


Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
W condition daj ifa a nie przed dialogiem...
 
Ż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

Nekron197

Nekron197

Użytkownicy
posty192
Propsy13
  • Użytkownicy
na myśli mam jak zrobić, aby po wykonaniu czegoś poprzednia instancja znikneła, czyli poprzedni wątek w dialogu,  pojawiła się nowa kończąca questa np. w starej instancji było description: "cześć", a w tej nowej po wykonaniu zadania cos w stylu: "Zrobiłem oco prosiłeś" i żeby po tym ostatnim dialogu NPC miał tylko wpis ende. przy każdej następnej rozmowie.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Warunek If - pytanie
#4 2012-11-30, 18:33(Ostatnia zmiana: 2012-11-30, 18:35)
Jak napisał Sawik, musisz odpowiednio napisać funkcje condition obu dialogów. Kiedy funkcja będzie zwracać true/1, dany dialog będzie widoczny, kiedy false/0, będzie niewidoczny. To z kolei możesz zrealizować przez odwrotne traktowanie zmiennej dotyczącej questa.
var int quest_skonczony;
func int czesc_condition  () { return !quest_skonczony; };
func int gotowe_condition () { return quest_skonczony;  };
Aha, nie pamiętam czy w Daedalusie jest operator ! dla intów. Jeśli nie, pierwsza funkcja musi wyglądać:
func int czesc_condition  () { if (quest_skonczony) { return false; } else { return true; }; };

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
robisz kilka dialogów i warunek czy ma się pokazywać czy nie dajesz w funkcji zwracającej wartość logiczna (ta w środku) oglądnij do cholery poradniki czipa17 bo ręce opadają. Czip robił warunek jeśli znamy dialog ale mozesz tez tworzyć swoje.

Nekron197

Nekron197

Użytkownicy
posty192
Propsy13
  • Użytkownicy

Nekron197

Warunek If - pytanie
#6 2012-11-30, 18:38(Ostatnia zmiana: 2012-11-30, 20:57)
może tak dla pewności prześlę cały kod dialogu, może wtedy będzie jaśniej wiadomo oco mi chodzi
// ************************************************************
//     EXIT
// ************************************************************

INSTANCE DIA_Santa_5003_Elf_EXIT(C_INFO)
{
npc = Santa_5003_Elf;
nr = 999;
condition = DIA_Santa_5003_Elf_EXIT_Condition;
information = DIA_Santa_5003_Elf_EXIT_Info;
permanent = TRUE;
description = DIALOG_ENDE;
};                      

FUNC INT DIA_Santa_5003_Elf_EXIT_Condition()
{
{
return TRUE;
};
};

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


//////////////
//HELLO//////
////////////

INSTANCE DIA_Santa_5003_Elf_Tekst (C_Info)
{
npc         = Santa_5003_Elf;
nr          = 1;
condition   = DIA_Santa_5003_Elf_Tekst_Condition;
information = DIA_Santa_5003_Elf_Tekst_Info;
permament   = FALSE;
description = "Hej!"
};

FUNC INT DIA_Santa_5003_Elf_Tekst_Condition()

FUNC VOID DIA_Santa_5003_Elf_Tekst_Info()

{

  AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_15_00"); //Witaj!
  AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_5003_01"); //Cześć!
  AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_5003_02"); //Nazywam się Deril.
  AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_5003_03"); //Jeśli czegoś potrzebujesz, idź do Mikołaja, On wszystko załatwi, czego tylko potrzebujesz!
  if (Npc_KnowsInfo (other, DIA_Santa_5001_Mikolaj_Quest_Koniec));
  {
  AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_15_04"); //Szukam zajęcia... Masz dla mnie coś do zrobienia?
  AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_5003_05"); //Może i mam... Ale nie załatwisz tego bez porządnej broni i czapeczki!
  CreateInvItems (self, itmw_miecz_od_mikolaja, 1);
  CreateInvItems (self, itar_elf_hat, 1);
  B_GiveInvItems (self, other, itmw_Miecz_od_mikolaja, 1);
  B_GiveInvItems (self, other, itar_elf_hat, 1);
  AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_5003_06"); //Teraz do rzeczy!
  AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_5003_07"); //Załatw paru dezerterów co kryją się niedaleko mostu!
 
Wld_InsertNpc (Dezerter_5015_Elf,        "FP_ROAM_NW_NW_PATH_TO_MONASTER_MONSTER22_02");
Wld_InsertNpc (Dezerter_5015_Elf,        "FP_ROAM_NW_NW_PATH_TO_MONASTER_MONSTER22_02");
Wld_InsertNpc (Dezerter_5016_Elf,        "FP_ROAM_NW_NW_PATH_TO_MONASTER_MONSTER22_02");
Wld_InsertNpc (Dezerter_5016_Elf,        "FP_ROAM_NW_NW_PATH_TO_MONASTER_MONSTER22_02");
 
  Log_CreateTopic (TOPIC_Dezerterzy,LOG_MISSION);
Log_SetTopicStatus (TOPIC_Dezerterzy ,LOG_RUNNING);
B_LogEntry (TOPIC_Dezerterzy ,"Nareszcie jakieś porządne zadanie! Nudziło mi się latanie za posyłką... Dezerterzy znajduja się niedaleko mostu!");

AI_StopProcessInfos(self);
}:
};
{
 if (Npc_IsDead(Dezerter_5015_Elf));
  && (Npc_IsDead(Dezerter_5016_Elf));

INSTANCE DIA_Santa_5003_Elf_Tekst_koniec (C_Info)
{
npc         = Santa_5003_Elf;
nr          = 1;
condition   = DIA_Santa_5003_Elf_Tekst_koniec_Condition;
information = DIA_Santa_5003_Elf_Tekst_koniec_Info;
permament   = FALSE;
description = "Zabici!"
}

FUNC INT DIA_Santa_5003_Elf_Tekst_koniec_Condition()

FUNC VOID DIA_Santa_5003_Elf_Tekst_koniec_Info()


{
 
 AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_koniec_15_01"); //Zabici!
 AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_koniec_15_02"); //To świetnie!
 AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_koniec_15_03"); //wstawie sie za Tobą u Mikołaja!
 
 Log_SetTopicStatus (TOPIC_Dezerterzy ,LOG_SUCCESS);
B_LogEntry (TOPIC_Dezerterzy ,"No i kolejne zadanie ukończone... Chyba pójdę teraz do Mikołaja. Mam dość 'zabawy' z elfami.");

 
};
};
Dobrze wiem, że mam sporo nie zmienionych wpisów w dialogu np (self, other / other, self)

głównie chodzi o ten fragment
if (Npc_IsDead(Dezerter_5015_Elf));
  && (Npc_IsDead(Dezerter_5016_Elf));

INSTANCE DIA_Santa_5003_Elf_Tekst_koniec (C_Info)
{
npc         = Santa_5003_Elf;
nr          = 1;
condition   = DIA_Santa_5003_Elf_Tekst_koniec_Condition;
information = DIA_Santa_5003_Elf_Tekst_koniec_Info;
permament   = FALSE;
description = "Zabici!"
}

FUNC INT DIA_Santa_5003_Elf_Tekst_koniec_Condition()

FUNC VOID DIA_Santa_5003_Elf_Tekst_koniec_Info()


{
 
 AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_koniec_15_01"); //Zabici!
 AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_koniec_15_02"); //To świetnie!
 AI_Output (other, self, "DIA_Santa_5003_Elf_Tekst_koniec_15_03"); //wstawie sie za Tobą u Mikołaja!
 
 Log_SetTopicStatus (TOPIC_Dezerterzy   ,LOG_SUCCESS);
                B_LogEntry (TOPIC_Dezerterzy    ,"No i kolejne zadanie ukończone... Chyba pójdę teraz do Mikołaja. Mam dość 'zabawy' z elfami.");
       
 
};
};
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Czy Ty w ogóle wiesz jak się pisze skrypty? : |
[media]
https://www.youtube.com/watch?v=9FdM9MHCneQ
[/media]
I reszta części, nie wracaj dopóki nie skończysz oglądać co najmniej dwa razy.
 
Ż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


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