Skocz do zawartości

Usuwanie pojazdów - DMX


Radrif

Rekomendowane odpowiedzi

Muzykę w radio konfiguruje plik: sound_theme.script [lokalizacja: gamedatascripts].

Pliki dźwiękowe są w gamedatasoundscharacters_voicescenario  - w podkatalogach, przykładowo muzyka od Siaka to sak_music_2.ogg (o Karawanie, w sam raz na stypę - he he) podfolder sak. Natomiast konfiguracja wygląda następująco:

ph_snd_themes["sak_music"] = {"characters_voicescenariosaksak_music_1",                                    "characters_voicescenariosaksak_music_2",                                    "characters_voicescenariosaksak_music_3",                                    "characters_voicescenariosaksak_music_4",                                    "characters_voicescenariosaksak_music_5",                                    "characters_voicescenariosaksak_music_6",                                    "characters_voicescenariosaksak_music_7",                                    "characters_voicescenariosaksak_music_8",                                    "characters_voicescenariosaksak_music_9",                                    "characters_voicescenariosaksak_music_10",                                    "characters_voicescenariosaksak_music_11"                                    }

Masz powyżej plik wraz ze ścieżką, tylko nie wiem czy w DMX'ie nie uległ on zmianie - będziesz musiał sprawdzić.


...rozwiązanie na spanie po "czasie strachu"...*

* jeszcze nie znalazłem, ale będąc szczery - nigdy nie szukałem obejścia tego problemu, ponieważ nie przydarzył mi się. Muszę sprawdzić w skrypcie. Jeśli chodzi o naliczanie statystyk, to również będę musiał sprawdzić, póki co nie chciałem zostawiać Cię bez informacji...wstrzymaj się z podziękowaniem do czasu odpowiedzi. Swoją droga - wnosisz tyle poprawek, że mod powinien nosić nazwę "DMX Radrif Edition". W międzyczasie, możne pojawi się ktoś z rozwiązaniem naliczania statystyk i problemu ze snem.

Odnośnik do komentarza
Udostępnij na innych stronach

Poprzeglądałem pliki i teraz nasuwa mi się pytanie:

 

W folderze sak są dwa pliki .ogg, te które lecą w radiu u Siaka. Ale patrząc wyżej tych wpisów "jest" aż jedenaście. Więc jak wstawię jakiś plik do tego folderu to nazwać go sak_music_3.ogg? Bo badając skrypt na to by wychodziło...

 

Mam jeszczę trochę roboty jak choćby pododawanie niektórych broni, zmienienie nieco cen i nagród i dodanie paru zadań pobocznych ale co do tego raczej pomocy potrzebować nie muszę  :wink: Dam radę  :smile:

 

EDIT

 

- Przeglądając pliki chyba znalazłem coś, co chyba odpowiada za zmianę naliczania statystyk. Porównując xr_statistic, w Ultimate jest wpis którego w DMX nie znalazłem. Więc teraz nie wiem czy jakoś by to nie pomogło po jakichś zmianach w rozwiązaniu problemu z naliczaniem zadań. Mogę podesłać ten plik z Ultimate, żebyś mógł rzucić na niego okiem. Oczywiście o ile masz czas  :smile:

Edytowane przez Radrif
Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Co do muzyki, musiałbyś wrzucić w folder plik .ogg, najlepiej muzykę z innego radia - wtedy tylko zmieniasz nazwę - bez konieczności komentowania pliku, co dla nowo utworzonego z konwersji dźwięku jest wymagane.

Teraz sprawa trudniejsza - skrypty. Podesłałeś mi plik do porównania. W DMX'ie mamy fragment skryptu xr_statistic.script

local killCountProps = {    neutral_novice = 1,     neutral_experienced = 2,     neutral_veteran = 3,     neutral_master = 4,    monolith_novice = 1,     monolith_experienced = 2,     monolith_veteran = 3,     monolith_master = 4,    military_novice = 1,     military_experienced = 2,     military_veteran = 3,     military_master = 4,    killer_novice = 1,     killer_experienced = 2,     killer_veteran = 3,     killer_master = 4,    ecolog_novice = 1,     ecolog_experienced = 2,     ecolog_veteran = 3,     ecolog_master = 4,    dolg_novice = 1,     dolg_experienced = 2,         dolg_veteran = 3,     dolg_master = 4,    freedom_novice = 1,     freedom_experienced = 2,     freedom_veteran = 3,     freedom_master = 4,    bandit_novice = 1,     bandit_experienced = 2,     bandit_veteran = 3,     bandit_master = 4,    zombied_novice = 1,     zombied_experienced = 2,     zombied_veteran = 3,     zombied_master = 4,    sniper_novice = 1,     sniper_experienced = 2,     sniper_veteran = 3,     sniper_master = 4,    green_novice = 1,     green_experienced = 2,    	 green_veteran = 3,    	 green_master = 4,    nebo_novice = 1,       nebo_experienced = 2,      nebo_veteran = 3,    	   nebo_master = 4,    lastday_novice = 1,      lastday_experienced = 2,     lastday_veteran = 3,      lastday_master = 4,    fotoman_novice = 1,      fotoman_experienced = 2,     fotoman_veteran = 3,      fotoman_master = 4,    tushkano_weak = 1,	    rat_weak = 1,		   rat_normal = 2,		 rat_strong = 3,    flesh_weak = 1,     flesh_normal = 2,     flesh_strong = 3,    boar_weak = 1,         boar_normal = 2,     boar_strong = 3,    cat_weak = 1,    burer_weak = 1,		 burer_normal = 2,	   burer_strong = 3,    fracture_weak = 1,	  fracture_normal = 2,    fracture_strong = 3,    chimera_weak = 1,	   chimera_normal = 2,	 chimera_strong = 3,    zombie_weak = 1,	    zombie_normal = 2,	  zombie_strong = 3,    dog_weak = 1,         dog_normal = 2,     dog_strong = 3,    pseudodog_weak = 1,     pseudodog_normal = 2,     pseudodog_strong = 3,    psy_dog_weak = 1,     psy_dog_normal = 2,     psy_dog_strong = 3,    snork_weak = 2,     snork_normal = 3,     snork_strong = 4,    poltergeist_weak = 2,    pseudo_gigant_weak = 4,    controller_weak = 4,    bloodsucker_weak = 1,     bloodsucker_normal = 2, bloodsucker_strong = 3}

Natomiast ten podesłany (OL Ultimate) ma postać:

local killCountProps = {    neutral_novice = 1,     neutral_experienced = 1,     neutral_veteran = 1,     neutral_master = 1,    monolith_novice = 1,     monolith_experienced = 1,     monolith_veteran = 1,     monolith_master = 1,    military_novice = 1,     military_experienced = 1,     military_veteran = 1,     military_master = 1,    killer_novice = 1,     killer_experienced = 1,     killer_veteran = 1,     killer_master = 1,    ecolog_novice = 1,     ecolog_experienced = 1,     ecolog_veteran = 1,     ecolog_master = 1,    dolg_novice = 1,     dolg_experienced = 1,         dolg_veteran = 1,     dolg_master = 1,    freedom_novice = 1,     freedom_experienced = 1,     freedom_veteran = 1,     freedom_master = 1,    bandit_novice = 1,     bandit_experienced = 1,     bandit_veteran = 1,     bandit_master = 1,    zombied_novice = 1,     zombied_experienced = 1,     zombied_veteran = 1,     zombied_master = 1,        tushkano_normal = 1,    flesh_weak = 1,     flesh_normal = 1,     flesh_strong = 1,    boar_weak = 1,         boar_normal = 1,     boar_strong = 1,    cat_weak = 1,    burer_weak = 1, burer_normal = 1, burer_strong = 1,    fracture_weak = 1, fracture_normal = 1, fracture_strong = 1,    chimera_weak = 1, chimera_normal = 1, chimera_strong = 1,    zombie_weak = 1, zombie_normal = 1, zombie_strong = 1,    dog_weak = 1,         dog_normal = 1,     dog_strong = 1,    pseudodog_weak = 1,     pseudodog_normal = 1,     pseudodog_strong = 1,    psy_dog_weak = 1,     psy_dog_normal = 1,     psy_dog_strong = 1,    snork_weak = 1,     snork_normal = 1,     snork_strong = 1,    poltergeist_weak = 1,    pseudo_gigant_weak = 1,    controller_weak = 1,    bloodsucker_weak = 1,     bloodsucker_normal = 1, bloodsucker_strong = 1}

