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

STALKER CS: Final stroke 0.9


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

24.05.2021 в 10:45, monk сказал(а):

Может и зря всё это и пора уже бросить.

Ненене этож самый нормальный мод не меняющий сюжет оригинала. Ради интереса просто ЧН запускал и все там пусто и просто. Разок пробежаться и все, а тут хоть и тоже уже почти все известно но разнообразия больше. Самое то в моменты ностальгии. Теперь не только по игре а и по детству тоже.. 12 лет уже как ЧН появилась первой игрой вместе с первым компьютером

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

Багфикс

 

Файл \scripts\ogsm.script, function spawn_item_in_inv. Следует поменять math.random(0,1) на math.random()

 

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

math.random(a,b) - выдает целое число (integer) x в диапазоне a<=x<=b

math.random() - выдает вещественное число (real number) от 0 до 1 (типа '0.55766475200653')

 

Смотрим функцию:




function spawn_item_in_inv(spawn_item, npc, p)
    if npc == nil then npc = db.actor end
    if p == nil then p = 1 end
    if math.random(0,1) <= p then
        return alife():create(spawn_item, npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id())
    end
end

Где 'p' это взятый из ogsm_mutants шанс выпадения части

 

На данный момент шанс дропа с любого мутанта, будь то тушкан (0.02) или химера (0.9), равен 50%

Ибо результат рандома может быть только 0 или 1. Какой шанс ни укажи - 0.0000001 или 0.99 - оно либо больше нуля, либо меньше единицы.

 

Скачать фикс (для OGSM CS 1.8 CE Fixes от 15.01.21)

 

Но если наворачивали что-нибудь поверх мода и не уверены, затрагивался ли ogsm.script (а он мог быть перезаписан аддоном 'Разряжание оружия' и бог знает чем еще), лучше открыть ваш файл и поправить самостоятельно, благо удалить 3 символа из скобок и нажать Ctrl+S это не rocket science.

 

спасите я хочу играть в сталкер а не в нотепад++ я даже не настоящий сварщик о горе мне

Изменено пользователем hetrikWHY
  • Спасибо 2
  • Полезно 2
Ссылка на комментарий
12.06.2021 в 00:35, hetrikWHY сказал(а):

Багфикс

Есть к тебе предложение: объединить все правки в один патч-фикс (с соответствующим названием/описанием). Я так или иначе добавлю данный контент в свой сборник, но не хотелось бы чтобы они (правки) просто "растворились" в сотнях других исправлений. Считаю это не совсем справедливым, по отношению к настоящему автору.

Изменено пользователем monk
  • Согласен 3
Ссылка на комментарий
13.06.2021 в 05:23, monk сказал(а):

объединить все правки

Уже есть в планах, скоро выложу

 

А когда планируется выход новой версии?

Можно ли получить бету? Или ченджлог, иметь карту подводных камней чтоб не споткнуться тоже неплохо.

 

P.S.

Мельком поглядел участки с math.random в OGSM и ванилле, на предмет соответствия желаемого действительному.
 

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


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

function action_mgun:check_fire_time()



self.start_delaying_time = time_global() + math.random(-0.2, 0.2)*1000*self.st.fire_time

math.random(-0.2, 0.2) - всегда выдает 0

Следовательно, self.start_delaying_time = time_global() + 0

 

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

function action_go_position:execute ()



local delta_dist = math.random(0,0.5)

math.random(0,0.5) - всегда 0

 

function CKampManager:getDestVertex(npc, radius)



radius = self.position[self.npc[npc_id].position].radius or ( radius + math.random(-0.3,0.3) )  --#SM+#--

math.random(-0.3,0.3) - всегда 0

 

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

function get_dest_vertex(npc, pp, pos_tbl, npc_pos, path_walk)



local radius = 2 + math.random(-0.3,0.3)

math.random(-0.3,0.3) - всегда 0

 

function action_surge_hide_go_position:execute()



local delta_dist = math.random(0.8,0.8)

math.random(0.8,0.8) - всегда 1

И вообще это ооочень странная конструкция, даже если закрыть глаза на нюансы рандома.

Случайное число от 0.8 до 0.8? Мсье знает толк в извращениях!

Причем в оригинале ЧН эта строка выглядит так:



local delta_dist = math.random(0,0.5)

(всегда выдавая 0)

 

Конечно, можно было бы изменить эти конструкции для получения желаемого результата.

Там, где планировался диапазон с точностью до одного знака после запятой, просто меняем


math.random(-0.3,0.3)

на


( math.random(-3,3) / 10 )

 

Но делать я этого не стал по двум причинам

1. У меня недостаточно знаний и опыта в области таких аспектов Сталкера, как логика и позиционирование.

А лезть, плохо представляя даже тестирование изменений, чревато.

2. Есть ненулевой шанс, что есть правки, сделанные учитывая (или несмотря на) некорректные результаты рандома.

Не хотелось бы спасать Ньютона от ушиба упавшим яблоком чтоб оказаться в мире не знающем про гравитацию

 

 

