Forum Stalker.pl • Zobacz temat - Zadania storyline

Zadania storyline

Zadania storyline

Postprzez Wunderwaffe w 30 Sie 2012, 00:17

Junx chciał się dowiedzieć, jak tworzyć takie questy. Ostrzegam: to są absolutne podstawy i na pewno nie stworzycie z tym tutkiem drugiego Priboia. Zrobicie tylko prostego questa z rozmową z Wilkiem i Sidorowiczem.

A zatem przygotujcie sobie kilka plików.
    \gamedata\config\gameplay\dialogs_escape.xml
    \gamedata\config\gameplay\info_l01escape.xml
    \gamedata\config\gameplay\tasks_escape.xml
    \gamedata\config\gameplay\storyline_info_escape.xml
    \gamedata\config\gameplay\character_desc_escape.xml
    \gamedata\config\text\pol\stable_dialogs_escape.xml
    \gamedata\config\text\pol\stable_storyline_info_escape.xml

Jeśli ich nie macie, to nie róbcie tych questów, gdyż prawdziwy modder ma na dysku rozpakowaną gamedatę.

Zacznijmy od infoportion

Otwórzcie plik info_l01escape.xml. To tam gromadzą się infoportions. Potrzebne nam będą trzy takie. Jeden rozpoczynający zadanie i dwa dla każdego punktu (rozmowa z Wilkiem i z Sidem).

Kod: Zaznacz wszystko
<info_portion id="start_my_first_task">
   <task>my_first_task</task>
</info_portion>

<info_portion id="player_talked_with_wolf"></info_portion>

<info_portion id="player_talked_with_sidorovich"></info_portion>


Pierwsze aktywuje zadanie "my_fist_task", a dwa pozostałe aktywują nam wymagania.

Robimy zadanie

Zadania zadeklarowane są w plikach tasks_(...).xml. Nasze zaczyna się w Kordonie, więc utworzymy je w tasks_escape.xml.

Kod: Zaznacz wszystko
<game_task id="my_first_task">
   <title>my_first_task</title>
   <objective>
      <text>my_first_task_0</text>
      <icon>skopiuj tu coś z innego questa, bo pewnie nie masz własnej ikony</icon>
      <infoportion_complete>player_talked_with_wolf</infoportion_set_complete>
      <article>my_first_task_description</article>
   </objective>
   <objective>
      <text>my_first_task_1</text>
      <infoportion_complete>player_talked_with_sidorovich</infoportion_complete>
   </objective>
</game_task>


I tłumaczę już, o co chodzi.

Kod: Zaznacz wszystko
<game_task id="my_first_task">

Tworzy nowe zadanie.

Kod: Zaznacz wszystko
<objectve>

Punkt zadania (wymaganie). Spać mi się chce.

Kod: Zaznacz wszystko
<text>my_first_task_0</text>

Nazwa punktu.

Kod: Zaznacz wszystko
<icon>skopiuj tu coś z innego questa, bo pewnie nie masz własnej ikony</icon>

Ikona questa. Nie wiem czemu daje się to w <objective>.

Kod: Zaznacz wszystko
<infoportion_complete>player_talked_with_wolf</infoportion_set_complete>

Infoportion, który powoduje wykonanie punktu.

Kod: Zaznacz wszystko
<article>my_first_task_description</article>

Opis zadania. Też nie wiem, czemu w <objective>.

I jeszcze inne fajne tagi XML, które możesz wrzucić do zadania.

Kod: Zaznacz wszystko
<infoportion_fail>...</infoportion_fail>

Aktywowanie takiego infoportion powoduje anulowanie zadania.

Kod: Zaznacz wszystko
<function_complete>...</function_complete>

Chyba to jest skrypt wywoływany, gdy zadanie się kończy. Chyba.

Kod: Zaznacz wszystko
<map_location_type hint="...">...</map_location_type>

Zaznaczenie obiektu zadania na mapie. W hint podajemy jego wewnętrzną nazwę (np. "volk" dla Wilka). Między tagami dajemy green_location albo blue_location. Może jeszcze coś, sprawdźcie sobie w plikach gry, bo mnie się chce. Chce to mi się położyć.

Kod: Zaznacz wszystko
<object_story_id>...</object_story_id>

Podajemy tutaj kogoś z gamedata\config\game_story_ids.ltx.

Opis zadania

