Перейти к контенту

[SoC] Ковыряемся в файлах


Рекомендуемые сообщения

Цитата

function del_out() for a=10,65634,1 do local obj=alife():object(a) if obj and string.find(obj:name(),"esc_surprise_box_003") then          ---имя секции обьекта alife():release(obj,true) end end end 

Как добавить вместо одного удаляемого объекта список объектов, чтобы игра при этом не вылетала?

Стримы по STALKER и модам, twitch, ник SergGraduss. И группа ВК Бар "Ручная Химера. Для сталкеров. 
Анонсы стримов на АМК: https://www.amk-team.ru/forum/topic/14146-strimy-ot-serggraduss-ex-mutantt/

 

Ссылка на комментарий
14 часов назад, Mutantt сказал:

Как добавить вместо одного удаляемого объекта список объектов, чтобы игра при этом не вылетала?

function del_out()
local tbl = {['esc_surprise_box_003'] = true, ['esc_surprise_box_004'] = true --[[ и другие секции]]}
	for a=10,65634,1 do
		local obj=alife():object(a)
		if obj and tbl[obj:section_name()] then  ---имя секции обьекта, если вылетит в этой строке, то попробовать так: obj:section()
			alife():release(obj,true)
		end
	end
end 

 

  • Нравится 1
  • Согласен 1
Ссылка на комментарий

@Graff46 Если делаю так
 

function del_out()
local tbl = {['esc_surprise_box_003'] = true, ['esc_bandit_outfit'] = true}
	for a=10,65634,1 do
		local obj=alife():object(a)
		if obj and tbl[obj:section()] then  
			alife():release(obj,true)
		end
	end
end 

то вылетает с логом attempt to call method 'section' (a nil value)

 

А если так 

 

function del_out()
local tbl = {['esc_surprise_box_003'] = true, ['esc_bandit_outfit'] = true}
	for a=10,65634,1 do
		local obj=alife():object(a)
		if obj and tbl[obj:section_name()] then  
			alife():release(obj,true)
		end
	end
end 

то объекты не удаляются.

Стримы по STALKER и модам, twitch, ник SergGraduss. И группа ВК Бар "Ручная Химера. Для сталкеров. 
Анонсы стримов на АМК: https://www.amk-team.ru/forum/topic/14146-strimy-ot-serggraduss-ex-mutantt/

 

Ссылка на комментарий

@Mutantt 

function deletus() 
   for i, v in ipairs( {"agro_final_vert1", "agro_final_vert2", "agr_nii_heli", "agr_helicopter1", "agr_helicopter2", "agr_helicopter3", "agr_helicopter4" } ) do
      v = alife():object( v )
      if v then alife():release( v, true ) end
   end
end

  • Спасибо 2
  • Согласен 1
  • Полезно 1

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

Ссылка на комментарий
22 часа назад, Mutantt сказал:

Если делаю так

....

то вылетает с логом attempt to call method 'section' (a nil value)

А если так 

....

то объекты не удаляются.

В первом фрагменте кода вылет гарантирован, т.к. ф-ция object(...) класса alife_simulator возвращает серверный объект, у которого нет метода section().

Второй фрагмент вполне рабочий, а почему объекты не удаляются - разбирайся. Только ты знаешь, где у тебя это удаление вызывается...

Ссылка на комментарий
В 30.03.2018 в 01:06, Mutantt сказал:

то объекты не удаляются.

А если так попробовать:

Скрытый текст

if obj and tbl[obj:section_name()] then 
->		
if obj and tbl[obj:name()] then

 

Ради интереса...:biggrin:

Ссылка на комментарий

Сначала следует определиться с тем, ЧТО хотим удалить.

obj:name() - это ИМЯ одного конкретного предмета (хотя через олспавн можно наплодить дублей, а потом удивляться, почему вылетает).

obj:section_name() - секция КОНФИГА, где описан предмет.

 

Кстати, опять же for a=10,65634,1 do - что конкретно хотим этим сказать ?

Ссылка на комментарий

По поводу custom data [spawn] - это, как бы, не "логика", а условия выхода в онлайн. То есть, объект с самого старта болтается в игре, и эти условия люто, бешено проверяются всю игру.

Рекомендую просто добавить в апдейт актора побольше циклов типа for i = 1, 2G do function () return end, если мод слишком мало ресурсов процессора жрет.

Ссылка на комментарий
19 минут назад, Dennis_Chikin сказал:

for a=10,65634,1 do - что конкретно хотим этим сказать ?

3-им аргументом это шаг цикла, но он по умолчанию и так 1.

Ссылка на комментарий

@nasar75 Спасибо, ваша функция работает.

Стримы по STALKER и модам, twitch, ник SergGraduss. И группа ВК Бар "Ручная Химера. Для сталкеров. 
Анонсы стримов на АМК: https://www.amk-team.ru/forum/topic/14146-strimy-ot-serggraduss-ex-mutantt/

 

Ссылка на комментарий

@dPlayer В файле system.ltx (по пути gamedata/config) найдите строчку slot_persistent_8  = true.

Измените true на false и в игре открыв, к примеру ящик, вы увидите этот ПДА.

Важнейшая задача цивилизации - научить человека мыслить.

Ссылка на комментарий

Да мне не вес важен, а интересно, где его спавн в карман гг прописан) Ну и старая задумка была, с реализацией пда как полноценного слотового предмета

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...