Буду надеяться что мои изыскания пригодятся кому-то, занимавшемуся ковырянием трилогии чуть больше чем полчасика раз в пару дней на протяжении месяца :laugh:

 

 

Ну и собственно результаты теста (под спойлером), из которого видно, что math.random(0.8,0.8) всегда =1, а остальные - всегда =0.

Добыто путем добавления нижеследующих строк в ogsm_marauder.script и последующим расстрелом базы ЧН во имя науки


printff("math.random(0,0.5) = "..math.random(0,0.5))
printff("math.random(-0.3,0.3) = "..math.random(-0.3,0.3))
printff("math.random(0.8,0.8) = "..math.random(0.8,0.8))
printff("math.random(-0.2, 0.2) = "..math.random(-0.2, 0.2))
Скрытый текст

! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0
! Cannot find saved game :>math.random(0,0.5) = 0
! Cannot find saved game :>math.random(-0.3,0.3) = 0
! Cannot find saved game :>math.random(0.8,0.8) = 1
! Cannot find saved game :>math.random(-0.2, 0.2) = 0


 

 

  • Нравится 1
Ссылка на комментарий
14.06.2021 в 17:42, hetrikWHY сказал(а):

когда планируется выход новой версии?

По времени не могу сказать. Надо ещё кое-что доделать. Да и со свободным временем не очень.

14.06.2021 в 17:42, hetrikWHY сказал(а):

Можно ли получить бету?

Можно. Но быстро ты её врят ли получишь (писал выше).

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

Добрый день!

Столкнулся с проблемой вылетов практически в самом начале игры. Вылет на вылете. Установлено ЧН (Дистрибутив нормальный рабочий)+OGSM CS 1.8 CE Fixes от 15.01.21 + OCD Fixes Compilation 1.0.

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

Благодарю заранее.

Изменено пользователем elrik
Орфография
Ссылка на комментарий

Привет @elrik 

Я конечно не эксперт, и логи поглядел очень бегло.

Но меня крайне смутило "Invalid weather name" в каком-то из них. По моему разумению, при корректной установке чистого мода подобное никак не может появиться.

 

От себя порекомендую:

  • Убедиться что стоит ЧН 1.5.10
  • Скачать мод отсюда (строка "Сборник обновлён 24.01.2021 Ссылка:"), если был взят из другого места
  • Перед установкой полностью удалить папку gamedata
  • Не ставить ничего из идущей с модом папки Дополнительные файлы (как минимум два, авторазряжалка и погода, битые)
  • Мою компиляцию можешь ставить. Перепроверил ещё раз, там те самые фиксы, с которыми я начал новую игру не так давно и пока не поймал ни одного вылета

И ещё, при первом прохождении у меня был стабильный вылет при начале новой игры если скипать катсцены. Может дело в моем стареньком компе и не всё успевало прогрузиться, но факт есть факт.

 

P.S.

Рабочую погоду можно взять там же где и мод ("Выкладываю доп. материал Погода из мода DZM_v1.0_rc1 для OGSM CS 1.8 CE Fixes")

Изменено пользователем hetrikWHY
Ссылка на комментарий
5 часов назад, hetrikWHY сказал(а):

Привет @elrik 

Я конечно не эксперт, и логи поглядел очень бегло.

Но меня крайне смутило "Invalid weather name" в каком-то из них.

@hetrikWHY  приветствую!

1. Стоит версия 1.5.10

2. Мод скачан именно оттуда.

3. Папки gamedata после установки не было. 

4. Из папки Дополнительные файлы установил только курсоры.

5. ОК.

Катсцены не пропускаю.

 

P.S. Погоду ставил именно эту (Погода из мода DZM_v1.0_rc1 для OGSM CS 1.8 CE Fixes)

Изменено пользователем elrik
Ссылка на комментарий
23.06.2021 в 22:23, elrik сказал(а):

Столкнулся с проблемой вылетов практически в самом начале игры. Вылет на вылете.

Это не типично для моего сборника. Сам посуди, ты написал, что столкнулся с вылетами прямо в начале игры. Если бы это было так, то вся тема и здесь и на ap-pro пестрела бы такими постами, но этого нет. Вывод, ищи проблему у себя. В крайнем случае, установи сборник без погоды.

Изменено пользователем monk
Ссылка на комментарий
2 минуты назад, monk сказал(а):

Это не типично для моего сборника. Сам посуди, ты написал, что столкнулся с вылетами прямо в начале игры. Если бы это было так, то вся тема и здесь и на ap-pro пестрела бы такими постами, но этого нет. Вывод, ищи проблему у себя. В крайнем случае, установи сборник без погоды.

Ясно. Ну спасибо и на том.

Добавлено  Опричник,

Правила форума, п. 2.6 (оверквотинг)

Сутки чтения.

Изучите правила цитирования (здесь).

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

Апдейт

Скриншоты новых опций в архиве.

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

 