Jak zauważyłeś, wartości dla każdego NPC/mutanta są nieujednolicone. W drugim przypadku - jest to zrobione prawidłowo tzn. mnożnik ma wartość 1. i tak widzę tą sprawę, tutaj idziesz we właściwym kierunku.

Plik z OL Ultimate zawiera jeszcze wpisy:

local stk = actor_stats.get_points("stalkerkills")local mtk = actor_stats.get_points("monsterkills")

Ale tutaj wprowadzając do DMX'a musiałbyś sprawdzić, czy wpisy nie występują w innych plikach na podst. OL Ultimate.

Sprawdzałem te skrypty, ale jedynie w tym pierwszym znalazłem wartości odnoszące się do konkretnych NPC'ów/mutantów.

Znalazłem jeszcze taki wątek tutaj, może będzie pomocny?, aczkolwiek nie doczytałem aby ten problem został rozwiązany.

Nie zaszkodzi jak przeczytasz to oraz tutaj - post SetaKat'a  (nr. 5).

Wszystkie te porady z linków  - wskazują jeden kluczowy plik xr_statistic.script . Nie mam innego pomysłu jak podane powyżej zmiany.

  • Dodatnia 2
Odnośnik do komentarza
Udostępnij na innych stronach

Chyba wiem co trzeba zmienić, ale nie wiem gdzie... Pewnie moje domysły są złe, ale na błędach człowiek się uczy. Zdaje mi się, że w którymś miejscu (weź teraz szukaj  :biggrin: ) trzeba zmienić wartość z "+" na "=" co spowodowałoby, że mnożnik byłby stały niezależnie od ilości wykonanych zadań itp. Czyli na przykładzie:

 

1. Zadanie         x3 (ilość)       1 (mnożnik) wpis zmienić na "=" co spowoduje że cały czas będzie wartość równa 1. "+" chyba powoduje, że mnożnik jest zmienny (równy ilości albo i nie).

 

Co do statystyk stalkerów i mutantów wystarczyło podmienić plik (jeśli trzeba coś w nim dopisać to znajdę i to zrobię). W przypadku zadań trzeba pokombinować. Z podanych przez ciebie forum wyciągne wszystkie potrzebne pliki do przeglądnięcia i może na coś natrafię  :smile:

 

EDIT

 

W pliku task_manager.script znalazłem taki wpis:

if task_desc.reward_rank ~= nil then    actor_stats.add_points("quests", task_desc.name, 1, task_desc.reward_rank)    db.actor:set_character_rank(db.actor:character_rank() + task_desc.reward_rank)  endend

Wpis powtarza się dwukrotnie w skrypcie. Mam nadzieję, że idę dobrym tropem  :smile:

Edytowane przez Radrif
Odnośnik do komentarza
Udostępnij na innych stronach

Życzę "najlepszego"  w kwestii modowania, dużo już osiągnąłeś - ale powiem Ci szczerze, to wciąga - jest trochę jak "zabawa w Boga" zasiedlającego planetę ludźmi, tylko tutaj mamy wersję wirtualną. Sam modduję ale głównie spawn od A do Z oraz prostsze skrypty, mam zapisane na kilku pendrivie'ach mapy które w chwili wolnej uzupełniam o obozy stalkerów i mutantów - ale pomijając ten off top, kwestie modowania rankingu są mi obce, ponieważ nigdy tego nie zmieniałem. Z for doczytałem, że plik xr_statistic.script jest właściwy, ale może mieć odniesienia, które wpłyną na statystyki naliczania punktacji.

Znalazłem najbardziej trafny z linków nt. rankingu i naliczania statystyk: SOC. Новый ранг

Jak widzisz - we wpisie

db.actor:character_rank() + task_desc.reward_rank

Funkcja jest składową sumy character_rank oraz reward_rank.

Musisz testować te ustawienia - nie ma innego sposobu by dojść do prawdy.

Przydatne modderowi linki (niestety po rosyjsku):

S.T.A.L.K.E.R Inside Wiki

S.T.A.L.K.E.R tools

Good Luck Radrif, zdaj relację z testów.

 

 

  • Dodatnia 2
Odnośnik do komentarza
Udostępnij na innych stronach

Próbuję to zrobić takim samym sposobem co w xr_statistic.script z OL Ultimate i mój wpis wygląda na razie tak:

if task_desc.reward_rank ~= nil then  if task_desc.reward_rank > 0 then          actor_stats.add_points("quests", task_desc.name, 1, 1, task_desc.reward_rank)          db.actor:set_character_rank(db.actor:character_rank() + task_desc.reward_rank)	if (task_desc.reward_rank + 1) < task_desc.reward_rank then	  if statstype == 2 then		actor_stats.add_points("quests", task_desc.name, -1, 0, task_desc.reward_rank)               else                  actor_stats.add_points("quests", task_desc.name, 1, -1, task_desc.reward_rank)                  actor_stats.add_points("quests", task_desc.name, -1, 0, task_desc.reward_rank)               end            end         else actor_stats.add_points("quests", task_desc.name, 1, 1, task_desc.reward_rank)         end      else actor_stats.add_points("quests", task_desc.name, 1, 1, task_desc.reward_rank)    endend

Ale porównując te dwa pliki widzę, że w tym z OL jest jeszcze taki wpis:

 

local stk = actor_stats.get_points("stalkerkills")

I szczerze powiem, że teraz zdurniałem, bo zaczynam myśleć, że coś robię źle... Wpis zmienię tak, żeby było "logicznie" czyli:

local task_desc.reward_rank = actor_stats.get_points("quests")

Po wielu wypadach, gra odpaliła (nie dodawałem tego wpisu powyżej), ale nie działało. Wtedy przeglądnąłem wszystko jeszcze raz i zauważyłem, że umknął mi on uwadze.

 

Siedzę już nad tym parę godzin i kończą mi się pomysły... Nic nie działa, wylotów co niemiara, wpis powyżej = windows (ta jedna linijka). Na dziś chyba z tym kończę bo już nie wiem co i jak...

Edytowane przez Radrif
Odnośnik do komentarza
Udostępnij na innych stronach

Można powiedzieć, że znalazłem "rozwiązanie". Wpisanie do tego wpisu 0 po jedynce powoduje, że mnożnik się "zeruje" i naliczana jest tylko ilość zadań:

if task_desc.reward_rank ~= nil then    actor_stats.add_points("quests", task_desc.name, 1, 0, task_desc.reward_rank)    db.actor:set_character_rank(db.actor:character_rank() + task_desc.reward_rank)  endend

Próbowałem zmieniać, dopisywać wartości we wpisie jednak efekt albo był taki jaki przed chwilą opisałem albo nic się nie zmieniało. Więc uznajmy tą sprawę za załatwioną.  :smile: W razie potrzeby maluteńka edycja pliku i po sprawie. Ale przyznam się, że tym kombinowaniem straciłem sporo czasu który mogłem przeznaczyć na resztę "modowania"...

 

