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

OGSM CS 1.8 CE Fixes

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

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

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

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Багфикс

 

Файл \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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
12.06.2021 в 00:35, hetrikWHY сказал(а):

Багфикс

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

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

le3CXc4.png

WkiC6NB.png

4IkrgtF.jpg

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
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


 

 

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
14.06.2021 в 17:42, hetrikWHY сказал(а):

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

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

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

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

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

le3CXc4.png

WkiC6NB.png

4IkrgtF.jpg

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скомпоновал свои правки

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

 

Скачать сборник фиксов для фиксов к патчу для мода на ЧН

 

Установка:

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

 

Требования:

OGSM CS 1.8 CE Fixes от 15.01.21

 

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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

 

  • Спасибо 1
  • Нравится 2
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

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