狙击步枪拾取修复
在高尔夫俱乐部金属探测器处拾取武器时,我想很多人都会问自己——我的狙击步枪到底去哪儿了? 许多人认为金属探测器根本无法给我们取回这种类型的武器,但事实并非如此:步枪拾取是创建的,但它所在的位置,我们不仅无法拿到,甚至都看不到——在建筑物内。
稍微研究了一下这个问题后,我得出的结论是,拾取的错误坐标并非偶然——如果第三排应该有三个拾取,第三个拾取就会位于狙击步枪错误放置的位置。但是,正如我们已经知道的那样,在这种情况下,三排是不可接受的,并且根据拾取的位置逻辑(每排2个拾取的蛇形排列),可以毫无疑问地确定狙击步枪的拾取位置在下一排,紧接在重型武器的拾取之后。
在理解了上述内容并确定了所有必要的坐标后,剩下的就是将其付诸实践,而且在这里不需要重新发明轮子:早在2017年,spaceeinstein就制作了 脚本,该脚本通过内存中的坐标找到古巴人的服装拾取,并在必要时将其移动到正确的坐标,将新值写入内存。spaceeinstein发布的脚本源代码非常有用:我所要做的就是输入狙击步枪拾取的正确坐标,并稍微更改拾取类型确定方法。我要对spaceeinstein表示衷心的感谢,感谢他提供的脚本和发布的源代码——这次修复在很大程度上要归功于他。
修复特点:
- 不会删除或创建任何拾取——脚本只会在游戏已经创建狙击步枪拾取的情况下移动它;
- 金属探测器的拾取坐标中清楚地显示了一个算术序列,因此狙击步枪拾取不是“凭空”移动,而是准确地移动到它应该在的位置;
- 已在游戏版本1.0和1.1上测试了其性能。
安装: 将文件sniperpickupfix.cs移动到游戏文件夹中的CLEO文件夹(当然需要安装CLEO)。
就这样了,祝大家游戏愉快!
Собирая своё оружие у металлодетектора в гольф клубе думаю многие задавались вопросом — куда, чёрт возьми, подевалась моя снайперская винтовка? Многим казалось, что металлодетектор просто не способен вернуть нам этот тип оружия, но это не так: пикап винтовки создаётся, но там, откуда нам его не то, что не достать, а даже не видно — внутри здания.
Немного изучив вопрос я пришёл к выводу, что ошибочные координаты пикапа неслучайны — если бы в третьем ряду должно было бы быть три пикапа — третий располагался бы именно там, куда по ошибке и расположили снайперскую винтовку. Но, как мы уже знаем, три ряда в данном случае недопустимы, и исходя из логики расположения пикапов (змейка из рядов по 2 пикапа в каждом) можно безошибочно определить, что пикапу снайперской винтовки место в следующем ряду сразу после пикапа тяжелого оружия.
Поняв вышеизложенное и определив все необходимые координаты оставалось лишь реализовать исправление на практике, и изобретать велосипед здесь не пришлось: ещё в 2017 году spaceeinstein делал скрипт, который находит пикап одежды кубинцев по координатам в памяти и при необходимости перемещает его на корректные координаты, записывая в память новые значения. Опубликованный spaceeinstein'ом исходный код скрипта оказался весьма кстати: всё, что мне оставалось сделать — вписать корректные для пикапа снайперской винтовки координаты и немного изменить метод определения типа пикапа. Хочу выразить огромную благодарность spaceeinstein'у как за сам скрипт, так и за опубликованный исходный код — это исправление стало возможным во многом благодаря именно ему.
Особенности исправления:
- Никакие пикапы не удаляются и не создаются — скрипт лишь перемещает пикап снайперской винтовки при условии, что он уже создан игрой;
- В координатах пикапов металлодетектора отчётливо проглядывается арифметическая последовательность, так что пикап снайперской винтовки переносится не "на глаз", а ровно туда, где ему и место;
- Работоспособность проверена на версиях игры 1.0 и 1.1.
Установка: перенесите файл sniperpickupfix.cs в папку CLEO в папке с вашей игрой (требуется установленный CLEO, естественно).
На этом всё, всем приятной игры!