Otwórz gamedata\config\gameplaystoryline_info_escape.xml i wpisz gdzieś:
Kod: Zaznacz wszystko
<article id="my_first_task_description" name="first_task" article_type="task" group="my_first_task/0">
        <text>first_task_description</text>
</article>


A teraz gamedata\config\gameplay\stable_storyline_info_escape.xml i również wpisz gdzieś:
Kod: Zaznacz wszystko
<string id="my_first_task_description">
   <text>Sidorowicz wysłał mnie z pytaniem do Wilka i oczekuje przekazania odpowiedzi.</text>
</string>


Aktywacja infoportions

Super, zbliżam się do końca :D! Zrobimy to rozmową. Mam nadzieję, że to umiecie. Jeśli nie, to nie róbcie questów, tylko uczcie się innych rzeczy (np. szycia kowadłem).

1. rozmowa będzie taka:
Naznaczony: Masz dla mnie specjalne zlecenie?
Sidorowicz: Zapytaj Wilka, czy chce wpaść do mnie na kieliszeczek wódeczki.
Naznaczony: OK.

Kod: Zaznacz wszystko
<dialog id="escape_trader_vodka_task">
 <phrase_list>
   <phrase id="0">
      <text>escape_trader_vodka_task_0</text>
      <next>1</next>
   </phrase>
   <phrase id="1">
      <text>escape_trader_vodka_task_1</text>
      <next>2</next>
   </phrase>
   <phrase id="2">
      <text>escape_trader_vodka_task_2</text>
      <give_info>start_my_first_task</give_info>
   </phrase>
 </phrase_list>
</dialog>


Do części Sidorowicza w character_desc_escape dorzucamy to:
Kod: Zaznacz wszystko
<actor_dialog>escape_trader_vodka_task</actor_dialog>


Mam nadzieję, że z pisaniem właściwych tekstów do dialogów w stable_dialogs_escape sobie poradzicie, bo to naprawdę proste.

2. rozmowa:
Naznaczony: Mam ci do przekazania wiadomość.
Wilk: O co chodzi?
Naznaczony: Sidorowicz pyta, czy wpadniesz do niego się napić.
Wilk: Oczywiście, że tak!

Kod: Zaznacz wszystko
<dialog>
 <phrase_list>
   <phrase id="0">
      <text>escape_volk_vodka_task_0</text>
      <next>1</next>
   </phrase>
   <phrase id="1">
      <text>escape_volk_vodka_task_1</text>
      <next>2</next>
   </phrase>
   <phrase id="2">
      <text>escape_volk_vodka_task_2</text>
      <next>3</next>
   </phrase>
   <phrase id="3">
      <text>escape_volk_vodka_task_3</text>
      <give_nfo>player_talked_with_wolf</give_info>
   </phrase>
 </phrase_list>
</dialog>


No i do character_dec_escape w sekcji Wilka:
Kod: Zaznacz wszystko
<actor_dialog>escape_volk_vodka_task</actor_dialog>


3. rozmowa:
Naznaczony: Wilk się zgodził.
Sidorowicz: To super.

Kod: Zaznacz wszystko
<dialog id="escape_trader_my_first_task">
 <phrase_list>
  <phrase id="0">
    <text>escape_trader_my_first_task_0</text>
    <next>1</next>
  </phrase>
  <phrase id="1">
    <text>escape_trader_my_first_task_1</text>
  </phrase>
 </phrase_list>
</dialog>


Kod: Zaznacz wszystko


A oto przydatne tagi:

Kod: Zaznacz wszystko
<action>...</action>

Aktywuje jakiś skrypt. Przydaje się, bo dzięki temu można zrobić np. nagrodę za zadanie (skrypt wrzucający nam do ekwipunku coś).

Kod: Zaznacz wszystko
<give_info>...</give_info>

Aktywuje infoportion. Przyda wam się również teraz.

Kod: Zaznacz wszystko
<has_info>...</has_info>

Opcja dialogowa pojawia się tylko, gdy aktywowano podany infoportion.

Kod: Zaznacz wszystko
<dont_has_info>...</dont_has_info>

Opcja dialogowa pojawia się tylko, gdy nie aktywowano podanego infoportion.

Próbujcie coś zrobić. Na odpowiedzi, poprawki i uzupełnienia będzie czas jutro. Dobranoc!
Ostatnio edytowany przez Wunderwaffe, 14 Wrz 2012, 22:46, edytowano w sumie 1 raz
Image

