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

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

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

А что тут разбираться ошибку допустил, может символ какой то или точку где затер...

Лог же об этом говорит "ошибка чтения"...

Изменено пользователем losiara
  • Согласен 4

Жизнь следует измерять поступками, а не временем...

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

@S.T.W.A.L.K.E.R. набери в поисковике xml validator, сам и увидишь ошибки. Или вот с моего компа: http://rgho.st/77NvMPwNK

У тебя там лишние кавычки и нет <string id= для каких=то стволов ...

Изменено пользователем nasar75
  • Спасибо 1

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

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

@S.T.W.A.L.K.E.R., а ты что хотел чтоб вот это вот работало?

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

    </string>
<string id="enc_weapons1_wpn-winchester_m1">
        <text>"Боеприпасы:\n•12х70 дробь\n•12х76 жекан\n•12х76 дротик\n \nТемп стрельбы:\n•45 выстрелов в минуту.\n \nЕмкость магазина:\n•5 патронов\n \nВ подствольную емкость для патронов был встроен небольшой фрагмент артефакта «Грави», ориентированный таким образом, чтобы увеличивать скорость полёта пули."</text>
    </string>
    <string id=""Боеприпасы:\n•12х70 дробь\n•12х76 жекан\n•12х76 дротик\n \nВо второй половине 1980-х годов компанией «Mossberg» под торговой маркой «Maverick» был налажен выпуск помповых гладкоствольных ружей Model 88, предназначенных как для использования в ближнем бою при проведении полицейских и армейских спецопераций, так и для самообороны и охраны жилища, а также для охоты и спорта. Дробовик Mossberg Maverick M88 представляет собой более дешевую версию ружья Mossberg 500, отличающуюся незначительными изменениями в конструкции, основной которой является отсутствие предохранителя сверху задней части ствольной коробки. При этом большинство деталей Mossberg Maverick M88 и Mossberg 500 взаимозаменяемы, кроме ударно-спускового механизма. Линейка дробовиков Model 88 как и Mossberg 500 была предложена в большом числе вариантов, как боевых, так и охотничьих, отличающихся между собой длиной ствола, емкостью магазина, прикладами и прицельными приспособлениями. Патронник длиной 76 мм позволяет использовать в качестве боеприпасов патроны 12-го калибра с гильзой длиной 70 или 76 мм. При этом допускается использование также весьма мощных патронов 12/76 mm Magnum.\n \nДробовики Mossberg Maverick M88 были приняты на вооружение силовых структур некоторых стран мира, а также поступили в коммерческую продажу, как в самих США, так и в странах Латинской Америки, Европы и Азии.\n \nНа постсоветском пространстве в 90-х годах минувшего столетия Maverick 88 был одним из самых популярных "помповиков" в охранных структурах. По сути дела это был первый недорогой  дробовик вполне приличного качества, появившийся на ружейных рынках, и очень скоро им были вооружены очень многие секьюрити и сотрудники инкассаторских служб.\nВ наше время от былой популярности Maverick 88 не осталось и следа, эта модель была вытеснена с рынка ружьями превосходящими ее по соотношению цена-качество. Поэтому сегодня на вторичном рынке этих ружей довольно много. Не меньше их и в Зоне Отчуждения, более всего пользуются спросом компактные модели с коротким стволом и пистолетной рукояткой, которые можно вместив в рюкзак взять в поход в довесок к основному оружию."">
        <text>"Боеприпасы:\n•12х70 дробь\n•12х76 жекан\n•12х76 дротик\n \nТемп стрельбы:\n•45 выстрелов в минуту.\n \nЕмкость магазина:\n•5 патронов\n \nВо второй половине 1980-х годов компанией «Mossberg» под торговой маркой «Maverick» был налажен выпуск помповых гладкоствольных ружей Model 88, предназначенных как для использования в ближнем бою при проведении полицейских и армейских спецопераций, так и для самообороны и охраны жилища, а также для охоты и спорта. Дробовик Mossberg Maverick M88 представляет собой более дешевую версию ружья Mossberg 500, отличающуюся незначительными изменениями в конструкции, основной которой является отсутствие предохранителя сверху задней части ствольной коробки. При этом большинство деталей Mossberg Maverick M88 и Mossberg 500 взаимозаменяемы, кроме ударно-спускового механизма. Линейка дробовиков Model 88 как и Mossberg 500 была предложена в большом числе вариантов, как боевых, так и охотничьих, отличающихся между собой длиной ствола, емкостью магазина, прикладами и прицельными приспособлениями. Патронник длиной 76 мм позволяет использовать в качестве боеприпасов патроны 12-го калибра с гильзой длиной 70 или 76 мм. При этом допускается использование также весьма мощных патронов 12/76 mm Magnum.\n \nДробовики Mossberg Maverick M88 были приняты на вооружение силовых структур некоторых стран мира, а также поступили в коммерческую продажу, как в самих США, так и в странах Латинской Америки, Европы и Азии.\n \nНа постсоветском пространстве в 90-х годах минувшего столетия Maverick 88 был одним из самых популярных "помповиков" в охранных структурах. По сути дела это был первый недорогой  дробовик вполне приличного качества, появившийся на ружейных рынках, и очень скоро им были вооружены очень многие секьюрити и сотрудники инкассаторских служб.\nВ наше время от былой популярности Maverick 88 не осталось и следа, эта модель была вытеснена с рынка ружьями превосходящими ее по соотношению цена-качество. Поэтому сегодня на вторичном рынке этих ружей довольно много. Не меньше их и в Зоне Отчуждения, более всего пользуются спросом компактные модели с коротким стволом и пистолетной рукояткой, которые можно вместив в рюкзак взять в поход в довесок к основному оружию."</text>
    </string>
    <string id=""Боеприпасы:\n•5,45x39 7H6\n•5,45x39 7H22\n \nАпгрейды:\n•Подствольный гранатомет ГП-25\n \nРежим стрельбы:\n•одиночный\n•автоматический\n \nТемп стрельбы:\n•850 выстрелов в минуту\n \nЕмкость магазина:\n•45 патронов\n \nАКС-74 из тайника сталкера Стрелка кустарной модернизации. Изменения коснулись затворной рамы: с внутренней стороны высверлены четыре углубления, в них помещены четыре фрагмента неизвестных артефактов гравитационной природы, что интересно что они входят в резонанс и создают антигравитационный эффект для объекта с которым соприкасаются. То есть затворная рама стала очень легкой, практически невесомой, что в свою очередь повлекло за собой изменение газоотводной системы: часть газоотводной трубки занимает газовый регулятор, перед газоотводным коленом расположен трех позиционный переключатель. Все это в комплексе позволило отрегулировать точное достаточное количество пороховых газов для движения облегченной затворной рамы, масса которой теперь не влияет на стабильность и управление оружием даже при интенсивной стрельбе длинными очередями. Установлена менее жесткая возвратная пружина для надежного срабатывания цикла автоматики. Установлена стальная вентилируемая ствольная накладка для быстрого рассеивания остаточных пороховых газов которые под ней сбрасываются. \n \n Однако в системе есть и минусы: значительно возрос темп стрельбы из-за чего оружие и газоотвод быстро забиваются нагаром в следствии использования не качественных боеприпасов (дтк уже пригорел, не свинчивается). Так же не надежный элемент это закапсулированные артефакты в затворной раме: срок их действия неизвестен, не остановится ли система в не подходящий момент остается под вопросом..."">
        <text>"Боеприпасы:\n•5,45x39\n•5,45x39 БП\n \nАпгрейды:\n•Подствольный гранатомет ГП-25\n \nРежим стрельбы:\n•одиночный\n•автоматический\n \nТемп стрельбы:\n•850 выстрелов в минуту\n \nЕмкость магазина:\n•45 патронов\n \nАКС-74 из тайника сталкера Стрелка кустарной модернизации. Изменения коснулись затворной рамы: с внутренней стороны высверлены четыре углубления, в них помещены четыре фрагмента неизвестных артефактов гравитационной природы, что интересно что они входят в резонанс и создают антигравитационный эффект для объекта с которым соприкасаются. То есть затворная рама стала очень легкой, практически невесомой, что в свою очередь повлекло за собой изменение газоотводной системы: часть газоотводной трубки занимает газовый регулятор, перед газоотводным коленом расположен трех позиционный переключатель. Все это в комплексе позволило отрегулировать точное достаточное количество пороховых газов для движения облегченной затворной рамы, масса которой теперь не влияет на стабильность и управление оружием даже при интенсивной стрельбе длинными очередями. Установлена менее жесткая возвратная пружина для надежного срабатывания цикла автоматики. Установлена стальная вентилируемая ствольная накладка для быстрого рассеивания остаточных пороховых газов которые под ней сбрасываются. \n \n Однако в системе есть и минусы: значительно возрос темп стрельбы из-за чего оружие и газоотвод быстро забиваются нагаром в следствии использования не качественных боеприпасов (дтк уже пригорел, не свинчивается). Так же не надежный элемент это закапсулированные артефакты в затворной раме: срок их действия неизвестен, не остановится ли система в не подходящий момент остается под вопросом..."</text>
    </string>
    <string id="binocular">
        <text>Бинокль</text>
    </string>

 

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

Очередной вопрос.
Имеем стандартную функцию оригинала ТЧ по нанесению хита по обжекту

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



function hit_obj(actor, npc, p)
    local h = hit()
    local obj = level_object_by_sid(p[1])
    local sid = nil

    if not obj then
--        abort("HIT_OBJ [%s]. Target object does not exist", npc:name())
        return
    end

    h:bone(p[2])
    h.power = p[3]
    h.impulse = p[4]

    if p[5] then
        sid = tonumber(p[5])
        if sid then
            sid = level_object_by_sid(sid)
            if sid then
                h.direction = vector():sub(sid:position(), obj:position())
            end
        end
        if not sid then
            h.direction = vector():sub(patrol(p[5]):point(0), obj:position())
        end
    else
        h.direction = vector():sub(npc:position(), obj:position())
    end

    h.draftsman = sid or npc
    h.type = hit.wound
    obj:hit(h)
end

 

В оригинале параметры в неё передаются через рестр, например по бочкам на дороге к Выжигателю, которые падают с горы на ГГ.

Как не используя логику рестра и передачу параметров вбить туда свои данные напрямую, чтобы вызвать функцию например из диалога.
Пробовал сделать вот так (обжект прописан в оллспавне и имеет свой сид. Тип хита - выстрел)

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



