max1071
02 gru 2021, 08:19
Regulamin forum
Dział "Modyfikacje Gotowe" służy do dyskusji o modyfikacjach, które już są stworzone lub do zadawania pytań na ich temat. Znajdziemy tutaj również linki do ściągnięcia modyfikacji (które powinny, a raczej muszą być w pierwszym poście tematu danej modyfikacji).
Przy zadawaniu pytania związanego z problemem dotyczącym modyfikacji, prosimy o podawanie treści całego loga błędu - koniecznie w tagu
Przy zadawaniu pytania związanego z problemem dotyczącym modyfikacji, prosimy o podawanie treści całego loga błędu - koniecznie w tagu
Kod: Zaznacz cały
.[/b]
Przy cytowaniu plików *.LTX stosować tag [b][SYNTAX="ini"][/b], przy cytowaniu plików *.script [b][SYNTAX="lua"][/b] a przy cytowaniu plików *.xml - [b][SYNTAX="xml"][/b].
[u]Lokalizacja logów:[/u]
Windows XP - [b]C:\Documents and Settings\All Users\Moje dokumenty\S.T.A.L.K.E.R. - Zew Prypeci\logs\xray_nazwaużytkownika.log[/b]
Windows Vista/7 - [b]C:\Users\Public\Documents\S.T.A.L.K.E.R. - Zew Prypeci\logs\xray_nazwaużytkownika.log[/b]
Steam - [b]X:\Program Files (x86)\Steam\SteamApps\common\Stalker Call of Pripyat\_appdata_\logs[/b]
Pytania na temat modyfikacji zadajemy w wątku dla niej stworzonym lub tworzymy nowy, jeśli takowego nie ma.
Gdy chcemy założyć nowy wątek, obowiązkowe jest przeczytanie [url=http://forum.stalker.pl/viewtopic.php?f=77&t=6445][color=red]tego tematu[/color][/url].
Posty: 1• Strona 1 z 1
Witajcie Stalkerzy.
Nie wiem od czego zacząć więc zmodyfikowana LUA JIT przyśpiesza działanie skryptów opartych na lua.
Mam wiele pytań co do tego a także sam po części udzielam w tym temacie odpowiedzi.
otóż np jedna sprawa która trochę mnie męczy nowa wersja dll-a zawiera nowo poprawione funkcje typu table.insert, table.remove.
alee..... właśnie ale... natknąłem się na błąd pojawiający się w release_body_manager.script, otóż.... tam gdzie dana z tabelki za pomocą table.remove ma być usuwana nic takiego się nie dzieje.. jakby gra w ogóle nie reagowała na to jakby ta funkcja w ogóle nie istniała napisałem szybko fix na to i działa ale to jest dziwne.
[syntax="lua"]
table.remove(self.release_objects_table, pos_in_table)
[/syntax]
zastąpiłem
[syntax="lua"]
rm_table[#rm_table+1]=pos_in_table_ttr
--table.remove(self.release_objects_table, pos_in_table)
[/syntax]
dodałem nową tabelkę która odpowiada za gromadzenie id do usunięcia danych umarlaków ze świata. (rm_table)
dwoma minusami (--) takjaby gra tego nie widzi i zastąpiłem poniżej end
[syntax="lua"]
local n=#self.release_objects_table
for i=1,n do
if self.release_objects_table[rm_table] then
self.release_objects_table[rm_table]=nil
end
end
local j=0
for i=1,n do
if self.release_objects_table~=nil then
j=j+1
self.release_objects_table[j]=self.release_objects_table
end
end
for i=j+1,n do
self.release_objects_table=nil
end
[/syntax]
co zadziałało identycznie jak to talbe.remove
Tylko dlaczego oryginalne to nie działa skoro powinno
może ja czegoś nie wiem bądź nie załączyłem odpowiednich nowych funkcji.
dziele się z wami taką wiedzą bo może ktoś z was ma takie albo podobne problemy po użyciu tej wersji lua
-----------
druga akcja poniżej w skrypcie jest
[syntax="lua"]
local level_id = game_graph():vertex(alife():actor().m_game_vertex_id):level_id()
packet:w_u16(level_id)
[/syntax]
i
[syntax="lua"]
local level_id = reader:r_u16()
if level_id ~= game_graph():vertex(alife():object(0).m_game_vertex_id):level_id() then
self.release_objects_table = {}
end
[/syntax]
obie źle zapisują wszystko i tabelka po przejściu na inny level (poziom/mapę(jak to zwą tam)) nie usuwa się w sensie nie jest wykonana ta klamra
dodatkowo autor ddl-a napisał na forum o zmianę pliku _G.script
i wpisanie do niego nowych wartości
najlepiej gdzieś u góry pliku:
[syntax="lua"]
if (jit == nil) then
profiler.setup_hook ()
end
string.gfind = string.gmatch
math.mod = math.fmod
function empty (container)
if (type(container) == "function") then
for i in container do
return (false)
...
[/syntax]
string.gfind = string.gmatch
math.mod = math.fmod
ze względu na to że nowsza lua nie korzysta podobno z tych starszych "wartości".
zapraszam do udzielania się w temacie jak znajdę coś co potrzeba do dodania to na bank to zrobię.
Nie wiem od czego zacząć więc zmodyfikowana LUA JIT przyśpiesza działanie skryptów opartych na lua.
Mam wiele pytań co do tego a także sam po części udzielam w tym temacie odpowiedzi.
otóż np jedna sprawa która trochę mnie męczy nowa wersja dll-a zawiera nowo poprawione funkcje typu table.insert, table.remove.
alee..... właśnie ale... natknąłem się na błąd pojawiający się w release_body_manager.script, otóż.... tam gdzie dana z tabelki za pomocą table.remove ma być usuwana nic takiego się nie dzieje.. jakby gra w ogóle nie reagowała na to jakby ta funkcja w ogóle nie istniała napisałem szybko fix na to i działa ale to jest dziwne.
[syntax="lua"]
table.remove(self.release_objects_table, pos_in_table)
[/syntax]
zastąpiłem
[syntax="lua"]
rm_table[#rm_table+1]=pos_in_table_ttr
--table.remove(self.release_objects_table, pos_in_table)
[/syntax]
dodałem nową tabelkę która odpowiada za gromadzenie id do usunięcia danych umarlaków ze świata. (rm_table)
dwoma minusami (--) takjaby gra tego nie widzi i zastąpiłem poniżej end
[syntax="lua"]
local n=#self.release_objects_table
for i=1,n do
if self.release_objects_table[rm_table] then
self.release_objects_table[rm_table]=nil
end
end
local j=0
for i=1,n do
if self.release_objects_table~=nil then
j=j+1
self.release_objects_table[j]=self.release_objects_table
end
end
for i=j+1,n do
self.release_objects_table=nil
end
[/syntax]
co zadziałało identycznie jak to talbe.remove
Tylko dlaczego oryginalne to nie działa skoro powinno
może ja czegoś nie wiem bądź nie załączyłem odpowiednich nowych funkcji.
dziele się z wami taką wiedzą bo może ktoś z was ma takie albo podobne problemy po użyciu tej wersji lua
-----------
druga akcja poniżej w skrypcie jest
[syntax="lua"]
local level_id = game_graph():vertex(alife():actor().m_game_vertex_id):level_id()
packet:w_u16(level_id)
[/syntax]
i
[syntax="lua"]
local level_id = reader:r_u16()
if level_id ~= game_graph():vertex(alife():object(0).m_game_vertex_id):level_id() then
self.release_objects_table = {}
end
[/syntax]
obie źle zapisują wszystko i tabelka po przejściu na inny level (poziom/mapę(jak to zwą tam)) nie usuwa się w sensie nie jest wykonana ta klamra
dodatkowo autor ddl-a napisał na forum o zmianę pliku _G.script
i wpisanie do niego nowych wartości
najlepiej gdzieś u góry pliku:
[syntax="lua"]
if (jit == nil) then
profiler.setup_hook ()
end
string.gfind = string.gmatch
math.mod = math.fmod
function empty (container)
if (type(container) == "function") then
for i in container do
return (false)
...
[/syntax]
string.gfind = string.gmatch
math.mod = math.fmod
ze względu na to że nowsza lua nie korzysta podobno z tych starszych "wartości".
zapraszam do udzielania się w temacie jak znajdę coś co potrzeba do dodania to na bank to zrobię.
Postawili kozaka za ten post (1):
Posty: 1• Strona 1 z 1