Za ten post Wunderwaffe otrzymał następujące punkty reputacji:
Positive nelson82, Junx, Gość.
Awatar użytkownika
Wunderwaffe
Łowca

Posty: 480
Dołączenie: 06 Mar 2012, 20:43
Ostatnio był: 04 Lis 2018, 20:43
Miejscowość: Siedlce
Frakcja: Monolit
Ulubiona broń: F1 Grenade
Kozaki: 187

Reklamy Google

Re: Zadania storyline

Postprzez Junx w 30 Sie 2012, 07:45

Dzięki wielkie, żeby nie robić nowego tematu w CoP napiszę tutaj. Jak wiadomo w podstawie mamy jako pierwsze zadania przeszukać helikoptery a ja chce jako takie zadanie "Dostań się do Skadowska" i co muszę zrobić?

Niby edytowałem tm_zaton.ltx [gamedata\configs\misc] zostawiając tylko:

Kod: Zaznacz wszystko
[zat_a2_reach_base]
icon = ui_inGame2_Bezopasnoe_mesto
prior = 104
storyline = true
title = zat_a2_reach_base_name
descr = zat_a2_reach_base_text
target = zat_a2_sr_noweap
condlist_0 = {=actor_in_zone(zat_a2_sr_noweap)} complete


Lecz coś nie wyszło lub coś nie dodałem...
Ryzen 5600x || 32gb DDR4 || RTX 2080 Super
Awatar użytkownika
Junx
Modder

Posty: 2341
Dołączenie: 15 Kwi 2008, 09:39
Ostatnio był: 03 Lis 2024, 13:15
Miejscowość: Na co Ci to :)
Frakcja: Samotnicy
Ulubiona broń: Sniper Rifle SVDm2
Kozaki: 358

Re: Zadania storyline

Postprzez Wunderwaffe w 30 Sie 2012, 18:46

Nigdy nie modowałem Zewu Prypeci, więc nie pomogę. Tamtejsza konstrukcja zadań to dla mnie czarna magia :).
Image
Awatar użytkownika
Wunderwaffe
Łowca

Posty: 480
Dołączenie: 06 Mar 2012, 20:43
Ostatnio był: 04 Lis 2018, 20:43
Miejscowość: Siedlce
Frakcja: Monolit
Ulubiona broń: F1 Grenade
Kozaki: 187

Re: Zadania storyline

Postprzez Junx w 18 Wrz 2012, 08:21

A czy zasada nie jest ta sama jak w każdej części?


Edit: Przy zmianie miejsca do nowej gry [inna mapa] wywala mnie coś takiego:

Kod: Zaznacz wszystko
FATAL ERROR
 
[error]Expression    : no_assert
[error]Function      : CALifeStoryRegistry::add
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\alife_story_registry.cpp
[error]Line          : 30
[error]Description   : Specified story object is already in the Story registry!
 

stack trace:


Coś trzeba jeszcze gdzieś zmienić?
Ryzen 5600x || 32gb DDR4 || RTX 2080 Super
Awatar użytkownika
Junx
Modder

Posty: 2341
Dołączenie: 15 Kwi 2008, 09:39
Ostatnio był: 03 Lis 2024, 13:15
Miejscowość: Na co Ci to :)
Frakcja: Samotnicy
Ulubiona broń: Sniper Rifle SVDm2
Kozaki: 358

Re: Zadania storyline

Postprzez Wunderwaffe w 18 Wrz 2012, 22:06

Czy od ostatniego uruchomienia gry zmieniałeś TYLKO I WYŁĄCZNIE spawn gracza?
Image
Awatar użytkownika
Wunderwaffe
Łowca

Posty: 480
Dołączenie: 06 Mar 2012, 20:43
Ostatnio był: 04 Lis 2018, 20:43
Miejscowość: Siedlce
Frakcja: Monolit
Ulubiona broń: F1 Grenade
Kozaki: 187

Re: Zadania storyline

Postprzez Junx w 18 Wrz 2012, 22:09

No tak. Jako podstawa jest Szkielet Mod dodałem swoje pliki "wywalenia" fabuły i wtedy poszło bez problemu, więc wyłączyłem grę zmieniłem miejsce spawnu spakowałem plik all.spawn i przy nowej grze mam w/w błąd.
Ryzen 5600x || 32gb DDR4 || RTX 2080 Super
Awatar użytkownika
Junx
Modder

