Так у тебя же дальше проверки нахождения рядом педов стоят. Т.е. если пед не найден - идет возврат на эту метку. И так задержка в 0 секунд рано или поздно может превратиться в огромный промежуток времени, в течении которого модели могут быть выгружены другим скриптом.
Так что повторюсь уже в который раз: подход «у меня не вылетает, значит норм» - это неправильно. У тебя может не вызывать проблем просто из-за стечения обстоятельств. У другого игрока будут другие обстоятельства. Так что нужно всё это предусматривать. И постоянно совершенствовать свои скрипты.
Скорее приснилось, т.к. это базовые правила написания скриптов. Не может быть «if» без «else_jump», ровно как и наоборот. И внутри этой конструкции всегда условные опкоды, а не обычные, командные.
Уже почти найс, но вот тут откуда-то взялся лишний «if and». Там далее лишь одно условие, поэтому должен быть одиночный «if». И, соответственно - после условия не хватает «else_jump». Но вообще - то условия в принципе неправильное и лишнее, так что лучше вообще удалить обе строчки. А чуть выше наоборот расположен лишний «else_jump», воткнутый без причины. Ну и еще совет: загружай модели только когда уже найдешь «убийцу» и готов с ним работать. Потому что иначе снова возникнет неопределенной длины пауза между моментом загрузки модели и моментом, когда убийца будет найден и с ним будешь производить операции (выдавать оружие). А паузы между загрузкой и использованием, как ты помнишь - это риск того, что за это время модель может выгрузиться каким-нибудь другим скриптом. Так что лучше планировать скрипт так, чтобы вообще не делать пауз между загрузкой модели и её использованием.
Не смотря на трудности в этом году, постарайтесь вспомнить хотя бы 10 вещей, произошедших в 2020, за которые вы благодарны. Проверенный буддистский способ помогает отвлечься, если негатива слишком много.
Люди тут пишут разные предположения, с которыми я в разной степени согласен, но не стоит совсем уж отрицать действительную возможную связь этих файлов с GTA 6.
Игра вполне могла быть в разработке на момент выхода RDR2. Параллельная разработка - очень распространенная вещь в больших студиях. Далеко со всякими TLOU2 и Cyberpunk 2077 ходить не нужно - та же RDR2 начала разрабатываться сразу после первой RDR, т.е. параллельно с GTA5, и вполне возможно, что параллельно с GTA 6. Что до остаточных файлов или кода в билдах разных игр одной студии на одном движке - тоже дело не новое. Опять же - далеко ходить не надо: в Max Payne 3 было столько «остаточного хлама» от GTA, что модмейкеры до сих пор устраивают там локальную вакханалию.
Поэтому я не понимаю тех, кто на полном серьезе относится к новости скептически (рофл одобряю).
Очень странное решение - спавнить грабителей на пассажирские места машины, которую они хотят ограбить, но ладно. Основная проблема, которая пока остается в твоих скриптах - ты загружаешь модели, а потом ждешь кучу времени, прежде чем их заспавнить, и даже не проверяешь, загружены ли они в этот момент. За эти 30 секунд какой-нибудь другой стандартный или кастомный скрипт может случайно выгрузить эти модели. Нужно загружать/проверять модели непосредственно перед спавном, а не за кучу времени до этого.
Чел, указывай в авторах тот же никнейм, что и у твоего профиля тут, с учетом регистра букв. Пока это единственный способ попадания в «авторские». Позднее обещали добавить галочку «Я автор».
Баг, который даже после изменения проверяющим графы автора не отображает мод в списке авторских. На данный момент на сайте работает не совсем удачная система, из-за которой мод попадает в «авторские» только если в списке авторов есть никнейм загрузившего. Это не супер вариант. Администрация говорила, что добавление галочки «Я автор» при загрузке файла - в планах, но до тех пор нужно учитывать эту особенность.
Мод прикольный, но не получил должного внимания из-за того, что в списке авторов не было твоего ника, используемого на сайте. Тебе нужно либо поменять ник на сайте, либо в авторах указывать текущий, чтобы моды попадали в «авторские» и получали больше внимания.
Вау! Реально круто и продуманно! Только видимо из-за бага не попало в «авторские моды». Указывай в авторах тот же никнейм, что и у твоего профиля тут. Пока проблему не починят - это единственный способ попадания в «авторские».
При компиляции твоим глобальным переменным перезадается ID, начиная с начала. Т.е. ты этим начинаешь влиять на глобальные переменные мэйна, вот и всё. А отсюда - баги и проблемы в будущем. Но самое страшное - эти проблемы сохранятся в сэйв-файле, т.к. все глобальные переменные там сохраняются. Т.е. и после удаления твоего скрипта у людей останутся эти проблемы, если они успели сделать сохранение с твоим скриптом. Вот поэтому все и «боятся» глобальных переменных в CLEO.
Есть кстати более простая миссия с вертолетиком в аэропорте. Можно начать с неё и как раз потренировать нервишки игроков Хотя... в той миссии у людей была загвоздка лишь из-за неудобной раскладки клавиатуры (не все сразу догадывались, как её поменять), а в GTA IV по-дефолту уже норм раскладка.
Ну хоть какая-то аргументация, уже радует. Но придирки, конечно, такие себе... ой, оказалось, тут она всего одна!
Работа со звуком в нем просто «вау» - единственная, я так понял, претензия? Ну, нет идеальных вещей, тем более, если мы говорим о работах, сделанных по фану, а не за большие студийные деньги. Автор выжал из своих возможностей максимум.
Но из-за не совсем идеального звука писать «кал»? Детский сад какой-то. Для закадровой озвучки тут вполне хорошее качество. Плюс, в довесок идет адекватный перевод. Я уже писал выше, откуда «восторжения». Если лично тебя не интересует закадровая озвучка - проходи мимо, не воняй. Ибо подобные комментарии и есть кал.
Сори за поздний ответ - система комментов не очень удобная. В общем, как и сказано в видео - шанс выпуска полной версии крайне низкий, т.к. изначально это было частью глобального мода Lost City и затачивалось строго под него. Потом тот мод помер по естественным причинам (не отражал моих актуальных возможностей и амбиций) и та система стрельбы вместе с ним. НО! 1) Похожий мод делал ThirteenAG, вроде это последняя версия. Это не совсем то, что планировал сделать я, но тоже вполне неплохо для тех лет. 2) Я работаю над новой анимационной системой для своего большого проекта, где будет нормальная современная система передвижения и взаимодействия с оружием (я надеюсь, что всё получится). Так что еще есть шанс каких-то релизов в этом направлении от меня, но не обещаю (возможно, по итогу также получится неделимая вещь, которую нельзя будет адекватно отрезать от мода - пока не знаю, как что выйдет).
Ты в курсе, что такое закадровая озвучка и чем она отличается от дубляжа? И для чего она нужна? Если тебе не нужно - вот и говори за себя, а эта озвучка на данный момент является лучшей из существующих в реальном мире, а не фантазиях интернет-эстетов. И о каких «интересных идеях» идет речь? Пример можно? По-моему, попытка сделать нормальную двухголосую закадровую озвучку с какой-никакой, но эмоциональностью (не выдумывай, что её тут нет) и нормальным переводом - это уже интересная идея, отсюда упомянутый тобой ажиотаж. Если считаешь, что это неоригинально, «вторично» и «посредственно» - примеры лучшей озвучки в студию.
С оригинальной английской, конечно, мало что может сравниться, но говоря, что эта русская озвучка «кал», ты можешь уточнить, в чем заключается этот «кал»? Или показать пример, где «не кал»? Или это трёп в пустоту?
Пиши в авторах пока просто «egor230», т.к. система пока неидеально отслеживает авторские файлы, и текущее «Егор Щербанов (egor230)» она не связывает с твоим ником, в результате чего не записывает файл в список авторских. И многие люди, фильтрующие только авторские файлы, упускают работу.
Рокстары раньше «поддерживали» комьюнити путем шаринга инфой (с теми же разрабами МТА, например), а также всякими публикациями. По GTA III Rage уже не нашел - много воды утекло (но можешь у олдов спросить, я думаю, хотя бы часть из них помнит тот случай), но нашел статью по порту карты GTA 1 на Rage. Про GTA 3 Rage была похожая. Иногда отмечали даже чисто фановые проекты. А вот Take2 на это всё пофиг. Касаемо порта GTA SA на UE4 - опять же: сложно сказать наверняка, не зная ситуацию изнутри, но, возможно, это как-то связано с лицензией UE4, которая создает конфликты прав. Всё-таки, это вам не перекидывать карты внутри проектов одной компании. Плюс, UE4 - это конкурент. Нельзя допустить, чтобы что-то из мира GTA на нем выглядело лучше, чем на движках Take2 (фаны ранее портировали карту SA на Rage, и Take2 на это было пофиг).
Рокстарам пофиг на конверты, особенно со старых RW-ГТА. А иногда они даже поддерживают это, как было с GTA III Rage.
А вот Take2, «мамка» Рокстаров, заботится лишь о прибыли. И для этой прибыли некоторые конверты опасны. Поэтому и блочили порт «Liberty City in GTA V», а также порт карты RDR на ту же GTA 5. Точно сказать сложно, не зная наверняка ситуацию «изнутри», но, возможно, Take2 не хотели, чтобы те моды как-то повлияли на продажи переиздания GTA4 и выход RDR2. Плюс, те порты были на GTA 5, а для неё Take2 пока имеет свои планы (вот сейчас целый остров в Онлайн добавят).
В случае же с Vice City 2, мы говорим о не последней части GTA 4, на которую портируют карту из еще более старой части ГТА. И даже если действие GTA 6 будет происходить в Vice City - вряд ли такой расклад будет хоть как то влиять на её продажи.
Особо критичного ничего нет, но обрати внимание на следующие моменты: 1) Не нужно писать «if and» перед опкодами загрузки/выгрузки моделей. Это не условия, тут не нужно писать «if». Эта лишняя конструкция в другой раз может привести к ошибке. 2) Не нужно писать «else_jump» после НеУсловных опкодов, по типу получения рандомного числа. Это не условие, поэтому тут не нужно писать «else_jump». Эта лишняя конструкция в другой раз может привести к ошибке. 3) Изучай туториалы по потокам. Сейчас у тебя получается, что ты загружаешь модели, ждешь долгое время, создаешь одного актера, ждешь какое-то время, создаешь другого, потом снова ждешь, снова создаешь другого и т.д. и в самом конце, после всех созданных актеров, ты выгружаешь модели. И сразу же загружаешь их снова, т.к. скрипт перезапускается. Если у тебя на постоянной основе нужны модели - не выгружай их, а лишь проверяй их загруженность в памяти игры (опкод 0248), и если какая-то модель недоступна - загружай её снова, а выгружать нет смысла. Текущий скрипт может выдать ошибку, если будет взаимодействовать с каким-нибудь другим скриптом или миссией, где происходит загрузка и выгрузка одной из заюзанных тобой моделей, т.к. ты делаешь огромные паузы и не проверяешь в процессе загруженность моделей.
Я не об этом. Совет про «удали скрипт» - это уже наглядный пример того, как подобные ошибки в скриптах негативно влияют на игру в долгосрочной перспективе. Что сохранения уже безвозвратно сломаны. А без удаления скрипта будет то же самое, а в некоторых случаях даже хуже.
Критичных ошибок нет, но кое-что замечу на будущее: 1) «многопоточность» можно конечно сократить, т.к. многое в метках повторяется (можно производить «прыжок» на метку, которая будет общей для всех). 2) Освобождение памяти в конце скрипта (в случае смерти игрока или актера) не нужно, т.к. ты все равно всех актеров записывал в одну и ту же переменную 4@, да и опкод поиска рандомного актера не ставит метку «неудаления», а значит актер и так сам удалится при отдалении от него или в случае смерти. 3) Загрузки модели оружия перед выдачей тоже нет, к слову. Не критично, но порой тоже может добавить проблем. 4) Про НеУсловные опкоды (в данном случае - 04C4) в центре блока условий - уже писал ранее. https://i.gyazo.com/0707804ce20f01643193720451767655.png В блоке условий должны быть только условные опкоды (опкоды, которые проверяют что либо, а не выполняют какие-то действия)
У меня нет цели как-то испортить тебе настроение или отвадить других скачивать твои моды. Наоборот. На мой взгляд, чем раньше ты начнешь избегать базовых ошибок, тем меньше шансов, что у людей твои работы будут ассоциироваться с чем-то некачественным или даже опасным. Ну и самому тебе скриптинг будет приносить больше кайфа
Люди потом ставят какие-нибудь другие моды, получают вылеты и обвиняют в них эти другие моды. Или в принципе не понимают, откуда эти вылеты и прочие проблемы возникают, т.к. проблема реально коварная и трудно предсказуемая. Если не веришь мне - проведи сам эксперимент. Создай пикап и сохрани игру. Удали скрипт. Загрузи это сохранение. Пикап останется на том месте. Ну и чисто логически - ты же понимаешь, что место в файле сохранения - не резиновое, в определенный момент наступит превышение лимита. А что будет дальше - вылеты или другие ошибки - предсказать уже сложно. Но они обязательно будут, в игре практически нет защиты от подобных ошибок. Некоторые люди вообще создают вирусы, основанные на проблеме отсутствия защиты от подобных ошибок, это большая проблема игры. Я не пишу под каждым твоим скриптом, заметь. Я понимаю, что никто сразу не становится профессиональным скриптером. Даже я, за 12 лет изучения скриптинга, периодически открываю для себя что-то новое. Проблема в том, что Rockstar не предоставили нам, модмейкерам, полной документации, из-за чего мы изучаем игру самостоятельно уже долгие годы. Но многого мы еще не знаем. Вот почему важно соблюдать хотя бы те нюансы, которые уже известны. Потому что ошибки всё равно будут. Но так их будет хотя бы меньше.
На сайте реально не хватает галочки «я автор». Мод загрузил аккаунт egor230, а в «авторе» стоит Егор Щербанов, из-за чего сайт не оценивает этот файл, как «авторский», и он получает меньше внимания со стороны пользователей.
А тут скрипт без радиусов. Просто типы пикапов - неудаляемые, они все будут сохраняться в сейв-файл. И если, в случае с бесплатными, тип пикапа можно заменить на какой-нибудь 4 или 5, то для платных альтернативы нет. Разве что писать более сложный скрипт, который сам будет удалять всё. Ну и да - чекать радиусы, чтобы, когда игрок в радиусе любого из сейвов - также удалять пикап.
А это и не заметно на первый взгляд. Просто однажды какая-то миссия или какая-то часть локации начнут вызывать стабильные вылеты. Ты уже удалишь все моды, переустановишь игру - а вылеты останутся именно в том месте. Это потому, что когда-то какой-то скрипт испортил игровые переменные, а ты после этого сохранил игру.
В скриптинге нужен противоположный подход. Некоторые скрипты могут вообще испортить людям игру. Они уже удалят твои скрипты, а у них через много-много миссий игра просто сломается, т.к. некоторые неправильные скрипты запарывают сохранения. Ну и помимо сохранений, в принципе лучше стараться предусмотреть как можно больше, т.к. мы не совершенны и всё равно в чем-то допустим ошибку ненамеренно. Так к чему допускать их намеренно, не так ли?
Опкод 0209 стоит в центре конструкции if-else, хотя он не условный. В конструкциях условий if-else должны содержаться только условные опкоды.
Далее - проверки полученного значения: они бессмыслены, т.к. в опкоде 0209 ты уже задал диапазон от 1 до 999. Значение уже не будет равно 0 или 999 никаким образом (при указании диапазона 1-999 итоговые значения будут в диапазоне 1-998).
Ну и кроме всего прочего, как написал SpitFire: нет смысла 2 раза писать задержку в начале и в конце цикла. Достаточно одной задержки в начале цикла в твоем случае.
Так у тебя же дальше проверки нахождения рядом педов стоят. Т.е. если пед не найден - идет возврат на эту метку. И так задержка в 0 секунд рано или поздно может превратиться в огромный промежуток времени, в течении которого модели могут быть выгружены другим скриптом.
Так что повторюсь уже в который раз: подход «у меня не вылетает, значит норм» - это неправильно. У тебя может не вызывать проблем просто из-за стечения обстоятельств. У другого игрока будут другие обстоятельства. Так что нужно всё это предусматривать. И постоянно совершенствовать свои скрипты.