Difference between revisions of "Bethesda Tutorial Papyrus Variables and Conditionals/pl"

From the CreationKit Wiki
Jump to navigation Jump to search
imported>TomBrightblade
(Created page with "{{PageTitle|Poradnik Bethesdy - Papyrus - Wprowadzenie do zmiennych i warunków}} {{PolishPage|e}} {{ulink|Category:Tutorials/pl}} {{Tutorial Index/pl |titlename=Poradnik Be...")
 
imported>TomBrightblade
m (count translated into "licznik")
Line 41: Line 41:
Dodajmy teraz zmienną. Dopisz poniższą linię tuż nad linią z tekstem "Event OnActivate":
Dodajmy teraz zmienną. Dopisz poniższą linię tuż nad linią z tekstem "Event OnActivate":
<source lang="papyrus">
<source lang="papyrus">
  int count  ;przechowuje liczbe ile razy gracz aktywowal ten obiekt
  int licznik ;przechowuje liczbe ile razy gracz aktywowal ten obiekt
</source>
</source>




* '''int''' count ;przechowuje liczbe... - '''int''' określa rodzaj zmiennej. W tym przypadku jest to zmienna typu "Integer," czyli liczba całkowita, dodatnia lub ujemna.
* '''int''' licznik ;przechowuje liczbe... - '''int''' określa rodzaj zmiennej. W tym przypadku jest to zmienna typu "Integer," czyli liczba całkowita, dodatnia lub ujemna.
* int '''count''' ;przechowuje liczbe... - '''count''' to nazwa naszej nowej zmiennej, którą tworzymy. Za pomocą tej nazwy można się będzie odwołać do naszej zmiennej w innym miejscu w skrypcie. Jeśli chcesz, zamiast angielskiego "count" możesz wpisać polskie "licznik" albo "liczba".
* int '''licznik''' ;przechowuje liczbe... - '''licznik''' to nazwa naszej nowej zmiennej, którą tworzymy. Za pomocą tej nazwy można się będzie odwołać do naszej zmiennej w innym miejscu w skrypcie.
* int count ''';przechowuje liczbe...''' - cały tekst za znakiem średnika (''';''') jest komentarzem. To oznacza, że skrypt w ogóle nie będzie na ten tekst zwracać uwagi oraz że jest to tylko informacja dla programisty (np. co to jest za zmienna albo po co i jak można jej używać).  
* int licznik ''';przechowuje liczbe...''' - cały tekst za znakiem średnika (''';''') jest komentarzem. To oznacza, że skrypt w ogóle nie będzie na ten tekst zwracać uwagi oraz że jest to tylko informacja dla programisty (np. co to jest za zmienna albo po co i jak można jej używać).  




Teraz dodajmy linię kodu, która będzie coś robić. Pomiędzy "Event OnActivate..." a  "Debug.MessageBox..." dodaj następującą linię:
Teraz dodajmy linię kodu, która będzie coś robić. Pomiędzy "Event OnActivate..." a  "Debug.MessageBox..." dodaj następującą linię:
<source lang="papyrus">
<source lang="papyrus">
  count = count + 1
  licznik = licznik + 1
</source>
</source>


Tym poleceniem mówimy, że niezależnie od tego jaka jest wartość zmiennej count, to ma zostać do niej dodane 1, a suma ma zostać ponownie przypisana do wartości zmiennej count. Czyli po prostu zwiększamy zmienną całkowitą count o 1.
Tym poleceniem mówimy, że niezależnie od tego jaka jest wartość zmiennej licznik, to ma zostać do niej dodane 1, a suma ma zostać ponownie przypisana do wartości zmiennej licznik. Czyli po prostu zwiększamy zmienną całkowitą licznik o 1.




Line 66: Line 66:




Zanim cokolwiek zrobimy, najpierw sprawdzimy wartość naszej zmiennej "count", który powinna wynosić 0. Zamknij pasek z konsolą (klawisz ~) i ustaw się swoją postacią tak, aby mieć filar tuż przed sobą. Otwórz konsolę, aktywuj filar (klikając na nim myszką). Na górze ekranu powinna pojawić się nazwa obiektu filara, "'WETempActivator'", oraz ID obiektu w nawiasie.
Zanim cokolwiek zrobimy, najpierw sprawdzimy wartość naszej zmiennej "licznik", który powinna wynosić 0. Zamknij pasek z konsolą (klawisz ~) i ustaw się swoją postacią tak, aby mieć filar tuż przed sobą. Otwórz konsolę, aktywuj filar (klikając na nim myszką). Na górze ekranu powinna pojawić się nazwa obiektu filara, "'WETempActivator'", oraz ID obiektu w nawiasie.