Скачать

 

Установка:

Распаковать в gamedata

 

Требования:

OGSM CS 1.8 CE Fixes от 15.01.21

 

Список изменений:

 

--------- 1.1 (от 28.06.21) ---------

Исправлена редкая ситуация, когда стоимость ремонта уже выросла, а индикатор сломанного оружия еще отсутствует.

 

Добавлена опция показа состояния вещи в окне ремонта. Включается в ocd_options.script.

 

Добавлена опция привязки индикатора сломанного оружия от абстрактных величин к геймплейным: торговцы перестают покупать и удорожание ремонта из-за износа. Плюс индикатор для носимого костюма. Настраивается в ocd_options.script.


--------- 1.0 (от 16.06.21) ---------

Исправлено описание эффекта апгрейдов аномальной защиты, защищённости и прочности у всех костюмов. Ранее показатели не имели ничего общего с реальностью.

 

Добавлено численное описание эффекта у апгрейда пси-защиты.

 

Исправлен параметр прочности апгрейда «Двухслойный бронежилет» у броников «ПСЗ-9д», «ЧН-2», «Облегчённый комбинезон наемников».

 

Исправлены ошибочные иконки апгрейдов у «ПСЗ-9д».

 

Скорректировано положение АПС при прицеливании на квадратных мониторах (5:4).

 

Добавлена овощная смесь в ассортимент барменов.

 

Исправлено выпадение частей монстров. Ранее было 50% для всех; прописанные каждому монстру вероятности игнорировались из-за ошибки в скрипте.

 

Исправлен менеджер случайных заданий «принести артефакт» у Каланчи/Сахарова: «принести Снежинку» не выдавалось; условие «имеется детектор уровня Х или выше» частично игнорировалось.

 

 

 

 

UPD: вместо "Распаковать в gamedata": "Распаковать, папку gamedata закинуть в папку с игрой"

Изменено пользователем hetrikWHY
  • Нравится 3
  • Полезно 1
Ссылка на комментарий

Небольшое объявление.

Погиб хард (третий раз как) практически со всеми материалами по СТАЛКЕРу. Накрылись и все последние наработки вместе с рабочей сборкой/билдом. Кое-что осталось, возможно подсоберу и выложу последнюю версию сборки (не тестировалась). По времени как это будет выглядеть не скажу когда, не знаю. Может, уже и не будет ничего.

Изменено пользователем monk
  • Сочувствую 6
Ссылка на комментарий

@monk , ну бекапы в облака же!

Эх, хотелось бы хотя бы то, что удастся восстановить.

Изменено пользователем Купер
  • Спасибо 1
  • Согласен 1
Ссылка на комментарий
3 минуты назад, Купер сказал(а):

ну облака же!

Вот благодаря им и осталось то, из чего можно собрать очередной сборник. Погибло где-то 70% всего, что было по СТАЛКЕРу, часть инфы сохранилось. Буду сидеть, ковырять и пить с горя.

А самое смешное - случилось прямо в день рождения. Мда, у Судьбы странный юмор :)

Изменено пользователем monk
Ссылка на комментарий
1 час назад, monk сказал(а):

Погибло где-то 70% всего, что было по СТАЛКЕРу, часть инфы сохранилось.

Жаль. Если надо чего по Сталкеру, обращайся есть много всякого, особенно по ЧН.

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

@Kirgudu 

В function MutantManager:on_death(param), проверки

        if string.find(sect, "crow") then

и

        elseif string.find(sect, "phantom") then

ничего не делают, т.к. они отдельных классов и их смерть не триггерит death_callback из bind_monster.

 

Хочу их убрать, но там ещё коммент 'Порядок проверки не менять!'.

Подумал, может сам факт наличия этих проверок нужен для ogsm_notepad? Я в нём пока не особо разобрался.

Изменено пользователем hetrikWHY
Ссылка на комментарий

@hetrikWHY фраза "порядок проверки не менять" там рассчитана скорее на полных новичков, и её вполне можно заменить на "менять с умом". Позже или завтра (по возможности), если надо, распишу, что имелось в виду, а пока это сложно - я с мобильного.

Кстати, вопрос этот относится к "ковырянию", которое в теме не слишком приветствуется, так что если уважаемый автор будет против, придётся переместиться в личку. 

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

@Kirgudu 

Если переместить проверку на какой-нибудь dog выше - до остального, содержащего сочетание dog, не дойдёт.

Других нюансов нет?

 

Про ковыряния уже уяснил. Позицию автора вполне понимаю и в чём-то разделяю

 

Правки баланса и прочую вкусовщину, выходящую за рамки предназначения мода, я стараюсь больше не упоминать и тем более не выкладываю.

А улучшения, исправления и всякие мелкие оптимизации пихаю в компиляцию. Жаль, времени свободного почти нет :happy:

Пока даже не всё старое скомпоновал, а уже новое появляется по мере изучения кода и языка.

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

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

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

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

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

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

Войти

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

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

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

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