PrincePhoenix, не работает - на примере китая, где до недавних пор рождаемость была законодательно ограничена - будут находить дырки в законе или просто в открытую нарушать его, рожать в домашних условиях, прятать детей от государства и тому подобный идиотизм, приводящий к еще более печальным последствиям. Если только не идти предложеным факовом путем, но это тоже не работает т.к. дорого и чревато неприятными последствиями для организма при современном уровне технологий.
управление как ни крутись, удобным не получится, если не менять игровые механики, а если их менять, то начнет сыпаться совместимость
авторские права
размер клиента
плюсы
понты
еще больше понтов
имхо, от близов вероятней дождаться ремастера полноценной версии, чем порта под мобильные устройства, а любительские не взлетят, как не взлетели ни разу многочисленные попытки запилить "свой варкрафт со своим редактором и графонием но с общим форматом и совместимостью"
обфускация кода не обязательна для этого метода, но дополнительно усложнит жизнь кулхацкерам своим наличием
не уверен годится ли варовский хеш строки для этих целей т.к. не помню одинаков ли он в разных сессиях и нет ли к нему готового обратного алгоритма где-то в сети
у каждого кода должно быть свое уникальное ключевое слово "qwerty", хеш которого не должен совпадать с хешами других ключевых слов (случается если хеш-функция не самая удачная)
настоящее имя использованого хеш-алгоритма не должно попасть в руки кулхацкеру, если это не что-то вроде md5 т.к. многие необратимые алгритмы по проще уже были взломаны и на них есть обратная функция которая подбирает по хешу подходящую строку
ключевое слово "qwerty" нигде не должно появляться в карте, ни в строках, ни в комментариях, ни в коде, ни выложеное из кучек говна в комнате главного босса
ключевое слово "qwerty" должно быть невозможно угадать по названию того с чем оно связано, в идеале это должен быть случайный набор букв
не забудь поменять все коды при переходе на новую систему, чтобы те кто их узнал не честным путем не могли продолжать ими пользоваться (я бы, например, после добавления новой системы кодов на какое-то время оставил старые коды в карте, но с предупреждением что они скоро перестанут работать)
все кулхацкеры могут слать потоки ненависти в мой адрес, мне какраз немного не хватает для захвата мира
Aws, тогда мой вариант тебе идеально подходит, осталось решить какой необратимый хеш одновременно достаточно хорош и не слишком сложен в реализации. Я помню кто-то даже md5 на jass выкладывал тут на xgm, но, имхо, это изврат.
Принцип примерно такой:
игрок вводит команду вида "-code qwerty", где code это или универсальное ключевое слово для ввода кодов или уникальное для каждого кода, в зависимости от реализации, а qwerty это ключевое слово для конкретного кода
триггер отлавливает ввод первого ключевого слова "-code" и выделяет из строки второе ключевое слово "qwerty"
ключевое слово "qwerty" прогоняется через необратимую хеш-функцию и превращается в хеш "123456"
хеш "123456" сравнивается с записаным в карте хешем, циклом если команда "-сode" универсальная, или напрямую если у каждого кода есть своя команда
если хеш совпал, то выдаем плюшки, ну а если нет, то шлем нах
при попытке вскрыть карту кулхацкер обнаружит только "-code" и "123456", но не "qwerty", а значит не сможет правильно ввести команду в официальной версии карты
наличие алгоритма хеширования в карте не спасает кулхацкера т.к. алгоритм необоратимый и не может из "123456" получить "qwerty"
кулхацкер может поробовать подобрать ключевое слово, хеш которого совпадет с "123456", но если функция хеширования достаточно хороша, то он скорее начнет рвать волосы на жопе и визжа кататься по полу, чем у него это получится
Aws, коды в виде команд или генерируемый индивидуальный лоадкод?
Если коды фиксированные, то один из вариантов - запилить алгоритм необратимого хеширования вроде md5, можно и по проще, а в карте хранить только хеши от этих кодов и сравнивать с хешами от введенной игроком команды.
Тогда вскрытие карты не будет иметь никакого значения т.к. необратимый хеш превратить в правильный код это геморой которым никто не будет заниматься. Офк, работает только если коды передаются тестерам напрямую, а не получаются из карты. Главный недостаток фиксированных кодов - нужно приучать тестеров вводить их так чтобы никто не видел.
Fakov, блюпринты - инструмент для визуального программирования для UnrealEngine4 и, имхо, одна из лучших реализаций визуального программирования из тех что я видел. Естественно, мое "теоретическое" предложение выше подразумевает использование только визуальной части от блюпринтов, с компиляцией в jass вместо C++, да еще и с адаптацией под реалии варкрафта.
Jack-of-shadow, ничуть не хуже того гуи-кода который иногда выкладывают скриншотами.
Блюпринты намного функциональней и удобней гуя, настолько что я бы даже взялся за этот челенж если бы еще занимался варом, хотя и перешел с гуя на jass почти сразу в свое время.
Ваш дискас устарел на много лет... Предлагаю третий вариант к обсуждению - выковырять из анрил энжайна блюпринты и прикрутить редактору вместо ГУИ, с компиляцией во все тот же jass.
Fakov, найди спецификацию по типам файлов в карте, если она еще где-то лежит в интернете - там была расписана структура и этого файла тоже.
Грубо говоря, там для каждой записи что-то вроде такого: <заголовок, состоящий из одного из двух наборов байт, определяющий есть ли кастомный путь><путь к файлу в определенном формате, вроде как без длины строки но с завершающим символом><фиксированный разделитель><виртуальный путь назначеный этому файлу><еще один фиксированный разделитель>. Пишу по очень давним воспоминаниям, могу сильно ошибаться! нужно смотреть спецификацию.
Fakov, если я правильно помню, там отдельный файл за список импорта отвечает, не листфайл, но структура у него не намного сложнее. Возможно это файл с расширением w3i или imp но у меня нет уверенности что я правильно помню, так что для надежности лучше открыть спецификацию по типам файлов внутри карты и посмотреть. Главная засада была в том, что он вроде как бинарный, с не строковыми разделителями между записями.
Много лет назад была у меня тулза, которая генерила файл с метаданными для списка импорта на основе файлов лежащих по указаному пути, с сохранением структуры каталогов, а потом файлы заталкивались в карту вручную mpq плагином к тоталкомандеру вместе со списком импорта. В таких условиях, естественно, весь импорт шел только через эту связку т.к. доставать существующий список импорта и парсить его мне было лень. Офк, давно все похерено, так что скинуть не смогу, но может на мысли какие-то наведет.
Регулярно там залипаю... Основа крафта - суровый рандом, почти все что не рандом - через NPC. Иногда появляются интересные крафтовые механики в отдельных лигах, но обычно в основную игру не переходят. Для меня крафт в PoE сводится к подгонке проходных вещей под определенный стандарт, чтобы чуть реже их менять и эффективнее пробегать уровни, а в лейтгейме место крафта почти полностью занимает торговля с теми кому либо повезло на дроп либо кому не лень влить дохуилиард времени рандомя предмет "крафтом".
PrincePhoenix, испугал её внезапностью признания и последующей настырностью, еще и день неправильно выбрал, за что был заслужено отфрендзонен. Мягче с ними надо, мягче, без юношеского максимализма и внезапных ударов по голове.
Или, если карта позволяет, можно отказаться от областей и массивов и сделать выбор героя через способность у выбирающего юнита, тогда героев нужно будет расставить на карте, сделать их нейтральными и неуязвимыми, может даже паузу на них повесить. А выбирающему юниту выдается способность на основе канала, настроеная так чтобы её можно было кастовать только на неуязвимых героев с небольшой дальностью каста. затем триггерно отслеживается каст этой способности и создается герой того типа, на кого была применена способность.
Дешево и сердито и требует минимум знаний о триггерах. Для любителей извращений, способность может быть не на основе канала, а на каком-нибудь молоте бурь, без убирания модели снаряда.
В теории - через мемхак с помощью подключаемой длл можно подвесить хоть гуглоаналитику, хоть самописное что-то. А практике так заморачиваться смысл есть только особо популярным проектам, в которые, как правило, уже вложено столько времени, что можно было отдельную игру за это время собрать на нормальном движке.
Хоть вар ставь и ищи где это было, в настройках предмета или может в константах где-то или еще где, что позволяло развязать друг от друга кулдауны одинаковых предметов на одном герое. Но нет, разбирайтесь сами. Подкину еще одну идею как это можно сделать без мемхака и перестаю писать в эту тему:
Кастомная система кулдаунов для тех предметов которые должны работать с шансом на срабатывание без кулдауна - у каждого такого предмета создается один двойник-пустышка, с пассивными статами и правильным кулдауном (а можно и без пассивных статов - получится интересная фича, предмет на кулдауне будет переставать давать статы, я так делал, на выходе получался забавный геймплей, в котором игроку приходилось выбирать что ему важнее, пассивные статы от предмета или активная способность которую он дает). Оригинальный предмет содержит минимальный кулдаун чтобы избежать наклика, а по срабатыванию заменяется пустышкой, которая принудительно кулдаунится. По таймеру пустышка меняется обратно на оригинальный предмет. Фишка в том, что кулдаун можно просто не запускать при текущей постановке задачи и наличии этой системы, вместо попыток сбросить уже запущеный кулдаун. Плюсы - идеально решает поставленую задачу и требует намного меньше мусора в РО чем вариант с подменой предмета копией ради сброса кулдауна, дает возможность реализовать еще одну фичу - снижение кулдауна предмета ценой дополнительного мусора. Минусы - мусор в РО всеравно есть, а система требует базу данных и таймеры с хештаблицами или структурами и отслеживание всех действий с предметами для корректной работы в любых условиях.
Sebra2, делать все способности предметов поддерживаемых этой абилкой триггерными - тогда никаких проблем не будет с запуском эффекта предметного без кд ведь предмет для этого будет уже не нужен.
Работы много и не обойтись без умения делать базы данных и собственно триггерные способности, но зато будет гарантировано работать.
PyCCKuu_4eJl, если в доте копаться, то скорее всего на всякие прыжки и отбросы смотреть. И на всякие летящие по прямой снаряды игнорирующие проходимость.
Но здесь на xgm много раз выкладывали наработки дамми-снарядов разного вида, отдельные, которые не нужно выковыривать из громадной карты.
Интересует именно система "Навесного" даммика-снаряда с регулировкой высоты, и если можно - скорости полёта(для одновременного приземления на всех).
Обсуждалось и выкладывалось тут множество раз в разных вариациях - ищите, разбирайтесь. Естественно, нужно понимание JASS и математики с геометрией на достаточном уровне. Без этого лучше отказаться от этой идеи и взять что-то по проще.
Кастомные снаряды из даммиков на таймерах и хештаблице или vjass структурах. Даммики с регулируемой высотой полета. Каждый даммик знает свою цель и проверяет расстояние до неё в таймере передвижения, когда расстояние меньше заданого - под героем создается новый даммик для каста молнии, после чего оба даммика удаляются (для каждой цели своя пара даммиков, таймер может быть один на всех и удаляться после удаления последнего даммика). У меня когда-то была система, позволявшая сделать это и многое другое прямо из РО, не трогая триггеры после первичного импорта системы, но увы она не дожила до этих дней т.к. варом я больше не занимаюсь.
» Огонёк Феникса / Нищие родители
» Fa_losophy / Wc3 Mobile?
» Naadir / Первый интерактив
» WarCraft 3 / Как сделать максимальную защиту карты?
» WarCraft 3 / Как сделать максимальную защиту карты?
Ред. prog
» WarCraft 3 / Как сделать максимальную защиту карты?
» Блог sleep`a / GUI или jass?
» Блог sleep`a / GUI или jass?
» Блог sleep`a / GUI или jass?
» Fa_losophy / FaMPQ
Ред. prog
» Fa_losophy / FaMPQ
Грубо говоря, там для каждой записи что-то вроде такого: <заголовок, состоящий из одного из двух наборов байт, определяющий есть ли кастомный путь><путь к файлу в определенном формате, вроде как без длины строки но с завершающим символом><фиксированный разделитель><виртуальный путь назначеный этому файлу><еще один фиксированный разделитель>. Пишу по очень давним воспоминаниям, могу сильно ошибаться! нужно смотреть спецификацию.
Ред. prog
» Fa_losophy / FaMPQ
» Fa_losophy / FaMPQ
» WarCraft 3 / Можно ли локально отдать приказ юниту?
» Мир безумного / Blizzard открыла вакансии на разработку Diablo
» Огонёк Феникса / Смерть романтика
Ред. prog
» WarCraft 3 / Создание героев с массивом
Дешево и сердито и требует минимум знаний о триггерах.
Для любителей извращений, способность может быть не на основе канала, а на каком-нибудь молоте бурь, без убирания модели снаряда.
» WarCraft 3 / Мемхак и аналитика
» WarCraft 3 / Мемхак и аналитика
Ред. prog
» WarCraft 3 / Сброс перезарядки предмета.
» WarCraft 3 / Сброс перезарядки предмета.
Работы много и не обойтись без умения делать базы данных и собственно триггерные способности, но зато будет гарантировано работать.
» WarCraft 3 / Навесная траэктория
Но здесь на xgm много раз выкладывали наработки дамми-снарядов разного вида, отдельные, которые не нужно выковыривать из громадной карты.
» WarCraft 3 / Навесная траэктория
Ред. prog
» WarCraft 3 / Навесная траэктория
У меня когда-то была система, позволявшая сделать это и многое другое прямо из РО, не трогая триггеры после первичного импорта системы, но увы она не дожила до этих дней т.к. варом я больше не занимаюсь.
» WarCraft 3 / Сброс перезарядки предмета.