Line 77: Line 77:
  HelloWorldScript:
  HelloWorldScript:
       Script state = ""
       Script state = ""
       count = 0
       licznik = 0


Jak widać, raport wskazuje że zmienna "count" ma wartość 0.
Jak widać, raport wskazuje że zmienna "licznik" ma wartość 0.
Zamknij konsolę (~) i trzy razy aktywuj filar (czyli ma wyświetlić wiadomość powitalną "Witaj świecie!" trzy razy).
Zamknij konsolę (~) i trzy razy aktywuj filar (czyli ma wyświetlić wiadomość powitalną "Witaj świecie!" trzy razy).


Teraz otwórz konsolę i wpisz "ShowVars". Teraz raport powinien pokazać "count = 3".
Teraz otwórz konsolę i wpisz "ShowVars". Teraz raport powinien pokazać "licznik = 3".
Świetnie. Ale co z tego? Cóż, teraz możemy wykorzystać te informacje w naszym skrypcie, aby wyświetlić różne wiadomości na podstawie tego, ile razy kliknięto na filar. Wyjdź z gry i wrócić do edytowania skryptu.
Świetnie. Ale co z tego? Cóż, teraz możemy wykorzystać te informacje w naszym skrypcie, aby wyświetlić różne wiadomości na podstawie tego, ile razy kliknięto na filar. Wyjdź z gry i wrócić do edytowania skryptu.


Line 89: Line 89:
Teraz dodamy "wyrażenia warunkowa", które dadzą nam większą kontrolę nad tym co się dzieje wewnątrz skryptu. Zamień wiersz "Debug.MessageBox ("Witaj świecie!")" następującymi:
Teraz dodamy "wyrażenia warunkowa", które dadzą nam większą kontrolę nad tym co się dzieje wewnątrz skryptu. Zamień wiersz "Debug.MessageBox ("Witaj świecie!")" następującymi:
<source lang="papyrus">
<source lang="papyrus">
  if count == 1
  if licznik == 1
     Debug.MessageBox("Witaj świecie!")
     Debug.MessageBox("Witaj świecie!")
  elseif count == 2
  elseif licznik == 2
     Debug.MessageBox("Witaj świecie. Ponownie!")
     Debug.MessageBox("Witaj świecie. Ponownie!")
  else
  else
Line 98: Line 98:
</source>
</source>


Teraz możemy użyć wartości zmiennej count, aby zmienić zachowanie naszego skryptu. W naszym przykładzie pokażemy graczowi różne komunikaty, zależnie który raz kliknął na filar. Jedną ważną rzeczą jest podwójny znak równości (==), używany do sprawdzenia czy lewa strona równa się prawej. Pojedynczy znak równości (=), jak pamiętasz, służy do ustawienia zmiennej (w przypadku zmiennej liczbowej służy do przypisania jej określonej wartości).
Teraz możemy użyć wartości zmiennej licznik, aby zmienić zachowanie naszego skryptu. W naszym przykładzie pokażemy graczowi różne komunikaty, zależnie który raz kliknął na filar. Jedną ważną rzeczą jest podwójny znak równości (==), używany do sprawdzenia czy lewa strona równa się prawej. Pojedynczy znak równości (=), jak pamiętasz, służy do ustawienia zmiennej (w przypadku zmiennej liczbowej służy do przypisania jej określonej wartości).




Line 111: Line 111:
  {To moj pierwszy prawdziwy skrypt!}
  {To moj pierwszy prawdziwy skrypt!}


  int count ;przechowuje liczbe ile razy gracz aktywowal ten obiekt
  int licznik ;przechowuje liczbe ile razy gracz aktywowal ten obiekt


  Event OnActivate(ObjectReference akActionRef)
  Event OnActivate(ObjectReference akActionRef)
     count = count + 1
     licznik = licznik + 1


     if count == 1
     if licznik == 1
         Debug.MessageBox("Witaj świecie!")
         Debug.MessageBox("Witaj świecie!")
     elseif count == 2
     elseif licznik == 2
         Debug.MessageBox("Witaj świecie. Ponownie!")
         Debug.MessageBox("Witaj świecie. Ponownie!")
     else
     else

Revision as of 07:43, 1 January 2013

Poradnik Bethesdy - Papyrus - Wprowadzenie do zmiennych i warunków



RoundPolishFlag.pngStrona w języku polskim
Wymaga poprawek redakcyjnych lub przetłumaczenia linkowanych stron
Poradnik Bethesdy - Papyrus - Wprowadzenie do zmiennych i warunków
seria: Skypty, rozdział: 2
Powrót do spisu poradników
LeftArrow.png Poprzedni poradnik Następny poradnikRightArrow.png


Przegląd

W tym poradniku będziemy kontynuować przykład z poprzedniego poradnika Witaj świecie.

Nauczysz się:

  • Jak tworzyć i używać zmiennych
  • Jak tworzyć komentarze i notatki do skryptu, aby w przyszłości wiedzieć co dany skrypt robi
  • Jak sprawdzić w grze wartości zmiennych z danego skryptu
  • Jak używać wyrażeń warunkowych if-then-else sterujących logiką skryptu


Zmienne

Zmienne są jak magazyny przechowujące informacje lub obiekty. Można je ustanowić, zwiększać albo zmniejszać ich wartości liczbowe, można się do nich odnosić i wyciągać z nich dane. W naszym przykładzie z Hello World Tutorial dodamy do skryptu zmienną, której będziemy używać do liczenia ile razy gracz aktywował skrypt, a za każdym razem zmienimy wynik działania.

Otwórz właściwości przedmiotu-słupa (referencji), kliknij prawym na skrypt HelloWorldScript w zakładce Script. Wybierz opcję "Edit Source", a otworzy się okno edytowania kodu źródłowego skryptu.


Na razie kod ten wygląda mniej więcej tak:

 Scriptname HelloWorldScript extends ObjectReference  
 {To moj pierwszy prawdziwy skrypt!}

 Event OnActivate(ObjectReference akActionRef)
    Debug.MessageBox("Witaj świecie!")
 endEvent


Dodajmy teraz zmienną. Dopisz poniższą linię tuż nad linią z tekstem "Event OnActivate":

 int licznik ;przechowuje liczbe ile razy gracz aktywowal ten obiekt


  • int licznik ;przechowuje liczbe... - int określa rodzaj zmiennej. W tym przypadku jest to zmienna typu "Integer," czyli liczba całkowita, dodatnia lub ujemna.
  • int licznik ;przechowuje liczbe... - licznik to nazwa naszej nowej zmiennej, którą tworzymy. Za pomocą tej nazwy można się będzie odwołać do naszej zmiennej w innym miejscu w skrypcie.
  • int licznik ;przechowuje liczbe... - cały tekst za znakiem średnika (;) jest komentarzem. To oznacza, że skrypt w ogóle nie będzie na ten tekst zwracać uwagi oraz że jest to tylko informacja dla programisty (np. co to jest za zmienna albo po co i jak można jej używać).


Teraz dodajmy linię kodu, która będzie coś robić. Pomiędzy "Event OnActivate..." a "Debug.MessageBox..." dodaj następującą linię:

 licznik = licznik + 1

Tym poleceniem mówimy, że niezależnie od tego jaka jest wartość zmiennej licznik, to ma zostać do niej dodane 1, a suma ma zostać ponownie przypisana do wartości zmiennej licznik. Czyli po prostu zwiększamy zmienną całkowitą licznik o 1.


Sprawdzanie wartości zmiennych w grze

Upewnij się, że gra nie jest obecnie uruchomiona. Zapisz skrypt. Kliknij na "OK" w oknie właściwości referencji, aby je zamknąć. Następnie naciśnij przycisk Zapisz na pasku narzędzi, aby zapisać plugin.