Posty: 2341
Dołączenie: 15 Kwi 2008, 09:39
Ostatnio był: 03 Lis 2024, 13:15
Miejscowość: Na co Ci to :)
Frakcja: Samotnicy
Ulubiona broń: Sniper Rifle SVDm2
Kozaki: 358

Re: Zadania storyline

Postprzez Wunderwaffe w 18 Wrz 2012, 22:14

To nie jest w takim razie pytanie do tego tematu, tylko do jakiegoś o spawnie.
Image
Awatar użytkownika
Wunderwaffe
Łowca

Posty: 480
Dołączenie: 06 Mar 2012, 20:43
Ostatnio był: 04 Lis 2018, 20:43
Miejscowość: Siedlce
Frakcja: Monolit
Ulubiona broń: F1 Grenade
Kozaki: 187

Re: Zadania storyline

Postprzez Kacper777 w 28 Sty 2015, 20:39

Mam pytanie. Jak to jest z tymi infoportions? Skąd gra wie, że np. przy zadaniu garbage_meet_stalker infoportion "garbage_meet_stalker_done" to wykonanie danego punktu. Albo np. w Zewie Monolitu, że przy zadaniu "Oczyść dolne kondygnacje Sarkofagu z burerów" - infoportion "kill_burer_done" jest wtedy gdy zabijemy te burery, skąd gra o tym wie? To jest gdzieś zapisane? Bo chyba nie można tworząc własne zadania nazywać infoportiony tak jak chcemy tylko tak żeby gra je rozpoznała, więc jakby nie patrzeć możemy tworzyć tylko zadania, które mają taką konstrukcję jak te co już są do tej pory. Więc jesli komuś wpadnie jakiś pomysł do głowy jakiś pomysł ciekawy to nie będzie mógł tego zrobić. To jest w jakiś skryptach zapisane czy coś? Sorry jeśli bredzę, nie jestem modderem, po prostu staram się jakoś logicznie wnioskować. Z góry dzięki za odpowiedź.

Jak np. zrobić takie zadanie i czy w ogóle się da?

:

Tytuł: Zdobądź wyposażenie dla stalkerów w wiosce kotów
W opisie dam, że stalkerzy potrzebują broni do walki z najemnikami. Zleceniodawcą będzie Wilk. Wiem jak zrobić te rzeczy bo jest poradnik Wunderwaffe. Ale teraz przejdę do sedna. Jak zrobić te punkty?

1. Porozmawiaj z Woroninem (w sumie to jest w poradniku)
2. Znajdź broń w wagonie w Dolinie Mroku
3. Zabierz broń dla stalkerów (5 kałachów z optyką)
4. Porozmawiaj z Barmanem (w sumie to też jest w poradniku)
W tym momencie dostajemy zadanie od Barmana na znalezienie pięciu LR-300, w nagrodę za ich oddanie dostajemy kasę i jeden z nich
5. Dostarcz znalezione bronie (kałachy i LR do Wilka)
6. Porozmawiaj z Wilkiem (no wiem jak to)

Chodzi mi jak to zrobić, ale zwłaszcza jakie dać infoportiony. W przypadku rozmów to wiem, że player_talked_with_... ale przy innych punktach?

Albo inne zadanie:
Udziel pomocy rannemu stalkerowi (Tolik)
Aktywuje się automatycznie po pierwszej rozmowie z Wilkiem o bandytach

1. Oczyść teren (w promieniu dwudziestu metrów) wokół stalkera z mutantów (wiem, że nietypowe i dziwne, właśnie o to mi chodzi czy da się takie robić, albo czy da się zrobić, że zabij jakiegoś stalkera określoną bronią i inne dziwaczne dziwostki)
2. Udziel pomocy (apteczka)
3. Porozmawiaj z Tolikiem


Zrobiłem wszystko według poradnika, ale coś nie wyszło. Gra nie odpala się i wyskakuje log

Kod: Zaznacz wszystko
FATAL ERROR
 
[error]Expression    : false
[error]Function      : CXml::Init
[error]File          : E:\stalker\sources\trunk\xrXMLParser\xrXMLParser.cpp
[error]Line          : 87
[error]Description   : XML file:gameplay\dialogs_escape.xml value: errDescr:Error reading end tag.
 

stack trace:
Kacper777


Ostatnio był: 01 Sty 1970, 02:00

