[G2:NK]Dialog ze zmienną wyboru przedmiotów 7540 1

O temacie

Autor Graveir

Zaczęty 14.06.2010 roku

Wyświetleń 7540

Odpowiedzi 1

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Być może był już taki tutorial,a nawet i 100-krotnie lepszy,ale ja nic z niego(a prawdopodobnie czytałem jakiś)nie rozumiałem.Dlatego w tym tutorialu chcę opisać,co mi osobiście pomogło(a męczyłem się z tym h**czasu).
A więc do rzeczy:
W pliku story_globals wpisujemy takie coś:
//--------------------
//Test
//--------------------
var int Marian_Three;
Test to nazwa naszej "zakładki"-można oczywiście dać inną-nie ma to wpływu na nic.
var int - no tutaj wpisujemy nazwę naszej zmiennej,którą będziemy używać w warunku "if".Ja nazwałem ją Marian_Three ponieważ stworzyłem na próbę postać o imieniu Marian i dlatego najwygodniejsze dla mnie było użycie nazwy takiej,a nie innej nazwy zmiennej.Dla przykładu z wykorzystaniem nazwy zmiennej w warunku if:
if (Marian_Three == 2)Oznacza to,że jeśli zmienna Marian_Three jest równa 2 to w moim wypadku będziemy mogli wybrać 2 runy.Oczywiście najlepiej nad warunkiem "If"dopisać(własnoręcznie) takie coś:
Marian_Three = Marian_Three+1;Wtedy zmienna nam się "zlicza",czyli za 1 razem przy wybraniu runy zmienna Marian_Three byłaby równa 1,
a po wybraniu 2 runy wg wzoru Marian_Three byłaby druga.Czyli po wyborze 2 runy znika ostatnia część opcji poddialogowej.Aby pokazać na swoim przykładzie wkleję część swojego skryptu.
FUNC void DIA_Marian_HELLO1_RuneGeyser()
{
CreateInvItems (self, ItRu_Geyser, 1);
B_GiveInvItems (self, other, ItRu_Geyser, 1);
Marian_Three = Marian_Three+1;
if (Marian_Three == 2)
{
AI_Output (other, self ,"DIA_Marian_HELLO1_HELLO1_RuneGeyser_15_03"); //
Info_ClearChoices (DIA_Marian_HELLO1);
};
};

FUNC void DIA_Marian_HELLO1_RuneThunderstorm()
{
CreateInvItems (self, ItRu_Thunderstorm, 1);
B_GiveInvItems (self, other, ItRu_Thunderstorm, 1);
Marian_Three = Marian_Three+1;
if (Marian_Three == 2)
{
AI_Output (other, self ,"DIA_Marian_HELLO1_HELLO1_RuneThunderstorm_15_01"); //
Info_ClearChoices (DIA_Marian_HELLO1);
};
};

FUNC void DIA_Marian_HELLO1_RuneFireball()
{
CreateInvItems (self, ItRu_InstantFireball, 1);
B_GiveInvItems (self, other, ItRu_InstantFireball, 1);
Marian_Three = Marian_Three+1;
if (Marian_Three == 2)
{
AI_Output (self, other ,"DIA_Marian_HELLO1_HELLO1_RuneFireball_03_01"); //
Info_ClearChoices (DIA_Marian_HELLO1);
};
};
Można oczywiście dać do warunku if(Nazwa_Zmiennej == liczba)wrzucić jakąś inną zmienną np.
if(Blabla_Bla >= 5)Czyli jeśli zmienna Marian_Three jest większa bądź równa 2(ja osobiście wolę opcję == 2,ponieważ wtedy nie mam problemów).
Po tym wszystkim pozostaje sprawdzić(najlepiej w spacerze),czy nie ma błędów w skrypcie.Jak nie ma to dajemy update dialogów(przycisk update w spacerze po kliknięciu na taki jakby dokument-jeśli się na początek dało reparse script).
WAŻNE!Nie zapomnijcie o znaku zakończenia warunku };ponieważ mogą wyniknąć pewne komplikacje.
Jeśli był już taki temat to proszę o usunięcie.A jeśli komuś w przyszłości by się przydał to proszę o pozostawienie go otwartym.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Silver

Silver

Użytkownicy
posty109
Propsy14
ProfesjaGracz
  • Użytkownicy
 


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