-
Notifications
You must be signed in to change notification settings - Fork 0
Bugs
Вы можете использовать Fixes.inc, чтобы исправить большинство проблем, перечисленных здесь. Карта игры содержит много дыр из-за отсутствующих коллизий и ошибок смещения, используйте MapFix для исправления карты. Самый большой сборник с информацией о причинах крашей: https://www.mixmods.com.br/p/lista-de-crash-e-solucoes.html
- Когда есть гидравлика и вы нажимаете кнопку HORN, чтобы подпрыгнуть, другие слышат ваш автомобильный гудок, а вы - нет.
- Когда ваш предыдущий пассажир садится в машину, затем выходит из нее отсоединившись или изменив позицию, и вы находитесь в зоне рядом с машиной за рулем которой вы едете (та, где у вас был пассажир) внезапно останавливается.
- Если вы умрете в транспортном средстве, вы можете продолжать управлять им, нажимая Shift, пока не возродитесь. Вы единственный, кто видит как он движется, для других он находится на одном месте.
После возрождения иногда это место где вы его вели, иногда - место, где вы умерли в последний раз. - Элементы управления меняются. Например, когда вы заморожены, вы можете использовать другие клавиши для управления меню ( ShowMenuForPlayer ), а при размораживании вы должны использовать другие клавиши. То же самое и с видом спереди в автомобиле, вам придется использовать разные ключи.
- Когда вы умираете в машине, другие игроки видят, что вы появляетесь на крыше своей машины, но вы видите себя в машине с анимацией «Мертвец».
- Когда проезжает поезд, вы увидите дрожащий экран. Иногда, когда вы очень далеко от трасс, тряска все равно возникает.
- При выходе из поезда, камера не сбрасывается должным образом.
- Если вы используете снайперскую винтовку, и сядете в гидру или хантер переключив на «вид спереди», вы получите «Sniper Rifle aim».
- Если у кого-то заперта машина, и вы хотите сесть на его пассажирское сиденье, все, что вам нужно сделать, это нажать G рядом с его машиной, когда он начнет движение. Вас посадят на пассажирское сиденье. Примечание; работает только тогда, когда автомобиль начинает движение и движется быстрее, чем вы можете приблизиться к нему.
- Иногда звуки вашего автомобиля / вертолета портятся, и вы слышите только один тип звука. Например, звуки двигателя автомобиля между переключениями передач различаются, но когда это происходит, слышен только один звук, и это самая высокая передача. Это происходит только у большого количества игроков, независимо от того, находятся они в автомобиле или нет. Может быть так же, когда кто-то из игроков садится в машину.
- Самолет Stunt если вы возродите его или отремонтируете с помощью RepairVehicle , хвостовое колесо пояляется только тогда.
- Если вы выберете отстающего или потерявшего синхронизацию игрока с велосипеда, ваш персонаж заморозит. Вы не можете перемещать ничего, кроме мыши.
- Нажатие G возле движущегося транспортного средства телепортирует игрока прямо на пассажирское сиденье после некоторой задержки. (также называется G-bug )
- Кража автомобиля с пассажирского сиденья второго водителя и нажатие клавиши ПРОБЕЛ при въезде внутрь иногда убивает водителя (это также называется ошибкой ninja-jack bug ).
- Слишком быстрый спавн лодки в воду может вызвать ошибку экрана «Загрузка ...».
- Транспортные средства, которые взорвались и никогда не были заняты водителем, будут взрываться снова и снова для игроков в зоне стрима, до тех пор пока они не будут зареспавлены.
- Движущиеся объекты которые останавливаются на некоторое время, рассинхронизируются для людей которые только что присоединились. Как только они переместятся снова, они синхронизируются с сервером.
- На новом созданном через редактор карт объекте, у игрока может не работать спринт и бег.
- Прикрепленные объекты по-прежнему появляются перед прицелом снайперской винтовки.
- Если вы перепрыгнете с движущегося объекта (во время серфинга по нему) на другой объект, вы перейдете к предыдущему объекту, по которому вы просматривали.
- Если два объекта сталкиваются, то сталкивающиеся части (например, поверхность двух похожих объектов, имеющих одинаковое положение по оси Z) начнут мерцать на расстоянии. (игра не знает, какой из них показывать «над» другим)
- Когда у игрока есть парашют, он может повредить пустующие машины.
- Если один игрок активирует специальный эффект очков (ночного видения / тепловизора), все в зоне стрима увидят его на экране.
- Другие игроки видят, как вы стреляете в себя при приближении и стрельбе из снайперской винтовки.
- Melee оружие (Нож, бензопила, и.т.д) в ближнем бою никому не повредит, если вы находитесь слишком далеко от земли.
- Использование специального действия, такого как SPECIAL_ACTION_SMOKE_CIGGY, при свободном падении с парашютом в слоте для оружия, заставит вас иметь все обычные анимации парашюта, но парашют не будет активным оружием.
- Когда ваше здоровье меньше 5, и вы падаете с велосипеда или он у вас украден, ваше новое здоровье автоматически увеличивается до 5.
- При повторном подключении к серверу когда соединение было потеряно, иногда отображается сообщение о запрете.
- Мошенники, отправляющие недействительные смещения для серфинга, могут быть невидимы для других игроков или вызывать ошибку на экране «Загрузка ...». (Invisible hack)
- Вы можете вставить текст в диалоговое окно ввода, чтобы превысить лимит символов. (игра вылетает)
- Гаражные ворота не синхронизируются.
- Команды RCON "varlist" и "plugins" / "filterscripts" показывают только первый загруженный plugin/filterscript
- Игрок с моб.клиента не получает урон при Drive-By от других игроков
- Отсутствует синхронизация некоторых анимаций движения других игроков (удар, плавать/нырять, спринт/пешком, блок, тормоз/ручной/занос и т.д ) Связано с тем что в мобильной версии заменены многие анимации передвижения персонажа.
- Багнутая синхронизация посадки/выхода из транспорта. Если игрок садится в машину,то у вас это может выглядеть как то что второй игрок остался стоять около машины, хотя на самом деле он сел в нее и катается
- Не отображается игрок, стоящий на крыше транспорта.
- Проблемы со специальным транспортом (поезда, трамваи, RC игрушки)
- Неправильная анимация у пассажира на байке, он сидит на пассажирском месте с той же анимацией, что и за рулем.
- Проблемы с текстовыми объектами, текст сдвигается либо вовсе отсутствует.
- Некоторые функции мобильный клиент игнорирует, например, фары горят только ночью.
- Проблемы с отображением нестандартного маппинга при коннекте к серверу.
- Мобильное приложение не распознает в воде находится персонаж или нет. Из-за этого не работают некоторые функции (например, призыв водного транспорта).
- В мобильной версии возможно сбивать заморозку персонажа. (Unfreeze)
- Плохая прогрузка многих объектов (некоторые видно только почти в упор)
- Функция движения объектов в мобильной версии работает совсем не так, как должна. Вместо плавного движения объекта он начинает быстро и хаотично вращаться во все стороны. (Например лифты, ворота)
- Неккоректное отображение нестандартных текстур. Может отображать слой как вообще прозрачный, или других цветов, совсем не таких, как задано в оригинальном маппинге
- В мобильном сампе видны ники NPC
- Невозможно ходить при прицеливании из двуручного оружия.
- Транспортные средства очень быстро замедляются при отпускании педали акселератора (как если бы они постоянно тормозили). Видео
- Очень сложно (если не невозможно) нырять и плавать под водой.
- Трудности включения / выключения сирены в полицейских машинах.
- Скорость вращения винтов увеличивается и уменьшается очень быстро.
- Некорректная скорость звука набора скорости у транспорта
- Неправильная скорость вращения колес (на машинах NPC с фальшивой физикой).
- Сложность набора скорости в воде, что делает невозможным взлет.
- Машины слишком быстро отлетают при ударе на высоких FPS.
- Разная скорость траты баллончика, огнетушителя, огнемета.
- Разная скорость атаки водой пожарной машины и SWAT.
- Высокая скорость моргания хп и звезд.
- Иногда снайперка не наносит урона.
- Отсутствие эффектов лодок.
- Быстрое распространение огня.
- Медленное перемещение деталей у Dumper/Packer/Dozer/Forklift/ Andromada на num2/num8.
- Проваливание транспорта под колёса.
- Сильное смещение кузова транспорта.
- Дёргание персонажа при перемещении.
- Отсутствие урона при падении с не слишком большой высоты.
Ошибки которые должны учитывать разработчики при написании скриптов.
- SpawnPlayer : убивает игрока, если он находится в транспортном средстве, а затем появляется с бутылкой в руке.
- SetPlayerColor : если используется в OnPlayerConnect , соответствующий игрок не увидит цвет в меню TAB.
- GetPlayerColor : возвращает 0, если не использовался SetPlayerColor .
- SetPlayerName : если вы установите то же имя, но некоторые буквы в другом регистре, это не сработает (например: «heLLO» на «привет»).
- RemovePlayerFromVehicle : показывает анимацию выхода из машины только для удаляемого игрока.
- SetPlayerSpecialAction :
- Удаление реактивных ранцев с игроков путем установки их специального действия на 0 приводит к тому, что звук остается до смерти.
- Анимация специальных действий SPECIAL_ACTION_CUFFED и SPECIAL_ACTION_CARRY не работает на скине ID 0 (CJ). (но скин все равно не может бегать или прыгать, поэтому применяется специальное действие)
- SetPlayerCheckpoint , SetPlayerRaceCheckpoint :
- Если контрольная точка уже установлена, она будет использовать размер этой контрольной точки вместо нового.
- Контрольные точки, созданные на объектах созданных сервером ( CreateObject / CreatePlayerObject ), будут отображаться на «реальной» земле, но по-прежнему будут работать правильно.
- SetPlayerWorldBounds : если вы удерживаете нажатой клавишу прицеливания, вы можете пройти через границы мира.
- IsPlayerInCheckpoint , IsPlayerInRaceCheckpoint : переменная не инициируется, пока не будет установлена контрольная точка, поэтому она возвращает неопределенное значение.
- TogglePlayerSpectating :
- Наблюдение прерывается, если цель покидает зону стрима (телепорт, вход внутрь).
- Игрок будет очень быстро двигаться в небо, если он находится в транспортном средстве.
- SetPlayerSkin :
- Если скин игрока установлен, когда он приседает, находится в транспортном средстве или выполняет определенные анимации, он замораживается или анимация дает сбой.
- Другие игроки вокруг игрока могут крашнуться при смене скина, если он находится в транспортном средстве или если он входит / выходит из транспортного средства.
- Установка скина игрока, когда он мертв, может крашнуть игроков вокруг него.
- Установка скина сбрасывает игрока с байка.
- GetPlayerSkin :
- Возвращает новый скин после вызова SetSpawnInfo, но до того, как игрок фактически возродится, чтобы получить новый скин.
- Возвращает старый скин, если игрок был создан с помощью функции SpawnPlayer .
- GetPlayerWeapon : возвращает старое значение после входа в транспортное средство.
- PutPlayerInVehicle :
- Если это используется для пассажира, водитель старого автомобиля не видит его в своем новом автомобиле.
- Если у игрока есть специальное действие, он будет немедленно удален из машины и специальное действие будет остановлено.
- Если у игрока открыт парашют и его помещают в транспортное средство в той же области, он все равно будет прикреплен к парашюту, а анимация будет воиспроизведена либо сломана.
- Если его посадят в транспортное средство в другой области, он будет немедленно удален из транспортного средства.
- SetPlayerAttachedObject : не удаляет объекты по окончании режима.
- IsPlayerConnected : использует только два младших байта переданного идентификатора.
- Kick : вызов «Kick» в OnPlayerConnect не работает должным образом.
- GetPlayerInterior : всегда возвращает 0 для NPC.
- ApplyAnimation , ApplyActorAnimation :
- Передача неверной библиотеки анимации в ApplyAnimation вызывает краш клиента для игроков в области стрима.
- При первом использовании библиотеки анимации не воиспроизводятся (нужно объявить предвариетльно).
- ClearAnimations :
- Используйте ClearAnimation, когда находитесь в транспортном средстве, чтобы игрок покинул его.
- Ничего не делает, когда анимация заканчивается, если мы передаем 1 для параметра замораживания в ApplyAnimation .
- SetPlayerCameraPos , SetPlayerCameraLookAt : использование функций камеры сразу после включения режима наблюдателя не работает.
- GetPlayerWeaponData : старое оружие без боеприпасов по-прежнему возвращается.
- GetPlayerAmmo : возвращает ошибочные значения больше 32767 и меньше -32768 из-за переполнения.
- GameTextForPlayer , GameTextForAll :
- Некоторые стили не отображаются в течение указанного времени.
- Если последний символ в тексте - это пробел (""), весь текст будет пустым.
- SetPlayerPos , SetPlayerPosFindZ : Используется при прыжках с парашютом, игроки убивают их.
- RemoveBuildingForPlayer : иногда вызывает сбой клиента, если объект уже удален.
- SetPlayerVelocity : не работает при серфинге.
- AddStaticVehicle , AddStaticVehicleEx : создание поезда возвращает только один идентификатор. У каждой перевозки есть свой идентификатор.
- AddStaticVehicle , AddStaticVehicleEx , CreateVehicle : при создании транспортного средства случайного цвета (идентификатор цвета -1) будет выбран случайный цвет, но он не будет синхронизироваться.
- DestroyVehicle : при использовании в OnVehicleDeath может произойти сбой .
- GetVehicleRotationQuat : может возвращать неверные значения для незанятых автомобилей.
- GetVehicleComponentInSlot :
- Не работает для CARMODTYPE_STEREO .
- И передние упоры, и компоненты переднего бампера сохраняются в слоте CARMODTYPE_FRONT_BUMPER . Если в автомобиле установлены оба из них, эта функция вернет только тот, который был установлен последним.
- И задние упоры, и компоненты заднего бампера сохраняются в слоте CARMODTYPE_REAR_BUMPER . Если в автомобиле установлены оба из них, эта функция вернет только тот, который был установлен последним.
- И левая, и правая юбка сохраняются в слоте CARMODTYPE_ShibitedIRT . Если в автомобиле установлены оба из них, эта функция вернет только тот, который был установлен последним.
- RepairVehicle : Не работает с автомобилями Dune и Monster Truck, а может, и больше.
- SetVehicleParamsEx : цель не исчезнет до возрождения, если используется в OnVehicleDeath .
- SetVehicleZAngle : эта функция не работает на незанятых автомобилях.
- SetTimer , SetTimerEx : неточное время сработки.
- SetTimerEx : массивы и строки работают некорректно - они всегда будут передавать только одну строку.
- AllowInteriorWeapons : не работает.
- SetDeathDropAmount : не работает.
- DisableInteriorEnterExits : если режим игры изменен, двери не включаются повторно.
- CreateMenu : вы не можете изменить ширину столбца 2, он просто использует то же, что и столбец 1.
- GetPlayerMenu : возвращает предыдущее меню, если оно не отображается.
- TextDrawCreate , TextDrawSetString :
- Если последний символ в тексте - это пробел (""), весь текст будет пустым.
- Если рисование текста переходит на новую строку (из-за поля), цвет будет сброшен на белый.
- TextDrawColor : требует, чтобы отрисовка текста снова отображалась для внесения изменений.
- TextDrawBackgroundColor : требует, чтобы отрисовка текста снова отображалась для внесения изменений.
- GangZoneCreate : ошибка зон банды на основной карте для игроков под определенными углами относительно них.
- CreatePickup : пикапы, у которых X или Y меньше -4096.0 или больше 4096.0, не будут отображаться и не будут запускать OnPlayerPickUpPickup .
- GetPlayerPoolSize : возвращает «0», даже если на сервере нет игроков.
- GetConsoleVarAsString : сбой, если используется для получения чего-то другого, кроме строки (или недопустимой переменной консоли).
- SetActorFacingAngle , SetActorInvulnerable : игроки увидят изменение угла взгляда актера только тогда, когда он будет передан им заново.
- GetPlayerNetworkStats : может не возвращать точные данные при использовании в OnPlayerDisconnect, если проигрыватель завершил работу нормально. Обычно он возвращает точные данные, если игрок был выгнан или у него истекло время ожидания.
- NetStats_PacketLossPercent : в большинстве случаев возвращаемое значение неверно, обычно оно слишком велико.
- GetServerVarAsString , GetServerVarAsInt , GetServerVarAsBool : сервер дает сбой при использовании переменных другого типа.
- toupper , tolower : Не работает в Linux для символов с кодом 128 и выше.
- GetPVarString , GetSVarString : неверный символьный код для символов с кодом 128 и выше.
- strcmp : возвращает 0, если какая-либо строка пуста.
- valstr : вылетает при больших числах.
- strins : игнорирует параметр "maxlength", вызывающий возможные сбои.
- random : не работает с отрицательными числами.
- sleep : утечка байтов из стека.
- Функции меню: сбой при передаче неверного идентификатора меню.
- Файловые функции: сбой из-за недопустимого дескриптора. (крашит сервер)
- OnPlayerWeaponShot :
- Не вызывается, если стрелок находится в транспортном средстве в качестве водителя.
- Не вызывается, если вы смотрите назад с включенным прицелом (стрельба в воздухе).
- Игроки вокруг стрелка могут потерпеть крах, если будут отправлены неверные данные.
- Он называется BULLET_HIT_TYPE_VEHICLE, если вы стреляете в игрока, который находится в транспортном средстве - Он вообще не будет называться BULLET_HIT_TYPE_PLAYER .
- OnPlayerEnterVehicle : краш сервера при использовании недопустимого транспортного средства.
- OnPlayerExitVehicle : для поездов не используется.
- OnDialogResponse : диалог игрока не скрывается при перезапуске режима игры, в результате чего сервер печатает «Предупреждение: PlayerDialogResponse PlayerId: 0 ID диалога не совпадает с ID последнего отправленного диалога».
- OnPlayerDeath : клиенты застревают когда умирают с примененной анимацией.
- OnVehicleMod : краш других игроков при применении недопустимых модов.
- OnVehicleRespray : не используется для Pay'n'Spray.
- OnPlayerSpawn : списывает с игроков 100 долларов при спавне.
- OnPlayerRequestClass : при выборе класса иногда появляются случайные бутылки.
- OnPlayerEditObject : координаты последнего вызова EDIT_RESPONSE_UPDATE могут не синхронизироваться, поэтому координаты из EDIT_RESPONSE_FINAL могут отличаться.
- OnEnterExitModShop : игроки сталкиваются внутри мастерских если войдут одновременно.
- OnClientCheckResponse : никогда не вызывается через gamemode только через фильтрскрипт.
- OnUnoccupiedVehicleUpdate : Не вызывается для поездов.
- OnTrailerUpdate : Для поездов не вызывается .
- WEAPON_NITESTICK должно быть WEAPON_NIGHTSTICK, WEAPON_MOLTOV должно быть WEAPON_MOLOTOV.
- WEAPON_FIST не определен.
- Нет определения VEHICLE_NAME (например, WEAPON_NAME ).
- SPECIAL_ACTION_PISSING не определен.
- Нативы IsValidVehicle не определен и gpci не определены.
- Многие функции не возвращют результат выполнения и внутренние данные, такие как GetPlayerDialog , GetPlayerWeather , GetVehicleColor , AddServerRule и многие другие.
- Плагин YSF предоставляет множество дополнительных возможностей доступа к внутренней памяти сервера SA-MP и исправления таких недостатков.
- При использовании функции TogglePlayerWidescreen, предоставляемой YSF, клиент отображает раздражающее сообщение журнала . Плагин экспортирует только то, что возможно в SA-MP, поэтому это проблема SA-MP, а не плагина. По какой-то причине эта (полезная) возможность широкоэкранного просмотра была добавлена в SA-MP, но никогда не делалась изначально доступной для серверов.
- weaрon-config + SKY plugin. Игрок может уходить в рассинхрон и перестать получать урон, при этом урон будет наноситься от Melee оружия.
Данная заметка является переводом оригинальной статьи с дополнениями из опыта автора. Источник: https://team.sa-mp.com/wiki/Bugs.html (ENG)
Дамп - это "снимок" процесса, его модулей, содержимого оперативной памяти и многого другого.
Он может помочь мне разобраться в проблеме, возникающей при использовании адаптаций.
Как сделать дамп:
- Требуется воспроизвести проблему, но не закрывать игру.
- Загрузить и запустить Process Explorer от имени администратора.
- Найти в списке процессов gta_sa.exe
- Выбрать ПКМ > Create Dump > Create Full Dump.
- Дамп требуется залить на любой файлообменник (рекомендуется сжать каким-нибудь архиватором) и отправить (с детальной информацией о возникающей проблеме).
Полезные статьи и источники: