Tworzenie nowych perkow

Pewnie sie zdziwisz o co chodzi, przeciez to jest niemozliwe do wykonania. Faktycznie tak jest majac na mysli stosowanie tradycyjnego sposobu. Bedzie to metoda zastepcza. Polegac bedzie po pierwsze na przydzielaniu perkow wg. innych zasad. Po drugie informowaniu o tym w zakladce KARMA, ktorej nazwe mozna zreszta zmienic na PERKS2. Beda to nowe wyjatkowe umiejetnosci naszej postaci. Programowanie nowych perkow wymaga sporej orientacji w plikach Command.h oraz Define.h

Po pierwsze nalezy nauczyc sie tworzyc nowe Karmy. Na poczatek napisz prosty skrypt dialogu ktory bedzie dodawal naszej postaci ta zdolnosc. Wiec uzyskasz ja w trakcie ktotkiej rozmowy, tak zeby moc potem ja przetestowac.
procedure start;
procedure talk_p_proc;
procedure Node999;
procedure Node001;
procedure Node002;

procedure start begin
end

procedure talk_p_proc begin
start_gdialog(NAME,self_obj,4,-1,-1);
gSay_Start;
call Node001;
gSay_End;
end_dialogue;
end

procedure Node001 begin
Reply(100);
NOption(102,Node002,003);
NOption(101,Node999,003);
end

procedure Node002 begin
Reply(103);
inc_global_var(GVAR_NOWA_KARMA1);
NOption(101,Node999,003);
end

procedure Node999 begin
end
Zawartosc pliku.msg dialogu
{100}{}{czesc}
{101}{}{e nic}
{102}{}{daj perka}
{103}{}{ok masz}
Komenda inc_global_var jest zdefiniowana w Command.h
#define inc_global_var(x)     inc_global_var_amt(x,1)
Polega po prostu na ustawieniu zmiennej globalnej na wartosc = 1

Procedura dialogu Node002 spowoduje dodanie naszej postaci nowej karmy, ten fragment powinien byc znacznie rozszerzony bo zawierac kod przydzielania postaci tych nowych uzdolnien. Nowa zdolnosc moze polegac np. na jednorazowym sporym bonusie do umiejetnosci handlu. W takim wypadku dodaj odpowiednia linijke:
inc_global_var(GVAR_NOWA_KARMA1);
critter_mod_skill(dude_obj,SKILL_BARTER,35);
Spowoduje to ostatecznie wyswietlenie w zakladce Karma nowej zdolnosci i zwiekszenie zwiazanej z nia cech.

Na poczatek zdefiniuj ta zmienna: w Global.h
#define GVAR_NOWA_KARMA1    (697)
Oraz w pliku Vault13.gam
GVAR_GVAR_NOWA_KARMA1    :=0;    //    (697)
Teraz w pliku Karmavar.txt ustalasz co ta zmienna ma robic (plik ten znajduje sie w folderze data/data)
# GVAR_NOWA_KARMA1
697, 175, 1026, 1126
Poszczegolne liczby oznaczaja:
697 numer zmiennej globalnej
175 numer ilustracji w pliku Skilldex.lst (nowa zaczyna sie od numeru 175)
1026 linijka tytulu zdolnosci (w pliku Editor.msg w text/english/game)
1126 linijka opisu zdolnosci (w tym samym pliku)

Oczywiscie musisz zmienic zawartosc Skilldex.lst jesli dodajesz nowa ilustracje, po prostu dopisz nazwe frm wlasnej zdolnosci na koncu listy:
WEPNHAND.FRM ; Weapon Handling
DIVORCED.FRM ; Divorced/Widowed
NKARMA1.FRM ; nowa karma 1
W pliku Editor.msg wpisz tresc zdolnosci na przyklad:
{1026}{}{Praworeczny}

{1126}{}{Przez dluzszy czas poslugiwales sie tylko prawa reka, wiec ta rozwinales znacznie bardziej od lewej. Zadajesz wiecej obrazen prawa reka.}
Mozesz tez zmienic nazwy zakladek:
{109}{}{PERKS}
{110}{}{KARMA}
Zmien na:
{109}{}{PERKS1}
{110}{}{PERKS2}
Mozesz sie spytac skad wziasc nowe ilustracje do wlasnych zdolnosci? Otoz wystarczy zmodyfikowac juz istniejace w data/art/skilldex po przez wyciecie fragmentu i wklejenie do drugiego na przyklad:



Mozesz tworzyc perki ktore beda udoskonalac postac w sposob przecietny, jak np. zwiekszenie umiejetnosci, dodanie PA, zwiekszenie HP i tym podobnych. Jest to bardzo proste bo w tym wypadku kozystasz tylko ze standardowych komend i pliku Define.h

Jest jednak mozliwe zrobienie bardzo ambitnych zdolnosci. Przykladowy projekt takiego uzdolnienia to Praworeczny: Uzywanie broni w prawej rece zwiekszy jej wartosci bojowe. To juz jest bardziej skaplikowane bo wymaga uzycia Command.h Narazie wiem jak zrealizowac fragment kodu. Bedzie on testowal czy postac ma bron w prawej rece:
#define gracz_ma_bron_w_p_rece ((obj_item_subtype(critter_inven_obj(x,INVEN_TYPE_RIGHT_HAND))) == item_type_weapon)
Teraz w pliku Dude_obj.ssl ktory jest skryptem naszej postaci przypuszczalnie w procedurze critter_p_proc nalezalo by wprowadzic kod

if (gracz_ma_bron_w_p_rece) then begin
(i tutaj kod zwiekszajacy zadawane obrazenia)

Ograniczeniem jest tylko wyobraznia i znajomosc skryptow Fallouta. Stosujac ten system mozna dodac do gry conajmniej +50 nowych perkow. Nazwa Perks jest najblizsza jako ze sa to dodatkowe uzdolnienia naszej postaci, choc mozna wymyslec inna nazwe i ich zastosowania. Obecnie:

Perks daja nowe zdolnosci dzieki doswiadczeniu.
Traits zwiekszaja jedne cechy i zmniejszaja drugie.
Karma to cos w stylu stopni rangi, glowny zwiazek z reputacja wiec wplywem na NPC.

Nowy system perkow moze byc wymieszaniem tych trzech zmian wlasciwosci postaci. Przydzielanie ich moze odbywac sie wg. calkowicie nowego sposobu. Narazie najciekawszy jaki odkrylem to Gildie Profesji w ktorych kupowalo by sie jak w sklepie nowe uzdolnienia przy czym zeby byc czlonkiem gildii nalezalo by wykonac jakies zadanie lub miec okreslona specjalizacje np. wojownik, naukowiec, zlodziej itp.

W zasadzie w takim wypadku mozna by pozostawic nazwe zakladki jako Karma. Bylo by to rozwoj postaci w profesji a wiec wieksza ranga w niej i zwiazane z tym wieksze umiejetnosci lub ograniczenia. Czlonek glidii naukowcow mogl by byc przeciwny wojnom wiec nowe uzdolnienia zmniejszaly by wartosci bojowe ale za to znacznie zwiekszaly umiejetnosci takie jak leczenie, handel, obsluga komputerow i naprawa.


Powrot do menu