function hit_mon()
  local h = hit()
  local obj = level_object_by_sid(14200)
  local sid = nil

  if not obj then
--    abort("HIT_OBJ [%s]. Target object does not exist", npc:name())
    return
  end

  h:bone("link")
  h.power = 1
  h.impulse = 1500

  if p[5] then
      sid = tonumber(p[5])
      if sid then
          sid = level_object_by_sid(14200)
          if sid then
              h.direction = vector():sub(sid:position(), obj:position())
          end
      end
      if not sid then
          h.direction = vector():sub(patrol(p[5]):point(0), obj:position())
      end
  else
      h.direction = vector():sub(npc:position(), obj:position())
  end

  h.draftsman = sid or npc
  h.type = hit.wound
  obj:hit(h)
end

 

Но ничего не происходит и лог ругается на строку

h.direction = vector():sub(npc:position(), obj:position())

пишет что  - _attempt_to_index_global_'npc'_(a_nil_value)

Может быть есть иные функции с прямыми параметрами, чтобы разрушить итем с СИДом ? Или чего-то не хватает в стандартной функции ?

Спасибо.

"Кругом зомби.....у меня кончаются патроны...."

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

@BFG , npc в этой строчке - это объект, из логики которого вызывается функция - его позиция используется для задания направления хита. Еще в функции для этого может быть использован любой другой объект со story_id, либо путь - параметр p[5]. Если направление не важно, то тут можно поставить пустой вектор.

function hit_mon()

  local h = hit()

  local obj = level_object_by_sid(14200)

 

  if not obj then return end

 

  h:bone("link")

  h.power = 1

  h.impulse = 1500

  h.direction = vector():set(0,0,0)

  h.draftsman = obj  -- тут объект, от которого прилетело, можно поставить актера или, лучше, самого себя, если не имеет значения

  h.type = hit.wound

  obj:hit(h)

end



  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

@naxac Попробовал. Вроде и сработала функция, но итем не разрушился. Возможно маловаты значения мощности и импульса, тогда какие цифры ставить.

Хочу разрушить стандартный монолитовский генератор, в которые мы стреляем в бункере где О-Сознанец. Такие цилиндры с синими партиклами.

a7b395a5468cb4fe2362076022be8a96b2cda929

У него в модели путь к разрушению config\models\objects\monolith_generator.ltx

Там прописано fire_wound_immunity      = 0.15

Может у меня цифирьки маловаты выставлены для такой пулестойкости ? Не взрывается он...собака такая..

"Кругом зомби.....у меня кончаются патроны...."

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

@BFG , надо силу хита увеличить, единицы, видимо, мало.

Изменено пользователем naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

@naxac Нет, увы не разрушается зараза. Поставил уже

h.power = 10000 и ничего не происходит.

А 4 пульки из ПКМа спокойно грохают его. Может что не так с функцией ?

"Кругом зомби.....у меня кончаются патроны...."

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

h.type = hit.wound

Может тип хита поменять на:

h.type = hit.fire_wound

?

Изменено пользователем abramcumner
  • Спасибо 1
  • Согласен 3
Ссылка на комментарий

@abramcumner Да, так и есть. Андрей (Charsi) уже в скайпе подсказал такой же тип хита. Щас всё работает прекрасно. Монолитовский генератор взорвался.

Текущая функция если кому пригодится по нанесению хита на итем с СИДом:

function hit_mon()
  local h = hit()
  local obj = level_object_by_sid(14200)
  if not obj then return end
  h:bone("link")
  h.power = 10
  h.impulse = 1500
  h.direction = vector():set(0,0,0)
  h.draftsman = obj
  h.type = hit.fire_wound
  obj:hit(h)
