Snipergewehr-Pickup-Fix
-
27 Februar 2025ispravlenie-pikapa-snajjperskojj_1740676454_20323.zip
Wenn man seine Waffen am Metalldetektor im Golfclub abholt, fragen sich viele – wo zum Teufel ist mein Scharfschützengewehr geblieben? Vielen schien es, dass der Metalldetektor diesen Waffentyp einfach nicht zurückgeben kann, aber das ist nicht der Fall: Das Aufsammeln des Gewehrs wird erzeugt, aber dort, wo wir es nicht nur nicht erreichen, sondern nicht einmal sehen können – im Gebäude.
Nachdem ich die Frage etwas untersucht hatte, kam ich zu dem Schluss, dass die fehlerhaften Koordinaten des Aufsammelns nicht zufällig sind – wenn es in der dritten Reihe drei Aufsammlungen geben sollte, würde sich die dritte genau dort befinden, wo das Scharfschützengewehr fälschlicherweise platziert wurde. Aber wie wir bereits wissen, sind drei Reihen in diesem Fall unzulässig, und ausgehend von der Logik der Anordnung der Aufsammlungen (Schlange aus Reihen mit je 2 Aufsammlungen) kann man fehlerfrei feststellen, dass der Ort des Aufsammelns des Scharfschützengewehrs in der nächsten Reihe direkt nach dem Aufsammeln der schweren Waffen ist.
Nachdem ich das Obige verstanden und alle notwendigen Koordinaten bestimmt hatte, musste ich die Korrektur nur noch in die Praxis umsetzen, und das Rad musste hier nicht neu erfunden werden: Bereits 2017 erstellte spaceeinstein ein Skript, das das Aufsammeln der Kleidung von Kubanern anhand von Koordinaten im Speicher findet und es bei Bedarf auf die korrekten Koordinaten verschiebt, wobei neue Werte in den Speicher geschrieben werden. Der von spaceeinstein veröffentlichte Quellcode des Skripts erwies sich als sehr nützlich: Alles, was ich tun musste, war, die korrekten Koordinaten für das Aufsammeln des Scharfschützengewehrs einzutragen und die Methode zur Bestimmung des Typs des Aufsammelns leicht zu ändern. Ich möchte spaceeinstein meinen großen Dank aussprechen, sowohl für das Skript selbst als auch für den veröffentlichten Quellcode – diese Korrektur wurde vor allem durch ihn ermöglicht.
Besonderheiten der Korrektur:
- Es werden keine Aufsammlungen gelöscht oder erstellt – das Skript verschiebt nur das Aufsammeln des Scharfschützengewehrs, vorausgesetzt, es wurde bereits vom Spiel erstellt;
- In den Koordinaten der Aufsammlungen des Metalldetektors ist deutlich eine arithmetische Folge zu erkennen, sodass das Aufsammeln des Scharfschützengewehrs nicht "nach Augenmaß" verschoben wird, sondern genau dorthin, wo es hingehört;
- Die Funktionalität wurde auf den Spielversionen 1.0 und 1.1 getestet.
Installation: Verschieben Sie die Datei sniperpickupfix.cs in den CLEO-Ordner im Ordner mit Ihrem Spiel (natürlich ist eine installierte CLEO erforderlich).
Das ist alles, allen viel Spaß beim Spielen!
Собирая своё оружие у металлодетектора в гольф клубе думаю многие задавались вопросом — куда, чёрт возьми, подевалась моя снайперская винтовка? Многим казалось, что металлодетектор просто не способен вернуть нам этот тип оружия, но это не так: пикап винтовки создаётся, но там, откуда нам его не то, что не достать, а даже не видно — внутри здания.
Немного изучив вопрос я пришёл к выводу, что ошибочные координаты пикапа неслучайны — если бы в третьем ряду должно было бы быть три пикапа — третий располагался бы именно там, куда по ошибке и расположили снайперскую винтовку. Но, как мы уже знаем, три ряда в данном случае недопустимы, и исходя из логики расположения пикапов (змейка из рядов по 2 пикапа в каждом) можно безошибочно определить, что пикапу снайперской винтовки место в следующем ряду сразу после пикапа тяжелого оружия.
Поняв вышеизложенное и определив все необходимые координаты оставалось лишь реализовать исправление на практике, и изобретать велосипед здесь не пришлось: ещё в 2017 году spaceeinstein делал скрипт, который находит пикап одежды кубинцев по координатам в памяти и при необходимости перемещает его на корректные координаты, записывая в память новые значения. Опубликованный spaceeinstein'ом исходный код скрипта оказался весьма кстати: всё, что мне оставалось сделать — вписать корректные для пикапа снайперской винтовки координаты и немного изменить метод определения типа пикапа. Хочу выразить огромную благодарность spaceeinstein'у как за сам скрипт, так и за опубликованный исходный код — это исправление стало возможным во многом благодаря именно ему.
Особенности исправления:
- Никакие пикапы не удаляются и не создаются — скрипт лишь перемещает пикап снайперской винтовки при условии, что он уже создан игрой;
- В координатах пикапов металлодетектора отчётливо проглядывается арифметическая последовательность, так что пикап снайперской винтовки переносится не "на глаз", а ровно туда, где ему и место;
- Работоспособность проверена на версиях игры 1.0 и 1.1.
Установка: перенесите файл sniperpickupfix.cs в папку CLEO в папке с вашей игрой (требуется установленный CLEO, естественно).
На этом всё, всем приятной игры!