Teraz pozostaje kwestia wyświetlania wszystkich zadań (wcześniej już o tym pisałem), nawet tych z NS w ukończonych zadaniach w PDA. Na pewno trzeba by wprowadzić odniesienie które by te zadania pokazywało w tej sekcji oraz reward_rank naliczający punktację. Jednak do tej pory nie wiem jak się za to zabrać.  :ermm: Zamieścić jakoś te wpisy w pliku aktywującym te zadania czy jak? To jedyna rzecz w tym momencie której w ogóle nie łapię pomimo ponownego przeczytania napisanego przez ciebie wcześniej posta... 

Edytowane przez Radrif
Odnośnik do komentarza
Udostępnij na innych stronach

...Można powiedzieć, że znalazłem "rozwiązanie"

Cieszę się że wspólnymi siłami udało się dojść do "ogarnięcia" nie łatwych modyfikacji skryptów, ponieważ problemem samym w sobie jest znaleźć właściwy wiersz funkcji wśród 263 plików, ale moja ostatnia pomoc w dość ograniczonym zakresie nie będę ukrywał - wiąże się z brakiem czasu na analizę tych skryptów. 

Jeśli chodzi o wyświetlanie wszystkich zadań - nie bardzo rozumiem gdzie nie są one wyświetlane, przecież w PDA mamy podział na:

[*]zadania aktywne

[*]zadania wykonane

[*]zadania niewykonane

Czy nie pojawiają się one w w/w zakładkach PDA?Nawet najprostsze zadanie - znajdź meduzę, jest odnotowywane w PDA.

Daj przykład takich zadań, bo nie do końca wiem czy o to Ci chodzi.

  • Dodatnia 1
Odnośnik do komentarza
Udostępnij na innych stronach

Zadania w solijance są oparte w większości o skrypty, które dodają właściwy wpis do PDA pod odpowiednią zakładkę - j/w - wyszczególniłem w poprzednim poście. Zauważ, że zadania skryptowane - również te występujące w podstawce np. "pracuj dla Handlarza" , "Dostań się do lab. X-18"  czy "Wyłącz Mózgozwęglacz" są dodawane w ten sam sposób, natomiast zadania zawarte w pliku task_manager.ltx [gamedataconfigmisc] mają charakter cykliczny - są odnawialne (random_task). Ten typ zadań jest dodawany do zakładki wyszczególnionej na twoim screenie. Poniżej fragment funkcji

function CRandomTask:__init()  --' Íŕ ęîíńňđóęňîđĺ âű÷čňűâŕĺě LTX č ńîçäŕĺě çŕăîňîâęč ęâĺńňîâ.  self.task_ini = ini_file("misctask_manager.ltx")  self.task_phrase_id = 100

W pliku task_manager.script [gamedatascripts] jest dla cyklicznych zadań klasa: CRandomTask

Funkcja zaczyna się w 70 wierszu w/w pliku a kończy w 228 (chociaż tak naprawdę - pół pliku to definiowane dla funkcji parametry), sam wpis CRandomTask występuje w 32 odniesieniach. Zadania z Solijanki musiałby mieć przypisaną klasę CRandomTask oraz znaleźć się w pliku task_manager.ltx do którego skrypt odwołuje. Ze względu na poziom rozbudowy funkcji oraz dużą ilość zadań w Solijance - sprawa trudna.

 

 

 

 

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

No fakt, widzę, że nie będzie to łatwe, ale nie niewykonalne a czasu mam dużo. Teraz do rzeczy. Przykładowo zamieszczam zadanie "Przynieś giwerę Lisowi" w pliku task_manager.ltx. Nazwą zadania jest ta linijka?

<game_task id="fox_kriss">

Całość:

