То ж у тебе далі перевірки перебування поруч педів стоять. Тобто. якщо пед не знайдено – йде повернення на цю мітку. І так затримка в 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 секунд рано чи пізно може перетворитись на величезний проміжок часу, протягом якого моделі можуть бути вивантажені іншим скриптом.
Тож повторюся вже вкотре: підхід «у мене не вилітає, отже норм» – це неправильно. Ти можеш не викликати проблем просто через збіг обставин. Інший гравець матиме інші обставини. Тож треба все це передбачати. І постійно удосконалювати свої скрипти.