Случайная подборка модов
Зимний путь
3.4
Припять. Точка отсчета
3.3
День одиночки
1.6
Lost World: Origin
4.1
Clear Sky Complete
4.1
S.T.A.L.K.E.R. F.M.
4.4
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  Wolfstalker
Среда, 24.02.2016, 00:25 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга


• Не флудить
• Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там
• В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти




F.A.Q

  Злобная реклама
Среда, 24.02.2016, 00:25
Статус:
Сообщений: 666
Регистрация: 05.04.2010
Российская Федерация  Last_Dawn
Четверг, 08.09.2016, 10:59 | Сообщение # 3706
Статус:
Опытный:
Сообщений: 1692
Награды: 5
Регистрация: 22.03.2016

makdm, да, я тупой - понимаю. Больше донимать вас не буду, но если ты про это and has_alife_info(v.info)
то я уже выставлял, смотрел ещё куда в ars отсылка идёт, там такие две функции:

Все манипуляции дают вылет и я тут честно говоря не могу увидеть, каким боком вообще замешаны инфопоршни, кроме их выдачи в тех функциях под спойлером. Но я так понял - это условия их получения, а что такое has_alife_info(v.info) - ??? Слово info конечно намекает, но вообщем ладно, спасибо за помощь. Вы ведь не должны всё за меня делать в конце концов.
  Злобная реклама
Четверг, 08.09.2016, 10:59
Статус:
Сообщений: 666
Регистрация: 22.03.2016
Украина  _S_k_i_F_
Четверг, 08.09.2016, 18:44 | Сообщение # 3707
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

Такой вопрос: как проверить состояние (кондишн) объекта? Вот так
Код
if obj:condition() <= 0.35 then

вылетает attemp to call method "condition"
Зараннее спасибо!
  Злобная реклама
Четверг, 08.09.2016, 18:44
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Украина  DEM
Четверг, 08.09.2016, 19:09 | Сообщение # 3708
Статус:
Опытный:
Сообщений: 1375
Награды: 3
Регистрация: 26.08.2012

_S_k_i_F_, что у тебя является объектом проверки?
Или ты так и пишешь if obj:condition()...?
Сообщение отредактировал jein - Четверг, 08.09.2016, 19:10
  Злобная реклама
Четверг, 08.09.2016, 19:09
Статус:
Сообщений: 666
Регистрация: 26.08.2012
Украина  _S_k_i_F_
Четверг, 08.09.2016, 19:22 | Сообщение # 3709
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

jein,
Код
for i=1,65534 do
local obj = alife():object(i)
  Злобная реклама
Четверг, 08.09.2016, 19:22
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Украина  Shtaket
Четверг, 08.09.2016, 19:27 | Сообщение # 3710
Статус:
Неопытный:
Сообщений: 530
Награды: 7
Регистрация: 04.01.2015

Первое сообщение пропало. Вот второе:

Добавил я новую пушку. Заменил ей автомат Коряги. При взятии в руки ловлю такой вот вылет:

stack trace:

0023:087CD912 xrGame.dll, CDialogHolder::CDialogHolder()
0023:00417183 xrEngine.exe, CBoneInstance::construct()
0023:08A18544 xrGame.dll, CDialogHolder::`vftable'()
0023:08AA85F4 xrGame.dll

Бывает, что вылет происходит не сразу, а спустя некоторое время. Уж не знаю, где я успел накосячить. Зов Припяти, 1.6.02
  Злобная реклама
Четверг, 08.09.2016, 19:27
Статус:
Сообщений: 666
Регистрация: 04.01.2015
Российская Федерация  denis2000
Четверг, 08.09.2016, 19:32 | Сообщение # 3711
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата Alex_91zA ()
Ну фонарь это же отдельный предмет, он ставится в слот, т.е. ему нужны текстуры. Или нет?

Ваша логика: Автомобиль отдельный объект, на нем можно ездить, ему ведь нужен воздух? И да и нет, конкретизируйте вопрос!
Цитата Alex_91zA ()
А анимация тоже ведь есть на фонарь из Мизери?

Не знаю, я никогда не смотрел этот мод. Если фонарь там приаттаченный объект, то никакой анимации ему не требуется.


_S_k_i_F_, Не у всякого объекта есть такоой метод, о чем тебе и сообщает движек: attemp to call method "condition"
Сообщение отредактировал denis2000 - Четверг, 08.09.2016, 20:06
  Злобная реклама
Четверг, 08.09.2016, 19:32
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  _S_k_i_F_
Четверг, 08.09.2016, 19:38 | Сообщение # 3712
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

denis2000, вот вся функция
Код
function cleaner_weapons()
for i=1,65534 do
local obj = alife():object(i)
if obj~=nil and obj:section_name()~=nil then
if string.find(obj:section_name(),"wpn_") then
if obj:condition() <= 0.35 then
alife():release(alife():object(obj),true)
end
end
end
end
end

То есть для оружия надо получить кондишн.
  Злобная реклама
Четверг, 08.09.2016, 19:38
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  denis2000
Четверг, 08.09.2016, 20:06 | Сообщение # 3713
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата _S_k_i_F_ ()
То есть для оружия надо получить кондишн.

Ну так и получайте для оружия, а не для любого объекта содержащего в своем наименовании строку "wpn_":
Код
if isWeapon(obj) then

А то проверка состояния объекта например pri_a15_wpn_svu будет печальной.
Сообщение отредактировал denis2000 - Четверг, 08.09.2016, 20:07
  Злобная реклама
Четверг, 08.09.2016, 20:06
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  _S_k_i_F_
Четверг, 08.09.2016, 20:29 | Сообщение # 3714
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

denis2000, пишу теперь так
Код
function cleaner_weapons()
for i=1,65534 do
local obj = alife():object(i)
if obj~=nil and isWeapon(obj) then
if obj:condition() <= 0.35 then
alife():release(alife():object(obj),true)
end
end
end
end

Все равно тот же вылет
Код
Description   : ....r. - Зов Припяти\gamedata\scripts\xr_effects.script:3534: attempt to call method 'condition' (a nil value)
  Злобная реклама
Четверг, 08.09.2016, 20:29
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  makdm
Четверг, 08.09.2016, 20:48 | Сообщение # 3715
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата _S_k_i_F_ ()
Все равно тот же вылет

Движковый метод condition() может быть вызван только для клиентского класса объекта, а вы его пытаетесь вызвать для серверного класса.
Для серверного класса нужно читать нет-пакет оружия.
И вот это :
Цитата _S_k_i_F_ ()
alife():release(alife():object(obj),true)

ну просто "швах".
Сообщение отредактировал makdm - Четверг, 08.09.2016, 20:51
  Злобная реклама
Четверг, 08.09.2016, 20:48
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  denis2000
Четверг, 08.09.2016, 21:04 | Сообщение # 3716
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

_S_k_i_F_, Проверять нужно у клиентского типа объектов, например так:
Код
function cleaner_weapons()
    for i=1,65534 do
  local obj = alife():object(i)
  if obj~=nil and isWeapon(obj) then
   local wpn = level.object_by_id(obj.id)
   if wpn then
    if wpn:condition() <= 0.35 then
    alife():release(alife():object(obj.id),true)
    end
   end
  end
    end
end

А если проверять у всех, то придется разбирать нетпакет, как уже сказали.
Вы пытаетесь сварганить какую-то дичь!
Может для начала, расскажите, что требуется?
Сообщение отредактировал denis2000 - Четверг, 08.09.2016, 21:30
  Злобная реклама
Четверг, 08.09.2016, 21:04
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  _S_k_i_F_
Четверг, 08.09.2016, 21:30 | Сообщение # 3717
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

denis2000, к выбросу привязать (точнее уже привязал) функцию, которая удаляет все оружие, состояние которого меньше 0.35
denis2000, все, последний код работает как надо, спасибо за помощь!
Сообщение отредактировал _S_k_i_F_ - Четверг, 08.09.2016, 21:44
  Злобная реклама
Четверг, 08.09.2016, 21:30
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  Overfirst
Четверг, 08.09.2016, 21:37 | Сообщение # 3718
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Цитата iPhexED ()
как убрать раскачивание экрана при беге/ходьбе

В консоль cam_inert_0 или скриптово:
Код
get_console():execute("cam_inert 0")
  Злобная реклама
Четверг, 08.09.2016, 21:37
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  denis2000
Четверг, 08.09.2016, 21:56 | Сообщение # 3719
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата _S_k_i_F_ ()
все, последний код работает как надо, спасибо за помощь!

Не так быстро! Этот код удалит только онлайн объекты, этот код не учитывает того, что объект может быть во владении НПС, находиться в ящике ГГ (или в ящике вообще) и множество других нюансов. Мне кажется что вы изобретаете велосипед и подобная чистилка хлама давно есть в некоторых модах.
  Злобная реклама
Четверг, 08.09.2016, 21:56
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  _S_k_i_F_
Четверг, 08.09.2016, 23:05 | Сообщение # 3720
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

denis2000, я знаю что такая чистилка есть. Но мне нужно удалять только стволы, состояние которых меньше 0.35 и они просто валяются на земле.
  Злобная реклама
Четверг, 08.09.2016, 23:05
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Поиск: