Фирс, будешь новые оружия в renewation добавлять с этой прогой?
вряд ли этим есть желание заниматься. Тем более, что оружие новое там и так есть, просто с заменой для разных режимов.
ЦитатаTomsod ()
Да, я добавил в архив файл с детальным описанием каждого байта моего патча. Если что непонятно, спрашивайте.
А, не подумал туда заглянуть) Интересно. Для меня остается загадкой, как до таких штук допереть можно, для меня это как расшифровка ДНК) Попадалось ли еще что интересное в этом патче? Очень не хватает фикса ограничений занимаемой игрой памяти. В Worms 3d эти лимиты удавалось фиксить, прописаны в exe, в Worms 4 они зашифрованы. Алекс мне кидал, как они в W3d выглядят:
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
я, конечно, работал не в обычном бинарном редакторе, а в дизассемблере (IDA Pro) с дебаггером
а, вот в чем дело) может потом из интереса порою эту тему, хотя сейчас собственно это мне уже не актуально)
ЦитатаTomsod ()
Я, может, потом погляжу на предмет этих строк в спойлере.
Было бы здорово.
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
DrHitman27, неплохо, но много что кривовато и надо фиксить
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Unaited, разрешение текстур на картах и оружии можно увеличить конечно, но проблема в том, что когда графики в игре становится сильно больше дефолтной - начинаются краши и глюки, на сколько понимаю - из-за все того же внутреннего ограничения, зашитого в движок.
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Unaited, дело не в кэше css. У меня все обновилось. Просто пока сыровато выглядит.
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Меня в WUM очень раздражает поведение камер. При запуске овцы может, к примеру, включиться режим "экран в экране"... что совсем неудобно и часто некорректно работает... а при полете на веревке когда подлетаешь вверх, камера тебя не показывает, из-за чего сложно блок под себя поставить. Свободная камера была лучше.
Ну и уровни с W3d импортированы криво - надо было хотя бы их масштаб увеличить. И джетпак на многих картах не работает, скорее всего что-то с потолком высоты на этих картах. Невидимый поксель в небе скорее всего исправил бы проблему.
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
При помощи манипуляции значениями в которых CPU выбирает цель для атаки я смог заставить в 95% случаях синюю и зеленую команду атаковать только нас (красную команду).
Я не экспериментировал с ИИ, но в игре есть режим испытаний, где на последних уровнях у ИИ в команде более 6 червей. Можешь подсмотреть там код, чтоб улучшить свой скрипт.
ЦитатаZelenium ()
1. При касании червяка к воде он мгновенно телепортируется в случайное место на карте где есть земля.2. При касании червяка к воде он телепортируется с эффектами как при телепортации на платформах (тоже в случайное место). 3. При касании червяка к воде он телепортируется в определенное место на карте.
Такую штуку я делал. Скачай мод Renewation, там в одиночных миссиях есть режим faf (from a flood). Там я сделал (на сколько помню решение), что когда высотные координаты червя становятся равны высоте воды, его быстро уничтожаем и респауним без ожидания его смерти. В скрипте это все видно. Правда тебе придется поколдовать, если ты хочешь, чтоб при смерти сохранялось количество хп и оружие в инвентаре. Но это не сложно.
ЦитатаZelenium ()
Однако столкнулся с проблемой что игра вообще не пропускает большое количество мин на карте, и когда создаются новые 5 штук -- старые исчезают. Есть ли какое-либо решение?
Не знал про лимит на мины. Тут надо поэкспериментировать. В игре есть возможность создавать взрывы в триггерах, можно сделать у старых мин авто детонацию каждые N секунд и добавить в осколки две мины с большим разлетом. Получится, что мина будет самоуничтожаться, разлетаясь на 2 мины.
Рекомендую все манипуляции максимально проводить через lua скрипты, а не через твики - возможности шире и для одного режима не нужно менять исходные твики игры. Можно для одного уровня поменять боссу оружие.
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Пожалуйста, подумай где может находится это ограничение.
В червях много ограничений на использование ресурсов, т.к. эта игра выпускалась под слабые машины очень-очень давно. Например есть ограничение на количество покселей карты, на объем используемой растровой графики и т.д. К сожалению, почти все эти ограничения зашиты в движок игры и (со слов Алексбонда, скорее всего зашифрованы, т.к. ему не удалось их снять также легко, как в worms 3d). Я не знал вообще про существование этого лимита на спаун мин, в коде тоже ничего такого не припоминаю, хотя игру перелопатил знатно. Тут скорее только костылями можно как то решить задачу.
ЦитатаZelenium ()
у тебя вариант проверки хп у червяка
Эх, а я почему то запомнил, что высоту воды сверял. Видимо несколько вариантов пробовал и остановился на этом. Давно это было.
ЦитатаZelenium ()
Покопавшись в файлах игры я нашел строчку отвечающую за позицию червяка, однако правильно ее использовать так и не смог.
Если 1 еще и можно сделать ценой проб и ошибок потратив несколько часов, то вот с 2-ым будут проблемы. Нужно написать функцию которая будет реагировать мгновенно а не при смене хода. Т.е. если мы и сможем правильно использовать позицию червяка, то еще и нужно написать функцию которая будет реагировать без замедлений.
Не понял сути проблемы? Какую функцию тебе сложно мгновенно использовать? Проверка делается через запуск функции проверки в цикле с таймером. То есть ее можно делать рилтайм, респаун червя также срабатывает моментально при запуске.
Связаться со мной напрямую вероятно удобнее всего будет через vk: Ссылка
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Проблема в том чтобы сделать мгновенную проверку. Мне кажется, если сделать проверку с таймером то могут быть ситуации когда червяк упадет в воду и потеряет все своих хп как раз в "окно" между проверками. А если таймер не ставить или ставить с ооочень маленьким числом -- игра будет сильно нагружена. Или я ошибаюсь?
ничего страшного в потере всех хп нет. Просто респаунишь. Раз в пол секунды норм вызывать и нагрузка не большая на игру. Тут вопрос, что часто координаты червя равны координатам воды и это не означает смерть- например хождение по краю берега. Так что если идти таким способом, лучше и свою карту делать, чтоб избежать таких моментов. Или можно вообще - проверять координаты червя в момент смерти) Вариантов костыля много.
На счет другого способа связи - эт сложно.. ну в дискорде еще меня можно найти)
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Zelenium, на счет 1го хода я в упор не помню. Но насколько помню, можно проверить какая команда в данный момент ходит и этот ход передать. В пвп боях обычно 1й ход рандомно выбирается. Надо в миссиях и в челленджах скрипты смотреть.
По поводу викингов - мне не совсем концепция понятна этого босса. Минер своей сути соответствует. На мой взгляд викинги должны наоборот не боятся воды а еще обладать режимом берсерка)
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Zelenium, потом гляну, что сделал - если качественно и интересно будет - может потом предложу тебе в Renewation в одиночные миссии твоих боссов добавить.
В дискорде у меня ник: firsacho #3974
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Zelenium, мгновенный уронкрайне сложно реализовать, это огромное количество костылей и все-равно вряд ли что адекватное из этого выйдет. В скриптах очень ограниченный функционал, надо придумывать исходя из того, к чему есть доступ. Даже проверка на использование оружия это огромные костыли, т.к. стандартной функции нет - нам приходилось проверять количество оружие в панели оружия а для бесконечного оружия скидывать его число на 9 и запоминать при этом, что оно бесконечно. Лучше придумай какую то компенсирующую механику. Может просто штрафовать на хп при каждом респауне?
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
35 - нестандартная цифра для вормов. Тогда уж 30 или 40. Гляну мод на выходных.
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Ознакомился с модом. Найденные общие недоработки: - Не нашел босса ветра вообще. Хз в чем причина.; - Названия испытаний не изменены, их описание не добавлено; - Русские имена червей, команд и боссов - на мой взгляд лучше писать на латинице, т.к. могут скачать иностранцы. Нашим и так будет понятно. - Имя команды игрока и их одежда задано по дефолту, а ведь перед испытаниями мы выбираем свою команду; - Защита от воды срабатывает не всегда корректно - иногда при падении в воду босс гибнет, иногда она срабатывает рядом с водой без гибели;
Мысли о боссах (спойлеры):
1. Минер. В целом босс показался не интересным. Прошел со 2го раза. Главная проблема - количество хп босса: его надо очень долго и нудно расстреливать.
Невидимые мины - если не знаешь задумки босса, фишка с минами не понятна и ощущается, как баг. Их местонахождение рандомно и уйти от них нельзя, так что по карте приходится перемещаться по воздуху, чтобы на мины не нарваться. Выходит, что ты сидишь рядом с боссом и расстреливаешь его, минимально перемещаясь, что динамики не добавляет.
Телепортация со стороны игрока не особо понятна. Я вначале подумал, что это глюк защиты от утопления. Понятно, зачем она сделана, но сильно интереснее босса она не делает.
Я бы предложил сделать мины видимыми, но с маленьким запалом, большим радиусом поражения и блокировать этими минами подходы к боссу (он же в пещере сидит). Может быть, чтоб игрок должен был на веревке эти мины к боссу подтягивать, по принципу "клин клином". А чтоб игрок не сидел в пещере на месте, расстреливая босса, надо заставить его из нее уходить самому - например за аптечками и ящиками с оружием.
Также хорошо бы было дать этому боссу оружие с минами в качестве осколков (он же минер!).
2. Викинги. Босс показался очень хардкорным, я сыграл против него один раз, второй раз не захотел. Главная сложность, что противников много, хп у них также много и пока ты делаешь 1 ход, они делают 4. Это навязывает уход в "темную сторону" - стрельба из укрытий. Но каждый ход, ход сокращается на 1 секунду, пока не остается 5 секунд на ход. Этого не достаточно, чтобы выйти из укрытия, выстрелить и спрятаться, получается, что стоишь на виду и тебя расстреливают со всех сторон. Наверное можно было помучиться и босса я бы замочил, но 5 секунд на ход так раздражали, что не захотелось.
3. Демоны Вот этот босс мне понравился. Прошел со 2 раза. Одна из любимых карт в червях и телепортация противников каждый ход показалась интересным решением. При том что у них одинаковые имена и они постоянно перемешиваются. Воистину демоны. Шамана я, правда, убил в первый же ход и потому фишку с их лечением не просек. Может его лучше спрятать в купол центральной башни. Остальных же демонов приходилось убивать так, чтобы они не улетали в воду, впитывая дамаг и на этой карте это довольно интересно. Правда пара демонов погибло все-таки в воде, т.к. скрипт не сработал.
Миссия неплоха, но если есть желание дорабатывать - может попробовать добавить молоток и как то его использовать, чтоб демоны не падали в воду. Также занятно было бы сделать демонам вместо обычного оружия какие-нибудь магические атаки (лучами из партиклов, например).
4. Пираты Босс также понравился. Пришлось придумывать тактику для его уничтожения. Убил со второй попытки. В первый раз не просек, что поднимается вода (нет надписи внезапная смерть, нет тревожной музыки и таймера "в минус") и утопил пару своих червей.
Выработал такую тактику прохождения босса: - в первый ход надо попасть отравленной стрелой в Капитана. Это весьма просто, т.к. спаунишься на берегу, а стрела отскакивает от воды прямо на остров с капитаном; - в следующие ходы надо перебираться на крышу, попутно убирая матросов дробовиком и снайперкой, строить укрытие из балок; - Когда матросы мертвы, браться за уже подтравленного капитана. При этом на карте уже затоплена вся земля и оружие становится малоэффективно, т.к. скидывает капитана в воду, не нанося своего урона. Надо именно стараться каждый ход его в воду швырять, чтоб он получал штраф к хп при респауне; - Когда земли и своих червей уже совсем мало использовать пузырь;
У меня кэп утопился в итоге примерно наверное где-то на 160 хп - скрипт не сработал. Но я бы его и так добил скорее всего. В этом уровне посоветовал бы убрать лишнее оружие, типа святых гранат, бананов, более одной бомбардировки - они не нужны и смысла в них мало. Может стоит добавить пару ящиков со здоровьем.
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Сегодня качал. Может там у мастера ветра просто описание есть и я его не отличил от обычных челленджей? Ну либо он может быть заблокирован без сейвов.
Босы топились и с хп больше 100. Я полагаю просто иногда проверка не успевает сработать. Надо тестить.
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
У этих всех фишек боссов есть проблема - они непонятны игроку. Например - игрок отравил босса, на след ход отравление скинулось. Или, как ты описывал, что после смерти одного из боссов, другим дается броня. С точки зрения игрока механика выглядит довольно хаотичной, часто незаметной и надо как то ее объяснять. Может через внутриигровые сообщения. Например, выводить в консольку "Буря излечил себя". Или "Сила оружия босса увеличена на 10%". И так по всем срабатываниям скрипта, в т.ч. при респаунах от утопления.
Если ты не против, я бы включил твой мод в сборку Renewation - там как раз не хватает одиночных миссий. Единственное, там понадобится на английский все перевести и нужно сделать описание - то что в брифинге перед миссией написано и когда esc нажимаешь - короткое описание миссии и 3 задачи:
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Zelenium, по броне у меня тоже не получалось в свое время. Но не сильно пытался. Надо вспомнить, есть ли где в миссиях заранее броня предустановленная?
По боссам - обширные планы. Не очень понятен смысл "обычных боев" - это ж не интересно будет... Я в свое время хотел для мультиплеера что то типа боссов делать (HERO MOD) - типа одному игроку случайному выдается один червь с суперспособностями и дофига хп, а остальные игроки должны пытаться его завалить)
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
А вот можно ли как-то спавнить ящики у которых отключено уведомление о том что их подняли?
У меня такой задачи не было, так что не знаю наверняка, но подскажу. Анимации и озвучки можно отключать скриптом - в игре предусмотрен режим внутриигровых сценок (заставок) в котором черви не проигрывают анимаций и озвучек, чтобы можно было ставить анимацию на заставках. Но не уверен, что этот режим можно включить отдельно для одного червя и не знаю, работает ли он без широкоэкранного режима (скрытия хада за черными рамками) или же включается пакетно.
На счет сообщения о подборе ящика - оно как раз в широкоэкранном режиме показываться не будет. А может можно выловить запуск сообщения в функции сбора ящика (в библиотеках функций) и не использовать его (то есть перезаписать функцию внутри своего скрипта).
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Emishka_Roper, неплохо) тема не самая актуальная, но если будет время - запишу че-нить)
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)