<game_task id="fox_kriss">                <title>Przynieść giwerę Lisowi</title>        <objective>                <text>Odebrać przesyłkę od Prapora dla Lisa</text>                <icon>ui_iconsTotal_found_thing</icon>                <infoportion_complete>fox_kriss_done</infoportion_complete>                <article>tex_take_pushka</article>        </objective>        <objective>                <text>Odebrać przesyłkę od Prapora dla Lisa</text>                <icon height="50" width="50" x="100" y="50">uiui_icons_task</icon>                <function_complete>arhara_dialog.fox_kriss_have</function_complete>                <infoportion_set_complete>fox_kriss_have</infoportion_set_complete>        </objective>        <objective>                <text>Przynieść giwerę Lisowi</text>                <map_location_type hint="Lis">blue_location</map_location_type>                <object_story_id>Escape_stalker_from_raid</object_story_id>                <infoportion_complete>fox_kriss_done</infoportion_complete>       </objective>       </game_task>

Wklejam tylko fox_kriss. Mam rację? Oczywiście w sekcji znalazłbym nazwę "Przynieś giwerę Lisowi" (odniesienie do pliku z którego korzystam w tym wypadku - tasks_new.xml) tak? 

 

Wtedy jedynym problemem byłoby przypisanie CRandomTask bo na daną chwilę nie wiem gdzie go wcisnąć...

Edytowane przez Radrif
Odnośnik do komentarza
Udostępnij na innych stronach

@Radrif

ten fragment, który powyżej dodałeś jest wyciągnięty z pliku .xml, jest to część składowa zadania opartego o skrypt + szkielet dialogu + opis właściwy [katalog: textpol], natomiast zadania cykliczne mają postać:

[tm_find_artefact_1]type = artefactcommunity = actortext = tm_find_artefact_1_textdescription = tm_find_artefact_1_descrparent = tradertarget = af_medusa;reward_money = 500reward_reputation = +5reward_rank = 1reward_item = medkit;idle_time = 84000prior = 1

Jest tu szereg parametrów, które musiałbyś dla zadania fox_kriss - na nowo definiować jak np. parent, reward_rank, reward_item - nie mówię, że nie da się tego zrobić, jednak dla istniejącego już zadania w skryptach istnieje ryzyko, że będą błędy.


Wklejam tylko fox_kriss. Mam rację?

Nie, dla zadań cyklicznych tj. zadań klasy CRandomTask istnieje jeszcze grupa zdefiniowanych w skrypcie NPC'ów - task_manager.script [gamedatascripts], wiersz nr. 9:

local parent_by_story = {  [003] = "trader",  [500] = "barman",  [902] = "ecolog",  [507] = "dolg",  [707] = "freedom",  [006] = "wolf",  [004] = "shustriy",  [510] = "drunk_dolg",  [504] = "hunter",  [518] = "zastava_commander",  [506] = "petrenko",  [607] = "lisiy",  [515] = "mercenary",  [9613] = "green"}

Oraz poniższe wpisy local story_by_parent - patrz skrypt. Musiałbyś wprowadzić postacie z zadań do skryptu. Tak naprawdę, musi być inny sposób na dodanie tego w odpowiednie miejsce, ale ten który proponuje oferuje jedynie opcję - nie gwarancję działania, ponieważ nie sprawdzałem tego w praktyce, dodatkowo wymaga definiowania istniejących zadań powtórnie (dla task_manager.ltx)i nie masz pewności czy zadziała. Trzeba by znaleźć skrypt jak funkcjonuje PDA, ale niektóre funkcje wynikają z plików .dll., np. bez modyfikacji tegoż pliku nie zmienisz ilości osób wyświetlanych w rankingu PDA, obawiam się, że trzeba by te pliki "wciąć pod lupę".

Zanim zaczniesz brnąć w ten niepewny sposób - poszukaj na forach czy ten problem nie został już przez kogoś poruszony, może rozwiązany? Póki co - brakuje mi pomysłu na rozwiązanie...

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra z tym poczekam chwilę a wezmę się za resztę rzeczy. Oczywiście poszukam w necie, może coś znajdę. To na chwilę obecną mam jeszcze jeden problem.

 