Uruchom grę i przemieść się do aktywatora. (Przypomnienie: otwórz konsolę naciskając klawisz tyldy (~) i wpisz:

COC MolagBalVoiceCell


Zanim cokolwiek zrobimy, najpierw sprawdzimy wartość naszej zmiennej "licznik", który powinna wynosić 0. Zamknij pasek z konsolą (klawisz ~) i ustaw się swoją postacią tak, aby mieć filar tuż przed sobą. Otwórz konsolę, aktywuj filar (klikając na nim myszką). Na górze ekranu powinna pojawić się nazwa obiektu filara, "'WETempActivator'", oraz ID obiektu w nawiasie.


Teraz wpisz w konsoli:

ShowVars

W konsoli powinna pojawić się mniej więcej taka informacja:

--- Papyrus ---------------------
HelloWorldScript:
     Script state = ""
     licznik = 0

Jak widać, raport wskazuje że zmienna "licznik" ma wartość 0. Zamknij konsolę (~) i trzy razy aktywuj filar (czyli ma wyświetlić wiadomość powitalną "Witaj świecie!" trzy razy).

Teraz otwórz konsolę i wpisz "ShowVars". Teraz raport powinien pokazać "licznik = 3". Świetnie. Ale co z tego? Cóż, teraz możemy wykorzystać te informacje w naszym skrypcie, aby wyświetlić różne wiadomości na podstawie tego, ile razy kliknięto na filar. Wyjdź z gry i wrócić do edytowania skryptu.


Wyrażenia warunkowe (if-then-else)

Teraz dodamy "wyrażenia warunkowa", które dadzą nam większą kontrolę nad tym co się dzieje wewnątrz skryptu. Zamień wiersz "Debug.MessageBox ("Witaj świecie!")" następującymi:

 if licznik == 1
    Debug.MessageBox("Witaj świecie!")
 elseif licznik == 2
    Debug.MessageBox("Witaj świecie. Ponownie!")
 else
    Debug.MessageBox("Witaj świecie. Już dosyć!")
 endif

Teraz możemy użyć wartości zmiennej licznik, aby zmienić zachowanie naszego skryptu. W naszym przykładzie pokażemy graczowi różne komunikaty, zależnie który raz kliknął na filar. Jedną ważną rzeczą jest podwójny znak równości (==), używany do sprawdzenia czy lewa strona równa się prawej. Pojedynczy znak równości (=), jak pamiętasz, służy do ustawienia zmiennej (w przypadku zmiennej liczbowej służy do przypisania jej określonej wartości).


Na początku może to wydawać się trudne do zrozumienia. Trzeba umieć rozróżnić do czego służy pojedyncze "równa się", a do czego podwójne. Dlatego jeszcze raz:

  • pojedynczy znak równości (=) oznacza: Weź to co jest po prawej i przypisz do zmiennej po lewej stronie znaku;
  • podwójny znak równości (==) oznacza zapytanie logiczne: Czy to co jest po lewej stronie jest równe temu co jest po prawej stronie znaków.


Cały skrypt powinien wyglądać teraz tak:

 Scriptname HelloWorldScript extends ObjectReference  
 {To moj pierwszy prawdziwy skrypt!}

 int licznik  ;przechowuje liczbe ile razy gracz aktywowal ten obiekt

 Event OnActivate(ObjectReference akActionRef)
    licznik = licznik + 1

    if licznik == 1
        Debug.MessageBox("Witaj świecie!")
     elseif licznik == 2
        Debug.MessageBox("Witaj świecie. Ponownie!")
    else
        Debug.MessageBox("Witaj świecie. Już dosyć!")
    endif
 endEvent

Możesz uruchomić grę, zrobić COC do obszaru i aktywować filar. Za każdą aktywacją powinna pojawiać się kolejna, inna wiadomość!


Dodatkowe informacje

  • Więcej informacji o rodzajach podstawowych zmiennych (takich jak "int" - wszystkie są one nazywane Literałami) znajdziesz na stronie Literals Reference
  • Więcej informacji o rodzajach operatorach (=, += oraz innych) znajdziesz na stronie Operator Reference (en)
  • Więcej informacji o rodzajach wyrażeniach takich jak if-then-else znajdziesz na stronie Statement Reference (en)


LeftArrow.png Poprzedni poradnik Powrót do spisu poradników Następny poradnik RightArrow.png


Language: English  • français • 日本語 • 한국어 • polski • русский