Re: Zadania storyline

Postprzez Junx w 28 Sty 2015, 21:31

Nie zamknąłeś dialogu, sprawdź czy masz poprawnie otwarte jak i zamknięte dialogi.
Ryzen 5600x || 32gb DDR4 || RTX 2080 Super
Awatar użytkownika
Junx
Modder

Posty: 2341
Dołączenie: 15 Kwi 2008, 09:39
Ostatnio był: 03 Lis 2024, 13:15
Miejscowość: Na co Ci to :)
Frakcja: Samotnicy
Ulubiona broń: Sniper Rifle SVDm2
Kozaki: 358

Re: Zadania storyline

Postprzez Plaargath w 28 Sty 2015, 22:03

Cytowany przez Ciebie błąd mówi, że gdzieś nie domknąłeś tagów w .xml'u. (któregoś z wyrażeń zaczynających się od "<" a kończących się na ">")

I tak, infoportiony skryptami można dowolnie rozdawać i zabierać.
W pliku xr_logic od linijki 578 jest odpowiedź na Twoje pytanie - w nieco innym języku :)

A tu przystępna odpowiedź na przykładzie:
Zobacz sobie do pliku %\gamedata\config\gameplay\dialogs_bar.xml, linijka 1855
Kod: [ Pobierz ] [ Ukryj ]
<action>bar_dialogs.professor_for_resque</action>

to między tagami <action> a </action> oznacza wywołanie funkcji ze skryptu, tutaj funkcji "professor_for_resque" ze skryptu %\gamedata\scripts\bar_dialogs.script,
w tymże skrypcie w linii 219 masz tę funkcję, która zarządza tym, co się stanie podczas dialogu w zależności czy masz infoportion:
Kod: [ Pobierz ] [ Ukryj ]
function professor_for_resque(npc, actor)
    if not has_alife_info("rostok_kruglov_give_flash") then
            dialogs.relocate_item_section(npc, "bar_ecolog_flash", "in")
        db.actor:give_info_portion("rostok_kruglov_give_flash")
    end
end
 

konkretnie, jeśli nie ma jeszcze infoportion "rostok_kruglov_give_flash", wtedy NPC (Krugłow) da Ci przedmiot "bar_ecolog_flash" (pendrive), a logika podaruje ten infoportion. Dzięki temu, nawet jeśli dialog miałby się powtórzyć, drugi raz nie dostaniesz, bo jest warunek "if", a infoportion już dostałeś.

Innymi słowy, na przykład w dialogach uruchamiają się skrypty. I to skrypty obsługują przepływ infoporcji.

Pooglądaj sobie dialogi, poszukaj dokąd odsyłają tagi <action> i więcej stanie się zrozumiałe.

Podobnie działa <precondition> w dialogu - odsyła do skryptu na zasadzie "jeśli ta akcja już była, to lecimy z tym dialogiem". Przykład:
plik %\gamedata\config\gameplay\dialogs_bar.xml, linijka 1105
Kod: [ Pobierz ] [ Ukryj ]
<precondition>bar_dialogs.actor_have_research</precondition>

żeby zrozumieć, co to za warunek, musisz spojrzeć do bar.dialogs.script i znaleźć funkcję "actor_have_research", jest ona tam w linijce 145:
Kod: [ Pobierz ] [ Ukryj ]
function actor_have_research(first_speaker, second_speaker)
        return first_speaker:object("bar_ecolog_flash") ~= nil
end
 

mówi, że nie jest nieprawdą (~= nil), że gość nie ma pendrive'a ("bar_ecolog_flash"), czyli w uproszczeniu, że pena już masz. Jeśli tak, to dialog leci dalej, wypowiada się kwestia "bar_bar_barman_ecolog_flash_done_0" i potem leci funkcja actor_transfer_research ze skrytpu bar_dialogs.script, jest w linijce 148:
Kod: [ Pobierz ] [ Ukryj ]
function actor_transfer_research(first_speaker, second_speaker)
        dialogs.relocate_item_section(second_speaker, "bar_ecolog_flash", "out")
        if has_alife_info("bar_rescue_research_reward") then
        dialogs.relocate_money(second_speaker, 5000, "in")
    end
end
 

oddajesz pendrive'a rozmówcy i jeśli dostałeś infoporcję "bar_rescue_research_reward" to dostajesz w nagrodę pięć koła.

Poszperaj sobie też searchem po plikach
a) szukając nazw konkretnych nazw infoporcji z dialogów - znajdziesz konkretne funkcje z nimi związane,
b) na wyrażenia "has_info", "has_alife_info", "dont_has_info", "give_info_portion", "give_info_portion_via_pda", "disable_info_portion", - znajdziesz m.in. funkcje z infoporcjami związane.

I pytaj dalej, jeśli coś niezrozumiałe/niewyczerpujące.

EDIT:
Aha jeszcze dwie kwestie, o które pytałeś, na przykładzie:

Spójrz sobie w %\gamedata\config\gameplay\game_tasks.xml, linia 31
Kod: [ Pobierz ] [ Ukryj ]
<infoportion_complete>yan_labx16_switcher_3_off</infoportion_complete>

taki tag Ci mówi o tym, otrzymanie jakiej infoporcji oznacza zaliczenie wykonania zadania.
ED3, więc w przypadku o którym pytasz, w pliku %\gamedata\config\gameplay\tasks_garbage.xml w linii 7 jest
Kod: Zaznacz wszystko
<infoportion_complete>garbage_meetstalker_done</infoportion_complete>


I druga rzecz - tworzoną infoporcję możesz sobie nazywać jak chcesz, dowolnie. Natomiast musisz (chyba, nie jestem pewien jak to w SoCu jest) zaanonsować jej istnienie w którymś z configów z tagiem "<game_information_portions>", przykładowo zajrzyj do %\gamedata\config\gameplay\info_l01escape.xml, jak to jest zrobione.

ED2:
Tworzenie infoporcji na stalker-game.com
Logika na stalker-game.com


ED4:
A ja od siebie mam pytanie do mądrzejszych, jak dokładnie działa parametr "prio" w znaczniku <game_task>?
Na stalker mod portal czytam, że:
Kod: Zaznacz wszystko
prio = "" defines the priority of the task. The higher the priority, the higher the likelyhood that the current quest marker will be switched to ours.

ale tego nie kumam.
Image Image

Merkantylizm, srerkantylizm.

Za ten post Plaargath otrzymał następujące punkty reputacji:
Positive Gość.
Awatar użytkownika
Plaargath
Weteran

Posty: 653
Dołączenie: 23 Mar 2010, 15:12
Ostatnio był: 10 Sie 2024, 12:24
Kozaki: 234

Re: Zadania storyline

Postprzez Kacper777 w 31 Sty 2015, 11:52

Pytanie nr 1
Skąd gra wie, w jakim pliku jest skrypt definiujący dany infoportion? Wiem, że pokazałeś na przykładzie, że jest ścieżka do tego pliku podana, ale np. w Zewie Monolitu sprawdzałem przy zadaniach i są tylko nazwy infoportionu bez podanej przed nią nazwy pliku, gdzie jest skrypt odnoszący się do tegoż infoportionu. A skryptów jest tyle, że nie wiem gdzie szukać. Jest jakiś sposób żeby to znaleźć?

Pytanie nr 2
Czy mogę sobie np. stworzyć nowy plik script, nazwać go jak chcę i w nim napisać jakie chcę skrypty i później tworzyć zadania wykorzystujące te skrypty? I czy gra automatycznie będzie wiedziała, że skrypt odnoszący się do danego infoportionu jest w moim pliku, czy trzeba podać ścieżkę czy cuś (znowu powraca pytanie 1)?
Kacper777


Ostatnio był: 01 Sty 1970, 02:00

Re: Zadania storyline

Postprzez Cromm Cruac w 31 Sty 2015, 12:59

1. Przeszukaj katalog pod względem szukanego tekstu (nazwy infoportiona). N++ ma taką funkcję.

2. Możesz tworzyć własne skrypty. Odwołujesz się do nich przez podanie jego nazwy przed funkcją lub zmienną. Np. moj_skrypt.moja_zmienna
Image

"Twoja opowieść mnie znudziła albowiem nie była o mnie" - Król Julian

Za ten post Cromm Cruac otrzymał następujące punkty reputacji:
Positive Gość.
Awatar użytkownika
Cromm Cruac
Modder

Posty: 2543
Dołączenie: 22 Sty 2010, 19:01
Ostatnio był: 03 Lis 2024, 00:55
Miejscowość: Londyn / Bielsko-Biała
Kozaki: 1078

Następna

Powróć do Tutoriale

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 0 gości