r_populik
23 lip 2012, 23:56
Posty: 6• Strona 1 z 1
Jako że ostatnimi czasy dodałem sobie do kompilacji modów trochę kombinezonów, w tym również wybitnie naukowe, zacząłem szukać recepty na dodanie ich do listy kombinezonów potrzebnych do zaliczenia zadania ze znalezieniem kombinezonu z zamkniętym obiegiem. W podstawce byliśmy skazani tylko i wyłącznie na SEVĘ, co śmierdziało liniowością i brakiem swobody wyboru. Na forum GSC znalazłem tortual na ten temat, więc zamieszczam go tutaj, myślę, że się komuś przyda. Rzecz oczywiście przetestowałem - działa.
Generalnie rzecz sprowadza się do wprowadzenia zmian w 4 plikach.
1. w pliku gamedata\scripts\dialogs_jupiter.script znajdujemy poniższy fragment:
[lua]
function jup_b15_actor_sci_outfit(first_speaker, second_speaker)
return (db.actor:object("scientific_outfit") ~= nil)
end
function jup_b15_no_actor_sci_outfit(first_speaker, second_speaker)
return (db.actor:object("scientific_outfit") == nil)
end
[/lua]
i zastępujemy go tym:
[lua]
function jup_b15_actor_sci_outfit(first_speaker, second_speaker)
local suits_tbl = {
["scientific_outfit"] = true,
["your_new_outfit"] = true,
["your_new_outfit_2"] = true,
}
if db.actor:item_in_slot(7) ~= nil and suits_tbl[db.actor:item_in_slot(7):section()] then
return true
end
return false
end
function jup_b15_no_actor_sci_outfit(first_speaker, second_speaker)
return (jup_b15_actor_sci_outfit(first_speaker, second_speaker) == false)
end
[/lua]
2. w pliku gamedata\scripts\xr_conditions.script dopisujemy na końcu to:
[lua]
function jup_b218_actor_has_outfit(actor, npc, p)
local suits_tbl = {
["scientific_outfit"] = true,
["your_new_outfit"] = true,
["your_new_outfit_2"] = true,
}
for k,v in pairs(suits_tbl) do
if db.actor:object(k) ~= nil then
return true
end
end
return false
end
function jup_b218_actor_has_not_outfit(actor, npc, p)
return jup_b218_actor_has_outfit(actor, npc, p) == false
end
[/lua]
3. w pliku gamedata\configs\misc\tm_jupiter.ltx znajdujemy ten fragment:
[ini]
[jup_b218_actor_outfit]
icon = ui_inGame2_Pripyat_1
prior = 118
storyline = true
title = jup_b218_actor_outfit_name
descr = jup_b218_actor_outfit_text
condlist_0 = {=actor_has_item(scientific_outfit)} complete
on_complete = %-jup_b218_actor_outfit_task +jup_b218_actor_can_go_pass%
[/ini]
i zastępujemy go tym:
[ini]
[jup_b218_actor_outfit]
icon = ui_inGame2_Pripyat_1
prior = 118
storyline = true
title = jup_b218_actor_outfit_name
descr = jup_b218_actor_outfit_text
condlist_0 = {=jup_b218_actor_has_outfit()} complete
on_complete = %-jup_b218_actor_outfit_task +jup_b218_actor_can_go_pass%
[/ini]
4. w pliku gamedata\configs\scripts\jupiter\jup_b218_logic.ltx znajdujemy ten fragment:
[ini]
on_info10 = {+jup_a9_tech_way_info -jup_b218_actor_outfit_task !actor_has_item(scientific_outfit)} %=give_task(jup_b218_actor_outfit) +jup_b218_actor_outfit_task%
on_info11 = {+jup_a9_tech_way_info -jup_b218_actor_can_go_pass -jup_b218_actor_outfit_task =actor_has_item(scientific_outfit)} %+jup_b218_actor_can_go_pass%
[/ini]
i zastępujemy go tym:
[ini]
on_info10 = {+jup_a9_tech_way_info -jup_b218_actor_outfit_task !jup_b218_actor_has_outfit} %=give_task(jup_b218_actor_outfit) +jup_b218_actor_outfit_task%
on_info11 = {+jup_a9_tech_way_info -jup_b218_actor_can_go_pass -jup_b218_actor_outfit_task =jup_b218_actor_has_outfit} %+jup_b218_actor_can_go_pass%
[/ini]
Rzecz jasna, tam gdzie jest podane, żeby wpisać zwroty "your_new_outfit" i "your_new_outfit_2" wpisujemy nazwy (to co jest w nawiasach kwadratowych na początku sekcji poszczególnych kombinezonów w outfit.ltx lub innym pliku konfiguracyjnym kombinezonów) kombinezonów, które chcemy dodać.
To wszystko. Podziękowania dla mnm i Majorsoft z forum GSC.
Generalnie rzecz sprowadza się do wprowadzenia zmian w 4 plikach.
1. w pliku gamedata\scripts\dialogs_jupiter.script znajdujemy poniższy fragment:
[lua]
function jup_b15_actor_sci_outfit(first_speaker, second_speaker)
return (db.actor:object("scientific_outfit") ~= nil)
end
function jup_b15_no_actor_sci_outfit(first_speaker, second_speaker)
return (db.actor:object("scientific_outfit") == nil)
end
[/lua]
i zastępujemy go tym:
[lua]
function jup_b15_actor_sci_outfit(first_speaker, second_speaker)
local suits_tbl = {
["scientific_outfit"] = true,
["your_new_outfit"] = true,
["your_new_outfit_2"] = true,
}
if db.actor:item_in_slot(7) ~= nil and suits_tbl[db.actor:item_in_slot(7):section()] then
return true
end
return false
end
function jup_b15_no_actor_sci_outfit(first_speaker, second_speaker)
return (jup_b15_actor_sci_outfit(first_speaker, second_speaker) == false)
end
[/lua]
2. w pliku gamedata\scripts\xr_conditions.script dopisujemy na końcu to:
[lua]
function jup_b218_actor_has_outfit(actor, npc, p)
local suits_tbl = {
["scientific_outfit"] = true,
["your_new_outfit"] = true,
["your_new_outfit_2"] = true,
}
for k,v in pairs(suits_tbl) do
if db.actor:object(k) ~= nil then
return true
end
end
return false
end
function jup_b218_actor_has_not_outfit(actor, npc, p)
return jup_b218_actor_has_outfit(actor, npc, p) == false
end
[/lua]
3. w pliku gamedata\configs\misc\tm_jupiter.ltx znajdujemy ten fragment:
[ini]
[jup_b218_actor_outfit]
icon = ui_inGame2_Pripyat_1
prior = 118
storyline = true
title = jup_b218_actor_outfit_name
descr = jup_b218_actor_outfit_text
condlist_0 = {=actor_has_item(scientific_outfit)} complete
on_complete = %-jup_b218_actor_outfit_task +jup_b218_actor_can_go_pass%
[/ini]
i zastępujemy go tym:
[ini]
[jup_b218_actor_outfit]
icon = ui_inGame2_Pripyat_1
prior = 118
storyline = true
title = jup_b218_actor_outfit_name
descr = jup_b218_actor_outfit_text
condlist_0 = {=jup_b218_actor_has_outfit()} complete
on_complete = %-jup_b218_actor_outfit_task +jup_b218_actor_can_go_pass%
[/ini]
4. w pliku gamedata\configs\scripts\jupiter\jup_b218_logic.ltx znajdujemy ten fragment:
[ini]
on_info10 = {+jup_a9_tech_way_info -jup_b218_actor_outfit_task !actor_has_item(scientific_outfit)} %=give_task(jup_b218_actor_outfit) +jup_b218_actor_outfit_task%
on_info11 = {+jup_a9_tech_way_info -jup_b218_actor_can_go_pass -jup_b218_actor_outfit_task =actor_has_item(scientific_outfit)} %+jup_b218_actor_can_go_pass%
[/ini]
i zastępujemy go tym:
[ini]
on_info10 = {+jup_a9_tech_way_info -jup_b218_actor_outfit_task !jup_b218_actor_has_outfit} %=give_task(jup_b218_actor_outfit) +jup_b218_actor_outfit_task%
on_info11 = {+jup_a9_tech_way_info -jup_b218_actor_can_go_pass -jup_b218_actor_outfit_task =jup_b218_actor_has_outfit} %+jup_b218_actor_can_go_pass%
[/ini]
Rzecz jasna, tam gdzie jest podane, żeby wpisać zwroty "your_new_outfit" i "your_new_outfit_2" wpisujemy nazwy (to co jest w nawiasach kwadratowych na początku sekcji poszczególnych kombinezonów w outfit.ltx lub innym pliku konfiguracyjnym kombinezonów) kombinezonów, które chcemy dodać.
To wszystko. Podziękowania dla mnm i Majorsoft z forum GSC.
Postawili kozaka za ten post (5):
Sorry za odkop, ale mam pewnego BugTrapa:
Nie wiem, o co chodzi. Zrobiłem to, co jest napisane w tutorialu, a i tak wywala... do tego z niepotrzebnym skryptem.
Kod: Zaznacz cały
FATAL ERROR
[error]Expression : !m_error_code
[error]Function : raii_guard::~raii_guard
[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line : 748
[error]Description : ....e.r. - zew prypeci\gamedata\scripts\xr_logic.script:586: attempt to index global 'xr_conditions' (a nil value)
stack trace:
Nie wiem, o co chodzi. Zrobiłem to, co jest napisane w tutorialu, a i tak wywala... do tego z niepotrzebnym skryptem.
Sprawdź dokładnie poprawność wpisów, albo podeślij mi pliki, które zedytowałeś.
Jakimś cudem zadziałało
. Tak na serio to albo zapomniałem dodać kombinezony do handlarza, albo w samym skrypcie nie dopisałem "end" na końcu. Tak czy siak ciekaw jestem jak to wyjdzie w praniu. A czy tak samo to zadziała, jeśli do tego skryptu dodam hełm?
panowie rozumiem i nie jeden raz z tego kodu korzystałem ale od niedawna zacina mi wszystko co związane z zadaniami nie zalicza ich lub nie uruchamia jedynie gdy to zadanie jest zmienione. co może być tego powodem?
Najprawdopodobniej popełniłeś gdzieś literówkę. Korzystam z tego kodu już kawał czasu i u mnie wszystko działa znakomicie.
Oczywiście go nieco zmieniłem do swoich potrzeb, ale to drobiazg (inne ciuchy).
Oczywiście go nieco zmieniłem do swoich potrzeb, ale to drobiazg (inne ciuchy).

Posty: 6• Strona 1 z 1