Mamy przypuśćmy doświadczonego stalkera i chcę żeby mieli oni mieszane wyposażenie, w sensie jeden AK, drugi jakąś strzelbe a trzeci jeszcze jakiś inny karabin. Weźmy na przykładzie stalkera kota:

<!---------------------------STALKER NOVICE----------------------->		<specific_character id="esc_stalker_novice_default1" team_default = "1">		<name>GENERATE_NAME_stalker</name>		<icon>ui_npc_u_green_stalker_2</icon>		<bio>esc_stalker_novice_bio</bio>		<class>esc_stalker_novice</class>		<community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>				<rank>140</rank>		<reputation>12</reputation>		<money min="200" max="600" infinitive="0"/>				<snd_config>characters_voicehuman_01newbie</snd_config>		<crouch_type>-1</crouch_type>				<visual>actorsnovicegreen_stalker_2</visual>		<supplies>			[spawn] n			wpn_benelli_short n			ammo_12x70_buck n			sigaret n#include "gameplaycharacter_items.xml" n#include "gameplaycharacter_food.xml"		</supplies>					#include "gameplaycharacter_criticals_3.xml"		<start_dialog>hello_dialog</start_dialog>		<actor_dialog>neitral_treasure_1_dialog</actor_dialog>#include "gameplaycharacter_dialogs.xml"			</specific_character><!------------------------------------------------------------------------------------------>	<specific_character id="esc_stalker_novice_default2" team_default = "1">		<name>GENERATE_NAME_stalker</name>		<icon>ui_npc_u_green_stalker_2</icon>		<bio>esc_stalker_novice_bio</bio>		<class>esc_stalker_novice</class>		<community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>				<rank>127</rank>		<reputation>-8</reputation>		<money min="200" max="600" infinitive="0"/>				<snd_config>characters_voicehuman_01newbie</snd_config>		<crouch_type>-1</crouch_type>				<visual>actorsnovicegreen_stalker_2</visual>		<supplies>			[spawn] n			wpn_aps_sk1 n			ammo_9x18_fmj = 1 n			device_torch n			sigaret n#include "gameplaycharacter_items.xml" n#include "gameplaycharacter_food.xml"		</supplies>		#include "gameplaycharacter_criticals_3.xml"					<start_dialog>hello_dialog</start_dialog>		<actor_dialog>neitral_treasure_2_dialog</actor_dialog>#include "gameplaycharacter_dialogs.xml"	</specific_character>

I z tego wszystkiego zainteresował mnie ten wpis:

<specific_character id="esc_stalker_novice_default2" team_default = "1">

To cyfra po default ma w tym przypadku znaczenie? Że 1 ma to i to a 2 tamto i owamto? Bo jeśli tak to po prostu tworzę nową sekcję z numerkiem 3 i tam w spawn wpisuję to co ma mieć? Nic więcej nie trzeba? Bo za proste się to wydaje...

 

A i jeszcze jedno... Jak zrobić by gracz na początku miał 0 RU zamiast 40? Próbowałem co umiałem ale nie udawało mi się. Mało jeszcze wiem najwidoczniej.

Odnośnik do komentarza
Udostępnij na innych stronach

Wpis:

<specific_character id="esc_stalker_novice_default2" team_default = "1">

Definiuje jednego z losowych stalkerów w grze, jednak za posiadaną broń odpowiada sekcja:

[spawn] nwpn_benelli_short nammo_12x70_buck nsigaret n

Powyżej mamy broń wpn_benelli_short, amunicję śrutową oraz papierosa - w ekwipunku jegomościa.

Za ekwipunek stalkerów losowych odpowiada character_desc_simulation.xml  [gamedataconfiggameplay] - tak było przynajmniej w Shoc 1.0004, natomiast z pozostałych plików* np.

  • [*]character_desc_svoboda.xml [*]

character_desc_yantar.xml

[*]

character_desc_killer.xml

* - gra nie korzysta.

Jeśli chcesz dodać postać - tworzysz, nowego "defaultowego" NPC'a.

Jeśli chodzi o pieniądze, to w pierwszej kolejności informacja o przyznawanej ilości pieniędzy zawarta jest w pliku all.spawn

W pod-pliku stanowiącym jeden z elementów wypakowanego spawna, znajdujemy:

alife_l01_escape.ltx a w nim sekcję [1246] -dla Shoc 1.0004, dla DMX'a musisz poprzez xrSpawner ustalić numer, sprawdzając pod kątem frazy

section_name = actor

[1246]; cse_abstract propertiessection_name = actorname = level_prefix_actor_0001position = -246.726303100586,-24.7932605743408,-134.433868408203direction = 0.00431653670966625,-1.39625442028046,-0.00068671052576974s_flags = 0x29; cse_alife_object propertiesgame_vertex_id = 4distance = 0.699999988079071level_vertex_id = 11713object_flags = 0xffffffbfcustom_data = <<END[dont_spawn_character_supplies][spawn]wpn_binocdetector_simplenovice_outfitdevice_torchEND; cse_visual propertiesvisual_name = actorsherostalker_novice; cse_alife_creature_abstract propertiesg_team = 0g_squad = 0g_group = 0health = 1dynamic_out_restrictions =dynamic_in_restrictions =upd:health = 1upd:timestamp = 0upd:creature_flags = 0upd:position = -246.726303100586,-24.7932605743408,-134.433868408203upd:o_model = 0upd:o_torso = -1.39625442028046,0.00431653670966625,0upd:g_team = 0upd:g_squad = 0upd:g_group = 0; cse_alife_trader_abstract propertiesmoney = 40trader_flags = 0character_profile = actor; cse_ph_skeleton properties; cse_alife_creature_actor propertiesupd:actor_state = 0xd20upd:actor_accel_header = 0upd:actor_accel_data = 0upd:actor_velocity_header = 0upd:actor_velocity_data = 0upd:actor_radiation = 0upd:actor_weapon = 110upd:num_items = 0

Są tutaj parametry spawnowanego Striełoka, takie jak miejsce pojawienia się oraz - tak jest pieniądze w podsekcji:

money = 40

To ona odpowiada za ilość pieniędzy na starcie. Jeśli nie chcesz ruszać spawna, przeczytaj ten post, szukaj sekcji:

dialogs.relocate_money(trader, 10000, "in")

"in" - odpowiada za kasę przychodzącą, gdybyś zmienił na "out" - postać utraci zadaną wartość.

Dla jasności - jest to dialog z Wilkiem, ale musisz zobaczyć dla DMX'a plik escape_dialog.script - jeśli na podstawie niego chcesz uzyskać pieniądze.

  • Dodatnia 1
Odnośnik do komentarza
Udostępnij na innych stronach

Wiem jak dodać opis i nazwę broni po jej wcześniejszym dodaniu, więc problem jest nieaktualny  :smile: Wszystko opiera się na pliku konfiguracyjnym broni i pliku arsenal_mod.xml lub podobnym. 

 

Edit:

 

 

Jeszcze coś odnośnie zadań pobocznych:

 

Standardowo wiadomo jak przebiega dialog. A jak zrobić żeby było tak?

 

A: Są jakieś zadania poboczne?

B: Coś się znajdzie. Jaki typ zadania?

A: 1. Poszukiwanie części mutantów

    2. Zabójstwo stalkera

    3. Wytępienie stada mutantów / grupy stalkerów

    4. Znajdź artefakt / unikalną rzecz

(wybieram jedną z powyższych, dajmy na to 4)

B: I tutaj lista WSZYSTKICH możliwych tego typu zadań (np. wszystkie możliwe zadania dotyczące tylko znalezienia artefaktów + jakieś własne dorobię)

 

Mam nadzieję, że to jakoś zrozumiale napisałem 

Edytowane przez Radrif
Odnośnik do komentarza
Udostępnij na innych stronach

  • Meta zablokował(a) ten temat
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.