end

Всем спасибо кто помогал.

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

"Кругом зомби.....у меня кончаются патроны...."

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

Всем привет. Очень нужна ваша помощь. Подскажите пожалуйста, как прописать звуки дыхания в одетых противогазах(мод Dynamic Hud для ТЧ)? Буду признателен если поможете. Спасибо.

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

@DJ.Orb.Warpal у меня так сделано:

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




local suitfirstrun = "yes"
local breathing_sound
function set_my_suit_hud(hudtype)

	if hudtype == nil then
		local wchud = get_hud():GetCustomStatic(mycurrent_suithud)
		if wchud ~= nil then get_hud():RemoveCustomStatic(mycurrent_suithud) end

--================= звук дыхания ====================
if breathing_sound and breathing_sound:playing() then
		breathing_sound:stop() breathing_sound = nil
end
--================= звук дыхания ====================

		mycurrent_suithud = nil
		suitfirstrun = "yes"
		return
	end
	if hudtype ~= mycurrent_suithud then
		if mycurrent_suithud then
			get_hud():RemoveCustomStatic(mycurrent_suithud)
		end
		if hudtype then
			get_hud():AddCustomStatic(hudtype)
			my.hidden_static()

--================= звук дыхания ====================
if db.actor.power > 0.18 then
		if not (breathing_sound and breathing_sound:playing()) then
			breathing_sound = xr_sound.get_safe_sound_object([[actor\gasmask_idle_]]..math.random(2))
			breathing_sound:play_at_pos(db.actor, vector(), 0, sound_object.s2d + sound_object.looped)
		end
end
--================= звук дыхания ====================

			if string.find(hudtype, wotsuittype) then
				if suitfirstrun == "no" and suit_condition ~= "green" and suit_condition ~= "blue" then
					local snd_obj = sound_object("actor\\gasmask_on_fast")
					if snd_obj then
						snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 9.0)
					end
				end
				if suitfirstrun == "yes" then suitfirstrun = "no" end
			end
		end

	end
	mycurrent_suithud = hudtype
end


 

 

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

Подскажите неофиту, кому не лень, или носом ткните, на ходу без НИ можно менять _way, _look  в all.spawn?

Ссылка на комментарий
22 минуты назад, Купер сказал:

Подскажите неофиту, кому не лень, или носом ткните, на ходу без НИ можно менять _way, _look  в all.spawn?

Можно. Пути читаются при загрузке игры. НИ не нужна.

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

Сталкер - наше всё!

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

Други, напомните. вроде как-то обсуждали, почему например, бандит в куртке держит очередь из АК в живот и не умирает, а солдатик в комбезе с одной пули труп. В каком направлении копать? И если в damages.ltx, то за что отвечают эти коэффициенты:

[body_kurtka_damage]
bip01_pelvis                 = 1.0, 0.15
bip01_spine                  = 1.0, 0.15
bip01_spine1                  = 1.0, 0.15
bip01_spine2                  = 1.0, 0.15

 

Еще бы неплохо знать, какая косточка как называется. Может, есть где такая инфа?

 

upd: названия косточек нашел. И вроде чем выше второй коэффициент, тем сложнее убить НПС. Так ли это и каково его максимальное значение? Единица?

Изменено пользователем AndrewMor

Сталкер - наше всё!

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

@AndrewMor я все время забываю подробности, но попробую вспомнить. Второй параметр - это не коэффициент. Это величина хита, от которого защищена эта кость. Моб получит наибольший хит из следующих вариантов: hit_fraction * хит или хит минус эта величина. Что окажется больше. И не нужно забывать о иммунитетах в секции моба. Как иммунитетах по костям, так и по типу хита. А ещё health_ hit_part или как там его. А ещё скорость восстановления здоровья.

  • Спасибо 1
Ссылка на комментарий
2 часа назад, dsh сказал:

Второй параметр - это не коэффициент.

Но в общем и целом увеличение второго параметра делает конкретную кость менее чувствительнее к хиту, так?

 

И еще вопрос к знающим. Как могло на конкретной локации получиться два солнца? Понимаю, что в секции погоды нужно копать, а все-таки? Или еще какие конфиги задействованы?  Параметр sun_dir в погодном конфиге такой, как и у дефолтной. Но в дефолтной погоде второго солнца не наблюдается.

Изменено пользователем AndrewMor

Сталкер - наше всё!

Ссылка на комментарий
2 hours ago, AndrewMor said:

увеличение второго параметра делает конкретную кость менее чувствительнее к хиту, так?

Да, увеличение этого параметра увеличивает защиту этой кости.

 

  • Спасибо 1
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

AMK-Team.ru

×
×
  • Создать...