Мда ну и советчики... Нейтральные крипы = читеры, они видят всю карту. Два у них встроенный ИИ который приказывает им охранять место спауна, для блуждающих крипов нужно взять игрока от 1 до 12 и напиать примитивное ИИ для него, прочие варианты не работоспособны на 100%.
Я ведь писал выше, у меня манипуляции с коричневым игроком..
qzGoon, если это именно крипы (нейтрально-враждебный), то нужно на нейтрально-враждебного, а вообще - поведение у них сложное.
У меня создаются враги для игрока (коричневый), они создаются в области и из-за максимального рейджа и открой карты идут атаковать героев.
2-3 врага проходят спокойно, остальные идут и резко сворачивают обратно.
Но только зачем? Для разбирательств?) "Теперь искать нубов по IP станет гораздо проще. Новая технология геопоиска, внедренная в нашу карту, поможет вам отомстить криворуким союзникам."
P.S. А если серьезно, то мемхак - хороший вариант, так как видел среди его функционала возможность работы с интернетом (тип для обновления карты). Если благодаря ему можно открыть определенный сайт, то в принципе можно отловить и IP-адрес, который потом через ячейки памяти передавать обратно в вар.
Даешь одиннадцатому игроку видимость над всей картой. Даешь нужным боевым единицам радиус агрессии на всю карту.
Если не работает, то: Во время спавна мобов даешь им приказ атаковать ближайшего героя, если ЛЮБОЙ герой умер, повторяешь это действие.
Если юнит манипулирует когтями
Выкинуть когти
Если юнит манипулирует когтями
Поднять когти
Удалить когти
Удалить когти
Создать нужный предмет
P.S. Неужели планируешь создать свою Goblin Survival? Пересекались на боте, может помнишь меня. Ты еще грузился по несколько лет в карту и назвал меня школьником, лол.
Чем же тут пахнет GS? То что я собераюсь волны сделать?.. Или же что для крафта нужно 2 одинаковых предмета?.. Бредишь..
qzGoon, защита от раков описана множество раз, как на сайтах картостроителей так и на сайтах авторов читпаков и прочей гадости, у первых со способами реализации, а у вторых со способами обхода в несколько действий - нет сейчас универсальной и надежной защиты, которую можно установить по инструкции и которая не ломалась бы при этом по инструкции. А что-то более мощное требует соответствующих навыков, в том числе навык самостоятельного поиска информации.
Вас также отправлю прочитать вопрос ещё раз, особенно последние строки. Это вполне адекватный вам ответ, так как вы уже не первый кто прочитав 2-3 слова уже делает выводы.
шел 2018 все еше хотят защитить карту, совет дам хотите свои права иди на Unity3d и делай права на лизенцию у вар нет лизенция на карт чтобы нарушали ни MIT ни другие лизенции
Зачем? как вариант - делать копию файла скрипта, сохранять хеш оригинала и копии, потом проверять при запуске внешними средствами, что хеш копии=хешу файла скрипта оригинала, и если нет - звонить в ментовку и вызывать фсб, потому что кто-то посмел изменить твой шедевр.
Если кто не понял, это ирония на тему того, зачем протектить карты варкрафта в 2018 году.//
Читать разве разучились? Вы увидели что такое пишут в более старых постах и решили плагиатить ответы? Вместо того чтобы помочь, пишите 'Нахера' , 'Зачем' , 'В 2018 протектить'. Я всё объяснил в посте. quq_CCCP:
Элементарно, мемхак и ретурн баг на code, C2I вернет разные значения от одной и той же функции до и после изменения, но это выпилить не особо проблема.
Он спрашивает по сути про такой вид защиты, при котором изменение любой части кода приведет к срабатываю некой защиты. Самый примитивный вариант - отслеживать хендлы, самый сложный - юзать мемхак.
Как их отслеживать?.... Вызывает просто уйму вопросов своими же ответами. Я конечно благодарен за ответ, но можно ссылку на статью или пример.
qzGoon, ещё кое-что. Не проверял всё, но по словам других и проверке некоторых способностей, заклинания наносят урон 0, то есть, наверное, следует в триггер на отлов урона поставить условие, что урон не равен 0.00. Это не точно нужно для твоего случая, просто дополнительная информация.
когда юнит атакует выплывает вверху текст нанесенного урона..
ты карту не мог запустить потому что ты карту взламал депротектом ,или повредил ее открывая но не как скриптами,тут те защита нужна от открывания как у зомбии 666 стоит(например),открыть ее сложновато для нубиков,
не включен, во первых AdicHelper обрабатывает код раньше JassHelper'а
Во вторых он убирает все пробелы, а тут пробелы есть
В третьих локалки не в начале функции должны автоматически переноситься парсером в начало функции.
Вывод: у тебя не работает AdicHelper
Кинь карту и JNGP туда где нету русских букв в пути
Решение было таким:
Зашёл в ексешник адик хелпер который находится в папек вместе с jngp.
Перешёл по ссылке на сайт.
Зашёл опять же в эдитор, и всё скомпилилось нормально.
( дело было не в перезапуске, перезапускал 5-6 раз )
Рекомендуется ввести в привычку прочтение примечаний к ошибкам.
Я читал ошибку, понял как исправить. Но мне не нужно создавать эти локальные переменные вне фунцкии. Ошибка появилась когда установил fnwe. KingMaximax:
Локальная переменная должна объявляется в самом начале функции. А она у вас объявляется в неположенном месте. Хотя можно включить cJass, но вряд ли это поможет.
Не поймите меня превратно, но скрипты писал не я (человек перестал над ними работать) и приходится работать с тем, что имею. В скриптах не разбираюсь вовсе. Так поверхностно могу понять за что и как отвечает функция и редактировать не много. А вот прям новую переменную вписать и исправить ошибку с массивами не способен. Поэтому прошу помощи тут в том, чтобы помогли написать переменную)
Можно сделать примерно так:
Создаёшь глобальную переменную: g_iDuelPlayer (логическая) с массивом
Потом ставишь set g_iDuelPlayer[Номер игрока] = нет
При вызове на дуель проверяешь. Увы на весь код у меня нет времени, завтра приеду с работы если никто не напишет то думаю скину тебе.
qzGoon, в статьях в которые ты просил тебя не посылать написано что вейты не работают в функциях вызываемых из ForGroup
т.е. весь код который идёт после вейта не будет выполнятся
а если ещё прочесть статьи про джасс то можно узнать что они нигде не работают кроме действий триггеров и потоков дочерних от них
самый лучший способ - переделать на таймеры
самый быстрый способ - порождать дочерний поток через экзекут
Тоесть код написанный выше твоего комментария не рабочий?
Кстати, реализация доп. дамага через событие "Атакован" позволяет игроку спамить приказами "Отставить", после чего герой будет вновь пытаться атаковать. Это приведет к почти безинтервальному вызову триггера, и, соответственно, имбалансному урону. Но это не единственная проблема в контексте задуманного. Крч, тебе нужно отлавливать получение урона.
Можно ссылку на наработку нормального отлова урона? Погуглив нашёл очень много наработок, но не знаю какая из них самая оптимизированная. Если не сложно.. 8gabriel8:
В JASS профан, но так часто слышу от его пользователей, что не надо использьвать Wait'ы, что сразу в глаза это бросилось.
Мне нужно чтобы эффект бросился на время. p.s. Я только перехожу на Jass. Sheridan_75:
Когда ты добавляешь эффект, то делаешь слишком много присваиваний, причём сохраняешь эффект и в локальной переменной, и в глобальной:
call AddSpecialEffectTargetUnitBJ( "overhead", PickUnit , "Abilities\\Spells\\Other\\TalkToMe\\TalkToMe.mdl" )
set udg_SetEffect = GetLastCreatedEffectBJ()
set SelectEffect = udg_SetEffect
call PolledWait( 3.00 )
set udg_SetEffect = SelectEffect
call DestroyEffectBJ( udg_SetEffect )
Все эти присваивания являются излишними, поэтому твой код можно сократить до такого (также не забывай обнулять локальные переменные):
KingMaximax уф, щас голова начнет болеть. Зачем так всё усложнять? Давно было сказано как можно сделать.
Делаешь триггер, далее в нем через нужное время проверяешь тип умершего юнита и для каждого типа в нужной точке воскрешаешь юнита
Извините за хамство, но вы можете глаза открыть?! Я ведь уточняю что ТИП ЮНИТА ОДИН! Каждого из юнита нужно спавнить в заданные точки.
Прогонять через цыкл это да, решение. Но мне не нужно чтобы ресало всех... KingMaximax:
KingMaximax уф, щас голова начнет болеть. Зачем так всё усложнять? Давно было сказано как можно сделать.
Делаешь триггер, далее в нем через нужное время проверяешь тип умершего юнита и для каждого типа в нужной точке воскрешаешь юнита
Но есть и второй вариант.
Просто использовать хеш-таблицу с таймером. Сохранять по иду хендла позицию юнита, его тип и время через которое он возродится, и через сие время воскрешать его. Однако, куча таймеров не есть хорошо. А проверку циклом по массивам можно разделить. по опр областям с проверкой.
Когда у меня 50+ мобов, и это всё только кусочек карты, мне нужно на каждого область делать?)
использовать local unit u = getDyingUnit()
потом триггерно по прошествию времени (вейта какого либо) - воскрешать и очищать локалку.
Но для этого нужны минимальные знания джасса.
Можно геммороиться с группами, занося юнита в группу для воскрешения, и периодически по таймеру воскрешая всех юнитов в группе.
Мне нужно каждого моба спавнить в стартовой его точке, причём на каждого своя точка. И не нужно чтобы в одной точке было 2 и больше мобов.
Насколько я понял без регистрации каждого моба не обойтись?..
Резервировать массив для каждого юнита.
Устанавливать переменную макс. кол-ва юнитов
По циклу записывать позицию в отдельные масивы.
Раз в 60с прогонять цикл и проверять умер юнит или нет, с каждым созданием присваивать переменной отвечающую за юнита последнего создавшегося.
Работай переменными, заноси Тип героя или Конкретную боевую единицу в переменную, и когда выполняешь функцию телепорта проверяй, если герой != переменная героя, значит выполнять.
Второй якобы вопрос совсем не понятен, объясни более детально.
» WarCraft 3 / Можно ли реализовать подобное без орб эффектов?
» WarCraft 3 / Агрессия крипов
» WarCraft 3 / Агрессия крипов
2-3 врага проходят спокойно, остальные идут и резко сворачивают обратно.
» WarCraft 3 / Агрессия крипов
» WarCraft 3 / Можно ли получить IP-адрес игрока?
Ред. qzGoon
» WarCraft 3 / Как правильно реализовать?
» WarCraft 3 / [Защита] Если код в карте был изменён, значит не запускать карту
» WarCraft 3 / [Защита] Если код в карте был изменён, значит не запускать карту
quq_CCCP: Можно ссылку на статью?
Astra: Как их отслеживать?.... Вызывает просто уйму вопросов своими же ответами. Я конечно благодарен за ответ, но можно ссылку на статью или пример.
» WarCraft 3 / Как отловить событие когда герой наносит урон
» WarCraft 3 / Как отловить событие когда герой наносит урон
» WarCraft 3 / [Защита] Если код в карте был изменён, значит не запускать карту
» WarCraft 3 / Jass выдаёт странную ошибку
» WarCraft 3 / Jass выдаёт странную ошибку
KingMaximax: включен, и 0..
» WarCraft 3 / Урон в зависимости характеристик
» WarCraft 3 / wow в warcraft
» WarCraft 3 / Особый персонаж
» WarCraft 3 / Пассивная способность героя
» WarCraft 3 / Пассивная способность героя
8gabriel8: Мне нужно чтобы эффект бросился на время. p.s. Я только перехожу на Jass.
Sheridan_75: Скоро опробую, спасибо за подсказку, а про обнуление вообще забыл)
» WarCraft 3 / RPG | Возрождение моба ( С прошлого поста нет решения )
» WarCraft 3 / RPG | Возрождение моба ( С прошлого поста нет решения )
KingMaximax: Когда у меня 50+ мобов, и это всё только кусочек карты, мне нужно на каждого область делать?)
» WarCraft 3 / RPG | Возрождение моба в заданной точке.
Fakov:
Насколько я понял без регистрации каждого моба не обойтись?..
» WarCraft 3 / Усиление нейтрально враждебных
» WarCraft 3 / Особый персонаж
» WarCraft 3 / Проверка на уровень предмета.
Fakov: Поточнее? Это типо бд?
» WarCraft 3 / Проверка на уровень предмета.
Есть: Уровень предмета - от 1 до 8
И есть: Уровент предмета ( не классифицированный ) - от 1 до ХХХ.