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

[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 пользователей

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