Forum Stalker.pl • Zobacz temat - Mnożenie przedmiotów w amk_mod.script

Mnożenie przedmiotów w amk_mod.script

Regulamin forum
Dział "Tworzenie Modyfikacji" służy do zadawania pytań odnośnie tworzenia modyfikacji, edytowania plików gry, oraz pisania tzw. tutoriali, czyli poradników odnośnie modyfikowania gry.
Nie zadajemy tutaj pytań odnośnie modyfikacji gotowych (nie dyskutujemy o nich!), prócz prób ich połączenia etc.


Przy cytowaniu plików *.LTX stosować tag [SYNTAX="ini"], przy cytowaniu plików *.script [SYNTAX="lua"] a przy cytowaniu plików *.xml - [SYNTAX="xml"].

Mnożenie przedmiotów w amk_mod.script

Postprzez maniakes w 25 Lis 2014, 19:07

1.
Czy jest jakis bardziej "elegancki" i mniej toporny sposób na zrobienie tego:

Kod: [ Pobierz ] [ Ukryj ]
function on_game_start()
        math.randomseed (device ():time_global ())
end
local tmp_intro=false
function first_run()
        if amk.load_variable("x_first_run",true) then
                amk.g_start_timer("gg_need_sleep",0,0,6)
                amk.g_start_timer("show_news",0,0,10)
                amk.spawn_item_in_inv("matras")
                amk.spawn_item_in_inv("water")
                amk.spawn_item_in_inv("amk_metka")
                amk.spawn_item_in_inv("wpn_knife")
                amk.spawn_item_in_inv("mobile_box")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")            
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("papierosy1")
                amk.spawn_item_in_inv("konserva_tushenka")
                amk.spawn_item_in_inv("batteries")
                amk.spawn_item_in_inv("radio")
                amk.spawn_item_in_inv("karimata")
                amk.spawn_item_in_inv("crowbar")
                amk.spawn_item_in_inv("flask")
                amk.spawn_item_in_inv("gasmask")
                amk.spawn_item_in_inv("filtr")
                amk.spawn_item_in_inv("camelback")
                amk.save_variable("x_first_run",false)
        end


Chodzi o to, aby skrypt amk_mod.script dawał na starcie Strielokowi 20 sztuk papierosa. Oczywiście powtózenie 20 razy komendy działa, ale jestem ciekawy, czy można to zrobić bardziej "subtelnie".

2,
Czy dałoby się zrobić tak, jak w CoP, że niektóre dobra konsumpcyjne (np. racje żywnościowe, woda itp.) są wielokrotnego użytku, tzn. zużywa się je w kilku porcjach? W sensie, czy da się to rozwiązać jakoś prosto czy potrzeba napisać jakis potwornie skomplikowany skrypt i powiązać go z bind_stalker.script?
maniakes
Kot

Posty: 41
Dołączenie: 31 Paź 2014, 01:36
Ostatnio był: 26 Gru 2014, 13:02
Frakcja: Zombie
Ulubiona broń: Obokan
Kozaki: 0

Reklamy Google

Re: Mnożenie przedmiotów w amk_mod.script

Postprzez Cromm Cruac w 25 Lis 2014, 19:16

Kod: [ Pobierz ] [ Ukryj ]
for i = 1, 20 do
     amk.spawn_item_in_inv("papierosy1")
end
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 maniakes.
Awatar użytkownika
Cromm Cruac
Modder

Posty: 2541
Dołączenie: 22 Sty 2010, 19:01
Ostatnio był: 26 Lip 2023, 10:13
Miejscowość: Londyn / Bielsko-Biała
Kozaki: 1077

Re: Mnożenie przedmiotów w amk_mod.script

Postprzez maniakes w 25 Lis 2014, 20:29

Niestety, po zastosowaniu Twojego rozwiązania, gra wysypuje sie do pulpitu przy rozpoczynaniu z następującym logiem:

:

FATAL ERROR

[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description : <no expression>
[error]Arguments : LUA error: ...r. - shadow of chernobyl\gamedata\scripts\amk.script:1258: attempt to index global 'amk_mod' (a nil value)


stack trace:


No chyba, że źle to wpisuje, zrobiłem tak:

Kod: [ Pobierz ] [ Ukryj ]
function first_run()
        if amk.load_variable("x_first_run",true) then
                amk.g_start_timer("gg_need_sleep",0,0,6)
                amk.g_start_timer("show_news",0,0,10)
                amk.spawn_item_in_inv("matras")
                amk.spawn_item_in_inv("water")
                amk.spawn_item_in_inv("amk_metka")
                amk.spawn_item_in_inv("wpn_knife")
                amk.spawn_item_in_inv("mobile_box")
                amk.spawn_item_in_inv("konserva_tushenka")
                amk.spawn_item_in_inv("batteries")
                amk.spawn_item_in_inv("radio")
                amk.spawn_item_in_inv("karimata")
                amk.spawn_item_in_inv("crowbar")
                amk.spawn_item_in_inv("flask")
                amk.spawn_item_in_inv("gasmask")
                amk.spawn_item_in_inv("filtr")
                amk.spawn_item_in_inv("camelback")
                for i = 1, 20 do amk.spawn_item_in_inv("papierosy1")
                amk.save_variable("x_first_run",false)
        end
maniakes
Kot

Posty: 41
Dołączenie: 31 Paź 2014, 01:36
Ostatnio był: 26 Gru 2014, 13:02
Frakcja: Zombie
Ulubiona broń: Obokan
Kozaki: 0

Re: Mnożenie przedmiotów w amk_mod.script

Postprzez Cromm Cruac w 25 Lis 2014, 21:38

end-a kończącego for-a nie dałeś

Kod: [ Pobierz ] [ Ukryj ]
for i = 1, 20 do amk.spawn_item_in_inv("papierosy1") end
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 maniakes.
Awatar użytkownika
Cromm Cruac
Modder

Posty: 2541
Dołączenie: 22 Sty 2010, 19:01
Ostatnio był: 26 Lip 2023, 10:13
Miejscowość: Londyn / Bielsko-Biała
Kozaki: 1077


Powróć do Cień Czarnobyla

Kto jest na forum

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